ANTHROPIC_AUTH_TOKEN ou ANTHROPIC_API_KEY no Claude Code?

As duas variáveis carregam uma credencial, mas não são intercambiáveis: ANTHROPIC_AUTH_TOKEN envia autenticação Bearer; ANTHROPIC_API_KEY envia x-api-key. O servidor decide qual formato aceita. Se a credencial estiver no header errado, a resposta costuma ser 401.

Resposta curta para quem usa MandAPI

Na MandAPI, use ANTHROPIC_AUTH_TOKEN junto com ANTHROPIC_BASE_URL. Evite deixar uma ANTHROPIC_API_KEY antiga ativa no mesmo terminal, pois ela dificulta o diagnóstico.

Variável Header enviado Uso neste guia
ANTHROPIC_AUTH_TOKEN Authorization: Bearer ... MandAPI
ANTHROPIC_API_KEY x-api-key: ... Serviços que pedem explicitamente esse header

Golden Path da MandAPI

  1. Crie sua conta MandAPI.
  2. Entre no painel e crie uma chave de API.
  3. Salve o arquivo ~/.claude/settings.json no macOS/Linux ou %USERPROFILE%\.claude\settings.json no Windows:
{
  "env": {
    "ANTHROPIC_BASE_URL": "https://api.mandapi.com",
    "ANTHROPIC_AUTH_TOKEN": "COLE_SUA_CHAVE_MANDAPI_AQUI"
  }
}
  1. Feche o terminal, abra outro e faça uma chamada simples:
claude -p "Responda apenas: conexão ok"

Resultado esperado: uma resposta normal do modelo, sem erro de autenticação, rota ou modelo. O texto pode ser semelhante a conexão ok, mas não precisa ser idêntico.

Teste a credencial sem expor o valor

Não publique a chave nem cole seu valor em capturas de tela. Teste diretamente com a variável:

curl -sS -X POST https://api.mandapi.com/v1/messages \
  -H "Authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{"model":"claude-sonnet-5","max_tokens":1,"messages":[{"role":"user","content":"."}]}'

No PowerShell:

Invoke-RestMethod -Method Post -Uri "https://api.mandapi.com/v1/messages" `
  -Headers @{ Authorization = "Bearer $env:ANTHROPIC_AUTH_TOKEN"; "anthropic-version" = "2023-06-01" } `
  -ContentType "application/json" `
  -Body '{"model":"claude-sonnet-5","max_tokens":1,"messages":[{"role":"user","content":"."}]}'

Resultado esperado: uma resposta JSON Anthropic, sem erro de autenticação, rota ou modelo. 401 indica credencial rejeitada.

Elimine conflitos antes de testar

No macOS, Linux ou WSL, remova uma chave antiga apenas da sessão atual:

unset ANTHROPIC_API_KEY

No PowerShell:

Remove-Item Env:ANTHROPIC_API_KEY -ErrorAction SilentlyContinue

Depois, abra o Claude Code e use /status para conferir a ANTHROPIC_BASE_URL efetiva. Não imprima a credencial inteira no terminal.

Se ainda retornar 401

  • Confirme que copiou a chave completa na área de chaves.
  • Verifique se a URL é exatamente https://api.mandapi.com, sem /v1 no final.
  • Abra um novo terminal depois de editar settings.json.
  • Compare o teste com curl e a chamada claude -p: se só o Claude Code falhar, revise as variáveis carregadas pela sessão.

Veja também como resolver o erro 401 e como configurar ANTHROPIC_BASE_URL.

Criar conta e gerar uma chave MandAPI