Fouten
Elk endpoint mislukt op dezelfde manier: een HTTP-status en één JSON-envelop.
{
"error": {
"type": "invalid_request",
"code": "invalid_input",
"message": "duration must be one of 5, 10.",
"param": "duration",
"details": [ { "param": "duration", "message": "duration must be one of 5, 10." } ],
"request_id": null,
"doc_url": "https://doitong.com/developers/docs/errors#invalid_input"
}
}
| Veld | Betekenis |
|---|---|
type |
Algemene klasse van de fout. Bepaal hiermee wat je moet doen. |
code |
Exacte reden, stabiel en machineleesbaar. Elke code heeft hieronder een sectie; doc_url verwijst ernaar. |
message |
Voor mensen leesbare uitleg, veilig om te loggen of aan een ontwikkelaar te tonen. |
param |
De invoerparameter of header die de fout veroorzaakt, indien aanwezig. |
details |
Voor invoerfouten elk gevonden probleem: [{ "param", "message" }]. |
request_id |
De request waarop dit betrekking heeft, indien aanwezig. |
Voor een aanroep die een fout retourneert, worden geen kosten in rekening gebracht. Een request die nadat deze is geaccepteerd mislukt, behoudt de status
failed, bevat error: { "type", "code", "message" } op het request-object en wordt automatisch terugbetaald.
Typen
| Type | HTTP-status | Wat te doen |
|---|---|---|
invalid_request |
400, 413 of 422 | Corrigeer de request. Dezelfde aanroep opnieuw proberen mislukt opnieuw. |
authentication_error |
401 | Stuur een geldige sleutel in Authorization: Bearer <key>. |
permission_error |
403 | Gebruik een sleutel met de vereiste scope. |
not_found |
404 | Controleer de model-id of request-id. |
insufficient_credits |
402 | Waardeer het API-saldo op (top_up_url in de fout). |
budget_exceeded |
402 | Het eigen budget van de sleutel is opgebruikt. Definitief: vraag de eigenaar van de sleutel om het te verhogen. |
conflict |
409 | De resource bevindt zich niet in een toestand waarin deze aanroep is toegestaan. |
rate_limited |
429 | Wacht Retry-After seconden en probeer het opnieuw. |
upstream_error |
502 | De modelbackend is mislukt. Opnieuw proberen met dezelfde Idempotency-Key is veilig: de aanroep wordt opnieuw uitgevoerd; er zijn geen kosten in rekening gebracht. |
service_unavailable |
503 | De API is gepauzeerd of een afhankelijkheid is uitgevallen. Probeer het later opnieuw. |
internal_error |
500 | Onze fout. Probeer het opnieuw; neem bij aanhoudende problemen contact op met support en vermeld het tijdstip en request_id. |
Codes
invalid_request
Algemene onjuist gevormde request (400).
invalid_json
De body is geen geldige JSON (400).
invalid_body
De body is geldige JSON maar geen object; modelinvoer moet een JSON-object zijn (400).
body_too_large
De body is groter dan 16 MB (413). Upload grote bestanden en geef in plaats daarvan hun URL door (zie Bestanden).
invalid_parameter
Een queryparameter heeft een onjuiste waarde, bijvoorbeeld limit buiten 1 tot 100, wait is geen getal, een onbekende
status of category, of storage is anders dan permanent / temporary (400). param vermeldt welke.
invalid_category
GET /openapi.json?category= vermeldt een categorie die niet bestaat (400). GET https://api.doitong.com/v1/categories geeft de lijst.
invalid_cursor
De cursor van een lijstaanroep hoort niet bij deze lijst (400). Begin opnieuw zonder cursor.
invalid_idempotency_key
De header Idempotency-Key is leeg of langer dan 255 tekens (400).
invalid_arguments
Een MCP-toolaanroep heeft een ontbrekend of onjuist gevormd argument (alleen MCP). param vermeldt het argument.
invalid_input
De modelinvoer doorstaat de validatie niet (422): een onbekende parameter (het bericht stelt de dichtstbijzijnde geldige naam voor),
een ontbrekende vereiste parameter, een onjuist type, een waarde buiten de toegestane lijst of het bereik, of zowel de canonieke als de
native naam met verschillende waarden. param is de eerste problematische parameter en details bevat ze allemaal.
Er worden geen kosten in rekening gebracht.
unsupported_file
Een bestand heeft een type dat we niet accepteren (422), bijvoorbeeld een upload met een niet-ondersteunde extensie, of een content_type
die niet overeenkomt met de extensie.
invalid_webhook_url
webhook_url is geen openbare https://-URL (422). Privé-, lokale en gewone http://-adressen worden geweigerd.
missing_api_key
Het endpoint vereist een API-sleutel en er is geen sleutel verzonden (401).
invalid_api_key
De sleutel is onbekend, ingetrokken of verlopen (401).
insufficient_scope
De sleutel heeft niet de scope die deze aanroep nodig heeft (403), bijvoorbeeld models:run voor een run of models:read om
requests en het saldo te lezen. Zie Authenticatie.
account_disabled
Het account is gesloten of opgeschort (403). De sleutels ervan werken niet meer.
not_found
Het pad bestaat niet (404).
model_not_found
Geen openbaar model heeft deze id (404). Geef modellen weer met GET https://api.doitong.com/v1/models.
request_not_found
Er bestaat geen request met deze id in je account (404). Requests van andere accounts zijn nooit zichtbaar.
insufficient_credits
Het API-saldo van het account (API-credits, 1.000 API-tegoed = $ 1 — niet de credits van de Doitong-apps) dekt de
prijs van deze aanroep niet (402). Het antwoord wordt verzonden voordat er kosten in rekening worden gebracht. De fout bevat top_up_url; voeg geld toe via
https://doitong.com/developers/dashboard#balance en probeer het opnieuw.
{ "error": { "type": "insufficient_credits", "code": "insufficient_credits",
"message": "This request costs 560 API credits ($0.56); the API balance is 120 API credits ($0.12). Top up at https://doitong.com/developers/dashboard#balance",
"top_up_url": "https://doitong.com/developers/dashboard#balance", "doc_url": "https://doitong.com/developers/docs/errors#insufficient_credits" } }
budget_exceeded
De aanroep zou het eigen budget van de API-sleutel in API-credits overschrijden (402). Het budget wordt ingesteld door de eigenaar van de sleutel; opnieuw proberen helpt niet totdat diegene het verhoogt.
conflict
De aanroep is in conflict met de huidige toestand van de resource (409).
idempotency_mismatch
De Idempotency-Key is al gebruikt met een andere body (409). Gebruik een nieuwe sleutel voor een nieuwe bewerking.
idempotency_in_progress
Er wordt nu een request met dezelfde Idempotency-Key aangemaakt (409). Probeer over een moment opnieuw om deze op te halen.
request_active
De request staat nog op queued of running, dus er zijn nog geen bestanden om te verwijderen (409). Verwijder ze zodra de request is voltooid.
not_cancelable
De request is al succeeded of failed en kan niet worden geannuleerd (409).
rate_limited
De sleutel heeft in het huidige venster te veel requests gedaan (429). Zie de headers X-RateLimit-* en Retry-After.
too_many_inflight
Het account heeft al 10 requests op queued of running (429). Start de volgende zodra een daarvan is voltooid.
upstream_error
De modelbackend heeft de request geweigerd of kon deze niet uitvoeren (502 bij run, of failed met deze code op het request-object). De API-credits worden
terugbetaald. Als de backend de invoer zelf heeft afgewezen, retourneert de aanroep in plaats daarvan 422 invalid_input met het bijbehorende bericht.
upstream_lost
De modelbackend kent de request niet meer, dus er zal nooit een resultaat aankomen. De request eindigt als failed met deze code
(type upstream_error) en wordt terugbetaald. Voer de request opnieuw uit.
timeout
De request liep langer dan de limiet (15 minuten voor afbeeldingen, 60 voor video, 30 anders) en is gestopt. De request eindigt als
failed met deze code en wordt terugbetaald.
service_unavailable
De API is tijdelijk gepauzeerd of een afhankelijkheid, zoals bestanduploads, is uitgevallen (503). Probeer het later opnieuw.
internal_error
Er is iets misgegaan aan onze kant (500). Probeer het opnieuw; neem bij aanhoudende problemen contact op met support.
charge_failed
Het account kon door een intern probleem niet worden belast (500). De request krijgt de status failed; er is niets afgeschreven. Probeer het opnieuw.
pricing_unavailable
De prijs van het model is niet geconfigureerd, dus het kan momenteel niet worden geprijsd of uitgevoerd (500).