MenuLimieten & foutcodes

Limieten & foutcodes

De API gebruikt standaard HTTP-statuscodes. De foutbody volgt het formaat van de client die je gebruikt, zodat de OpenAI- en Anthropic-SDK’s hem ongewijzigd kunnen lezen.

Foutformaat

Endpoints in OpenAI-formaat geven een object error terug met message, type en code. Endpoints in Anthropic-formaat geven "type": "error" terug met een object error dat type en message bevat. Fouten die midden in een stream optreden, worden verstuurd als event met dezelfde vorm.

{
  "error": {
    "message": "GeraiPoints tidak cukup, silakan top up",
    "type": "insufficient_quota",
    "code": "insufficient_quota"
  }
}
De inhoud van message is in het Indonesisch en kan veranderen. Controleer in je programmalogica de HTTP-statuscode en type/code, niet de tekst van het bericht.

Statuscodes

Statustype / codeBetekenisWat te doen
400invalid_request_errorOngeldige request: de body is geen JSON, model is leeg, of messages ontbreekt of is leeg. Komt ook voor als de base URL fout is, waardoor het pad /v1/v1/… wordt.Controleer de body en de base URL.
401authentication_errorAPI-key niet meegestuurd, onjuist of ingetrokken — of de key wordt op het verkeerde pad gebruikt (bansos-key op een betaald endpoint, of andersom).Controleer de key en de base URL — Authenticatie.
402insufficient_quotaNiet genoeg GeraiPoints voor deze request.Waardeer GeraiPoints op en verstuur opnieuw.
403permission_errorHet model staat niet op de allowlist van deze key, of het is een model voor een plan dat je nog niet hebt.Voeg het model toe aan de allowlist van de key, of gebruik een andere key.
404model_not_foundOnbekend model-id of model tijdelijk niet opengesteld. Namen met een prefix zoals gp/… of openai/… geven ook 404.Kopieer het exacte id uit de modellenlijst.
413—De request-body is te groot om door de server te worden geaccepteerd.Vat de gespreksgeschiedenis samen of verklein de bijlagen.
429rate_limit_errorTe veel requests: de capaciteit van het model is vol, of de limiet van het Unlimited-plan/Bansos is overschreden.Wacht zoals aangegeven in Retry-After (indien aanwezig) en probeer het daarna opnieuw met een pauze.
502api_errorDe modeldienst is druk of heeft problemen; de request wordt niet gefactureerd.Probeer het na een paar seconden opnieuw, of gebruik een ander model.
503api_errorHet model is in onderhoud of tijdelijk niet beschikbaar; de request wordt niet gefactureerd.Probeer het later opnieuw of gebruik een ander model.

Gebruikslimieten

SoortLimiet
Betaalde key (gk-)Geen vaste rate limit per key; het gebruik wordt begrensd door je GeraiPoints-saldo. Een 429 komt alleen voor als de capaciteit van het model vol is.
Unlimited-planLimiet op requests per minuut en gelijktijdige requests per account. Een 429-antwoord bevat Retry-After en x-ratelimit-*. Details op de Unlimited-pagina.
Gratis tier (Bansos)Quotum aan requests per dag en een limiet per minuut. Een 429-antwoord bevat Retry-After en x-ratelimit-*. Resterend quotum op de Bansos-pagina.
Grootte & antwoordEen te grote body wordt geweigerd met 413. De lengte van het antwoord (max_tokens) kan automatisch worden verlaagd als je saldo niet volstaat voor de gevraagde waarde.
API-keyMaximaal 20 actieve keys per account; allowlist van maximaal 64 modellen per key.
KlantsleutelsLimieten gelden vóór verwerking: een verzoek dat de resterende limiet zou overschrijden, wordt geweigerd. Eenmalige limiet op → 402 KEY_BATAS_HABIS (verhoog de limiet om tegoed toe te voegen); dag-/maandlimiet bereikt → 429 KEY_BATAS_HARIAN / KEY_BATAS_BULANAN met Retry-After. Gepauzeerde sleutel → 403 KEY_DIJEDA. -unli- en bansos-modellen werken niet met klantsleutels.

Correct opnieuw proberen

  • Probeer alleen opnieuw bij 429, 502 en 503, met steeds langere pauzes (bijv. 1, 2, 4, 8 seconden) en maximaal 2–3 keer.
  • Probeer 400, 401, 402, 403 en 404 niet opnieuw — herstel eerst de request; anders blijft het resultaat hetzelfde.
  • Respecteer de header Retry-After als die aanwezig is.
  • Elke nieuwe poging is een nieuwe request die wordt gefactureerd. Ligt de oorzaak bij een timeout in je app, verhoog dan die timeout — zie Instellingen agentic tools.