Claude Code 报错 API Error: 403 Request not allowed 怎么解决

请求被服务端直接拒绝了。用官方账号时,多半是网络出口地区或账号状态的问题;用第三方平台时,多半是 Key 没有这个模型的权限。

报错原文

Failed to authenticate. API Error: 403 Request not allowed

有时出现在压缩上下文时:Error during compaction: Failed to authenticate. API Error: 403 Request not allowed

这条报错是什么意思

403 表示服务端收到了请求、认出了你是谁,但不允许这次访问。它和 401(凭据不对)不同,换一个 Key 字符串通常解决不了。

常见原因

  1. 用官方订阅或官方 API 时,网络出口 IP 所在地区不在 Anthropic 支持的范围内。
  2. 官方账号被风控或封禁,或者登录态失效。
  3. 用第三方平台时,这个 Key 没有开通当前模型,或者所在分组不能用这个模型。

怎么排查

  1. 先确认请求发去了哪里:在 Claude Code 里输入 /status。

  2. 如果发去的是官方:检查代理出口所在地区;在 Claude Code 里执行 /logout 再 /login 重新登录。账号被封只能找 Anthropic 申诉。

  3. 如果发去的是第三方平台:用下面的命令绕开 Claude Code 直接请求一次,看平台返回的原始错误,再对照平台的模型列表和 Key 权限:

    curl -sS "$ANTHROPIC_BASE_URL/v1/messages" \
      -H "Authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \
      -H "anthropic-version: 2023-06-01" \
      -H "content-type: application/json" \
      -d '{"model":"claude-opus-5-5","max_tokens":16,"messages":[{"role":"user","content":"hi"}]}'

curl 命令里用的是 Claude Code 的同名环境变量,在设好变量的终端里直接运行即可,Key 不会显示出来。Windows 用户可以在 Git Bash 或 WSL 里运行。

相关报错

配置有问题?

用 配置生成器 重新生成一份环境变量或 settings.json,Key 只在本地拼接。

需要国内能直接连接的 Anthropic 原生协议地址,可以看 TeamoRouter 的 Claude Code 接入文档(利益相关:本站由 TeamoRouter 团队维护,它不是 Anthropic 官方渠道)。