404 on /v1/v1/messagesClaude Code works but Codex returns 404, or the reverseUnexpected token '<' — HTML where JSON was expectedThe key is valid and the model exists, yet nothing connectsNo trace of the failed request in the provider's usage logZwei SDK-Linien, zwei Konventionen, ein Gateway-Hostname. Keiner der Clients liegt falsch; sie sind sich nur uneins, wem das Segment /v1 gehört. Wer es verdreht, bekommt entweder /v1/v1/… oder einen Pfad ganz ohne Version.
Das resultierende 404 ist ungewöhnlich schwer zu debuggen, weil es oft nie die API erreicht. Ein Gateway, das seine Website auf derselben Domain ausliefert, beantwortet unbekannte Pfade mit der Marketingseite – HTTP 200, Content-Type: text/html. Der Client versucht dann, HTML als JSON zu parsen, und meldet einen Syntaxfehler, der nirgendwo in die Nähe der wahren Ursache zeigt.
Das heißt auch: Der Fehler hinterlässt beim Anbieter keine Spur. Der Support wird sagen, dass er keine Anfragen von Ihrem Schlüssel sieht – und das stimmt: Die Anfrage wurde von einem Webserver beantwortet, bevor sie je ein API-Aufruf wurde.
Fragen Sie nach dem Content-Type, statt den Body zu lesen – ein Befehl klärt es:
curl -s -o /dev/null -w '%{http_code} %{content_type}\n' \
-X POST 'YOUR_BASE_URL/chat/completions' \
-H 'Authorization: Bearer YOUR_KEY' \
-H 'Content-Type: application/json' \
-d '{"model":"YOUR_MODEL","messages":[{"role":"user","content":"hi"}]}'
application/json heißt, die URL stimmt – selbst ein falscher Schlüssel antwortet in JSON. text/html heißt, Sie sprechen mit einer Website, und die Base URL ist das Problem.
/v1. Neue Tools passen in eine der beiden Gruppen, ohne eigene Anleitung./ endet, kann einen doppelten Schrägstrich erzeugen, der zur Website statt zur API führt.| Client | Base URL sollte |
|---|---|
| Claude Code | nur der Host – kein /v1 |
| Anthropic SDK | nur der Host – es hängt /v1/messages an |
| Codex | auf /v1 enden |
| OpenAI SDK (Python, Node, Go) | auf /v1 enden |
| Cursor, Cline, Roo Code | auf /v1 enden |
| Cherry Studio, Chatbox, LobeChat | auf /v1 enden |
https://apiclan.us für Claude Code und das Anthropic SDK, https://apiclan.us/v1 für Codex und alles OpenAI-Kompatible. Konfigurationen zum Kopieren für jeden Client stehen im Schnellstart.Zuletzt geprüft am 2026-10-01. Geschrieben aus Problemen, die auf einem laufenden OpenAI-kompatiblen Gateway diagnostiziert wurden – nicht von anderen Seiten zusammengetragen.