Home → Assistenza

405 Method Not Allowed chiamando un'API di IA

Il tuo POST ha raggiunto il server web ma non l'API. Il percorso a cui l'hai inviato risponde solo a GET, quindi il server rifiuta il metodo e non la richiesta. Su quasi tutti i gateway significa che la base URL si ferma un segmento troppo presto: punta alla radice del sito invece che al prefisso dell'API.

Cosa vedi

Perché succede

Gli 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.

Verifica se la causa è questa

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.

Come risolvere

  1. Rimetti il prefisso dell'API nella base URLPer i client in stile OpenAI la base URL deve terminare con il prefisso dell'API, di solito /v1. L'SDK aggiunge /chat/completions dopo, e nient'altro.
  2. Non riutilizzare il valore di Claude CodeI client della famiglia Anthropic accettano solo l'host perché aggiungono /v1/messages internamente. Le due impostazioni sembrano intercambiabili ma non lo sono.
  3. Togli la barra finaleUna base URL che termina con / può produrre una doppia barra, e alcuni router la mandano al front-end invece che all'API: stesso 405, stessa assenza nel log.
ClientLa base URL deve
OpenAI SDK (Python, Node, Go)terminare con /v1
Codex, Cherry Studio, Chatbox, LobeChat, LM Studioterminare con /v1
Cursor, Cline, Roo Codeterminare con /v1
Anthropic SDKnon contenere /v1: l'SDK aggiunge /v1/messages
Claude Codenon contenere /v1: per lo stesso motivo
Su APICLAN la base URL è 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.

Articoli correlati

Unexpected token '<' quando chiami un'API compatibile con OpenAI401 invalid API key: quando la chiave sembra giusta ma continua a fallire

Ultima verifica: 2026-10-01. Scritto a partire da problemi diagnosticati su un gateway compatibile con OpenAI in produzione, non raccolto da altri siti.