Zwei Einstellungen. Jeder Agent.
Jedes Tool braucht dieselben zwei Dinge: eine CodingPass Base URL und deinen Key. Füg den Key einmal ein, und jedes Snippet auf dieser Seite ist kopierfertig.
Base URLs
Anthropic-kompatibel
Messages API. Claude Code, Cline und die Anthropic-SDKs. Ohne /v1 am Ende.
OpenAI-kompatibel
Chat Completions und Responses. Codex, OpenCode und die OpenAI-SDKs.
Key einfügen, Tool wählen.
Bleibt in diesem Tab und füllt nur die Snippets auf dieser Seite.
Jedes Tool startet mit einem sinnvollen Standard. Welche Modelle antworten, entscheidet dein Tarif.
Die zwei export-Zeilen in ~/.zshrc oder ~/.bashrc eintragen, eine neue Shell öffnen und Claude Code starten.
export ANTHROPIC_BASE_URL="https://codingpass.ai" export ANTHROPIC_AUTH_TOKEN="cp-live-your-key"
claude --model claude-sonnet-5-5
Prüfen, ob der Key funktioniert
Liste die Modelle auf, die dein Key erreicht. Kommt eine JSON-Liste zurück, stimmen Key und URL; ein 401 heißt, der Key ist falsch.
curl https://codingpass.ai/v1/models \ -H "Authorization: Bearer cp-live-your-key"
Dein Tool ist nicht dabei?
Jedes Tool, in dem sich eine Anthropic- oder OpenAI-Base-URL einstellen lässt, funktioniert. Such ein Feld für Base URL oder eigenen Anbieter, trag URL und Key ein und nimm eine Modell-ID von Modelle.
Hängst du noch fest? Schreib an [email protected] mit dem Namen des Tools und dem Header x-request-id aus der Antwort.
Jeder Fehler, sein Status und der nächste Schritt.
Das Gateway antwortet mit einem normalen HTTP-Status und dem Fehlerformat, das dein Client schon kennt. Der type ist der von Anthropic und OpenAI, SDKs behandeln ihn wie gewohnt; die message ist für Menschen geschrieben. Der Fehlercode unten steht im Anfrageprotokoll der Konsole neben jeder fehlgeschlagenen Anfrage.
Zwei Formate, je nach Endpunkt
/v1/messages, /v1/messages/count_tokens)HTTP/1.1 429 Too Many Requests retry-after: 4253 x-should-retry: false x-ratelimit-remaining-5h: 0 x-ratelimit-reset-5h: 1h10m53s x-request-id: req_8f2c41d07ab3 { "type": "error", "error": { "type": "rate_limit_error", "message": "Account limit reached: your 5h quota is used up for all models. Resets at …" } }
/v1/chat/completions, /v1/responses, /v1/models)HTTP/1.1 401 Unauthorized x-request-id: req_5b1f09c2e7d4 { "error": { "message": "Invalid API key", "type": "authentication_error", "param": null, "code": null } }
| Status | Code | Wann er auftritt und was zu tun ist |
|---|---|---|
| 400Fehlerhafte Anfrage | ||
| 400 | invalid_requestinvalid_request_error | Ungültiger Request-Body Wann er auftritt: Der Body ist kein gültiges JSON, oder ein Pflichtfeld fehlt: So behebst du es:
|
| 401Authentifizierung | ||
| 401 | invalid_api_keyauthentication_error | API key nicht akzeptiert Wann er auftritt: Der Key fehlt, ist vertippt, gelöscht oder steht in einem Header, den das Gateway nicht liest. So behebst du es:
|
| 403Berechtigung | ||
| 403 | no_subscriptionpermission_error | Kein aktiver Tarif Wann er auftritt: Der Key ist gültig, aber das Konto hat keinen aktiven Tarif: keiner gebucht, abgelaufen oder eine Verlängerungszahlung ist fehlgeschlagen. So behebst du es:
|
| 404Nicht gefunden | ||
| 404 / 405 | wrong_base_urlnot_found_error | Falsche Base URL oder Methode Wann er auftritt: Die Anfrage kam auf einem Pfad oder mit einer Methode an, die das Gateway nicht bedient. Meist hat die Base URL ein So behebst du es:
|
| 404 | model_not_foundinvalid_request_error | Modell nicht in deinem Tarif Wann er auftritt: Die Modell-ID ist falsch geschrieben, oder das Modell gehört nicht zu deinem Tarif. So behebst du es:
|
| 413Zu groß | ||
| 413 | body_too_largeinvalid_request_error | Anfrage zu groß Wann er auftritt: Der Request-Body überschreitet die Größengrenze des Gateways, meist wegen sehr langem Kontext oder großer Anhänge. So behebst du es:
|
| 429Limits | ||
| 429 | quota_exceededrate_limit_error | Kontingent aufgebraucht Wann er auftritt: Ein 5-Stunden-, Wochen- oder Monatslimit ist erreicht, für ein Modell oder für das ganze Konto. Die Meldung nennt das Fenster und den Reset-Zeitpunkt; So behebst du es:
|
| 429 | concurrency_limitedrate_limit_errorWiederholbar | Zu viele Anfragen gleichzeitig Wann er auftritt: Dein Tarif erlaubt eine feste Zahl gleichzeitiger Anfragen, und eine neue kam, während alle belegt waren. So behebst du es:
|
| 429 | no_upstream_availablerate_limit_errorWiederholbar | Modell ausgelastet Wann er auftritt: Dieses Modell ist gerade voll ausgelastet. So behebst du es:
|
| 5xxModellanbieter | ||
| 4xx / 5xx | upstream_errorapi_errorWiederholbar | Modellanbieter meldet einen Fehler Wann er auftritt: Der Modellanbieter hat die Anfrage abgelehnt oder ist daran gescheitert, und das Gateway reicht Status und Meldung durch. Ein 502 heißt, die Anfrage ist auch nach Wiederholungen fehlgeschlagen. So behebst du es:
|
| 503Nicht verfügbar | ||
| 503 | plan_unavailableapi_errorWiederholbar | Tarif gerade nicht abrufbar Wann er auftritt: Das Gateway konnte deinen Tarif kurz nicht laden. Das Problem liegt bei uns, nicht an deinem Key. So behebst du es:
|
| 503 | quota_unavailableapi_errorWiederholbar | Kontingent gerade nicht abrufbar Wann er auftritt: Das Gateway konnte deine Nutzungszähler nicht lesen und hat die Anfrage abgelehnt, statt zu raten. Das Problem liegt bei uns. So behebst du es:
|
| 503 | upstream_unavailableapi_errorWiederholbar | Anfrage konnte nicht bedient werden Wann er auftritt: Das Modell konnte die Anfrage vor der Antwort nicht annehmen. Ein erneuter Versuch klappt meist. So behebst du es:
|
| 503 | no_upstreamapi_error | Modell gerade nicht verfügbar Wann er auftritt: Das Modell ist in deinem Tarif, aber im Moment nicht verfügbar. So behebst du es:
|
| 200 / 499Während der Antwort | ||
| 200 | stream_incompleteapi_errorWiederholbar | Stream abgebrochen Wann er auftritt: Die Antwort begann mit 200, aber der Stream endete, bevor sie vollständig war. Der Client zeigt eine Antwort, die mittendrin aufhört, oder am Ende einen Fehler. So behebst du es:
|
| 499 | client_aborted | Vom Client abgebrochen Wann er auftritt: Dein Client hat die Verbindung geschlossen, bevor die Antwort fertig war: Esc oder Strg+C gedrückt, Timeout im Client oder Netzwerkabbruch. 499 steht nur in deinem Anfrageprotokoll; der Client bekommt ihn nie. So behebst du es:
|
Als „wiederholbar“ markierte Fehler sind vorübergehend: ein, zwei Sekunden oder die Sekunden aus retry-after warten und dieselbe Anfrage erneut senden. Die meisten SDKs machen das bei 429 und 5xx von selbst. Alles andere braucht zuerst eine Änderung auf deiner Seite.
Nützliche Response-Header
| Header | Bedeutung |
|---|---|
| x-request-id | Eindeutige ID dieser Anfrage, dieselbe wie in deinem Nutzungsprotokoll. Gib sie an, wenn du an [email protected] schreibst. |
| retry-after | Sekunden bis zum nächsten Versuch. Kommt mit 429 und mit vorübergehenden 503. |
| x-should-retry | Kommt als false mit quota_exceeded: Die offiziellen SDKs von Anthropic und OpenAI versuchen es dann nicht mehr selbst, weil ein ganzes Fenster zu warten ist. |
| x-ratelimit-remaining-<window> | Kommt mit quota_exceeded, der Wert ist 0. Das Suffix ist das erreichte Fenster: 5h, week oder month. Ob es um das Konto oder ein einzelnes Modell geht, steht in der Fehlermeldung. |
| x-ratelimit-reset-<window> | Kommt mit quota_exceeded: wie lange es dauert, bis dieses Fenster wieder frei ist, zum Beispiel 1h10m53s. |
| x-ratelimit-limit-concurrency | Kommt mit concurrency_limited: wie viele Anfragen dein Tarif gleichzeitig ausführt. x-ratelimit-remaining-concurrency ist 0. Fehlt, wenn der 429 an fehlender Upstream-Kapazität liegt. |