Documentation

Erreurs

Une seule forme pour tous les échecs.

En cas d’échec, le statut HTTP n’est pas 2xx et le corps ne contient qu’un objet error :

json
{
  "error": {
    "message": "Insufficient credits: this request needs 60 credits. Top up and try again.",
    "type": "insufficient_quota",
    "param": null,
    "code": "insufficient_credits"
  }
}

Champs

ChampDescription
messageDestiné à être lu, en anglais. N’en faites pas une condition : la formulation évolue
typeGrande catégorie, voir ci-dessous
codeRaison précise. C’est sur ce champ qu’il faut brancher
paramNom du paramètre en cause, ou null si impossible à attribuer

Codes courants

HTTPcodeSignification
401missing_api_keyEn-tête Authorization absent ou pas au format Bearer sk-xxx
401invalid_api_keyClé inconnue, désactivée ou supprimée — volontairement indiscernables
400invalid_requestProblème de paramètres ; lisez message. prompt vide, mode image sans image, etc.
402insufficient_creditsCrédits épuisés. Rechargez et vérifiez /v1/credits avant de réessayer
429rate_limit_exceededTrop d’appels. Temporisez puis réessayez
429concurrency_limit_reachedLimite de parallélisme ou quota quotidien atteint. Réessayez plus tard
404not_foundLa tâche n’existe pas ou n’appartient pas à ce compte
502generation_failedToutes les images ont échoué lors d’un appel synchrone. Les crédits sont déjà remboursés
504generation_timeoutDélai dépassé sur un appel synchrone. La tâche continue et les crédits ne sont pas remboursés : récupérez-la via /v1/tasks/{id} avec l’id du message
500internal_errorProblème côté serveur. Réessayable ; contactez-nous si cela persiste
Une tâche asynchrone qui échoue après avoir été acceptée n’utilise pas cette forme : l’appel renvoie 200, l’objet de tâche porte status failed, et la raison figure dans error. Seuls les appels d’image synchrones transforment un échec en 502.