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 logDwie linie SDK, dwie konwencje, jedna nazwa hosta bramki. Żaden klient nie jest w błędzie; po prostu nie zgadzają się, kto odpowiada za segment /v1. Pomylenie ich daje albo /v1/v1/…, albo ścieżkę bez wersji.
Powstały 404 jest wyjątkowo trudny do debugowania, bo często w ogóle nie dociera do API. Bramka, która serwuje stronę WWW z tej samej domeny, odpowiada na nieznane ścieżki stroną marketingową – HTTP 200, Content-Type: text/html. Klient próbuje wtedy sparsować HTML jako JSON i zgłasza błąd składni, który nie wskazuje nawet w pobliżu prawdziwej przyczyny.
Oznacza to też, że błąd nie zostawia śladu po stronie dostawcy. Wsparcie powie, że nie widzi żadnych żądań z twojego klucza, i będzie mówić prawdę: na żądanie odpowiedział serwer WWW, zanim w ogóle stało się wywołaniem API.
Zamiast czytać treść, zapytaj o typ treści – jedno polecenie to rozstrzyga:
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 oznacza, że URL jest poprawny – nawet zły klucz odpowiada w JSON. text/html oznacza, że rozmawiasz ze stroną WWW, a problemem jest base URL.
/v1. Nowe narzędzia pasują do jednej z tych dwóch grup bez osobnych instrukcji./ może dać podwójny ukośnik, który trafia do strony WWW zamiast do API.| Klient | Base URL powinien |
|---|---|
| Claude Code | zawierać tylko host – bez /v1 |
| Anthropic SDK | zawierać tylko host – SDK dopisuje /v1/messages |
| Codex | kończyć się na /v1 |
| OpenAI SDK (Python, Node, Go) | kończyć się na /v1 |
| Cursor, Cline, Roo Code | kończyć się na /v1 |
| Cherry Studio, Chatbox, LobeChat | kończyć się na /v1 |
https://apiclan.us dla Claude Code i Anthropic SDK, https://apiclan.us/v1 dla Codex i wszystkiego zgodnego z OpenAI. Gotowe do skopiowania konfiguracje dla każdego klienta są w szybkim starcie.Ostatnio sprawdzono 2026-10-01. Napisane na podstawie problemów zdiagnozowanych na działającej bramce zgodnej z OpenAI, a nie zebrane z innych stron.