Claude Code erro 401: diagnóstico e correção

O status 401 Unauthorized significa que o servidor recebeu a chamada, mas não aceitou a autenticação. Portanto, não comece reinstalando o Claude Code: primeiro isole credencial, header e configuração ativa.

Correção rápida com MandAPI

  1. Crie uma conta ou entre na sua conta.
  2. Crie uma chave de API e copie-a uma vez.
  3. Configure o Claude Code:
{
  "env": {
    "ANTHROPIC_BASE_URL": "https://api.mandapi.com",
    "ANTHROPIC_AUTH_TOKEN": "COLE_SUA_CHAVE_MANDAPI_AQUI"
  }
}

Use ~/.claude/settings.json no macOS/Linux e %USERPROFILE%\.claude\settings.json no Windows. Abra um terminal novo após salvar.

claude -p "Responda apenas: autenticação ok"

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

1. Descubra se o token chegou ao servidor

Teste o mesmo endpoint sem passar pelo Claude Code:

curl -sS -o response.json -w "%{http_code}\n" \
  -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-WebRequest -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":"."}]}'
  • 200: token e endpoint funcionam; o conflito está na sessão do Claude Code.
  • 401: gere uma nova chave e confirme que não há espaço ou quebra de linha.
  • 404: na MandAPI, confirme que ANTHROPIC_BASE_URL é exatamente https://api.mandapi.com, sem acrescentar /v1.

2. Remova variáveis conflitantes

Para a MandAPI, mantenha ANTHROPIC_AUTH_TOKEN. Uma ANTHROPIC_API_KEY antiga pode fazer você testar uma credencial diferente da imaginada.

unset ANTHROPIC_API_KEY
Remove-Item Env:ANTHROPIC_API_KEY -ErrorAction SilentlyContinue

Dentro do Claude Code, execute /status e confira se a base ativa é https://api.mandapi.com.

3. Proteja a chave

Não use echo para mostrar o token inteiro, não o coloque em repositórios e não o envie em tickets. Se uma chave foi exposta, revogue-a na área de chaves e crie outra.

Mapa de decisão

Teste Resultado Próxima ação
curl sem token 401 Endpoint está protegendo a rota corretamente
curl com token 401 Recriar chave e revisar Bearer
curl com token 200 Revisar variáveis lidas pelo Claude Code
Claude Code 404 Remover /v1 de ANTHROPIC_BASE_URL

Para entender os dois formatos de credencial, veja AUTH_TOKEN vs API_KEY. Para um diagnóstico completo, use o teste de conexão em seis camadas.

Gerar uma nova chave MandAPI