Manejo de errores

Códigos de error y cómo manejarlos

Todas las respuestas de error tienen este formato:

json
{
  "error": {
    "code": "machine_readable_code",
    "message": "Human-readable description in English."
  }
}

Códigos comunes

StatusCódigoSignificado
400invalid_requestBody inválido o campos malformados.
401unauthorizedAPI key faltante, inválida o revocada.
402quota_exceededSin storage suficiente.
403forbiddenKey sin scope requerido.
403plan_restrictedFeature requiere plan superior.
404not_foundRecurso no existe o no es tuyo.
429rate_limitedDemasiados requests. Respetá Retry-After.
500internal_errorError nuestro. Reintentá con backoff.

Política de retry

Recomendaciones de retry según el status:

  • 4xx (excepto 429): NO reintentes. El error es permanente hasta que cambies algo (corregir body, generar key nueva, comprar más storage).
  • 429: respetá el header Retry-After. Implementá backoff exponencial.
  • 5xx: reintentá con backoff (1s, 2s, 4s, 8s, 16s). Si persiste >5 min, abrí ticket.
Recomendado: loguear el code (machine-readable) en tu sistema, no el message. Los mensajes están en inglés y pueden cambiar; los códigos son estables.