Skip to main content
Esta página es parte de una habilidad de agente de codificación con IA y está escrita para agentes, no para humanos. Para la documentación de Base44 legible por humanos, consulta la documentación para desarrolladores.

Referencia rápida del SDK de Base44

Firmas de método compactas para todos los módulos SDK. Verifica contra esto antes de escribir código.

Auth (base44.auth.*)

loginViaEmailPassword(email, password, turnstileToken?) → Promise<{access_token, user}>
loginWithProvider('google' | 'microsoft' | 'facebook', fromUrl?) → void
me() → Promise<User | null>
updateMe(data) → Promise<User>
isAuthenticated() → Promise<boolean>
logout(redirectUrl?) → void
redirectToLogin(nextUrl) → void              # ⚠️ Evitar - prefiere UI de login personalizada
register({email, password, turnstile_token?, referral_code?}) → Promise<any>
verifyOtp({email, otpCode}) → Promise<any>
resendOtp(email) → Promise<any>
inviteUser(userEmail, role) → Promise<any>
resetPasswordRequest(email) → Promise<any>
resetPassword({resetToken, newPassword}) → Promise<any>
changePassword({userId, currentPassword, newPassword}) → Promise<any>
setToken(token, saveToStorage?) → void

Entidades (base44.entities.EntityName.*)

create(data) → Promise<T>
bulkCreate(dataArray) → Promise<T[]>
list(sort?, limit?, skip?, fields?) → Promise<Pick<T, K>[]>
filter(query, sort?, limit?, skip?, fields?) → Promise<Pick<T, K>[]>
get(id) → Promise<T>
update(id, data) → Promise<T>
updateMany(query, mongoUpdateOp) → Promise<UpdateManyResult>   // por ejemplo, { $set: { field: val } }
bulkUpdate(dataArray) → Promise<T[]>                           // cada elemento debe tener id
delete(id) → Promise<DeleteResult>
deleteMany(query) → Promise<DeleteManyResult>
importEntities(file) → Promise<ImportResult<T>>                // solo frontend
subscribe(callback) → () => void                               // devuelve función unsubscribe
Ordenación: Usa SortField<T>: -fieldName para descendente (por ejemplo, -created_date). Máximo 5.000 por solicitud para list/filter.

Funciones (base44.functions.*)

invoke(functionName, data?) → Promise<AxiosResponse>  // tu JSON está en .data; lanza en no-2xx (err.response.data)
fetch(path, init?) → Promise<Response>   // bajo nivel, para streaming/métodos personalizados
Backend: Usa base44.asServiceRole.functions.invoke() para acceso de administrador.

Integraciones (base44.integrations.Core.*)

InvokeLLM({prompt, add_context_from_internet?, response_json_schema?, file_urls?}) → Promise<string | object>
GenerateImage({prompt}) → Promise<{url}>
SendEmail({to, subject, body, from_name?}) → Promise<any>
UploadFile({file}) → Promise<{file_url}>
UploadPrivateFile({file}) → Promise<{file_uri}>
CreateFileSignedUrl({file_uri, expires_in?}) → Promise<{signed_url}>
ExtractDataFromUploadedFile({file_url, json_schema}) → Promise<object>

Integraciones personalizadas (base44.integrations.custom.*)

call(slug, operationId, {payload?, pathParams?, queryParams?}?) → Promise<{success, status_code, data}>
Formato operationId: "method:/path" (por ejemplo, "get:/contacts", "post:/users/{id}")

Analytics (base44.analytics.*)

track({eventName, properties?}) → void

App Logs (base44.appLogs.*)

logUserInApp(pageName) → Promise<void>
fetchLogs(params?) → Promise<any>
getStats(params?) → Promise<any>

Users (base44.users.*)

inviteUser(userEmail, role) → Promise<any>    // role: 'user' | 'admin'

Conectores de rol de servicio (base44.asServiceRole.connectors.*)

Solo backend, se requiere rol de servicio. Con ámbito de app (cuenta compartida).
getConnection(integrationType) → Promise<{accessToken, connectionConfig}>   // recomendado
getAccessToken(integrationType) → Promise<string>                           // obsoleto
Tipos: Ejecuta npx base44 connectors list-available para ver todos los tipos de integración disponibles.

SSO (base44.asServiceRole.sso.*)

Solo backend, se requiere rol de servicio.
getAccessToken(userId) → Promise<{access_token}>

Acceso de rol de servicio

Solo funciones de backend. Prefija cualquier módulo con asServiceRole para acceso de administrador:
base44.asServiceRole.entities.Task.list()
base44.asServiceRole.functions.invoke('name', data)
base44.asServiceRole.connectors.getConnection('slack')
base44.asServiceRole.sso.getAccessToken(userId)

Plantilla de función de backend

import { createClientFromRequest } from "@base44/sdk";

Deno.serve(async (req) => {
  const base44 = createClientFromRequest(req);
  const data = await req.json();
  
  // Contexto de usuario
  const user = await base44.auth.me();
  
  // Rol de servicio para operaciones de administrador
  const allRecords = await base44.asServiceRole.entities.Task.list();
  
  return Response.json({ success: true });
});

Inicialización del cliente (apps externas)

import { createClient } from "@base44/sdk";

const base44 = createClient({ appId: "your-app-id" });  // DEBE usar 'appId'

Registros de tipos TypeScript

Para entidades, nombres de función y nombres de agente tipados (autocompletado y comprobación de tipos), la CLI de Base44 genera tipos y los cablea en tu proyecto. Usa la habilidad base44-cli para saber cómo generar tipos.
Esta página fue traducida usando IA. Para obtener la información más precisa y actualizada, consulta la versión en inglés.