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 logDue famiglie di SDK, due convenzioni, un solo nome host del gateway. Nessuno dei due client sbaglia; semplicemente non sono d'accordo su chi sia il proprietario del segmento /v1. Invertirli produce /v1/v1/… oppure un percorso senza versione.
Il 404 che ne risulta è particolarmente difficile da diagnosticare perché spesso non raggiunge mai l'API. Un gateway che serve il proprio sito sullo stesso dominio risponde ai percorsi sconosciuti con la pagina commerciale: HTTP 200, Content-Type: text/html. Il client prova allora a interpretare l'HTML come JSON e segnala un errore di sintassi che non indica nemmeno lontanamente la vera causa.
Significa anche che l'errore non lascia tracce dal lato del provider. L'assistenza dirà di non vedere richieste dalla tua chiave, e dirà la verità: alla richiesta ha risposto un server web prima ancora che diventasse una chiamata API.
Chiedi il tipo di contenuto invece di leggere il corpo: un comando basta a chiarire:
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 significa che l'URL è corretto: anche una chiave sbagliata risponde in JSON. text/html significa che stai parlando con un sito web e che il problema è la base URL.
/v1. I nuovi strumenti rientrano in una delle due categorie senza bisogno di istruzioni proprie./ può produrre una doppia barra che porta al sito invece che all'API.| Client | La base URL deve |
|---|---|
| Claude Code | essere solo l'host, senza /v1 |
| Anthropic SDK | essere solo l'host: l'SDK aggiunge /v1/messages |
| Codex | terminare con /v1 |
| OpenAI SDK (Python, Node, Go) | terminare con /v1 |
| Cursor, Cline, Roo Code | terminare con /v1 |
| Cherry Studio, Chatbox, LobeChat | terminare con /v1 |
https://apiclan.us per Claude Code e l'SDK di Anthropic, https://apiclan.us/v1 per Codex e tutto ciò che è compatibile con OpenAI. Le configurazioni pronte da copiare per ogni client sono nella guida rapida.Ultima verifica: 2026-10-01. Scritto a partire da problemi diagnosticati su un gateway compatibile con OpenAI in produzione, non raccolto da altri siti.