Salta ai contenuti

Errori e ritentativi

Gli errori vengono restituiti come JSON con un codice error stabile e leggibile dalla macchina e il corrispondente stato HTTP.

{
"error": "rate_limited",
"message": "Too many requests.",
"retry_after_ms": 850
}
HTTPerrorRitentare?Note
400invalid_requestNoUn parametro non ha superato la validazione — correggi la richiesta.
401missing_api_key / unknown_api_keyNoVedi Autenticazione.
403inactive_api_key / account_blockedNoChiave disabilitata o account sospeso.
402insufficient_creditsNoRicarica. Il corpo include required e balance.
429rate_limitedSì, dopo retry_after_msHai superato il tuo limite al minuto.
409request_in_progressSìUna richiesta idempotente identica è ancora in esecuzione.
422(conflitto di idempotenza)NoUna Idempotency-Key è stata riutilizzata con un corpo diverso.
503service_temporarily_unavailable / too_many_concurrent_requestsSì, con backoffLimite di capacità transitorio.
504result_timeoutSìIl fetch upstream ha superato deadline_ms.
  • Ritenta 429 / 503 / 504 / 409 con backoff esponenziale. Quando retry_after_ms è presente, attendi almeno quel tempo prima di ritentare.
  • Non ritentare mai 400 / 401 / 402 / 403 — la richiesta non avrà successo finché non la modifichi.
  • Gli SDK ufficiali ritentano già automaticamente gli errori transitori (2 ritentativi di default) ed espongono un flag retryable sull’errore.