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
- Crie uma conta ou entre na sua conta.
- Crie uma chave de API e copie-a uma vez.
- 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 queANTHROPIC_BASE_URLé exatamentehttps://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.
