Ir al contenido
Documentación de Endless
Referencia

Errores y límites de la API

La forma JSON de cada error de la API REST de Endless, el campo data.code con el motivo y los encabezados RateLimit de 1.000 solicitudes por minuto.

Cada error de la API REST de Endless en https://api.endless.app devuelve JSON con una sola forma, y cada respuesta indica cuántas solicitudes te quedan. Las versiones tienen su propia página.

La forma de un error

{
  "code": "FORBIDDEN",
  "status": 403,
  "message": "Your role does not have permission to do this",
  "data": { "code": "permission_denied" }
}
CampoQué es
codeEl estado HTTP como palabra: BAD_REQUEST, UNAUTHORIZED, NOT_FOUND, …
statusEl estado HTTP como número
messageUna frase para una persona. Puede cambiar de redacción, así que no compares con ella
data.codeEl motivo legible por máquina, en snake_case. Es el campo con el que decidir
data.hintSi aparece, el paso que lo resuelve
data.documentationSi aparece, un enlace a la referencia de la API

El esquema Error del documento OpenAPI enumera cada data.code, y cada operación de la referencia de la API enumera sus estados.

Códigos frecuentes

Estadodata.codeQué hacer
400(validación)message nombra el campo y la regla que no cumplió
400unsupported_api_versionConsulta Versiones de la API
401missing_tokenEnvía Authorization: Bearer <token>
401invalid_tokenEl token no se verificó o venció. Obtén uno nuevo
402insufficient_credits, exceeds_spending_limitEl espacio de trabajo o quien llama no puede pagar la llamada
403permission_denied, forbiddenEl rol o el acceso de quien llama no lo permite
404not_found, organization_not_found, …El recurso no existe, o quien llama no puede abrirlo
404route_not_foundNinguna operación coincide con la ruta (nunca una página HTML)
404invalid_path_parameterUn id de la ruta no puede nombrar un recurso
429rate_limitedEspera los segundos de retry_after y reintenta

Límites de solicitudes

  • Límite: 1.000 solicitudes cada 60 segundos por quien llama, en una política llamada default. Un solo contador por quien llama en todos los servidores.
  • Ventana fija: se reinicia de golpe, así que regula el ritmo con RateLimit-Remaining, no suponiendo un ritmo parejo.
  • Los créditos van aparte: quedarse sin saldo o sin límite de gasto devuelve 402, no 429.

Cada respuesta de la API, con éxito o con error, trae el contador en dos formatos (los navegadores también pueden leerlos):

RateLimit-Policy: "default";q=1000;w=60
RateLimit: "default";r=997;t=42
RateLimit-Limit: 1000
RateLimit-Remaining: 997
RateLimit-Reset: 42

r / RateLimit-Remaining son las solicitudes que quedan; t / RateLimit-Reset son los segundos hasta el reinicio. Al pasarte del límite, la API responde 429 con un encabezado Retry-After y los mismos segundos en el cuerpo:

{
  "code": "TOO_MANY_REQUESTS",
  "status": 429,
  "message": "Too many requests.",
  "data": {
    "code": "rate_limited",
    "hint": "Wait 42s, then retry. Every response carries RateLimit headers — read them to pace yourself before you are refused.",
    "documentation": "https://endless.app/docs/api"
  },
  "retry_after": 42
}

Fuentes legibles por máquina

  • Índice de la API: sus objetos rate_limit y errors describen esta política.
  • Documento OpenAPI: el esquema Error en cada respuesta de error.
  • El servidor MCP tiene su propio límite: 60 llamadas a herramientas por minuto por cuenta.

En esta página