Pular para o conteúdo

Erros & retentativas

Os erros são retornados como JSON com um código error estável e legível por máquina, e o status HTTP correspondente.

{
"error": "rate_limited",
"message": "Too many requests.",
"retry_after_ms": 850
}
HTTPerrorRepetir?Notas
400invalid_requestNãoUm parâmetro falhou na validação — corrija a requisição.
401missing_api_key / unknown_api_keyNãoVeja Autenticação.
403inactive_api_key / account_blockedNãoChave desabilitada ou conta suspensa.
402insufficient_creditsNãoAdicione créditos. O corpo inclui required e balance.
429rate_limitedSim, após retry_after_msVocê excedeu seu limite por minuto.
409request_in_progressSimUma requisição idempotente idêntica ainda está em execução.
422(conflito de idempotência)NãoUma Idempotency-Key foi reutilizada com um corpo diferente.
503service_temporarily_unavailable / too_many_concurrent_requestsSim, com backoffLimite de capacidade transitório.
504result_timeoutSimA busca upstream excedeu deadline_ms.
  • Repita 429 / 503 / 504 / 409 com backoff exponencial. Quando retry_after_ms estiver presente, espere pelo menos esse tempo antes de repetir.
  • Nunca repita 400 / 401 / 402 / 403 — a requisição não terá sucesso até que você a altere.
  • Os SDKs oficiais já repetem erros transitórios para você (padrão de 2 retentativas) e expõem uma flag retryable no erro.