Claude Code „invalid x-api-key“: Deine Anfrage ging an Anthropic
Wokey Team · 2026-09-24
Kurz gesagt: Wenn du invalid x-api-key siehst, ging deine Anfrage an Anthropics eigenes api.anthropic.com und nicht an das Gateway, das du konfiguriert hast. Wokey gibt diese Meldung nie zurück; der Key-Fehler von Wokey heißt invalid_api_key, mit Unterstrichen. Tausche deinen Key also noch nicht aus. Finde heraus, warum die Base URL nicht angewendet wurde.
Zuerst klären, wer geantwortet hat
Vergleiche das JSON in deiner Fehlermeldung mit dieser Tabelle, um zu sehen, wo die Anfrage tatsächlich gelandet ist. Jede Zeile ist eine mit curl aufgezeichnete Rohantwort:
| Antwort enthält | Antwort von | Bedeutung |
|---|---|---|
"message":"invalid x-api-key" |
Anthropic | Ein sk--Key wurde als Authorization: Bearer gesendet, oder der Wert von x-api-key sieht nicht wie ein Key aus |
"message":"API key is invalid." |
Anthropic | Ein sk--Key, der nicht von Anthropic stammt, wurde als x-api-key gesendet |
"message":"x-api-key header is required" |
Anthropic | Es wurde gar kein Key gesendet |
"message":"Invalid bearer token" |
Anthropic | Der Bearer-Wert beginnt nicht mit sk- |
"code":"invalid_api_key" |
Wokey | Die Anfrage hat Wokey erreicht, aber der Key fehlt, enthält einen Tippfehler oder wurde gelöscht |
Die vollständige Antwort von Anthropic sieht so aus. Achte auf das äußere "type":"error" und die meist vorhandene request_id:
{"type":"error","error":{"type":"authentication_error","message":"invalid x-api-key"},"request_id":"req_011C..."}
Die Antwort von Wokey hat kein äußeres type: "error", und der code verwendet Unterstriche:
{"error":{"code":"invalid_api_key","message":"Invalid API key. Make sure you copied the complete Wokey API key, or create a new one at https://wokey.ai/api.","type":"invalid_request_error"}}
Wokey-Keys beginnen mit sk-. Steht einer in ANTHROPIC_AUTH_TOKEN (als Bearer-Token gesendet) und geht die Anfrage an Anthropic, bekommst du invalid x-api-key. Steht er in ANTHROPIC_API_KEY (als x-api-key gesendet), bekommst du API key is invalid. Die Ursache ist in beiden Fällen dieselbe.
Warum die Base URL nicht angewendet wurde
1. Die Variable fehlt im Prozess, der claude ausführt. Ein export gilt nur für das aktuelle Terminal. Eine Variable, die in einem anderen Terminal gesetzt wurde oder in ~/.zshrc steht, ohne dass du ein neues Terminal geöffnet hast, kommt nicht an – ebenso wenig in einem Editor, der aus dem Dock oder dem Startmenü gestartet wurde. Prüfe in dem Terminal, das claude startet, ob beide Variablen vorhanden sind:
env | grep ANTHROPIC
2. Der Variablenname ist falsch. Claude Code liest nur ANTHROPIC_BASE_URL. ANTHROPIC_API_BASE, ANTHROPIC_BASE, CLAUDE_BASE_URL und OPENAI_BASE_URL werden alle ignoriert, und die Anfrage geht stillschweigend an die offizielle Adresse.
3. In settings.json steht der Key, aber nicht die Adresse. Setzt der env-Block von ~/.claude/settings.json ANTHROPIC_AUTH_TOKEN ohne ANTHROPIC_BASE_URL, wird der Key an Anthropic gesendet. Halte beide zusammen:
{
"env": {
"ANTHROPIC_BASE_URL": "https://api.wokey.ai",
"ANTHROPIC_AUTH_TOKEN": "your Wokey API key"
}
}
4. Du nutzt die VS-Code-Erweiterung. Die Anmeldeprüfung der Erweiterung liest keine Shell-Variablen. Setze sie in claudeCode.environmentVariables in den Benutzereinstellungen von VS Code; siehe die Anleitung zur VS-Code-Erweiterung.
5. Du nutzt die Claude-Desktop-App. Die Desktop-App liest weder ANTHROPIC_BASE_URL noch settings.json. Richte das Gateway unter Developer → Configure Third-Party Inference ein; siehe Fehlersuche für die Desktop-App mit einer Drittanbieter-API.
6. Du rufst das SDK aus eigenem Code auf. Die Python- und TypeScript-SDKs von Anthropic verwenden standardmäßig die offizielle Adresse. Übergib base_url explizit (baseURL in TypeScript), auch hier ohne /v1:
from anthropic import Anthropic
client = Anthropic(base_url="https://api.wokey.ai", api_key="your Wokey API key")
In Claude Code prüfen
Führe /status in Claude Code aus. Der Tab Status sollte eine Zeile Anthropic base URL mit dem Wert https://api.wokey.ai zeigen. Fehlt die Zeile, verwendet Claude Code die offizielle Adresse, und eine der Ursachen oben trifft zu.
Mit curl vergleichen
Führe in demselben Terminal, das claude startet, Folgendes aus:
curl -X POST "$ANTHROPIC_BASE_URL/v1/messages" \
-H "Authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{"model":"claude-sonnet-5","max_tokens":1,"messages":[{"role":"user","content":"."}]}'
Was dir das Ergebnis sagt:
curl: (3) URL rejected: No host part in the URL:ANTHROPIC_BASE_URList leer; die Variable wurde nie gesetzt.- Beginnt mit
{"id":"msg_: Gateway und Key sind in Ordnung. Das Problem liegt in der Konfiguration, die Claude Code liest; geh die Ursachen 3 bis 5 oben durch. invalid_api_key: Die Anfrage hat Wokey erreicht, jetzt liegt es also wirklich am Key. Prüfe in der Konsole, ob er vollständig kopiert und nicht gelöscht wurde.
Der Fehler mit der offiziellen API
Wenn du die API von Anthropic direkt nutzt, bedeutet invalid x-api-key genau das, was dort steht: Der Key ist falsch oder widerrufen, oder er wurde mit einem überzähligen Zeilenumbruch oder Leerzeichen kopiert. Einen Key mit Zeilenumbruch blockiert Claude Code schon vor dem Senden, mit einem Fehler wie Invalid X-Api-Key header value from ANTHROPIC_API_KEY: it contains a line break.
Häufige Fragen
Gibt Wokey „invalid x-api-key“ zurück?
Nein. Diese Meldung stammt von Anthropics eigener API. Bei einem fehlenden oder falschen Key antwortet Wokey mit einem 401 und {"error":{"code":"invalid_api_key",...}}. Siehst du „invalid x-api-key“, hat die Anfrage Wokey nie erreicht, weil ANTHROPIC_BASE_URL nicht angewendet wurde.
Wie prüfe ich, welche Base URL Claude Code verwendet?
Führe /status in Claude Code aus und sieh dir Anthropic base URL an. Mit Wokey sollte dort https://api.wokey.ai stehen. Fehlt die Zeile oder zeigt sie die Adresse von Anthropic, ist die Variable nicht im laufenden Prozess angekommen.
echo zeigt die Variable an – warum schlägt es trotzdem fehl?
Meist wurde die Variable ohne export gesetzt, oder Claude Code wurde aus einem anderen Terminal, einer IDE oder über ein Desktop-Symbol gestartet, wo sie nie ankam. Am zuverlässigsten ist es, ANTHROPIC_BASE_URL und ANTHROPIC_AUTH_TOKEN in den env-Block von ~/.claude/settings.json einzutragen.
Was tun, wenn die VS-Code-Erweiterung oder die Desktop-App diesen Fehler zeigt?
Für die VS-Code-Erweiterung setzt du die Variablen in claudeCode.environmentVariables in deinen Benutzereinstellungen. Die Claude-Desktop-App ignoriert Umgebungsvariablen: Konfiguriere das Gateway unter Developer → Configure Third-Party Inference und klicke dann auf Save & Restart.
Kann ich einen Wokey-Key direkt bei Anthropic verwenden?
Nein. Ein Wokey-Key besteht aus sk- und 32 Hex-Zeichen und funktioniert nur unter api.wokey.ai. An Anthropic gesendet, liefert er einen 401.