Í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.
Autenticación
Sección titulada «Autenticación»| 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 |
Administración
Sección titulada «Administración»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.
Almacenamiento
Sección titulada «Almacenamiento»| 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.
Funciones
Sección titulada «Funciones»| 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.
Meta y operaciones
Sección titulada «Meta y operaciones»| 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.
Superficie MCP
Sección titulada «Superficie MCP»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 |
Relacionado
Sección titulada «Relacionado»- API REST — las rutas de datos al completo: filtros, ordenación, paginación, errores
- Endpoints de autenticación — estructuras de solicitud y respuesta para la tabla de autenticación anterior
- Entorno y configuración — las variables que deciden cuáles de estas se montan