docs
Hulp

Fouten en limieten

Markdown

Antwoordcodes, hun betekenis en wat je moet doen. Alle fouten zijn JSON met een Request ID.

Volledige gids

Foutformaat

De fout komt in het formaat van de API die je hebt aangeroepen: een object error voor OpenAI, {"type": "error", "error": {...}} voor Anthropic en error met de velden status en details voor Gemini. SDK’s herkennen ze daardoor als gewone API-fouten.

  • error.code en error.reason — de foutklasse uit de tabel hieronder; deze waarden zijn gelijk. error.type — de standaardwaarde van het formaat (bijvoorbeeld invalid_request_error of server_error).
  • error.request_id (bij Anthropic: request_id op het hoogste niveau), de header X-Request-ID en het einde van de berichttekst bevatten de verzoek-ID.
  • Bij Gemini staat de klasse in error.details: ErrorInfo.reason — dezelfde code in hoofdletters (bijvoorbeeld MODEL_OVERLOADED), domain — ailoot.ai; de verzoek-ID staat in RequestInfo.requestId.
  • In het Gemini-formaat worden een 5xx-fout die niet automatisch opnieuw mag worden verstuurd en result_pending_check teruggegeven met status 409 en status ABORTED: zo proberen Gemini SDK en CLI ze niet zelf opnieuw. De foutklasse staat in ErrorInfo.reason (bijvoorbeeld MODEL_TIMEOUT of RESULT_PENDING_CHECK).
  • Het OpenAI-antwoord bevat ook de velden code en message op het hoogste niveau, voor oudere clients.
{
  "code": "API_KEY_REQUIRED",
  "error": {
    "code": "invalid_api_key",
    "message": "No API key was sent with the request. Nothing was charged. Please check that the full key is sent in the Authorization header as \"Bearer <key>\". Request ID: 3b28d3de-5b02-4d07-9f3c-4b9a7d0e68d6.",
    "param": null,
    "reason": "invalid_api_key",
    "request_id": "3b28d3de-5b02-4d07-9f3c-4b9a7d0e68d6",
    "type": "invalid_request_error"
  },
  "message": "No API key was sent with the request. Nothing was charged. …"
}

Foutcodes

HTTPKlasse (reason)Wat er is gebeurdWat je moet doen
400invalid_requestOngeldig verzoek: verkeerde body of parameter; het model ondersteunt een veld, bijlage of tool in het verzoek niet; de sleutel is via het adres doorgegeven Pas het verzoek aan op basis van de foutmelding: verwijder het niet-ondersteunde veld, de bijlage of de tool; geef de sleutel mee in een header. Afwijzing wegens een niet-ondersteund veld, bijlage of tool gebeurt vóór de reservering — er is niets afgeschreven
400context_length_exceededHet verzoek is langer dan de modelcontextKort de geschiedenis in of kies een model met een grotere context
400content_policy_violationHet verzoek is afgewezen volgens de modelregelsFormuleer het verzoek anders
401invalid_api_keyDe sleutel ontbreekt of is ongeldigControleer of de volledige sleutel is meegestuurd
401api_key_disabledDe sleutel is uitgeschakeldSchakel de sleutel in of maak een nieuwe aan
402insufficient_balance, insufficient_quotaOnvoldoende vrij saldo voor zelfs de minimale reservering (insufficient_quota — hetzelfde geval in de vorm die OpenAI SDK gewend is)Waardeer je saldo op of verlaag max_tokens
402api_key_quota_exhaustedDe totale bestedingslimiet van de sleutel is opgebruiktVerhoog de sleutellimiet in het dashboard
402payment_disputedHet account heeft een schuld door een betwiste betalingNieuwe verzoeken zijn opgeschort totdat de schuld is afgelost — neem contact op met support
403api_key_expiredDe sleutel is verlopenMaak een nieuwe sleutel aan
403account_inactiveJe account is uitgeschakeldNeem contact op met support
403permission_deniedDit verzoek is niet toegestaan voor de sleutel (bijvoorbeeld vanwege het IP-adres)Controleer de beperkingen van de sleutel
404model_not_foundDit model bestaat nietControleer de ID aan de hand van /v1/models
404unsupported_endpointHet model werkt niet in dit formaatKies een ander formaat of model
404not_foundDit pad of object (bijvoorbeeld een taak) bestaat nietControleer het adres en de identificator
409duplicate_requestDe bewerking met dezelfde idempotentiesleutel is al geaccepteerd en mogelijk voltooidControleer het resultaat van de eerste bewerking; verstuur geen nieuwe
409not_ready, video_not_readyDe video of een andere taak is nog niet voltooidVraag de status later op
409, 503result_pending_checkHet resultaat van het verzoek wordt nog gecontroleerd. Bij een videotaak is dit de vlag result_pending_check: true in het statusantwoord; de taak zelf blijft in_progressVerstuur het verzoek niet opnieuw — de status verschijnt in de geschiedenis (GET https://ailoot.ai/api/v1/usage). Maak de videotaak niet opnieuw aan: controleer deze later via GET /v1/videos/{id}
410model_retiredHet model is buiten gebruik gesteldKies een nieuwe versie via GET /v1/models
413request_too_largeDe verzoekbody is te grootVerklein de bestanden of de geschiedenis
429rate_limit_exceeded, gateway_concurrency_limit, gateway_queue_fullTe veel verzoeken of gelijktijdige verzoeken vanaf je accountWacht (header Retry-After, meestal 10 s) en probeer opnieuw
429usage_limit_reachedHet bestedingsvenster van de sleutel is opgebruikt (5 uur, 1 dag of 7 dagen)Wacht totdat het venster vernieuwd is of verhoog de sleutellimiet
500internal_errorAiloot-foutNeem contact op met support met de Request ID
502invalid_model_response, empty_response, incomplete_responseHet model heeft een ongeldig, leeg of onvolledig antwoord teruggegevenZoek de Request ID op in de dashboardgeschiedenis. Als daar een resultaat of afschrijving staat, leidt opnieuw versturen tot een tweede betaald verzoek. Het ontbreken van een registratie is geen bewijs dat het verzoek niet is verzonden of niet is uitgevoerd: verstuur een verzoek met onbekende verzendstatus niet opnieuw; neem contact op met de ondersteuning en vermeld de Request ID.
502result_not_deliveredHet resultaat is door een fout van Ailoot niet geleverd; de reservering of afschrijving is teruggegevenJe kunt het verzoek opnieuw versturen
503model_overloadedHet model is tijdelijk overbelastAls X-Should-Retry: true — probeer opnieuw na het aantal seconden in Retry-After; bij false — controleer eerst de Request ID in de geschiedenis
503model_unavailableHet model is tijdelijk niet beschikbaarKies een ander model. Bij X-Should-Retry: true — probeer opnieuw na het aantal seconden in Retry-After; bij false — controleer eerst de Request ID in de geschiedenis
503service_unavailableTijdelijke storing bij AilootAls X-Should-Retry: true — probeer opnieuw na het aantal seconden in Retry-After; bij false — controleer eerst de Request ID in de geschiedenis
503charge_not_confirmedHet antwoord is niet geleverd: de afschrijving kon niet worden bevestigd; de reservering is vrijgegeven en er is niets afgeschrevenAls X-Should-Retry: true — probeer opnieuw na het aantal seconden in Retry-After; bij false — controleer eerst de Request ID in de geschiedenis
504model_timeoutHet model heeft niet op tijd geantwoord; het resultaat kan nog verschijnenVerstuur het verzoek niet opnieuw voordat je de Request ID in de geschiedenis hebt gecontroleerd

De codes voor modelantwoorden en resultaatcontrole (502, 503 en 504) noemen nu het model of het verzoek: model_unavailable, model_timeout, invalid_model_response, incomplete_response, charge_not_confirmed en result_pending_check. Als je code error.code met de oude waarden vergelijkt, vervang die dan door de codes uit de tabel; voor de koppeling tussen oude en nieuwe codes kun je terecht bij support.

Wanneer je een verzoek opnieuw kunt proberen

  • Bekijk eerst X-Should-Retry: bij false, result_pending_check of model_timeout probeer je niet automatisch opnieuw. Zoek de Request ID op in de dashboardgeschiedenis: daar staan het resultaat en de afschrijving.
  • Opnieuw proberen is veilig bij X-Should-Retry: true: wacht Retry-After seconden. Bij 5xx is de code alleen niet genoeg: het resultaat kan al bestaan. Controleer eerst de dashboardgeschiedenis of neem contact op met support met de Request ID. Dit is vooral belangrijk voor afbeeldingen, video, muziek en langdurige stappen van een agent.
  • Opnieuw proberen helpt niet: 400, 401, 402, 403, 404 — pas eerst het verzoek, de sleutel of het saldo aan.

Limieten

De frequentie en het aantal gelijktijdige verzoeken zijn begrensd voor je hele account, niet per sleutel. Bij overschrijding krijg je 429 rate_limit_exceeded met de header Retry-After: 10. Is het model zelf overbelast, dan krijg je 503 model_overloaded met Retry-After: 30. Heb je meer capaciteit nodig, neem dan contact op met support.

Bestedingslimieten stel je per sleutel in: de totale limiet geeft 402 api_key_quota_exhausted, de vensters van 5 uur, 1 dag en 7 dagen geven 429 usage_limit_reached. Meer informatie: Sleutels en API-adres.

NVIDIA-modellen: wachtrij

Je kunt de modellenlijst ook met een saldo van nul opvragen; voor generatie moet voldoende saldo voor de reservering beschikbaar zijn. NVIDIA-modellen (Nemotron en andere) gebruiken een gedeelde wachtrij: bij hoge belasting kan het antwoord later komen of krijg je de fout ‘model tijdelijk overbelast’ met een Retry-After-header — probeer opnieuw na de aangegeven wachttijd. De prijzen staan in de catalogus; afschrijvingen werken zoals bij andere modellen.

Het model bepaalt de groottelimieten: context (hoeveel tokens je kunt versturen) en de maximale antwoordlengte. Ze staan in de catalogus.

Geschiedenis en kosten

Geschiedenis en kosten · GET https://ailoot.ai/api/v1/usage · JWT · Authorization: Bearer $TOKEN

JWT ≠ sk-… · Aanmelden en sessies

Nog vragen? Stuur de Request ID en een beschrijving — we helpen je verder.Contact opnemen met support