Formato de respuesta de error
Todos los errores devuelven un formato JSON consistente con extensiones opcionales de Agent-First hints:message, type, code, param) siempre están presentes. Los campos de sugerencias (did_you_mean, suggestions, hint, retryable, retry_after, balance_usd, estimated_cost_usd) son extensiones opcionales para la autocorrección de agentes de IA. Consulta la Guía Agent-First API para más detalles.
Los endpoints compatibles con OpenAI usan los tipos de error del gateway estable de LemonData. Los endpoints compatibles con Anthropic y Gemini usan sus propias familias de errores y formatos de respuesta nativos.
Códigos de estado HTTP
| Código | Descripción |
|---|---|
| 400 | Solicitud incorrecta - Parámetros inválidos |
| 401 | No autorizado - API key inválida o ausente |
| 402 | Pago requerido - Saldo insuficiente |
| 403 | Prohibido - Acceso denegado o modelo no permitido |
| 404 | No encontrado - Modelo o recurso no encontrado |
| 413 | Carga útil demasiado grande - Tamaño de entrada o archivo excedido |
| 429 | Demasiadas solicitudes - Límite de tasa excedido |
| 500 | Error interno del servidor |
| 502 | Puerta de enlace incorrecta - Error del proveedor upstream |
| 503 | Servicio no disponible - Servicio temporalmente no disponible |
| 504 | Tiempo de espera de la puerta de enlace - La solicitud excedió el tiempo de espera |
Tipos de error
Errores de autenticación (401)
| Tipo | Código | Descripción |
|---|---|---|
invalid_api_key | invalid_api_key | Falta la API key o no es válida |
expired_api_key | expired_api_key | La API key ha sido revocada |
Errores de pago (402)
| Tipo | Código | Descripción |
|---|---|---|
insufficient_balance | insufficient_balance | El saldo de la cuenta es insuficiente (endpoints compatibles con OpenAI) |
insufficient_balance_error | insufficient_balance | El saldo de la cuenta es insuficiente (endpoints compatibles con Anthropic) |
quota_exceeded | quota_exceeded | Se alcanzó el límite de uso de la API key |
Errores de acceso (403)
| Tipo | Código | Descripción |
|---|---|---|
access_denied | access_denied | Acceso al recurso denegado |
access_denied | model_not_allowed | Modelo no permitido para esta API key |
Errores de validación (400)
| Tipo | Descripción |
|---|---|
invalid_request_error | Los parámetros de la solicitud no son válidos |
context_length_exceeded | Entrada demasiado larga para el modelo |
model_not_found | El modelo solicitado no está disponible en el contrato público actual |
model_not_found.
Errores por límite de tasa (429)
Cuando excedes los límites de tasa:Retry-After y el campo retry_after indican ambos los segundos exactos que debes esperar antes de reintentar.
Carga útil demasiado grande (413)
Cuando el tamaño de entrada o del archivo excede los límites:- Archivo de imagen demasiado grande (máx. 20MB)
- Archivo de audio demasiado grande (máx. 25MB)
- El texto de entrada excede la longitud de contexto del modelo
Errores del proveedor upstream (502, 503)
| Tipo | Descripción |
|---|---|
upstream_error | El proveedor devolvió un error |
all_channels_failed | No hay proveedores disponibles |
timeout_error | La solicitud excedió el tiempo de espera |
Manejo de errores en Python
Manejo de errores en JavaScript
Mejores prácticas
Implementar retroceso exponencial
Implementar retroceso exponencial
Cuando se aplica limitación de tasa, espera intervalos progresivamente mayores entre reintentos:
Establecer timeouts
Establecer timeouts
Siempre establece timeouts razonables para evitar solicitudes colgadas:
Registrar errores para depuración
Registrar errores para depuración
Registra la respuesta de error completa, incluyendo el ID de la solicitud, para soporte:
Gestionar errores específicos del modelo
Gestionar errores específicos del modelo
Algunos modelos tienen requisitos específicos (p. ej., max tokens, formatos de imagen).
Valida las entradas antes de realizar las solicitudes.