Naar inhoud springen
API-handleiding

Fouten

Als Markdown bekijken Bijgewerkt

Elk endpoint mislukt op dezelfde manier: een HTTP-status en één JSON-envelop.

JSON
{
  "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.

JSON
{ "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).