Errores
Una sola forma para todos los fallos.
Cuando algo falla el estado HTTP no es 2xx y el cuerpo contiene un único objeto error:
json
{
"error": {
"message": "Insufficient credits: this request needs 60 credits. Top up and try again.",
"type": "insufficient_quota",
"param": null,
"code": "insufficient_credits"
}
}Campos
| Campo | Descripción |
|---|---|
| message | Pensado para leerse, en inglés. No ramifiques con él: la redacción cambia |
| type | Categoría general, ver más abajo |
| code | Motivo concreto. Ramifica con este campo |
| param | Nombre del parámetro problemático, o null si no se puede atribuir |
Códigos habituales
| HTTP | code | Significado |
|---|---|---|
| 401 | missing_api_key | Falta la cabecera Authorization o no tiene la forma Bearer sk-xxx |
| 401 | invalid_api_key | Clave desconocida, desactivada o eliminada: deliberadamente indistinguibles |
| 400 | invalid_request | Problema de parámetros; lee message. prompt vacío, modo imagen sin imagen, etc. |
| 402 | insufficient_credits | Sin créditos. Recarga y consulta /v1/credits antes de reintentar |
| 429 | rate_limit_exceeded | Demasiadas llamadas. Espera y reintenta |
| 429 | concurrency_limit_reached | Límite de concurrencia o cuota diaria. Reintenta más tarde |
| 404 | not_found | La tarea no existe o no pertenece a esta cuenta |
| 502 | generation_failed | En una llamada síncrona fallaron todas las imágenes. Los créditos ya se han devuelto |
| 504 | generation_timeout | Se agotó la espera de una llamada síncrona. La tarea sigue en marcha y los créditos no se devuelven: recupérala en /v1/tasks/{id} con el id del mensaje |
| 500 | internal_error | Fallo del servidor. Se puede reintentar; si persiste, contáctanos |
Un trabajo asíncrono que falla después de ser aceptado no usa esta forma: la llamada es 200, el objeto de tarea trae status failed y el motivo está en error. Solo las llamadas síncronas de imagen convierten el fallo en un 502.

