Torna alle guide
Risoluzione dei problemi·30 agosto 2026·6 min di lettura

ANTHROPIC_AUTH_TOKEN vs ANTHROPIC_API_KEY — quale legge effettivamente Claude Code

Non sono alias. Una diventa `x-api-key`, l'altra diventa `Authorization: Bearer` — e quando sono impostate entrambe può prevalere quella che non intendevi usare. La maggior parte dei report «la mia chiave è corretta ma l'autenticazione fallisce» relativi a un URL di base personalizzato dipende da questo.

Ultima revisione: .

Non sono alias. Una diventa `x-api-key`, l'altra diventa `Authorization: Bearer` — e quando sono impostate entrambe può prevalere quella che non intendevi usare. La maggior parte dei report «la mia chiave è corretta ma l'autenticazione fallisce» relativi a un URL di base personalizzato dipende da questo.

L’errore

le due variabili
# Sent as:  x-api-key: <value>
export ANTHROPIC_API_KEY="sk-ant-..."

# Sent as:  Authorization: Bearer <value>
export ANTHROPIC_AUTH_TOKEN="sk-kn-..."

# Where those headers go:
export ANTHROPIC_BASE_URL="https://api.kunavo.com"

Cause e soluzioni in breve

CausaSoluzione
Il gateway richiede un token bearer; hai impostato la variabile della chiave APILa maggior parte dei gateway compatibili con OpenAI autentica tramite `Authorization: Bearer`. Inserisci la chiave del gateway in ANTHROPIC_AUTH_TOKEN.
Entrambe le variabili impostate, da provider diversiUn ANTHROPIC_API_KEY obsoleto nel profilo della shell può essere inviato insieme al token. Disattiva quello che non stai usando.
URL di base impostato, credenziali non modificateIndirizzare le richieste a un nuovo host non rende valida la chiave del vecchio provider. La credenziale deve cambiare insieme all'host.
Variabile impostata in una shell diversa da quella che esegue lo strumentoUn export in una shell interattiva non raggiunge un processo avviato da una GUI. Verifica all'interno dello stesso ambiente.

Verifica cosa contiene realmente il tuo ambiente

Controlla entrambe le variabili, nella shell che avvia lo strumento, prima di modificare qualsiasi cosa. Una quota sorprendentemente alta di queste sessioni le ha impostate entrambe — spesso una proviene da una modifica del profilo di mesi fa che nessuno ricorda.

inspect-env.sh
for v in ANTHROPIC_API_KEY ANTHROPIC_AUTH_TOKEN ANTHROPIC_BASE_URL; do
  printf '%-22s %s\n' "$v" "$(printenv "$v" | cut -c1-12)"
done

# Prefixes tell you the provider at a glance:
#   sk-ant-  Anthropic direct
#   sk-kn-   Kunavo

Imposta la coppia corrispondente al tuo host e disattiva l'altra

Considera host e credenziale come un'unica unità. Con un URL di base di terze parti, normalmente si tratta del token bearer insieme all'URL di base, con la chiave API diretta esplicitamente disattivata per impedirne il rilevamento.

third-party.sh
unset ANTHROPIC_API_KEY

export ANTHROPIC_AUTH_TOKEN="sk-kn-..."
export ANTHROPIC_BASE_URL="https://api.kunavo.com"

# On Kunavo, pin served models too: Claude Code's default and its opus and
# sonnet aliases follow Anthropic's newest models, and the sonnet alias asks
# for Sonnet 5.5, which Kunavo does not serve — unpinned, that request 404s.
export ANTHROPIC_MODEL="claude-sonnet-5"
export ANTHROPIC_DEFAULT_OPUS_MODEL="claude-opus-5-5"
export ANTHROPIC_DEFAULT_SONNET_MODEL="claude-sonnet-5"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="claude-haiku-4-5"

claude

Conferma sulla rete, non solo nella tua testa

Se l'autenticazione continua a fallire, escludi l'ambiente dalla diagnosi: invia manualmente la richiesta con l'intestazione che ritieni venga usata. Se qui ottieni 200 ma lo strumento fallisce, significa che lo strumento non sta leggendo la variabile impostata — nella maggior parte dei casi usa una shell diversa o un file di configurazione la sovrascrive.

verify.sh
curl -s -o /dev/null -w '%{http_code}\n' \
  "$ANTHROPIC_BASE_URL/v1/models" \
  -H "Authorization: Bearer $ANTHROPIC_AUTH_TOKEN"

Se chiami tramite Kunavo

Kunavo legge la chiave da `Authorization: Bearer` oppure da `x-api-key`, quindi l'intestazione non è ciò che decide il risultato. Con Claude Code la coppia funzionante resta ANTHROPIC_AUTH_TOKEN più ANTHROPIC_BASE_URL — il token diventa effettivo senza l'approvazione una tantum richiesta da ANTHROPIC_API_KEY — e ANTHROPIC_API_KEY dovrebbe essere disattivata anziché lasciata impostata, perché un valore obsoleto è la causa più comune di una sessione che sembra configurata ma continua a rifiutare le richieste. La stessa chiave `sk-kn-` funziona senza modifiche come token bearer in stile OpenAI verso /v1/chat/completions, quindi una sola credenziale copre entrambi i formati. La configurazione completa, compresi i nomi dei modelli da usare, è disponibile in la nostra guida agli errori 401 di Claude Code.

Domande frequenti

Se sono impostate entrambe, quale prevale?

Non fare affidamento sulla risposta: è una regola di precedenza cambiata tra le versioni e diversa tra gli SDK. Impostane esattamente una e disattiva l'altra; è l'unica configurazione che si comporta allo stesso modo ovunque.

Posso usare ANTHROPIC_AUTH_TOKEN direttamente con Anthropic?

L'API proprietaria di Anthropic autentica tramite x-api-key, quindi una chiave Anthropic va inserita in ANTHROPIC_API_KEY. La variabile del token esiste per gli host che richiedono una credenziale bearer.

Lo SDK usa le stesse variabili?

Gli SDK Python e TypeScript leggono ANTHROPIC_API_KEY e inviano x-api-key. Se indirizzi uno SDK verso un gateway con autenticazione bearer, passa esplicitamente la credenziale invece di affidarti all'ambiente.

Guide correlate

Ulteriori dettagli sul significato degli errori sono disponibili in riferimento agli errori; ottenere una chiave richiede un minuto tramite registrazione e la guida all’autenticazione.