Limits & Fehlercodes
Die API nutzt Standard-HTTP-Statuscodes. Fehler-Bodies folgen dem Format deines Clients, sodass das OpenAI SDK und das Anthropic SDK sie direkt lesen können.
Fehlerformat
Endpoints im OpenAI-Format liefern ein error-Objekt mit message, type und code. Endpoints im Anthropic-Format liefern "type": "error" mit einem error-Objekt mit type und message. Fehler mitten im Stream werden als Event in derselben Form gesendet.
402
{
"error": {
"message": "GeraiPoints tidak cukup, silakan top up",
"type": "insufficient_quota",
"code": "insufficient_quota"
}
}Der Text in
message ist auf Indonesisch und kann sich ändern. Prüfe für die Programmlogik den HTTP-Statuscode und type/code, nicht den Nachrichtentext.Statuscodes
| Status | type / code | Bedeutung | Was zu tun ist |
|---|---|---|---|
| 400 | invalid_request_error | Ungültiger Request: Body ist kein JSON, model ist leer oder messages fehlt/ist leer. Tritt auch auf, wenn die Base-URL falsch ist und der Pfad zu /v1/v1/… wird. | Prüfe Body und Base-URL. |
| 401 | authentication_error | API-Key fehlt, ist falsch oder widerrufen — oder auf dem falschen Weg genutzt (Bansos-Key an einem kostenpflichtigen Endpoint oder umgekehrt). | Prüfe Key und Base-URL — Authentifizierung. |
| 402 | insufficient_quota | Nicht genug GeraiPoints für diesen Request. | GeraiPoints aufladen und erneut senden. |
| 403 | permission_error | Das Modell steht nicht auf der Allowlist dieses Keys, oder es ist ein planexklusives Modell, das du noch nicht hast. | Füge das Modell der Allowlist des Keys hinzu oder nutze einen anderen Key. |
| 404 | model_not_found | Unbekannte Modell-ID oder Modell derzeit nicht geöffnet. Namen mit Prefix wie gp/… oder openai/… ergeben ebenfalls 404. | Kopiere die exakte ID aus der Modellliste. |
| 413 | — | Der Request-Body ist zu groß, um vom Server angenommen zu werden. | Kürze den Gesprächsverlauf oder verkleinere Anhänge. |
| 429 | rate_limit_error | Zu viele Requests: Die Modellkapazität ist ausgelastet, oder das Limit des Unlimited- bzw. Bansos-Plans ist überschritten. | Warte gemäß Retry-After (falls vorhanden) und versuche es dann mit Pause erneut. |
| 502 | api_error | Der Modelldienst ist ausgelastet oder gestört; der Request wird nicht abgerechnet. | Versuche es nach einigen Sekunden erneut oder nutze ein anderes Modell. |
| 503 | api_error | Das Modell wird gewartet oder ist vorübergehend nicht verfügbar; der Request wird nicht abgerechnet. | Versuche es später erneut oder nutze ein anderes Modell. |
Nutzungslimits
| Typ | Limit |
|---|---|
| Bezahlter Key (gk-) | Kein festes Rate Limit pro Key; die Nutzung ist durch das GeraiPoints-Guthaben begrenzt. 429 tritt nur auf, wenn die Modellkapazität ausgelastet ist. |
| Unlimited plan | Limits für Requests pro Minute und gleichzeitige Requests pro Konto. 429-Antworten enthalten Retry-After und x-ratelimit-*. Details auf der Unlimited-Seite. |
| Free Tier (Bansos) | Tageskontingent an Requests und Limit pro Minute. 429-Antworten enthalten Retry-After und x-ratelimit-*. Restkontingent auf der Bansos-Seite. |
| Größe & Antwort | Zu große Bodies werden mit 413 abgelehnt. Die Antwortlänge (max_tokens) kann automatisch gesenkt werden, wenn das Guthaben für den angefragten Wert nicht reicht. |
| API-Key | Maximal 20 aktive Keys pro Konto; Allowlist mit bis zu 64 Modellen pro Key. |
| Kunden-Keys | Limits greifen vor der Verarbeitung: Eine Anfrage, die das Restlimit überschreiten würde, wird abgelehnt. Einmal-Limit aufgebraucht → 402 KEY_BATAS_HABIS (Limit erhöhen, um aufzustocken); Tages-/Monatslimit erreicht → 429 KEY_BATAS_HARIAN / KEY_BATAS_BULANAN mit Retry-After. Pausierter Key → 403 KEY_DIJEDA. -unli- und Bansos-Modelle sind mit Kunden-Keys nicht nutzbar. |
Richtig erneut versuchen
- Wiederhole nur bei 429, 502 und 503, mit zunehmenden Pausen (z. B. 1, 2, 4, 8 Sekunden) und höchstens 2–3 Versuchen.
- Wiederhole 400, 401, 402, 403, 404 nicht — korrigiere zuerst den Request; das Ergebnis bleibt sonst gleich.
- Beachte den Header
Retry-After, falls vorhanden. - Jede Wiederholung ist ein neuer, abgerechneter Request. Liegt die Ursache in einem Timeout deiner App, erhöhe den Timeout — siehe Agentic-Tool-Einstellungen.