Fehler
Eine Form für jeden Fehlschlag.
Bei einem Fehler ist der HTTP-Status nicht 2xx und der Body enthält genau ein error-Objekt:
json
{
"error": {
"message": "Insufficient credits: this request needs 60 credits. Top up and try again.",
"type": "insufficient_quota",
"param": null,
"code": "insufficient_credits"
}
}Felder
| Feld | Beschreibung |
|---|---|
| message | Für Menschen gedacht, auf Englisch. Nicht darauf verzweigen – der Wortlaut ändert sich |
| type | Grobe Kategorie, siehe unten |
| code | Konkreter Grund. Hierauf verzweigen |
| param | Name des beanstandeten Parameters, sonst null |
Häufige Codes
| HTTP | code | Bedeutung |
|---|---|---|
| 401 | missing_api_key | Kein Authorization-Header oder nicht in der Form Bearer sk-xxx |
| 401 | invalid_api_key | Unbekannter, deaktivierter oder gelöschter Schlüssel – bewusst nicht unterscheidbar |
| 400 | invalid_request | Parameterproblem, siehe message. Leerer prompt, image-Modus ohne Bild usw. |
| 402 | insufficient_credits | Guthaben aufgebraucht. Aufladen und vor dem Retry /v1/credits prüfen |
| 429 | rate_limit_exceeded | Zu viele Aufrufe. Zurückfahren und erneut versuchen |
| 429 | concurrency_limit_reached | Parallelität oder Tageskontingent erreicht. Später erneut versuchen |
| 404 | not_found | Auftrag existiert nicht oder gehört nicht zu diesem Konto |
| 502 | generation_failed | Bei einem synchronen Aufruf sind alle Bilder fehlgeschlagen. Credits bereits erstattet |
| 504 | generation_timeout | Synchroner Aufruf zeitlich abgelaufen. Der Auftrag läuft weiter und Credits werden nicht erstattet – hole ihn über /v1/tasks/{id} mit der id aus der Meldung |
| 500 | internal_error | Serverseitig. Wiederholbar; bei Dauer bitte melden |
Ein asynchron angenommener Auftrag, der später scheitert, nutzt diese Form nicht: Der Aufruf ist 200, das Auftragsobjekt trägt status failed, und der Grund steht in error. Nur synchrone Bildaufrufe melden einen Fehlschlag als 502.

