疑难排查 · Claude Code
Claude Code API Error 401 invalid x-api-key 解决方法
当密钥没有到达它应该访问的端点时,Claude Code 会打印 API Error: 401 invalid x-api-key。引发它的环境变量规则以及修复方法。
你看到的报错
API Error: 401 {"type":"error","error":{"type":"authentication_error","message":"invalid x-api-key"}}为什么会发生
- ANTHROPIC_API_KEY 和 ANTHROPIC_AUTH_TOKEN 同时被设置——两个请求头一起发出,请求被拒绝。空字符串也算已设置。涉及自定义 base URL 时这是最常见的原因。
- 变量设置在与启动 claude 的 shell 不同的 shell 里——一个终端里的 export 在另一个终端里不存在,图形界面启动器也不会读取你的 shell 配置文件。
- ANTHROPIC_BASE_URL 指向一个提供商,而密钥却由另一个签发。有效的密钥发到错误的端点仍然是 401。
- 密钥已被吊销,或者带过期日期的密钥已经过期。
如何解决
- 只保留一个变量并 unset 另一个:对于本网关,使用 ANTHROPIC_AUTH_TOKEN 加 ANTHROPIC_BASE_URL,并确保 ANTHROPIC_API_KEY 没有同时导出。
- 在真正运行 claude 的那个 shell 里验证:启动前打印变量的前几个字符确认它存在。
- 在控制台确认密钥处于激活状态,且 base URL 与密钥的签发方一致。
本网关的可用环境配置
export ANTHROPIC_BASE_URL="https://api.apitoken.sale"
export ANTHROPIC_AUTH_TOKEN="sk-pool-•••"
unset ANTHROPIC_API_KEY # must not be set at the same time
claude相关搜索
claude code 401 custom ANTHROPIC_BASE_URLclaude code invalid api key
常见问题
为什么我刚设置了自定义 ANTHROPIC_BASE_URL,Claude Code 就返回 401?+
通常是 ANTHROPIC_API_KEY 和 ANTHROPIC_AUTH_TOKEN 同时被设置,或者密钥属于与 base URL 指向不同的端点。unset 其中一个变量,并让密钥与端点匹配。
该用 ANTHROPIC_API_KEY 还是 ANTHROPIC_AUTH_TOKEN?+
ANTHROPIC_API_KEY 会变成 x-api-key 请求头;ANTHROPIC_AUTH_TOKEN 会变成 Authorization: Bearer。二者只用其一。对于本网关,文档推荐 ANTHROPIC_AUTH_TOKEN。
同一把密钥在 curl 里能用,在 Claude Code 里却不行——为什么?+
运行 claude 的那个 shell 环境状态不同:存在冲突变量、值已过期,或压根没有值。请在那个确切的 shell 里检查环境。