O Claude Code de repente lançou uma mensagem como esta e exigiu que você fizesse login?

Not logged in · Please run /login
Invalid API key · Fix external API key
Please run /login · API Error: 401 OAuth token has expired ...
API Error: 400 ... This organization has been disabled.

Estes são erros de "falha na autenticação (quem é você?)", que geralmente aparecem como 401/403. A parte frustrante é como eles parecem desconcertantes — "estou pagando, mas sou rejeitado" ou "funcionava ontem, e agora de repente pede para fazer login". Mas a maioria das causas é manual de escola, e uma vez que você sabe a ordem em que verificar, é uma correção rápida.

O ponto mais importante logo de cara. (1) O problema de autenticação número um é uma variável de ambiente ANTHROPIC_API_KEY sobrepondo silenciosamente o seu login da assinatura (Pro/Max) — que se torna a verdadeira causa de cobranças pay-as-you-go inesperadas, "organization disabled" e "Invalid API key". (2) O ponto de partida é sempre /status para ver "qual credencial está ativa agora". (3) Na dúvida, "unset da chave perdida → /logout → /login" para uma reentrada limpa.

CLAUDE CODE · AUTH PRECEDENCE

As credenciais têm uma "precedência"

— a que está mais acima vence, então uma chave de API do ambiente sobrepõe sua assinatura

↑ Fora da lista (acima de 1): se você entrou em um Claude apps gateway, só o token dele é usado (nenhum de 1–7)
1 Cloud (Bedrock/Agent Platform (Vertex)/Foundry)
2 ANTHROPIC_AUTH_TOKEN (gateways LLM e proxies)
3 ANTHROPIC_API_KEY ← variável de ambiente esta vence = pay-as-you-go
4 apiKeyHelper
5 CLAUDE_CODE_OAUTH_TOKEN (claude setup-token)
6 Perfis da Anthropic e credenciais de federação (CLI ant, Workload Identity Federation)
Um perfil de login, como o do ant auth login, só fica aqui quando nomeado em ANTHROPIC_PROFILE; caso contrário, fica abaixo de 7
7 OAuth da assinatura (/login) o que você realmente quer

Se ANTHROPIC_API_KEY persistir no seu ambiente, ela tem precedência sobre a assinatura.
Verifique primeiro com /status → se for desnecessária, unset ANTHROPIC_API_KEY.

1. O que este erro está dizendo

Autenticação significa "provar quem você é". O Claude Code prova "você" com uma única credencial, como o seu login OAuth da assinatura, uma chave de API ou credenciais de nuvem. Quando essa prova falha, você é rejeitado como 401 (authentication_error) ou 403 (forbidden). As mensagens representativas e seus significados:

MensagemSignificado
Not logged in · Please run /loginNenhuma credencial válida → /login
Invalid API key · Fix external API keyUma chave de uma variável de ambiente ou do apiKeyHelper foi rejeitada pela API (se ANTHROPIC_API_KEY tiver uma quebra de linha ou algo parecido, o Claude Code a barra antes de enviar)
Your ANTHROPIC_API_KEY belongs to a disabled organization · …
API Error: 400 ... This organization has been disabled.
Uma ANTHROPIC_API_KEY obsoleta de uma org desativada está em uso. Se aparecer sem nenhuma variável de ambiente definida, a org desativada é a do seu /login (veja abaixo da tabela)
OAuth token revoked · Please run /login
Please run /login · API Error: 401 OAuth token has expired ...
Saiu de todos os lugares / um admin removeu o acesso (revoked); falha na renovação automática (expired)
API Error: 403 ... forbidden ... Request not allowedAssinatura inativa, falta de papel no Console ou interferência de proxy

A mensagem de organização desativada termina com uma de duas dicas depois do "·". Unset the environment variable to use your subscription instead significa que você ainda tem um login salvo com /login, então remover a chave devolve você à assinatura. Update or unset the environment variable significa que a chave é a sua única credencial: remova-a e execute /login, ou troque-a por uma chave de uma organização ativa. Se nenhuma variável de ambiente estiver definida e o erro continuar aparecendo, a organização desativada é a da conta com que você entrou pelo /login. A referência de erros oficial orienta a contatar o suporte ou entrar com outra conta.

O parecido Login expired · Please run /login é um estado diferente de Not logged in, em que nunca houve credenciais: a renovação automática do login salvo foi recusada e o Claude Code apagou as credenciais. A requisição para na sua máquina sem ser enviada, então, em vez de tentar de novo, faça login outra vez com /login. Explicamos em o que significa Login expired · Please run /login e como resolver.

O texto de Not logged in também muda conforme o ambiente. Nas sessões executadas pelo app Claude Desktop, como a aba Code ou o Cowork, aparece Authentication required · Sign in again to continue, e você entra de novo pelo app. Segundo a referência oficial de erros, se você fizer login com sua conta do claude.ai em outra janela do Claude Code que usa o mesmo diretório de configuração, a sessão interativa que mostra essa mensagem passa a usar esse login sozinha, sem precisar reiniciar. Em versões antigas, porém, a mensagem podia continuar na tela. Segundo o CHANGELOG oficial, a v2.1.281 (23 de setembro de 2026) corrigiu o rodapé “Not logged in · Run /login” e a falta dos conectores do claude.ai que persistiam numa sessão depois do login por outro processo do Claude Code, e a v2.1.286 (30 de setembro) corrigiu sessões no macOS que continuavam mostrando Not logged in ou Login expired depois de um /login bem-sucedido em outra janela quando sobrava um ~/.claude/.credentials.json antigo. No macOS, em versões anteriores à v2.1.286, a documentação oficial orienta reiniciar a sessão que mostra a mensagem.

Quando as configurações da sua organização bloqueiam o login pela assinatura, aparece uma mensagem que começa com Your organization has disabled Claude subscription access. Não é um problema das suas credenciais locais, então executar /login de novo com a mesma conta não resolve. O que fazer está na seção 7.

O hábito essencial: antes de se culpar, execute /status para ver "qual credencial está ativa agora". A maioria dos erros de autenticação decorre de uma credencial não intencional sendo selecionada — e o principal suspeito é a "sobreposição da chave de API" da próxima seção.

2. A grande armadilha — uma chave de API sobrepõe sua assinatura

A documentação oficial afirma que o Claude Code escolhe UMA credencial por "precedência" (veja o destaque acima). A pegadinha é que a variável de ambiente ANTHROPIC_API_KEY fica ACIMA do seu login da assinatura (Pro/Max). Em outras palavras —

A explicação oficial (parafraseada)

"Mesmo com uma assinatura ativa, se ANTHROPIC_API_KEY estiver definida no seu ambiente, ela tem precedência uma vez aprovada. Se essa chave pertencer a uma org desativada ou expirada, a autenticação falha. Execute unset ANTHROPIC_API_KEY para voltar à sua assinatura e verifique /status para confirmar qual está ativa."

Essa sobreposição produz três sintomas "desconcertantes". (1) Cobranças pay-as-you-go inesperadas — o que deveria ser uma assinatura de valor fixo passa a ser cobrado por token via a chave de API. (2) Your ANTHROPIC_API_KEY belongs to a disabled organization (ou This organization has been disabled) — a chave remanescente pertencia a uma org antiga desativada. (3) Invalid API key — a chave está expirada ou incorreta. Nenhum desses é "um problema com o seu login" — são "um problema de uma chave perdida ocupando o seu ambiente". Além disso, enquanto essa sobreposição estiver ativa, os conectores que você adicionou no claude.ai também não são carregados, e pode aparecer um aviso que começa com claude.ai connectors are disabled. Explicamos em o que significa claude.ai connectors are disabled e como resolver.

De onde vem a chave: um export ANTHROPIC_API_KEY=... em ~/.zshrc / ~/.bashrc / ~/.profile; um .env lido pelo direnv, dotenv ou pelo terminal da IDE; um resquício de um trabalho/projeto anterior; um ambiente de CI. No Windows, o perfil do PowerShell ($PROFILE) ou variáveis de ambiente do usuário. Detecte com /status e env | grep ANTHROPIC; corrija com:

# Desfaça temporariamente e inicie
unset ANTHROPIC_API_KEY
claude

# Correção permanente: remova a linha export da config do shell / .env, depois confirme com /status

Observação: no modo interativo, você é perguntado uma vez se deseja usar a chave, e sua escolha é lembrada (mude depois pelo toggle "Use custom API key" em /config, que só aparece enquanto ANTHROPIC_API_KEY estiver definida). No modo não interativo (-p), a chave é sempre usada quando existe, sem perguntar. A menos que você queira deliberadamente usar a chave de API, confirme com /status que a assinatura está ativa.

3. Outras causas

Problemas de autenticação além da sobreposição também costumam ter causas fixas.

OTHER CAUSES

Tropeços de autenticação além da sobreposição

Token revogado / expirado
Saiu de todos os lugares / um admin removeu o acesso / falha na renovação. Entre de novo com /logout → /login.
Relógio do sistema fora de hora
A validação do token depende da hora precisa. Se for pedido login a cada inicialização, acerte o relógio.
Keychain do macOS
Com um Keychain bloqueado / senha divergente, o login vai para o arquivo em texto puro ~/.claude/.credentials.json, e um login do Console que cria uma chave de API falha. Verifique com claude doctor.
Falta de papel no Console (403)
Com conta do Console, confirme um papel "Claude Code" / "Developer"; com Pro/Max, confirme que a assinatura está ativa.
OAuth em WSL/SSH/contêineres
O redirecionamento do navegador não consegue retornar localmente. Cole o código exibido, pressione c para copiar a URL ou defina BROWSER.
Política da organização
O acesso à assinatura desativado é uma configuração do lado do servidor que você não pode sobrepor localmente (seção 7). Já a autenticação por chave de API desativada se resolve na sua máquina: remova a chave (ou o apiKeyHelper) e execute /login.

"Pede login toda vez" → suspeite primeiro de relógio fora de hora ou Keychain.
"Rejeitado com 403" → suspeite de assinatura inativa, papel no Console ou proxy.

Saber onde ficam as credenciais também acelera a recuperação. macOS: Keychain (se o Keychain recusar a gravação, usa o mesmo arquivo do Linux); Linux: ~/.claude/.credentials.json (modo 0600); Windows: %USERPROFILE%\.claude\.credentials.json. /login e /logout gerenciam esse arquivo. Se algo parecer quebrado, em vez de apagá-lo à mão, siga o procedimento oficial: /logout → feche o Claude Code → abra de novo e execute /login. Sair remove todas as credenciais salvas, incluindo os logins de servidores MCP e os valores secretos dos plugins, então você terá de autorizar os servidores MCP e informar esses segredos de novo (solução de problemas de login e autenticação oficial).

4. O fluxo de diagnóstico

Quando travar na autenticação, vá de cima para baixo. A maioria dos casos se resolve até o passo 3.

DIAGNOSE

Isole de cima para baixo

1
/status para ver qual credencial está ativa (assinatura, chave de API ou nuvem).
2
env | grep ANTHROPIC (Windows: $PROFILE / variáveis de ambiente do usuário) para encontrar uma chave perdida.
3
unset ANTHROPIC_API_KEY → reinicie. Torne permanente removendo a linha export da config do shell / .env.
4
Ainda falhando? /logout → feche o Claude Code → /login para uma reautenticação limpa.
5
Acerte o relógio / verifique o Keychain com claude doctor (macOS) / confirme seu papel no Console (orgs).

A regra: "primeiro /status, depois cace a chave perdida."
A maioria dos casos se resolve simplesmente removendo a chave que estava sobrepondo você.

5. Como distinguir de erros parecidos

"Rejeitado / parou" também pode ter causas não relacionadas à autenticação. Separar pelo código HTTP é a maneira confiável.

SintomaO que realmente éCorreção principal
401 / 403 · Invalid API key · Not logged inEste artigo = autenticação (problema de credencial)/status → remova a chave perdida → /login
usage limit reachedCota do plano esgotada (a autenticação está OK)Aguarde o reset; soluções
429 Request rejectedLimite de taxa (uma chave de tier baixo sobrepondo pode causar um 429)Reduza o ritmo; verifique também /status por uma chave perdida
529 / 500Do lado do servidor: sobrecarga / erro internoAguarde e tente de novo; soluções
Credit balance is too lowO saldo pré-pago do Console acabou, ou as requisições estão saindo por uma chave de API do Console quando você queria usar a assinaturaAdicione créditos. Para usar a assinatura, confira a chave em /status e faça unset (execute /login se ainda não entrou)

Um lembrete: 401/403 é o problema "quem é você?" = autenticação. usage limit e Credit balance são problemas de "quantidade / saldo". 429 é taxa, 529/500 é do lado do servidor. Notavelmente, uma chave de API perdida causa não só "falha de autenticação", mas também "cobranças inesperadas", "um 429 em um tier baixo" e "Credit balance is too low" — e é por isso que a resposta à confusão é sempre /status primeiro. O erro de saldo insuficiente é explicado em Your credit balance is too low to access the Anthropic API: solução. Para outros erros comuns, veja a compilação de erros.

6. Checklist de prevenção

Um checklist para parar de travar na autenticação repetidamente.

(1) Se você usa a assinatura, não deixe ANTHROPIC_API_KEY na config do shell / .env (atenção a resquícios de trabalhos/projetos antigos). (2) Crie o hábito de usar /status para confirmar a credencial ativa antes de trabalhos importantes. (3) Para CI, use o CLAUDE_CODE_OAUTH_TOKEN do claude setup-token (ou uma chave de API explícita) em vez do login interativo. (4) Se pedir login toda vez, verifique o relógio do sistema e o Keychain do macOS. (5) Para contas de organização, confirme o papel no Console e o status do plano. (6) No WSL/SSH, conheça o método de colar o código.

7. Your organization has disabled Claude subscription access — sua organização bloqueia o login pela assinatura

Ao entrar no Claude Code com uma conta de assinatura, você pode ser barrado por esta mensagem:

Your organization has disabled Claude subscription access for Claude Code · Use an Anthropic API key instead, or ask your admin to enable access

Ela significa que a organização à qual sua conta pertence (sua organização do Claude) não permite usar o Claude Code com um login de assinatura. Diferente da chave de API remanescente da seção 2 ou do token expirado da seção 3, a causa não está na sua máquina, e sim nas configurações da sua organização.

A explicação oficial (parafraseada)

"É uma configuração da organização do lado do servidor, por isso não pode ser sobreposta por configurações locais, variáveis de ambiente ou flags da CLI. Executar /login de novo com a mesma conta retorna o mesmo erro. No modo não interativo (-p) e no Agent SDK, ele aparece como o código de erro oauth_org_not_allowed."

A documentação oficial lista três caminhos, e qual serve depende do seu papel.

Se você usa como membro de uma organização — peça ao admin para liberar o acesso

O primeiro é pedir ao seu admin que ative o acesso ao Claude Code para a sua organização. Não há nenhuma configuração que você possa mudar do seu lado. Ao pedir, envie o texto exato do erro junto com a conta e a organização que o /status mostra, para deixar claro de qual organização é a configuração. Observe que a referência oficial de erros não diz em qual tela o admin faz essa ativação.

Se você usa uma chave de API — autentique-se pelo Claude Console

O segundo é autenticar-se com uma chave de API do Claude Console em vez da assinatura. É a isso que o "Use an Anthropic API key instead" da mensagem se refere. A preparação segue os passos oficiais de autenticação pelo Claude Console, e você não consegue concluí-la sozinho:

  • Um admin do Console convida você em Settings → Members → Invite e atribui o papel "Claude Code" (só pode criar chaves de API do Claude Code) ou o papel "Developer" (pode criar qualquer tipo de chave de API)
  • Depois de aceitar o convite, execute /login no Claude Code e escolha sua conta do Anthropic Console para entrar. Também dá para iniciar o Claude Code com uma chave criada no Console na variável de ambiente ANTHROPIC_API_KEY (no modo interativo, você é perguntado uma vez se deseja usar essa chave)
  • Execute /status para confirmar que a credencial ativa passou a ser a do Console

Há dois cuidados. O primeiro é o custo: o uso pelo Console é cobrado como uso da API, e não do uso incluído na sua assinatura (o mesmo mecanismo das "cobranças pay-as-you-go inesperadas" da seção 2, desta vez de propósito). O segundo é o erro inverso: se a organização do Console desativou a autenticação por chave de API, aparece Your organization has disabled API key authentication (mensagem exibida a partir da v2.1.169). A correção oficial dele também é a inversa — remover a chave e executar /login para entrar com sua conta do claude.ai.

Se você é o admin da organização

Se você é o admin e não encontra nenhuma opção para ativar o acesso, a documentação oficial orienta a entrar em contato com o suporte da Anthropic.

Fontes: a referência de erros oficial do Claude Code (as entradas deste erro e de Your organization has disabled API key authentication), a seção de autenticação pelo Claude Console da documentação de autenticação e o artigo da Central de Ajuda do Claude Use Claude Code with your Pro or Max plan (tudo consultado em 22 de setembro de 2026).

Resumo

Os erros de autenticação/login do Claude Code (Not logged in / Invalid API key / organization disabled / OAuth token expired, etc.) são, em sua maioria, 401/403 = problemas de credencial. A verdadeira causa mais frequente é "a variável de ambiente ANTHROPIC_API_KEY sobrepondo silenciosamente o seu login da assinatura" — que produz cobranças pay-as-you-go inesperadas, organization disabled e Invalid API key. Portanto, o ponto de partida é sempre /status para ver "qual credencial está ativa".

Diagnostique por (1) /status -> (2) env | grep ANTHROPIC para caçar uma chave perdida -> (3) unset + remover da config do shell -> (4) /logout -> /login -> (5) relógio / Keychain / papel no Console. A maioria dos casos se resolve simplesmente removendo a chave que estava sobrepondo você. Separe por 401/403 = autenticação, usage limit / Credit = quantidade-saldo, 429 = taxa, 529/500 = servidor para evitar a correção errada. Relacionados: usage limit, erros 529/500, compilação de erros do Claude Code.

FAQ

Q. Estou pagando, mas recebo "Invalid API key" ou "organization has been disabled". Por quê?
A. Geralmente, uma variável de ambiente ANTHROPIC_API_KEY está sobrepondo o seu login da assinatura. Se essa chave pertencer a uma org expirada ou desativada, você é rejeitado mesmo com uma assinatura ativa. Encontre-a com env | grep ANTHROPIC, execute unset ANTHROPIC_API_KEY, depois /login e confirme com /status. Remova também a linha export da config do shell (.zshrc, etc.) ou do .env. Se nenhuma variável de ambiente estiver definida e "organization disabled" continuar aparecendo, a organização desativada é a do seu /login: contate o suporte ou entre com outra conta.

Q. Estou em uma assinatura de valor fixo, mas fui cobrado por token.
A. Isto também costuma ser a sobreposição da ANTHROPIC_API_KEY. Quando a chave de API tem precedência, o uso flui para a cobrança por token da API em vez da sua assinatura de valor fixo. Confirme com /status que "a assinatura está ativa"; se a chave de API estiver selecionada, remova-a com unset + limpeza da config. Mantenha-a apenas se você pretende usar a chave de API.

Q. É pedido login toda vez que eu inicio.
A. As causas comuns são (1) relógio do sistema fora de hora (a validação do token depende da hora precisa) e (2) um Keychain do macOS bloqueado / senha divergente que impede gravar no Keychain (o login então vai para o arquivo em texto puro ~/.claude/.credentials.json, e um login do Console que cria uma chave de API falha). Configure o relógio para sincronizar automaticamente e, no macOS, verifique o Keychain com claude doctor. Se persistir, entre de novo de forma limpa com /logout → /login.

Q. O que o /status me diz?
A. Ele mostra qual método de autenticação/credencial está ativo no momento (OAuth da assinatura, ANTHROPIC_API_KEY ou credenciais de nuvem). Como a maioria dos problemas de autenticação é "uma credencial não intencional sendo selecionada", a regra é /status primeiro. A exibição exata varia conforme a versão, então confirme o comportamento atual na documentação oficial.

Q. O login falha no WSL ou SSH porque o navegador não abre.
A. Em configurações remotas, o redirecionamento do navegador não consegue retornar ao callback local. Contorne colando o código de login que o Claude Code exibe, pressionando c para copiar a URL e abrindo-a no navegador local, ou definindo a variável de ambiente BROWSER no WSL2. Conhecer o método de colar o código torna isso confiável.