Claude Code API Key 格式是什么?
简答:Claude Code 使用 Anthropic API Key 时,常见格式示例是 <code>sk-ant-api...</code>,环境变量名是 <code>ANTHROPIC_API_KEY</code>。普通官方 API Key 不要自行改成 OAuth 或网关 Token;直连 API 通常使用 <code>Authorization: Bearer</code>,传统的 <code>x-api-key</code> 也仍受支持。若格式看起来正确却 401,先检查当前认证来源、请求头、Base URL 和 Key 状态。
定义:Claude Code API Key 格式,是指用于 Anthropic API 或兼容网关认证的凭据形态、环境变量名称及其对应请求头,而不是某个固定长度或可公开复制的完整字符串。
先看结论:格式、变量名和请求头怎么对应
截至 2026 年 10 月 27 日,Anthropic 平台文档给出的 API Key 示例前缀是 sk-ant-api...。这只是脱敏格式示例,不代表可以补齐或猜测完整密钥。Claude Code 直接使用 Anthropic Console API Key 时,优先检查 ANTHROPIC_API_KEY 是否正确设置。
| 场景 | 应检查的凭据 | 对应配置 | 注意事项 |
|---|---|---|---|
| 直连 Anthropic API | sk-ant-api... 形式的 API Key | ANTHROPIC_API_KEY | Claude Code 会读取该环境变量;官方文档也给出 Authorization: Bearer 和传统 x-api-key 两种请求头说明。 |
| Claude 订阅登录 | 浏览器登录产生的账号认证 | 运行 /login | 它不是 API Key,不能把订阅登录信息当作 API Key 粘贴到环境变量。 |
| 组织自建 LLM 网关 | 网关团队发放的 Key 或 Bearer Token | ANTHROPIC_API_KEY 或 ANTHROPIC_AUTH_TOKEN | 变量取决于网关读取的是 x-api-key 还是 Authorization。 |
关于 API Key 前缀、请求头和密钥管理,可查看 Claude Platform Authentication 文档;关于 Claude Code 环境变量优先级,可查看 Claude Code 环境变量说明。
三种系统配置 ANTHROPIC_API_KEY
如果你使用的是 Anthropic Console API Key,可以先做临时配置,避免一开始就把密钥写入长期配置文件。
macOS、Linux 或 WSL
export ANTHROPIC_API_KEY='你的 API Key'
Windows PowerShell
$env:ANTHROPIC_API_KEY="你的 API Key"
Windows CMD
set ANTHROPIC_API_KEY=你的 API Key
设置后,在同一个终端启动 claude。官方上手文档也使用 ANTHROPIC_API_KEY=sk-ant-… 作为示例。检查变量是否存在时,可分别运行:
- macOS/Linux:
echo $ANTHROPIC_API_KEY - PowerShell:
echo $env:ANTHROPIC_API_KEY - CMD:
echo %ANTHROPIC_API_KEY%
不要把完整 Key 输出到截图、日志或工单中。更换环境变量后应重启终端;Claude Code 官方帮助页还建议在程序内运行 /status,确认当前实际使用的是哪种认证方式。
如果你希望使用 Claude 订阅额度,而不是 API 按量调用,应先取消或清理 ANTHROPIC_API_KEY,再运行 /login。官方说明指出,环境变量 API Key 会优先于已登录的订阅,并可能让请求按 API 账户计费。
ANTHROPIC_API_KEY 和 ANTHROPIC_AUTH_TOKEN 的区别
这两个变量不能仅凭名字互换。对于直连 Anthropic API,普通 API Key 通常配置为 ANTHROPIC_API_KEY。对于组织自建网关,则要根据网关团队提供的认证要求选择变量。
| 网关要求 | Claude Code 变量 | 发送方式 |
|---|---|---|
| Bearer Token 或 Authorization 请求头 | ANTHROPIC_AUTH_TOKEN | Authorization: Bearer <token> |
| API Key 或 x-api-key 请求头 | ANTHROPIC_API_KEY | x-api-key: <key> |
| 凭据需要轮换或从密钥库获取 | apiKeyHelper | 由命令输出凭据,具体行为以 Claude Code 网关文档为准。 |
Claude Code 网关文档明确区分了变量和请求头:ANTHROPIC_AUTH_TOKEN 对应 Authorization,ANTHROPIC_API_KEY 对应 x-api-key。因此,ANTHROPIC_AUTH_TOKEN 不应被泛化成所有官方 API Key 的固定变量;它更适合网关明确要求 Bearer Token 的场景。
另外,直连 Claude API 的官方认证文档说明,Authorization: Bearer <key> 是当前 API Key 示例,传统 x-api-key 仍受支持。这里的 Bearer 是 HTTP 请求头的认证方式,不等于 Claude Code 登录后的 OAuth 订阅凭据。
格式正确但 Claude Code 仍然 401:按顺序排查
- 先确认当前认证来源:在 Claude Code 中运行
/status,看它显示的是 API Key、Auth Token 还是 claude.ai 登录。若同时存在环境变量和订阅登录,环境变量可能优先。 - 确认变量值没有多余字符:检查是否把引号、空格、换行或示例中的省略号一起复制进了变量。只保留实际凭据,不要填写字面量
sk-ant-api...。 - 确认请求头类型:直连官方 API 时,优先按官方文档使用
ANTHROPIC_API_KEY;网关场景则向网关维护者确认读取Authorization还是x-api-key。变量和请求头不匹配时,即使 Key 本身有效也可能返回 401。 - 确认 Base URL:如果设置了
ANTHROPIC_BASE_URL,检查它是否确实是组织网关提供的地址。不要把未核实的第三方地址、模型名或路径直接照抄到配置中;网关文档应明确说明是否需要/v1。 - 确认 Key 状态:在 Claude Console 的 API Keys 页面检查密钥是否处于可用状态。官方文档区分了停用、删除、归档和过期等状态,不能笼统地把所有不可用都称为“过期”。
- 确认工作区范围:部分未绑定具体工作区的 API Key 请求需要额外的
anthropic-workspace-id请求头;这是直连 API 的请求要求,不是 Claude Code 所有配置都必填。 - 重新打开终端:如果你刚修改了系统环境变量,旧的终端和编辑器进程可能仍保留旧值。关闭后重新打开,再运行
claude和/status。
如果网关团队允许直接验证,可以先用其提供的 Base URL、凭据和已授权模型做一次最小请求。返回认证成功的 JSON,或仅出现“模型不存在”类错误,通常说明 URL 和凭据已经被网关接收;若返回 401,再切换并核对变量与请求头映射。具体端点、模型和版本必须以网关团队提供的信息为准。
Key 泄露后怎么处理
如果 API Key 被提交到公开仓库、粘贴进公开工单或出现在共享截图中,不要只删除本地文件。先到创建该 Key 的 Console 页面执行停用或删除,再按当前账户权限创建新 Key,并更新本地环境变量、CI/CD 密钥和网关配置。
官方认证文档说明,停用是可恢复操作,删除会归档密钥;密钥类型、工作区范围和设置的过期时间也会影响其后续状态。不同账户和 Key 类型的界面行为可能不同,因此应以当前 Console 提示和官方文档为准。
- 不要把完整 Key 写入 Git 仓库、项目配置或前端代码。
- 不要在文章、截图或日志中展示完整凭据。
- 优先使用环境变量、密钥管理器或网关的凭据轮换能力。
- 发现异常用量时,同时检查 API 账户、工作区和网关侧的访问记录。
如果你还在配置 Claude Code 的编辑器扩展,可继续参考本站的Claude Code for VS Code 配置与登录排查指南。
常见问题
Claude Code API Key 必须以 sk-ant-api 开头吗?
官方认证文档当前给出的 API Key 脱敏示例是 sk-ant-api...。应把它理解为格式和前缀参考,不要据此猜测完整密钥,也不要把省略号当作实际字符。
Claude Code 应该配置 ANTHROPIC_API_KEY 还是 ANTHROPIC_AUTH_TOKEN?
直连 Anthropic API 的普通 API Key 通常使用 ANTHROPIC_API_KEY。使用组织自建网关时,若网关要求 Authorization Bearer,可使用 ANTHROPIC_AUTH_TOKEN;若要求 x-api-key,则使用 ANTHROPIC_API_KEY。
API Key 格式正确,为什么 Claude Code 还是 401?
按顺序检查 /status 的认证来源、环境变量是否在当前终端生效、变量与请求头是否匹配、Base URL 是否为网关实际地址,以及 Key 是否被停用、删除、归档或受工作区范围限制。
Claude 订阅登录和 API Key 能同时使用吗?
可以同时存在,但环境变量 API Key 可能优先于订阅登录。若目标是使用订阅额度,清理 ANTHROPIC_API_KEY 后重新运行 /login,并用 /status 确认认证来源。
API Key 泄露后只删除环境变量够吗?
不够。应先在 Console 中停用或删除已泄露的 Key,再创建新 Key,并同步更新本地、CI/CD 和网关配置;具体按钮和状态以当前账户页面为准。
相关阅读
参考资料
- Claude Platform Docs:Authentication(platform.claude.com)
- Claude Platform Docs:API overview(platform.claude.com)
- Claude Help Center:Manage API key environment variables in Claude Code(support.claude.com)
- Claude Help Center:Your first day in Claude Code(support.claude.com)
- Claude Code Docs:Connect Claude Code to an LLM gateway(code.claude.com)
- Claude Code Docs:Other LLM gateways(code.claude.com)