Erreurs & nouvelles tentatives
Les erreurs sont renvoyées en JSON avec un code error stable et lisible par machine, ainsi que le statut HTTP correspondant.
{ "error": "rate_limited", "message": "Too many requests.", "retry_after_ms": 850}Codes d’erreur
Section intitulée « Codes d’erreur »| HTTP | error | Réessayer ? | Remarques |
|---|---|---|---|
| 400 | invalid_request | Non | Un paramètre a échoué à la validation — corrigez la requête. |
| 401 | missing_api_key / unknown_api_key | Non | Voir Authentification. |
| 403 | inactive_api_key / account_blocked | Non | Clé désactivée ou compte suspendu. |
| 402 | insufficient_credits | Non | Rechargez. Le corps inclut required et balance. |
| 429 | rate_limited | Oui, après retry_after_ms | Vous avez dépassé votre limite par minute. |
| 409 | request_in_progress | Oui | Une requête idempotente identique est encore en cours. |
| 422 | (conflit d’idempotence) | Non | Une Idempotency-Key a été réutilisée avec un corps différent. |
| 503 | service_temporarily_unavailable / too_many_concurrent_requests | Oui, avec backoff | Limite de capacité transitoire. |
| 504 | result_timeout | Oui | Le fetch en amont a dépassé deadline_ms. |
Conseils de nouvelle tentative
Section intitulée « Conseils de nouvelle tentative »- Réessayez les 429 / 503 / 504 / 409 avec un backoff exponentiel. Lorsque
retry_after_msest présent, attendez au moins ce délai avant de réessayer. - Ne réessayez jamais les 400 / 401 / 402 / 403 — la requête ne réussira pas tant que vous ne la modifiez pas.
- Les SDK officiels réessaient déjà les erreurs transitoires pour vous (2 tentatives par défaut) et exposent un
indicateur
retryablesur l’erreur.