EU GPT logo
EU GPT

Public preview — Deze API is in public preview. Endpoints, schemas en limieten kunnen wijzigen vóór general availability.

API

Fouten

HTTP-statuscodes, error-payload-shape en welke fouten een retry waard zijn.

EU GPT retourneert conventionele HTTP-statuscodes en een kleine JSON-envelope. Deze pagina somt de codes op, de payload-shape en welke failures een retry waard zijn.

Payload-shape#

Alle non-2xx-responses retourneren JSON:

{
  "detail": "Human-readable detail string or object",
  "error": {
    "type": "string",
    "code": "string",
    "message": "string"
  }
}

Een paar 5xx-paden omzeilen de envelope en retourneren plain text. Behandel de envelope als best-effort: check altijd eerst de HTTP-status en kijk dan naar detail of error als ze er zijn.

Statuscodes#

400 Bad Request#

De request is structureel ongeldig. De meest voorkomende oorzaken:

  • input ontbreekt of is leeg.
  • model verwijst naar een onbekend ID (wanneer je niet auto gebruikt).
  • Een UUID-veld is misvormd.
{ "detail": "input is required" }

Retry niet zonder wijzigingen — fix eerst de request.

401 Unauthorized#

Ontbrekende, misvormde of ingetrokken API-key. Check:

  • De Authorization-header is aanwezig en begint met Bearer .
  • De key heeft het prefix eugpt_.
  • De key is niet ingetrokken in de web-UI.
  • Je roept dezelfde omgeving aan die de key heeft uitgegeven (productie-keys werken niet tegen staging).

Retry niet totdat je credentials hebt gefixt.

403 Forbidden#

De key is geldig maar de operatie is niet toegestaan. De veelvoorkomende gevallen:

  • conversation_id verwijst naar een gesprek dat eigendom is van een andere gebruiker → retourneert 404 (we verbergen bewust het bestaan).
  • project_id verwijst naar een project waarvan de gebruiker geen member is.
  • Het license-plan staat de operatie niet toe (bv. trial verlopen, organisatie-beleid heeft API-toegang uitgeschakeld).
{
  "detail": "Project membership required",
  "error": "project_forbidden"
}

Retry alleen na het fixen van membership of het upgraden van het plan.

404 Not Found#

De gerefereerde resource bestaat niet voor deze gebruiker. Zowel “echt weg” als “niet van jou” retourneert 404, om te voorkomen dat we het bestaan van andermans data lekken.

Retry niet — de resource komt niet terug.

429 Too Many Requests#

Er werd een gebruikslimiet overschreden voor de caller. Retry met exponential backoff en een cap; als de response 429 blijft retourneren, vertraag en probeer het later opnieuw. Neem contact op als je tijdens normaal gebruik consistent tegen limieten aan loopt.

500 Internal Server Error#

Een onverwachte failure binnen EU GPT. Kan tijdelijk zijn.

{ "detail": "Internal error during response generation" }

Retry één of twee keer met exponential backoff. Als het blijft, ligt het aan onze kant — check de statuspagina (wanneer beschikbaar) en neem contact op.

502 / 503 / 504#

Geretourneerd door de load balancer wanneer de backend overbelast is of herstart. Behandel als tijdelijk — retry met exponential backoff.

Fouten in de stream#

Als de failure plaatsvindt nadat de response is begonnen te streamen, is de HTTP-status nog steeds 200 maar zal de stream eindigen met een error-event in plaats van response.completed:

event: message
data: {"type":"error","code":"upstream_timeout","message":"Model timed out"}

Check altijd het laatste event van de stream — neem geen success aan alleen omdat de stream opende. Veelvoorkomende in-stream-error-codes:

  • upstream_timeout — het model deed er te lang over. Retry.
  • upstream_error — het model gaf een interne fout. Retry.
  • internal_error — generieke platform-failure. Retry één keer.
  • cancelled — de request werd gecanceld (bv. het upstream gesprek werd mid-flight verwijderd).

Idempotency#

Het endpoint honoreert nog geen Idempotency-Key. Een geretryde request genereert een nieuwe response. Voor interactief gebruik is dit zelden een probleem; voor batch jobs: dedupe aan jouw kant op een job-identifier en retry alleen op gedocumenteerde retriable codes.