Claude Code 接第三方 API:配置、分组与报错对照
配置只有两行,真正卡住人的是模型名和分组。本页把两者一次讲完,并附官方文档记录的网关侧报错原因。
配置口径核对自 Anthropic 官方 Claude Code 文档(code.claude.com/docs)· 分组与价格采集 2026-08-20
配置就两件事:ANTHROPIC_BASE_URL 指到网关地址(不要带 /v1),ANTHROPIC_AUTH_TOKEN 放你的令牌。
但真正让人卡住的不是配置,是模型名。在土土金 API 上,claude-opus-4-6 / 4-7 / 4-8、claude-sonnet-5、claude-fable-5、claude-haiku-4-5 以及它们的 -thinking 变体,一共 12 个只存在于 cc 分组;默认分组里没有它们,照抄就是报错。
默认分组里支持 Anthropic 原生协议的只有两个:claude-sonnet-4-6 与 claude-haiku-4-5-20251001。下面给完整对照表。
一、两个变量:地址和凭据
export ANTHROPIC_BASE_URL=https://api.tutujin.com
export ANTHROPIC_AUTH_TOKEN=你的令牌
Windows PowerShell:
$env:ANTHROPIC_BASE_URL = "https://api.tutujin.com"
$env:ANTHROPIC_AUTH_TOKEN = "你的令牌"
就这两行。设置完重开一个终端跑 claude,在状态里应该能看到 base URL 与凭据来源。
二、AUTH_TOKEN 还是 API_KEY:区别在 HTTP 头
这是最多教程讲不清的一点。按 Anthropic 官方文档,两个变量的差别不是「哪个更正式」,而是凭据被放进哪个请求头:
| 变量 | 凭据发送位置 | 什么时候用 |
|---|---|---|
ANTHROPIC_AUTH_TOKEN | Authorization: Bearer <key> | 网关说「bearer token / Authorization 头」时 |
ANTHROPIC_API_KEY | x-api-key: <key> | 网关说「API key / x-api-key」时 |
apiKeyHelper(settings 里的命令) | 两个头都发 | 凭据需要动态获取 / 会过期时 |
土土金 API 读的是 Authorization: Bearer(与 OpenAI 协议一致),所以用 ANTHROPIC_AUTH_TOKEN。官方文档的建议也是:不确定就先用 ANTHROPIC_AUTH_TOKEN,如果验证请求返回 401 再换另一个。
另外两条来自官方文档、值得记住的行为:
- 设了凭据变量之后,它优先于已保存的 claude.ai 登录。用
ANTHROPIC_AUTH_TOKEN立即生效;用ANTHROPIC_API_KEY会在交互模式下弹一次确认。 - 登录态和凭据变量同时存在时,启动会出一条「两个凭据来源」的告警。要它闭嘴就退出 claude.ai 登录,或干脆不设变量。
三、BASE_URL 千万不要带 /v1
Claude Code 会自己在 base URL 后面拼 /v1/messages——官方文档给出的验证命令就是 curl $ANTHROPIC_BASE_URL/v1/messages。所以:
| 写法 | 结果 |
|---|---|
https://api.tutujin.com | ✅ 实际请求 https://api.tutujin.com/v1/messages |
https://api.tutujin.com/v1 | ❌ 实际请求 /v1/v1/messages → 404 |
https://api.tutujin.com/v1/messages | ❌ 拼成 /v1/messages/v1/messages → 404 |
和 OpenAI SDK 正好相反:OpenAI SDK 的 base_url 必须带 /v1,Claude Code 的 ANTHROPIC_BASE_URL 必须不带。同一个人在两边配置时,这是最常见的互相串味点。参见 SDK 迁移页。
四、写进 settings.json(持久生效)
环境变量只在当前终端会话有效。要让它在所有地方生效,写进 Claude Code 的 settings 文件的 env 块:
// ~/.claude/settings.json(用户级,对所有项目生效)
{
"env": {
"ANTHROPIC_BASE_URL": "https://api.tutujin.com",
"ANTHROPIC_AUTH_TOKEN": "你的令牌"
}
}
settings 文件的作用域按官方文档分为四层:用户级 ~/.claude/settings.json、项目级 .claude/settings.json(会进 git,不要把令牌写这里)、本地 .claude/settings.local.json(默认 gitignore)、以及由管理员下发的托管配置。
如果令牌会过期或来自密钥库,用 apiKeyHelper:让它执行一条只输出凭据的命令,Claude Code 默认缓存 5 分钟、遇 401 会重新执行。
五、验证连通:一条 curl 就够
官方文档给的验证方式,换成本站地址后是这样:
curl -X POST "$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-sonnet-4-6","max_tokens":1,
"messages":[{"role":"user","content":"."}]}'
| 返回 | 含义 |
|---|---|
以 {"id":"msg_ 开头、含 content 字段 | ✅ 地址与凭据都对 |
| 报「模型未知」之类的错 | ✅ 仍然算通过——网关已经鉴权成功才轮到拒模型名,说明 URL 和凭据没问题 |
401 | ❌ 凭据被拒:换另一个凭据变量再试,或检查令牌是否有效 |
404 | ❌ BASE_URL 路径写错(多半是带了 /v1) |
| 返回 HTML | ❌ 请求打到了网页而不是 API |
六、模型分组可用性表(本页核心)
下表全部取自 2026-08-20 的 /api/pricing。「原生协议」一列指该模型是否声明支持 /v1/messages——Claude Code 走的就是这个端点,所以这一列为「否」的模型,即使在你的分组里也不能给 Claude Code 用。
| 模型名 | default 分组 | 原生协议 /v1/messages | 计费 | 价格 |
|---|---|---|---|---|
claude-sonnet-4-6 | ✅ 有 | ✅ | 按次 | $0.025 / 次 ≈ ¥0.10 |
claude-haiku-4-5-20251001 | ✅ 有 | ✅ | 按 token | $1 / $5 per 1M(¥4 / ¥20) |
claude-sonnet-4-5-20250929 | ✅ 有 | ❌ 否 | 按 token | $3 / $15 per 1M(¥12 / ¥60) |
claude-3-7-sonnet-20250219 | ✅ 有 | ❌ 否 | 按 token | $3 / $15 per 1M |
claude-3-5-haiku-20241022 | ✅ 有 | ❌ 否 | 按 token | $1 / $5 per 1M |
claude-opus-4-1-20250805-thinking | ✅ 有 | ❌ 否 | 按 token | $15 / $75 per 1M |
claude-opus-4-6 / 4-8 | ❌ 仅 cc | ✅ | 按 token | $5 / $25 per 1M(¥20 / ¥100) |
claude-opus-4-7 | ❌ 仅 cc | ✅ | 按 token | $75 / $375 per 1M |
claude-sonnet-5 | ❌ 仅 cc | ✅ | 按 token | $2 / $10 per 1M(¥8 / ¥40) |
claude-fable-5 | ❌ 仅 cc | ✅ | 按 token | $75 / $75 per 1M |
claude-haiku-4-5(不带日期) | ❌ 仅 cc | ✅ | 按 token | $1 / $5 per 1M |
claude-opus-4-6/4-7/4-8-thinking、claude-haiku-4-5(-20251001)-thinking | ❌ 仅 cc | ✅ | 按 token | $75 / $375 per 1M |
claude-sonnet-4-6-thinking | ❌ 仅 cc | ✅ | 按次 | $0.025 / 次 ≈ ¥0.10 |
两条必须照直说的事实:
cc分组的group_ratio是 1.2,即同样的 token 用量,在 cc 分组要多付 20%。- cc 分组怎么开通,公开数据里查不到。本页不做任何推断,请联系客服确认。
注意 claude-sonnet-4-6 在这里是按次计费(quota_type=1),与按 token 的 4-5 系列计价逻辑完全不同。孰优孰劣取决于你的上下文长度,选型前请自己到 /api/pricing 核对,本页不做推荐。
七、模型不在 /model 选择器里怎么办
Claude Code 的模型选择器有一份内置列表,网关自有的模型名不在里面。官方提供了网关模型发现:
export CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1
开启后 Claude Code 会在启动时向网关查询模型列表,查到的会以 From gateway 标签出现在 /model 里。用 claude --debug 可以在调试日志里看到 [gatewayDiscovery] 的结果(成功会记录缓存了几个模型,404 / 超时也会记录)。
这个开关是否能在本站生效,取决于网关是否实现了对应的模型发现接口,我们没有验证过。发现不生效时,直接用上表里的模型名即可。
八、成本怎么算
不给「月均多少钱」这种编出来的数字,只给单价和算法。以 default 分组、按 token 计费的 claude-haiku-4-5-20251001 为例(输入 $1、输出 $5 每百万 token,cache_ratio = 0.1):
一次「3 万 token 输入 + 3 千 token 输出」的会话:
输入 30000/1e6 × $1 = $0.030 → ¥0.12
输出 3000/1e6 × $5 = $0.015 → ¥0.06
合计 $0.045 = 22500 quota → ¥0.18
若其中 2.4 万 token 命中提示缓存(×0.1):
输入 = 6000/1e6×$1 + 24000/1e6×$1×0.1 = $0.0084 → ¥0.034
把你自己一天的真实 token 用量代进去就是你的成本。控制台「日志」里能看到每次调用扣了多少 quota,直接对账即可。换算原理见计费拆解。
九、报错对照表
| 现象 | 原因 | 怎么修 |
|---|---|---|
401,提示 token 无效或无法识别 | 凭据不对,或放在了网关不读的那个头里 | 换用另一个凭据变量(AUTH_TOKEN ↔ API_KEY);确认令牌未删除、余额充足 |
404 | ANTHROPIC_BASE_URL 带了 /v1 或写到了具体路径 | 只填 https://api.tutujin.com |
| 提示模型不存在 / 无权限 | 模型不在你的分组(多半是 cc 独占那 12 个) | 回到第六节的表换模型名 |
| 启动告警:同时存在两个凭据来源 | claude.ai 登录与凭据变量都在 | 退出登录,或接受告警(请求会走变量) |
400,报 context_management / Extra inputs are not permitted 等未知字段 | 网关把请求转给了不接受这些字段的上游 | 属网关侧兼容问题,反馈给客服;短期可换模型规避 |
400,报 thinking / adaptive(如 Input tag 'adaptive' found) | 上游不接受 Claude 4.6 起使用的自适应推理参数 | 官方给的规避是设 CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1 |
400,报上下文超限但措辞是网关自己的 | 网关强制的上下文比模型原生窗口小,自动压缩没被触发 | 先 /compact 恢复;可设 CLAUDE_CODE_AUTO_COMPACT_WINDOW 与 CLAUDE_CODE_MAX_OUTPUT_TOKENS |
| 返回 HTTP 200 但内容为空或畸形 | 中间的代理返回了 HTML 错误页或登录页 | 检查是否有公司代理 / VPN 劫持 |
十、三条必须知道的限制
- Anthropic 不为第三方网关背书。官方文档明确写着:Anthropic 不认可、不维护、不审计第三方网关产品,也不支持通过网关把 Claude Code 路由到非 Claude 模型。选择第三方网关是你自己的技术决策。
- 部分依赖 claude.ai 身份的功能会不可用。官方文档写明:只要
ANTHROPIC_API_KEY、ANTHROPIC_AUTH_TOKEN或apiKeyHelper处于激活状态,Remote Control 与语音听写就不可用;ANTHROPIC_BASE_URL指向非 Anthropic 主机时 Remote Control 同样被禁用。 - 功能能不能完整跑通,取决于网关的转发实现。Claude Code 每次发版都会加新字段,网关没跟上就会出现上面第九节那类 400。本页不承诺 Claude Code 的所有功能都能在本站正常工作,接生产前请自己跑一轮真实任务验证。
常见问题
「有没有不降智的 Claude 中转?」
这个问题没法用一句承诺回答,能给你的是可核查的东西:每个模型名、所属分组、计费方式、倍率都在公开的 /api/pricing 上,你可以在下单前逐条核对;上表已经把「哪些是默认分组能用的、哪些只在 cc」摊开了。质量本身我们不做承诺——请自己用真实任务对比,这也是选任何中转站都该做的事。
ANTHROPIC_AUTH_TOKEN 和 ANTHROPIC_API_KEY 配哪个?
看网关读哪个头:前者走 Authorization: Bearer,后者走 x-api-key。土土金 API 用前者。放错头的表现就是 401。
为什么我填 claude-opus-4-6 报错?
它只在 cc 分组,默认分组令牌没权限。只在 cc 的最新一代 Claude 共 12 个(见第六节)。cc 分组怎么开通,公开数据里查不到,请联系客服确认。
用 Anthropic 官方 SDK 要改代码吗?
请求结构不用改,/v1/messages 是真实路由(无效 key 探测返回 401 而非 404)。把 SDK 的 base URL 指到 https://api.tutujin.com、key 换成令牌即可,但模型必须是第六节表里「原生协议 ✅」且在你分组内的那些。
Claude Code 一天大概花多少钱?
我们不给月均估算,只给单价与算法(第八节)。你自己一天的 token 用量代进去,就是你的成本;控制台日志里能看到每次调用的真实扣费。