Ir al contenido

Índice de endpoints

Cada ruta que monta el servidor, en una sola tabla, junto con lo que se requiere para acceder a ella.

Las rutas asumen el basePath predeterminado de /api; REBASE_BASE_PATH las traslada todas juntas. /health, /livez y /metrics se ubican fuera de él a propósito, ya que un orquestador sondea /health y no debería necesitar conocer la ruta base. /health también se monta debajo de él, por lo que /api/health responde de la misma manera en lugar de devolver un error 404 en el preciso momento en que alguien verifica si el servidor está activo.

Un control de verificación — tooling/scripts/docs-verify/check-endpoint-index.mjs — compara esta tabla con las rutas que registra el código fuente, de modo que no se puede agregar una nueva superficie sin que aparezca aquí.

Gate Significado
none Sin autenticación. Cualquiera que pueda acceder al host puede llamarlo
session Un emisor que ha iniciado sesión: un token de acceso o una clave de API con alcance para la operación
resource:action Un emisor que tiene ese alcance: un administrador, una persona cuyo rol lo declara, una clave de API creada con él o la clave de servicio
RLS Autenticado, y luego la base de datos decide fila por fila — consulte Reglas de seguridad
dev Montado solo fuera de producción

Generado por colección, por lo que las rutas llevan sus slugs en lugar de una lista fija. :slug es el slug de una colección.

Método Ruta Gate Más
GET /api/data/collections session API REST
GET /api/data/:slug RLS Consultas
POST /api/data/:slug RLS API REST
POST /api/data/:slug/query RLS El listado, con los parámetros de consulta en el cuerpo — Consultas demasiado largas para una URL
GET /api/data/:slug/count RLS Consultas
POST /api/data/:slug/count RLS El conteo, con los parámetros de consulta en el cuerpo — Consultas demasiado largas para una URL
GET /api/data/:slug/aggregate RLS API REST
GET /api/data/:slug/:id RLS API REST
PATCH /api/data/:slug/:id RLS API REST
PUT /api/data/:slug/:id RLS Alias obsoleto de PATCH — misma escritura parcial, responde Deprecation: true
DELETE /api/data/:slug/:id RLS API REST
POST /api/data/:slug/bulk RLS Inserta muchas filas, opcionalmente realizando upsert — API REST
PATCH /api/data/:slug/bulk RLS Actualiza muchas filas por id — API REST
POST /api/data/:slug/bulk/delete RLS Elimina muchas filas por id — API REST
POST /api/data/_batch RLS Escribe a través de colecciones en una sola transacción — Escritura a través de REST
GET /api/data/:slug/:id/history RLS Historial de entidades
POST /api/data/:slug/:id/history/:historyId/revert RLS Historial de entidades

El conteo y la agregación son rutas independientes, registradas antes de /:id para que aggregate no se interprete como el id de una entidad. ?select= y ?groupBy= son sus parámetros, y select es obligatorio en /aggregate.

La búsqueda de texto, la búsqueda vectorial, la inclusión de relaciones y la selección de campos son parámetros de consulta en GET /api/data/:slug en lugar de rutas — search, vector_search, include, fields. Consulte API REST.

Un proyecto que no declara colecciones y no realiza introspección de ninguna sirve este prefijo como un único 404 NO_COLLECTIONS. Consulte Solo backend.

Método Ruta Gate Más
GET /api/auth/config none Lo que puede ofrecer la pantalla de inicio de sesión: registro, restablecimiento de contraseña, enlace mágico, códigos por correo, sesión de invitado, proveedores OAuth y si falta configurar el primer administrador
POST /api/auth/register none Autenticación
POST /api/auth/login none Endpoints de autenticación
POST /api/auth/refresh none (un token de actualización) Endpoints de autenticación
POST /api/auth/logout session Endpoints de autenticación
GET /api/auth/me session Endpoints de autenticación
PATCH /api/auth/me session Endpoints de autenticación
GET /api/auth/sessions session Endpoints de autenticación
DELETE /api/auth/sessions session Revoca todas las demás sesiones
DELETE /api/auth/sessions/:id session Revoca una
POST /api/auth/forgot-password none Autenticación
POST /api/auth/reset-password none (un token de restablecimiento) Autenticación
POST /api/auth/change-password session Autenticación
POST /api/auth/send-verification session Autenticación
GET /api/auth/verify-email none (un token de verificación) Autenticación
POST /api/auth/verify-email none (un token de verificación, y una sesión o la contraseña para conservarlo) Verificación de correo electrónico
POST /api/auth/magic-link none Autenticación
POST /api/auth/magic-link/verify none (un token de enlace) Autenticación
POST /api/auth/otp none Códigos de un solo uso por correo electrónico
POST /api/auth/otp/verify none (un código) Códigos de un solo uso por correo electrónico
POST /api/auth/anonymous none Sesiones de invitado. Desactivado a menos que ALLOW_ANONYMOUS
POST /api/auth/anonymous/link session (un invitado) Convierte un invitado en una cuenta
POST /api/auth/find-user session Desactivado a menos que AUTH_ALLOW_USER_LOOKUP — es una superficie de enumeración
POST /api/auth/:provider none Uno por cada proveedor de OAuth/OIDC configurado
POST /api/auth/link/:provider session Vincula un proveedor a la cuenta con sesión iniciada
POST /api/auth/mfa/enroll session MFA
POST /api/auth/mfa/verify session MFA
GET /api/auth/mfa/factors session MFA
DELETE /api/auth/mfa/unenroll session MFA
POST /api/auth/mfa/recovery-codes session (aal2) MFA
POST /api/auth/mfa/challenge none (un inicio de sesión en curso) MFA
POST /api/auth/mfa/challenge/verify none (un id de desafío) MFA
GET /api/auth/scopes session Todos los alcances que conoce este backend y los que tiene el emisor — Roles y alcances
GET /api/auth/keys session (una cuenta) Las claves personales propias del emisor
POST /api/auth/keys session (una cuenta) La clave en texto plano se devuelve una sola vez. 403 PERSONAL_KEYS_DISABLED salvo que la colección de usuarios establezca auth.personalKeys
DELETE /api/auth/keys/:id session (una cuenta) Revoca una de las claves propias del emisor
GET /.well-known/jwks.json none El JWKS público, cuando firma asimétrica está configurada

Todo lo que está debajo de /api/admin requiere un alcance del plano de administración, y cada superficie nombra el suyo: users:read lista cuentas, cron:write dispara un trabajo. Un administrador los tiene todos, y también la clave de servicio. Una persona tiene los que declaran sus roles, y una clave de API aquellos con los que se creó. Una clave con alcance limitado a una colección no puede acceder a nada de esto. Consulte Roles y alcances.

Método Ruta Gate Más
POST /api/admin/bootstrap none, y solo mientras no exista ningún administrador Rechazado en producción — consulte Bootstrap del primer usuario
GET /api/admin/users users:read Gestión de usuarios
POST /api/admin/users users:write Gestión de usuarios. Se rechazan los roles que van más allá de los del propio emisor
GET /api/admin/users/pick users:read, o acceso de escritura a una colección con un campo userSelect La lectura del selector de usuarios: solo id, nombre, correo y avatar. Una colección cuyas reglas de escritura son SQL en bruto no cuenta
GET /api/admin/users/:uid users:read Gestión de usuarios
PUT /api/admin/users/:uid users:write Se rechaza para una cuenta que tiene más que el emisor
DELETE /api/admin/users/:uid users:write Se rechaza para una cuenta que tiene más que el emisor
POST /api/admin/users/:uid/reset-password users:write Emite una contraseña temporal
DELETE /api/admin/users/:uid/mfa users:write Elimina los segundos factores y los códigos de recuperación de la cuenta, termina sus sesiones
GET /api/admin/roles users:read admin y los roles que declara el proyecto, con sus alcances
GET /api/admin/api-keys keys:read Claves de API. Nunca una clave de API
POST /api/admin/api-keys keys:write La clave en texto plano se devuelve una sola vez, al crearla
GET /api/admin/api-keys/:id keys:read Claves de API
PUT /api/admin/api-keys/:id keys:write Claves de API
DELETE /api/admin/api-keys/:id keys:write Claves de API
GET /api/admin/cron cron:read Trabajos cron
GET /api/admin/cron/:id cron:read Trabajos cron
PUT /api/admin/cron/:id cron:write Habilita o deshabilita un trabajo
GET /api/admin/cron/:id/logs cron:read Trabajos cron
POST /api/admin/cron/:id/trigger cron:write Ejecuta un trabajo ahora. Desde 0.25 ?async=1 responde 202 en cuanto ha empezado — API de trabajos cron
GET /api/admin/backups backups:read Inventario de copias de seguridad
GET /api/admin/backups/download backups:read Transmite en flujo una copia de seguridad. Con ?token= de un enlace de descarga no hace falta cabecera, solo para esa copia
POST /api/admin/backups/download-url backups:read Desde 0.25 Un enlace a una copia de seguridad, { key } → { url, token, expiresIn }, válido durante 60 segundos — Copias de seguridad
GET /api/admin/storage/orphans database:read Desde 0.25 Archivos almacenados que ninguna fila nombra, ?storageId=&olderThanHours= — lo que imprime rebase storage orphans
DELETE /api/admin/storage/orphans database:write Desde 0.25 Los vuelve a buscar y los elimina; 409 STORAGE_SCAN_INCOMPLETE cuando no se pudo leer una colección
POST /api/admin/storage/move database:write Desde 0.25 Copia una carpeta a otro origen con las mismas claves, una página por llamada — lo que envía rebase storage move
GET /api/admin/logs logs:read El búfer de registros recientes
GET /api/admin/logs/latest logs:read Las entradas más recientes
GET /api/admin/logs/stream logs:read Server-sent events
GET /api/admin/rls-audit schema:read El resultado más reciente de la auditoría programada
POST /api/admin/sql/csv database:write Desde 0.25 Transmite en flujo el resultado completo de una consulta de solo lectura como CSV — «Descargar el resultado completo como CSV» de Studio
GET /api/admin/schema/status schema:read Edición de esquema en vivo
POST /api/admin/schema/plan schema:read Planifica un cambio; nunca lo aplica
POST /api/admin/schema/apply schema:write Solo una persona, a menos que REBASE_LIVE_SCHEMA_ALLOW_MACHINE_APPLY
GET /api/admin/schema-editor/status schema:read Si el editor está disponible y el motivo cuando no lo está
POST /api/admin/schema-editor/collection/save schema:write Studio — reescribe el código fuente de la colección
POST /api/admin/schema-editor/collection/delete schema:write Studio
POST /api/admin/schema-editor/property/save schema:write Studio
POST /api/admin/schema-editor/property/delete schema:write Studio
GET /api/admin/dev/emails dev + users:write Correos que el transporte de desarrollo capturó en lugar de enviar
DELETE /api/admin/dev/emails dev + users:write Vacía el buzón capturado

/api/admin/cron, /api/admin/logs y /api/admin/schema-editor también se sirven en sus rutas anteriores a la versión 0.17 sin el segmento /admin. Esos alias son para proyectos que no han migrado; escriba el código nuevo apuntando a la ruta canónica.

Método Ruta Gate Más
POST /api/storage/upload session + storageAuthorize Almacenamiento
GET /api/storage/file/* session + storageAuthorize Almacenamiento
DELETE /api/storage/file/* session + storageAuthorize Almacenamiento
GET /api/storage/metadata/* session + storageAuthorize Almacenamiento
POST /api/storage/metadata session + storageAuthorize, por clave Desde 0.25 Almacenamiento: metadatos de hasta 100 objetos
GET /api/storage/list session + storageAuthorize Almacenamiento
POST /api/storage/folder session + storageAuthorize Almacenamiento
GET /api/storage/sources session Las fuentes de almacenamiento con nombre que sirve este backend
OPTIONS /api/storage/tus none Subidas reanudables: las versiones y extensiones de TUS que admite este servidor
POST /api/storage/tus session + storageAuthorize Cargas reanudables: creación
GET /api/storage/tus/:id el propietario de la carga Cargas reanudables: desplazamiento (offset)
PATCH /api/storage/tus/:id el propietario de la carga Cargas reanudables: anexar (append)
DELETE /api/storage/tus/:id el propietario de la carga Cargas reanudables: cancelar

Un despliegue sin almacenamiento configurado responde en este prefijo con un error 501 indicando la variable que necesita, en lugar de responder con un 404 como si la funcionalidad no existiera.

Método Ruta Gate Más
cualquiera /api/functions/<name> lo que declare la función. Una clave de API también necesita functions:invoke Funciones personalizadas

Una ruta por archivo bajo backend/functions/, por lo que las rutas provienen de su proyecto. GET /api/functions no las lista: el inventario de endpoints personalizados de un despliegue no es público.

Método Ruta Gate Más
GET /livez none Solo actividad (liveness): si este proceso se está ejecutando. No interactúa con la base de datos, razón por la cual es la ruta de sondeo que debe usar un contenedor — RUNTIME_LIVENESS_PATH
GET /health, /api/health none Actividad (liveness) y disponibilidad (readiness). Informa sobre cada fuente de datos configurada, no solo la predeterminada
GET /api/docs none (schema:read en producción) El documento de OpenAPI 3.0
GET /api/swagger none Swagger UI. Solo en desarrollo a menos que REBASE_ENABLE_SWAGGER
GET /api/meta/schema-version none El hash del esquema a partir del cual se compiló este backend, y nada más
GET /api/meta/contract schema:read El contrato completo de la colección, para rebase generate-sdk --from. 404 cuando no hay autenticación configurada
GET /metrics REBASE_METRICS_TOKEN cuando esté configurado Métricas de Prometheus, cuando REBASE_METRICS=true
GET /metrics/history REBASE_METRICS_TOKEN cuando esté configurado Las series registradas detrás de los gráficos de Studio. 501 en un entorno de ejecución sin backend

Las conexiones WebSocket llegan como una actualización HTTP (upgrade) en el mismo servidor en lugar de en una ruta propia — consulte Tiempo real.

Se monta solo cuando REBASE_MCP_ENABLED=true, lo que también requiere REBASE_PUBLIC_URL — consulte Configuración. Desactivado de forma predeterminada: ningún REBASE_ROLE activa esto, ya que otorga acceso al proyecto a software de terceros y esa es una decisión que debe tomar una persona.

Los documentos .well-known se encuentran en el origen, no bajo basePath: el RFC 8414 y el RFC 9728 definen esas rutas en relación con el origen, y un cliente las obtiene antes de poseer ningún token.

Método Ruta Gate Más
GET /.well-known/oauth-protected-resource none Metadatos del RFC 9728 que identifican este recurso y su servidor de autorización. También se sirve en el formato con sufijo de ruta
GET /.well-known/oauth-authorization-server none Metadatos del RFC 8414: los endpoints, tipos de concesión y métodos PKCE que admite este despliegue
POST /mcp OAuth bearer, o una clave de API El endpoint del protocolo MCP. Actúa como el usuario con sesión iniciada (o como quien sea que represente la clave), por lo que cada lectura y escritura está sujeta al mismo RLS. Los alcances data:* deciden qué herramientas se ofrecen
GET /mcp OAuth bearer, o una clave de API Responde 405 con Allow: POST, DELETE: este servidor no abre ningún flujo iniciado por el servidor. El token se verifica primero, por lo que uno faltante o vencido recibe el desafío 401 en su lugar
DELETE /mcp none Responde 204. El endpoint no mantiene ninguna sesión, por lo que no hay nada que finalizar
POST /api/oauth/register rate-limited Registro dinámico de clientes según RFC 7591. Se rechaza cuando REBASE_MCP_OPEN_REGISTRATION=false
GET /api/oauth/authorize session La pantalla de consentimiento a la que se redirige a un cliente
POST /api/oauth/authorize/decision session La respuesta de la persona a esta — aprobar o denegar
POST /api/oauth/token client credentials + PKCE Intercambia un código de autorización o lo renueva
POST /api/oauth/revoke client credentials Revocación de tokens según RFC 7009
GET /api/oauth/grants session Qué clientes ha aprobado este usuario
DELETE /api/oauth/grants/:clientId session Retira una, para que una persona pueda revocar un consentimiento sin necesidad de un administrador