Claude Code 自定义 API Base URL 怎么配置?
简答:Claude Code 接入自定义 API,核心是配置 ANTHROPIC_BASE_URL、正确的认证变量和服务端模型 ID。最常见的 404 来自最终路径重复拼接 /v1,最常见的 401 来自 Bearer 与 x-api-key 认证方式混用。由于本次检索未找到 standardcompute.cyou 可核验的公开接口文档,本文不代填该站的真实 Base URL、模型或密钥,只提供按服务商文档核对的通用配置模板。
定义:Claude Code 自定义 API Base URL,是将 Claude Code 的请求路由到一个兼容 Anthropic Messages API 的网关或接口地址。
先确认这 4 项,再开始配置
本文只解决 Claude Code CLI 或 VS Code 扩展连接自定义 API 的问题,不讨论订阅登录、服务商价格或某个平台是否可用。本文为独立配置指南,不代表 Claude Code 或任何接口服务商官方。
| 字段 | 必须确认什么 | 不能直接猜什么 |
|---|---|---|
| 接口协议 | 服务端是否兼容 Anthropic Messages API | 只有 OpenAI Chat Completions 的地址不能直接按本文接入 |
| Base URL | 服务商给出的基础地址、版本前缀和自定义路径 | 不要默认添加或删除 /v1 |
| 认证方式 | Bearer Token、x-api-key 或服务商自定义请求头 | 不要因变量名称相似而混用认证方式 |
| 模型 ID | 网关实际接受的模型字符串 | 不要把 Claude Code 内置模型名称当成网关模型名 |
Claude Code 官方文档要求接入网关时准备 Base URL 和凭据;ANTHROPIC_AUTH_TOKEN 用于 Bearer 认证,ANTHROPIC_API_KEY 用于 API Key 或 x-api-key 认证。可查看Claude Code 连接 LLM 网关官方说明。
本次检索没有找到 standardcompute.cyou 可公开核验的官方接口文档、模型列表或认证说明。因此,本文不会声称该站使用某个真实端点,也不会把占位符写成该站参数。请以你当前账户页面或服务商提供的接口文档为准。
最短配置:先用当前终端验证
首次接入建议只在当前终端设置变量,验证成功后再写入配置文件。这样可以先判断接口、凭据和模型是否可用,避免把配置文件问题与服务端问题混在一起。
如果服务商要求 Authorization: Bearer:
export ANTHROPIC_BASE_URL="https://接口方提供的基础地址"
export ANTHROPIC_AUTH_TOKEN="仅在本机安全环境中读取的凭据"
export ANTHROPIC_MODEL="接口方提供的模型ID"
claude如果服务商要求 x-api-key:
export ANTHROPIC_BASE_URL="https://接口方提供的基础地址"
export ANTHROPIC_API_KEY="仅在本机安全环境中读取的密钥"
export ANTHROPIC_MODEL="接口方提供的模型ID"
claude上面的字符串只是字段位置示意,不是可用密钥。不要把真实密钥粘贴到文章、截图、公开日志、Shell 历史或 Git 仓库中。两种认证变量应按服务商文档二选一;如果旧配置残留了另一种变量,先执行对应的 unset,再重新启动 Claude Code。
官方文档说明,Shell 变量只对当前终端及其启动的程序生效;从桌面、Dock、开始菜单或 VS Code 单独启动的进程,可能看不到该终端变量。详情可查看官方环境变量配置说明。
Windows PowerShell 配置方式
PowerShell 当前会话可以这样配置:
$env:ANTHROPIC_BASE_URL = "https://接口方提供的基础地址"
$env:ANTHROPIC_AUTH_TOKEN = "仅在本机安全环境中读取的凭据"
$env:ANTHROPIC_MODEL = "接口方提供的模型ID"
claude如果服务商要求 x-api-key,将第二行替换为:
$env:ANTHROPIC_API_KEY = "仅在本机安全环境中读取的密钥"检查变量是否非空时,不要打印完整值:
if ($env:ANTHROPIC_BASE_URL) { "BASE_URL 已设置" }
if ($env:ANTHROPIC_AUTH_TOKEN) { "AUTH_TOKEN 已设置" }
if ($env:ANTHROPIC_API_KEY) { "API_KEY 已设置" }如果 PowerShell 能连接而 VS Code 不能连接,优先比较两边实际读取到的 Base URL、认证变量和模型 ID,而不是先更换模型或重复安装客户端。
Base URL 是否包含 /v1:用最终路径核验,不套固定结论
ANTHROPIC_BASE_URL 不应盲目填写完整的 /messages 地址。最终路径取决于 Claude Code 的请求拼接方式和服务商的接口设计,常见情况有以下两类:
| 服务商文档给出的地址 | 直接验证时的写法 | 重点风险 |
|---|---|---|
域名根路径,例如 https://example.com | https://example.com/v1/messages | 服务端可能要求版本前缀,需确认是否由客户端拼接 |
已包含版本前缀,例如 https://example.com/v1 | 按服务商文档确认是否直接请求 /messages | 直接再拼 /v1/messages 可能形成重复版本路径 |
自定义路径,例如 https://example.com/anthropic | 严格按服务商给出的最终 Messages 路径测试 | 不能把其他协议的路径当成 Anthropic 路径 |
Claude Code 官方的网关验证示例使用 $ANTHROPIC_BASE_URL/v1/messages,但这不等于所有网关都应填写相同格式。官方同时展示了带有自定义路径的网关 Base URL,因此正确做法是:先看服务商文档,再用一次最小请求确认最终路径。参考官方网关连接与验证示例。
curl 最小请求:分别验证根路径和已带版本路径
下面的命令只适用于你已经确认最终 URL 的情况。不要直接把两个模板都执行;先根据服务商文档选择一个。命令读取环境变量,不主动打印密钥。
模板 A:服务商给的是不含 /v1 的基础地址。
curl -sS -w '\nHTTP %{http_code}\n' -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":"YOUR_MODEL_ID","max_tokens":1,"messages":[{"role":"user","content":"."}]}'如果接口要求 x-api-key,将认证头替换为:
-H "x-api-key: $ANTHROPIC_API_KEY"模板 B:服务商文档已经给出完整的 Messages 路径。
export FINAL_MESSAGES_URL="https://按接口文档确认的最终地址/v1/messages"
curl -sS -w '\nHTTP %{http_code}\n' -X POST "$FINAL_MESSAGES_URL" \
-H "Authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{"model":"YOUR_MODEL_ID","max_tokens":1,"messages":[{"role":"user","content":"."}]}'如果服务商给出的 Base URL 已经包含 /v1,不要机械执行模板 A。应把最终地址拆开核对,避免出现 /v1/v1/messages。官方验证说明指出,返回包含消息 ID 和 content 的 JSON,通常表示地址和凭据已经通过;返回未知模型则说明请求可能已到达网关,但模型 ID 需要确认;返回 401 则优先检查认证变量和请求头。
验证成功后写入 settings.json:默认不保存明文密钥
官方支持在 settings 文件的 env 块中设置环境变量。全局文件通常是 ~/.claude/settings.json,Windows 为 %USERPROFILE%\.claude\settings.json;项目本地文件可使用 .claude/settings.local.json。官方明确提醒,不要把凭据写入会提交到仓库的项目级 .claude/settings.json。详见Claude Code 环境变量与配置文件参考。
安全起见,下面只展示非敏感字段,不把真实 Token 放进 JSON:
{
"env": {
"ANTHROPIC_BASE_URL": "https://接口方提供的基础地址",
"ANTHROPIC_MODEL": "接口方提供的模型ID"
},
"apiKeyHelper": "/绝对路径/credential-helper"
}apiKeyHelper 应指向能够从凭据管理工具读取密钥的本地命令,并且只向标准输出返回凭据,不要把密钥写死在配置文件中。若手动创建 .claude/settings.local.json,先检查它是否已加入 Git 忽略规则:
git check-ignore -v .claude/settings.local.json如果命令没有返回匹配规则,不要把文件提交到仓库;先补充 Git 忽略规则,再继续使用项目级配置。
用 /status 和实际请求做二次确认
配置后,从设置环境变量的同一个终端启动 claude,在 Claude Code 中运行:
/status官方文档说明,Status 页面在设置了网关地址时会显示 Anthropic base URL;凭据生效时会显示 Auth token、API key 或 apiKeyHelper 对应的来源。随后发送一条普通消息,正常返回且无错误,才算完成端到端验证。参考官方 /status 检查步骤。
如果 curl 成功但 /status 没有自定义地址,说明终端变量没有传入当前会话,或 settings 文件中的值覆盖了 Shell 变量。官方文档指出,同名变量同时存在于 Shell 和 settings 文件时,settings 文件值可能优先,因此需要检查实际配置来源。
VS Code 扩展单独配置,不要假设继承外部终端
Claude Code VS Code 扩展可以在 VS Code 用户设置 JSON 的 claudeCode.environmentVariables 中配置网关变量。官方说明,扩展会在启动前检查这里的凭据;仅写入 ~/.claude/settings.json,不一定能通过扩展自身的登录检查。
{
"claudeCode.environmentVariables": [
{
"name": "ANTHROPIC_BASE_URL",
"value": "https://接口方提供的基础地址"
},
{
"name": "ANTHROPIC_MODEL",
"value": "接口方提供的模型ID"
}
]
}凭据字段建议由 VS Code 的安全凭据能力、系统环境或组织级密钥管理注入,不要把真实密钥提交到工作区设置。配置后重新加载 VS Code,再通过 Claude Code 的 /status 和一次普通请求确认。
401、403、404、429、超时和流式中断排查
| 现象 | 优先核对 | 下一步 |
|---|---|---|
| 401 | 认证变量与服务端要求的请求头是否一致 | Bearer 使用 ANTHROPIC_AUTH_TOKEN;x-api-key 使用 ANTHROPIC_API_KEY |
| 403 | 凭据权限、账户策略、来源限制或网关规则 | 保留错误响应中的 request ID 和状态信息,向接口方确认权限,不要只更换模型 |
| 404 | 最终 URL、版本前缀和 Messages 路径 | 检查是否重复添加 /v1,或服务端是否根本没有 Anthropic Messages API |
| 429 | 速率限制、并发限制或账户额度 | 查看响应头和错误字段,降低并发并按接口方规则重试;不要无限循环重试 |
| 模型不存在 | ANTHROPIC_MODEL 或请求体中的模型 ID | 向服务商确认实际模型字符串;不要使用客户端内置名称替代 |
| 请求超时 | DNS、TLS、网络路径、网关处理时间和本地代理 | 先用最小 curl 验证,再与复杂 Agent、MCP 或编辑器进程区分排查 |
| 流式响应中断 | 网关是否转发 SSE、反向代理缓冲、超时和连接复用 | 先验证非流式最小请求;若非流式成功,再检查网关的流式转发和空闲超时设置 |
| 返回非 Anthropic JSON | 是否接到了登录页、错误页或其他协议端点 | 核对 Content-Type、最终 URL 和接口协议,不要只看 HTTP 状态码 |
Claude Code 官方提醒,网关需要持续兼容客户端新增能力;即使基础文本请求成功,也不代表所有 Claude Code 功能都可用。使用非 Anthropic 主机时,Remote Control 和语音听写等依赖 claude.ai 身份或相关服务的功能可能不可用;这属于功能边界,不等同于 Base URL 配置失败。可查看官方网关功能与限制说明。
配置成功后的安全检查
- 只在本机安全环境中读取 API Key 或网关 Token,不在文章、截图、日志和公开 Issue 中展示完整凭据。
- 不要把明文密钥写入会提交到仓库的
.claude/settings.json、工作区设置或脚本。 - 确认服务商是否说明请求内容、响应内容、错误日志和用量数据的保存与转发策略;公开资料无法确认时,以当前账户页面和服务商文档为准。
- 先完成一次最小请求,再接入 MCP、后台 Agent 或复杂工作流,避免把多个故障源同时引入。
- 如果 API 接入成功但某项功能不可用,先查该功能是否依赖 Anthropic 主机、claude.ai 身份或网关未转发的请求字段。
常见问题
Claude Code 的 ANTHROPIC_BASE_URL 必须填写到 /v1 吗?
没有适用于所有服务的统一写法。应以接口方文档给出的 Base URL 和最终 Messages 路径为准,再用 curl 验证。若根地址加上 /v1/messages 才能访问,不能据此推断所有服务都必须把 /v1 写入变量。
ANTHROPIC_AUTH_TOKEN 和 ANTHROPIC_API_KEY 怎么选?
服务商要求 Bearer Token 或 Authorization 请求头时,选择 ANTHROPIC_AUTH_TOKEN;服务商要求 API Key 或 x-api-key 时,选择 ANTHROPIC_API_KEY。官方文档明确区分了两种请求头,选错时常见结果是 401。
curl 返回模型不存在,是否说明 Base URL 配置失败?
不一定。官方验证说明指出,未知模型错误可能表示请求已经到达网关并通过了凭据验证。此时保留地址和认证配置,向接口方确认实际模型 ID,再重新请求。
为什么 /status 没有显示自定义 Base URL?
常见原因是 Claude Code 没有从设置变量的同一个终端启动,或者 settings 文件中的配置覆盖了 Shell 变量。请从同一终端重新启动 Claude Code,检查 ~/.claude/settings.json、项目级 settings 和 VS Code 用户设置。
配置成功后,MCP 或 Remote Control 一定能用吗?
不一定。基础 Messages API 请求成功,只能证明路由、认证和基础响应链路可用。官方说明 Remote Control 和语音听写等功能有额外的身份或主机依赖,连接非 Anthropic 主机后可能不可用,应按功能分别核对。
参考边界
本文只使用 Claude Code 与 Anthropic 官方文档核对通用配置行为。关于 standardcompute.cyou 的真实 Base URL、认证变量、模型列表、价格、限速和数据策略,本次公开检索未找到可核验的一手接口文档,因此不作具体判断。配置时请以当前账户页面和服务商提供的正式接口说明为准。
常见问题
Claude Code 的 ANTHROPIC_BASE_URL 必须填写到 /v1 吗?
不一定。以接口方文档给出的最终 Messages 路径为准,再用 curl 验证;不要机械套用必须加或绝对不能加 /v1 的结论。
ANTHROPIC_AUTH_TOKEN 和 ANTHROPIC_API_KEY 怎么选?
Bearer Token 或 Authorization 请求头使用 ANTHROPIC_AUTH_TOKEN;API Key 或 x-api-key 请求头使用 ANTHROPIC_API_KEY。认证方式选错时常见结果是 401。
curl 返回模型不存在,是否说明 Base URL 配置失败?
不一定。未知模型错误可能说明请求已经到达网关并通过凭据验证,应向接口方确认实际模型 ID。
为什么 /status 没有显示自定义 Base URL?
通常是变量没有传入当前会话,或 settings 文件覆盖了 Shell 变量。请从同一终端重启 Claude Code,并检查全局、项目级和 VS Code 配置。
接入成功后,MCP 或 Remote Control 一定能用吗?
不一定。基础 Messages API 成功不代表所有功能可用;Remote Control、语音听写等功能可能依赖特定身份或 Anthropic 主机。
相关阅读
参考资料
- Claude Code 官方文档:Connect Claude Code to an LLM gateway(code.claude.com)
- Claude Code 官方文档:Other LLM gateways(code.claude.com)
- Claude Code 官方文档:环境变量与 settings.json 配置参考(code.claude.com)