APIPace 文档 API 参考

接入 Claude Code

Claude Code 走 Anthropic 协议,几个环境变量就能把它整个指过来,不用改配置文件。

配置

export ANTHROPIC_BASE_URL="https://api.apipace.com"
export ANTHROPIC_AUTH_TOKEN="ak-…"

# 三个别名各指一个真实存在的别名
export ANTHROPIC_MODEL="claude-sonnet-4.6"
export ANTHROPIC_DEFAULT_SONNET_MODEL="claude-sonnet-4.6"
export ANTHROPIC_DEFAULT_OPUS_MODEL="claude-opus-4.6"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="claude-sonnet-4.6"

claude

写进 ~/.zshrc / ~/.bashrc,或者放进 ~/.claude/settings.json 的 env 块,都行。

注意:项目级 .claude/settings.json 里的 env 要等目录信任提示通过之后才生效,会出现「curl 明明通了、Claude Code 还在要你登录」。凭据放 shell 或用户级 settings 最稳。

变量都是干什么的

变量 填什么
ANTHROPIC_BASE_URL https://api.apipace.com,不带 /v1——Claude Code 自己会拼 /v1/messages
ANTHROPIC_AUTH_TOKEN 你的 ak-…。它会被发成 Authorization: Bearer,正是这里需要的
ANTHROPIC_MODEL 默认主模型别名
ANTHROPIC_DEFAULT_HAIKU_MODEL 后台任务用的模型,必须设

别用 ANTHROPIC_API_KEY。 那个变量发的是 x-api-key 头,这里虽然也认,但 Claude Code 在交互模式下会多问你一次确认;ANTHROPIC_AUTH_TOKEN 立刻生效,省事。

为什么一定要设 haiku 那一个

Claude Code 会另外用一个 Haiku 级的小模型跑后台活:会话摘要、/usage 之类的命令处理。不设的话它会去请求一个这里根本没有的型号,你就会看到零星的 MODEL_NOT_FOUND——主对话是好的,偶尔蹦一个错。

这里目前没有 Haiku 类别名,所以把它指到任意一个真实存在的别名即可(上面用的是 claude-sonnet-4.6)。想省钱就指个便宜的,比如 kimi-k3。

(旧变量 ANTHROPIC_SMALL_FAST_MODEL 已经被官方标为废弃,新配置别再用它。)

可选:少一点外联

export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1

关掉自动更新、遥测、发行说明这类非必要请求。国内网络下能少几个卡住的连接。

验证

claude -p "用一个词打招呼"

有输出就通了。想确认这一发真的走了这里:

curl "https://api.apipace.com/v1/user/statement?limit=3" -H "x-api-key: $ANTHROPIC_AUTH_TOKEN"

最新那条流水就是刚才那一发。控制台「调用日志」页也能看到。

会有哪些不一样

指向非官方地址时,Claude Code 自己会关掉一些东西,这跟这里的实现无关,但值得知道:

关于 /cost

Claude Code 的 /cost 用它自己内置的价目表估算,不是这里的扣费。真实花费看 GET /v1/user/statement 或控制台「用量」页。两者对不上是正常的,以账本为准。

另外:Claude Code 是缓存最重的一类负载,而这里对话类别名冷热同价、缓存不打折。长会话的 input_tokens 涨得快,详见计费与账单。

常见问题

AUTH_FAILED —— 环境里还留着别处的 ANTHROPIC_API_KEY,unset 掉它。

MODEL_NOT_FOUND,而且只是偶尔出现 —— 没设 ANTHROPIC_DEFAULT_HAIKU_MODEL,后台任务在打一个不存在的型号。

MODEL_NOT_FOUND,每次都出现 —— ANTHROPIC_MODEL 填的是带日期的原始模型名。这里只认别名,GET /v1/models 看一眼。

连不上 / 一直转圈 —— ANTHROPIC_BASE_URL 多写了 /v1。