API Reference

Errores

Formato del error envelope, códigos HTTP, tipos de error, qué errores son seguros de reintentar y cuáles requieren intervención humana.

Formato del error

Todos los errores devueltos por la API siguen el envelope OpenAI: un body JSON con un campo error que contiene message, type y opcionalmente code y param.

Ejemplo de error
{
  "error": {
    "message": "Incorrect API key provided. You can find your API key in your welcome email.",
    "type": "invalid_request_error",
    "code": "invalid_api_key",
    "param": null
  }
}

Códigos HTTP

CódigoSignificadoReintentar?
400Request mal formado: JSON inválido, campo requerido faltante, parámetro fuera de rangoNo — corrige el cliente
401API key faltante o inválidaNo — verifica la key
403API key válida pero sin permiso para este recurso o modeloNo — contacta soporte
404Modelo o endpoint no existeNo — corrige el model o la URL
413Payload demasiado grande (audio >25 MB, contexto excesivo)No — divide la entrada
422Validación semántica falló (formato de audio no soportado, dimensiones inválidas)No — corrige el cliente
429Rate limit excedidoSí, con backoff — ver /docs/api/rate-limits
500Error interno del servidorSí, con backoff exponencial
502 / 503Backend temporalmente no disponible (mantenimiento, GPU fría)Sí, con backoff
504Timeout en upstream (request muy largo)Sí; considera reducir el contexto

Tipos de error en `error.type`

TipoCuándo aparece
invalid_request_errorBody mal formado, parámetros incompatibles, formato no soportado
authentication_errorKey faltante o inválida (también 401)
permission_errorKey sin acceso al modelo o endpoint (403)
rate_limit_errorCuota agotada en la ventana actual (429)
api_errorError interno; típicamente transitorio (500)
overloaded_errorBackend saturado; reintenta con backoff (503)

Estrategia de reintentos

  • Solo reintenta sobre 429, 500, 502, 503 y 504. El resto son errores del cliente y no se resuelven con reintentos.
  • Backoff exponencial con jitter aleatorio: min(60, 2^attempt + random()) segundos. Detalle en /docs/api/rate-limits.
  • Honra el header Retry-After cuando esté presente — la API ya te dice cuánto esperar.
  • Después de 5 reintentos consecutivos sin éxito, escala a un alert o registro de fallos en lugar de seguir reintentando indefinidamente.

Cuándo contactar soporte

Para errores recurrentes que no se resuelven con reintentos, contacta a [email protected] incluyendo: timestamp UTC del error, id del request si está en headers, código y body del error, y el endpoint llamado. Tiempo de respuesta: <4 h hábiles en Pro, <1 h hábil en Scale, Slack compartido en Enterprise.