Formato de respuesta de error
Todos los errores devuelven un formato JSON consistente con pistas Agent-First opcionales:message, type, code, param) siempre están presentes. Los campos de pistas (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 de la API Agent-First para más detalles.
Los endpoints compatibles con OpenAI usan los tipos de error estables del gateway de LemonData. Los endpoints compatibles con Anthropic y compatibles con Gemini usan sus propias familias de errores nativas y formatos de respuesta.
Códigos de estado HTTP
| Code | Description |
|---|---|
| 400 | Solicitud incorrecta - Parámetros no válidos |
| 401 | No autorizado - API key no válida o faltante |
| 402 | Pago requerido - Saldo insuficiente |
| 403 | Prohibido - Acceso denegado o modelo no permitido |
| 404 | No encontrado - Modelo o recurso no encontrado |
| 413 | Payload demasiado grande - Se excedió el tamaño de entrada o archivo |
| 429 | Demasiadas solicitudes - Se excedió el límite de tasa |
| 500 | Error interno del servidor |
| 502 | Gateway incorrecto - Error del proveedor upstream |
| 503 | Servicio no disponible - Servicio temporalmente no disponible |
| 504 | Tiempo de espera agotado del gateway - La solicitud agotó el tiempo de espera |
Tipos de error
Errores de autenticación (401)
| Type | Code | Description |
|---|---|---|
invalid_api_key | invalid_api_key | La API key falta o no es válida |
expired_api_key | expired_api_key | La API key ha sido revocada |
Errores de pago (402)
| Type | Code | Description |
|---|---|---|
insufficient_balance | insufficient_balance | El saldo de la cuenta es demasiado bajo (endpoints compatibles con OpenAI) |
insufficient_balance_error | insufficient_balance | El saldo de la cuenta es demasiado bajo (endpoints compatibles con Anthropic) |
quota_exceeded | quota_exceeded | Se alcanzó el límite de uso de la API key |
Errores de acceso (403)
| Type | Code | Description |
|---|---|---|
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)
| Type | Description |
|---|---|
invalid_request_error | Los parámetros de la solicitud no son válidos |
context_length_exceeded | La entrada es demasiado larga para el modelo |
model_not_found | El modelo solicitado no existe |
Errores de límite de tasa (429)
Cuando excedes los límites de tasa:Retry-After como el campo retry_after indican los segundos exactos que se deben esperar antes de reintentar.
Payload demasiado grande (413)
Cuando la entrada o el tamaño del archivo exceden 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 upstream (502, 503)
| Type | Description |
|---|---|
upstream_error | El proveedor devolvió un error |
all_channels_failed | No hay proveedores disponibles |
timeout_error | La solicitud agotó el tiempo de espera |
Manejo de errores en Python
Manejo de errores en JavaScript
Mejores prácticas
Implementar exponential backoff
Implementar exponential backoff
Cuando se aplica limitación de tasa, espera progresivamente más tiempo entre reintentos:
Configurar timeouts
Configurar timeouts
Configura siempre timeouts razonables para evitar solicitudes bloqueadas:
Registrar errores para depuración
Registrar errores para depuración
Registra la respuesta de error completa, incluido el ID de la solicitud, para soporte:
Manejar errores específicos del modelo
Manejar errores específicos del modelo
Algunos modelos tienen requisitos específicos (p. ej., max tokens, formatos de imagen).
Valida las entradas antes de realizar solicitudes.