Claude Code 接入第三方 API:配置、验证与排错
简答:可以,但第三方服务必须提供 Claude Code 能调用的 Anthropic Messages API 兼容接口。最短流程是:先确认服务商给出的 Base URL、认证请求头和模型 ID,再设置 ANTHROPIC_BASE_URL 与对应 Key,重启 Claude Code,使用 `claude -p` 发起最小请求;AnyRouter 的当前接口地址、Key 创建位置和可用模型列表本文不作未经核实的断言。
定义:Claude Code 接入第三方 API,是把 Claude Code 的请求通过 Anthropic 兼容的 API 网关转发到其他模型服务,而不是把 Claude 订阅自动转换成第三方 API 余额。
先看结论:只核对 4 项,别直接猜地址
本文由非 AnyRouter 官方站点整理,AnyRouter 在这里仅作为第三方 API 背景示例。Anthropic 官方文档确认,Claude Code 可以通过 ANTHROPIC_BASE_URL 连接 LLM 网关,并使用 ANTHROPIC_AUTH_TOKEN 或 ANTHROPIC_API_KEY 等凭据;但网关自己的地址、请求头、模型映射和账户规则必须以该服务当前文档或控制台为准。参考 Claude Code LLM Gateway 配置文档。
| 要核对的项目 | 能否直接照抄 | 核验方式 |
|---|---|---|
| API Base URL | 不能猜 | 查看服务商 API 文档,确认是否已经包含版本路径,避免重复追加 /v1。 |
| 认证变量 | 变量名可参考官方,值不能公开 | 确认服务要求 Authorization、X-Api-Key 或其他请求头。 |
| 模型 ID | 不能用想当然的名称 | 从控制台或模型列表复制完整 ID,确认网关是否支持 Claude Code 所需能力。 |
| 响应格式 | 不能只测网页状态码 | 发起一次最小 Messages API 请求,检查是否返回有效文本或 Claude Code 可识别的响应。 |
如果服务商没有明确写出 Anthropic Messages API 兼容、认证方式和模型 ID,先不要把它当作可用配置。AnyRouter 当前的准确 Base URL、Key 入口、模型清单和是否需要追加 /v1,本次资料无法稳定核实。
最短配置流程:环境变量优先,先做一次最小验证
- 确认 Claude Code 已安装。官方安装文档列出的标准 npm 安装命令是
npm install -g @anthropic-ai/claude-code;安装后可用claude doctor检查安装状态和版本,具体安装方式见 Claude Code 官方设置文档。 - 向 API 服务商确认三项参数。记录 Base URL、Key 的请求头要求和模型 ID。不要因为某个地址能打开网页,就认定它是 API 根地址。
- 在当前终端设置变量。下面的地址、Key 和模型名都是占位符,不能直接当成 AnyRouter 的真实值。
export ANTHROPIC_BASE_URL="https://api.example.com"
export ANTHROPIC_AUTH_TOKEN="替换为你的_API_Key"
export ANTHROPIC_MODEL="替换为服务商提供的模型_ID"
Anthropic 官方网关文档给出了使用 ANTHROPIC_AUTH_TOKEN 和统一 Base URL 的配置形态,并说明静态令牌会作为认证信息发送;如果同时存在多个认证来源,应先清理旧变量,避免 Claude Code 继续读取旧凭据。不要把真实 Key 写进网页前端、Git 仓库、截图、命令历史或公开日志。
设置完成后,在项目目录重启 Claude Code,并先执行一个低风险测试:claude -p "只回复:连接测试成功" --output-format json。官方 CLI 文档确认了 -p、--output-format json 和 --verbose 等参数,可参考 Claude Code CLI Reference。成功判定不是“程序启动了”,而是返回结构化结果且没有 401、404 或模型不支持错误。
macOS、Linux 与 Windows 的配置写法
macOS 或 Linux:当前终端临时配置
export ANTHROPIC_BASE_URL="https://你的服务商_API_根地址"
export ANTHROPIC_AUTH_TOKEN="你的_Key"
export ANTHROPIC_MODEL="控制台中的模型_ID"
这种方式只影响当前终端会话,适合先验证。若要长期使用,应根据系统的安全凭据管理方式保存变量,避免直接把 Key 写进项目文件。
Windows PowerShell:当前会话配置
$env:ANTHROPIC_BASE_URL="https://你的服务商_API_根地址"
$env:ANTHROPIC_AUTH_TOKEN="你的_Key"
$env:ANTHROPIC_MODEL="控制台中的模型_ID"
Claude Code 在 Windows 上的运行方式还取决于 WSL 或 Git for Windows 环境;官方设置文档明确列出这些支持路径,因此不要把 PowerShell、WSL 和 Git Bash 的变量混用。
settings.json:适合固定配置,但先合并已有内容
Claude Code 官方网关文档展示了在 settings 配置中使用 env 的形式。可以按下面结构合并,不要覆盖原有的权限、MCP 或其他设置:
{"env":{"ANTHROPIC_BASE_URL":"https://你的服务商_API_根地址","ANTHROPIC_AUTH_TOKEN":"你的_Key","ANTHROPIC_MODEL":"控制台中的模型_ID"}}
如果服务商要求的是 ANTHROPIC_API_KEY 而不是 ANTHROPIC_AUTH_TOKEN,应以其文档为准,不要同时填入两个可能冲突的变量。AnyRouter 是否接受哪一种请求头、是否需要额外字段,本次资料未核实。
模型名、登录提示与常见错误怎么定位
仍要求登录:先检查旧的 Anthropic 登录状态和环境变量是否同时存在。第三方网关配置不等于 Anthropic Console 或 Claude 订阅登录;当前使用哪种认证来源,应以 Claude Code 当前版本和服务商文档为准。
401:通常先查 Key 是否复制完整、是否已撤销或过期、认证变量是否写错,以及服务商要求的请求头是否匹配。Anthropic API 错误文档将 401 归为认证问题,可参考 Claude API 错误说明。解决方法是重新生成或轮换 Key,并用脱敏后的请求信息确认实际发送的认证方式。
404:优先检查 Base URL 路径。常见问题是把完整的 /v1/messages 当作 Base URL,或在服务商已经提供版本路径后再次追加 /v1。不要凭经验修改,向服务商确认“Claude Code 应填写的根地址”。
400:可能是模型 ID、请求体或兼容能力不匹配。先换成服务商明确列出的模型,并执行最小文本请求;如果最小请求成功,再逐步测试工具调用、流式输出和 MCP。不要把一次普通重试称为断点续传。
429:区分账户额度、服务商限速和上游限流。保存响应体、请求 ID 和 Retry-After,设置有限次数、抖动和总截止时间;不要在没有读取响应体的情况下无限重试。
命令能返回文本但工具调用失败:这只能证明基础文本请求可用,不能证明工具调用、长上下文、提示缓存、MCP 或子代理均受支持。应逐项验证,并以服务商的兼容性说明为准。
安全检查:配置完成后再做这 6 项
- 确认 Key 没有进入项目级配置、Git 提交、Shell 历史、CI 日志或截图。
- 优先使用最小权限和可撤销的 Key;服务商未提供权限或撤销入口时,标记为未核实。
- 把 API 响应中的 Key、Authorization、Cookie 和完整提示内容脱敏后再排错。
- 保留时间、HTTP 状态码、响应体摘要和 request ID,便于区分认证、路径、模型和限流问题。
- 先验证文本请求,再验证流式输出和工具调用,不要一次修改多个变量。
- 模型 ID、价格、余额、并发和限速均属于服务商动态信息,AnyRouter 的相关数据以其当前可核验文档或控制台为准,本文不代为确认。
如果你只是想把 Claude Code 接到一个兼容网关,最稳妥的判断标准是:Base URL 可核验、认证头有明确说明、模型 ID 可复制、最小请求能成功,并且 Key 可以撤销。缺任何一项,都应先停在核验阶段。
常见问题
Claude Code 接入第三方 API 后,还需要登录 Anthropic 吗?
不一定。是否仍出现登录提示,取决于 Claude Code 当前版本、已有登录状态和环境变量优先级。第三方 API 配置不能自动等同于 Anthropic Console 或 Claude 订阅认证;应清理冲突凭据并以当前官方文档为准。
ANTHROPIC_AUTH_TOKEN 和 ANTHROPIC_API_KEY 应该填哪个?
先看服务商要求的认证头。Anthropic 官方网关文档确认这两类环境变量都属于 Claude Code 配置范围,但具体第三方网关接受哪一种、是否映射为 Authorization 或其他请求头,必须由服务商确认。不要为了“都试试”而同时填写。
Base URL 后面要不要加 /v1?
不能统一回答。若服务商给的是 API 根地址,可能需要由客户端拼接路径;若它已经提供带版本的兼容入口,再追加 /v1 可能导致 404。应复制服务商专门给 Claude Code 使用的 Base URL,并先做一次最小请求。
为什么模型名正确,仍然返回 400?
模型 ID 正确只代表路由可能存在,不代表请求能力完全兼容。先用最小文本请求排除模型映射问题,再分别测试工具调用、流式输出和上下文长度;同时查看响应体和 request ID。
AnyRouter 的 Key、模型和 API 地址在哪里看?
本文不对这些动态信息作未经核实的断言。应以该服务当前可访问的控制台、API 文档或客服说明为准,并确认地址、认证头、模型 ID、余额和限速信息彼此一致。