405 Method Not AllowedRequest failed with status code 405openai.APIStatusError: Error code: 405The POST works in the provider's playground but not from your codeGli SDK della famiglia OpenAI non aggiungono un prefisso di percorso al posto tuo. Ciò che metti in base_url viene usato alla lettera, seguito da /chat/completions. Dagli https://example.com e la richiesta va a https://example.com/chat/completions; dagli il dominio nudo con una barra finale e alcuni client lo riducono a https://example.com/, un semplice POST verso la home page.
Una home page è statica. Risponde a GET e HEAD e rifiuta tutto il resto, cioè esattamente un 405. La richiesta non ha mai raggiunto il codice dell'API, quindi nel log di utilizzo non compare nulla, e un log vuoto è di per sé l'indizio.
È l'immagine speculare del caso Anthropic. Claude Code e l'SDK di Anthropic aggiungono da soli /v1/messages, quindi hanno bisogno della base URL SENZA /v1. Copiare un'impostazione funzionante di Claude Code in un client OpenAI riproduce questo errore ogni volta.
Chiedi al server quali metodi accetta esattamente quel percorso:
curl -s -o /dev/null -w '%{http_code}\n' -X POST 'YOUR_BASE_URL/chat/completions'
# and compare with the bare domain:
curl -s -D- -o /dev/null -X POST 'https://YOUR_DOMAIN/' | grep -i '^allow\|HTTP/'
Se il dominio nudo risponde 405 con un header Allow: GET, HEAD, l'hai trovato. Un percorso API corretto restituisce 401 quando manca la chiave: un errore di autenticazione significa che stai parlando con l'API.
| Client | La base URL deve |
|---|---|
| OpenAI SDK (Python, Node, Go) | terminare con /v1 |
| Codex, Cherry Studio, Chatbox, LobeChat, LM Studio | terminare con /v1 |
| Cursor, Cline, Roo Code | terminare con /v1 |
| Anthropic SDK | non contenere /v1: l'SDK aggiunge /v1/messages |
| Claude Code | non contenere /v1: per lo stesso motivo |
https://apiclan.us/v1 per i client in stile OpenAI e https://apiclan.us per Claude Code e l'SDK di Anthropic. Le impostazioni di 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.