跳到主要内容

Anthropic Claude API 配置指南:Key、鉴权头与 OpenAI 兼容层

Claude API 的注册充值、x-api-key 鉴权、原生端点与 OpenAI 兼容端点的区别,附 curl / Python / Node.js 示例与错误码排查表。

一、简介与适用场景

Anthropic 的 Claude 系列在长文本理解、代码改写与「按指令老老实实做事」这几个维度上口碑很好,是不少人写代码时的首选。和 OpenAI 一样,Claude 官方 API 没有免费额度,必须先充值。

Claude 有一个容易踩坑的地方:它的原生 API 与 OpenAI 协议不是同一套。鉴权头不一样、请求体结构不一样、system 提示词的位置也不一样。官方后来补了一个 OpenAI 兼容端点用于快速迁移,但它只覆盖基础对话能力,工具调用、思考模式这些高级特性仍需走原生接口。搞不清这两者的区别,是新手配置 Claude 失败的头号原因。

适合看这篇的情况:需要 Claude 的长文与代码能力、已有海外支付渠道、或想把现有 OpenAI 代码低成本切到 Claude 上试效果。

二、注册与获取 Key

  1. 打开 Anthropic Console 注册账号并完成手机验证。
  2. 进入 Plans & Billing 充值,账户余额为零时任何调用都会被拒。
  3. 进入 API Keys 页面点击创建,Key 以 sk-ant- 开头。
  4. 同样只在创建时完整显示一次,当场复制保存。

建议为每个用途单独建 Key(本地客户端一个、线上服务一个),这样某个环境泄露时可以精准吊销,不必全部重来。

三、Base URL 与鉴权

Claude 提供两套端点,请按需求二选一:

原生端点(功能完整)

  • Base URL:https://api.anthropic.com
  • 对话路径:/v1/messages
  • 鉴权头:x-api-key: sk-ant-xxxx,注意不是 Authorization: Bearer
  • 必须额外带版本头:anthropic-version: 2023-06-01,漏了会直接报错

OpenAI 兼容端点(便于迁移)

  • Base URL:https://api.anthropic.com/v1
  • 对话路径:/chat/completions
  • 鉴权头:Authorization: Bearer sk-ant-xxxx

再强调一次:原生端点用 x-api-key,兼容端点用 Bearer。把两者混用是 401 的最常见来源。另外原生接口里 max_tokens 是必填字段,OpenAI 那边它是可选的,迁移时最容易漏。

四、客户端接入示例

Cherry Studio 等主流客户端都内置了 Anthropic 供应商选项,直接选它就会自动使用原生协议:

  1. 打开「设置 → 模型服务 → Anthropic」。
  2. API 密钥填 sk-ant- 开头的字符串。
  3. API 地址保持默认 https://api.anthropic.com,不要手动加 /v1。
  4. 若客户端没有 Anthropic 选项,就新建一个 OpenAI 兼容供应商,地址填 https://api.anthropic.com/v1。

五、代码示例

curl(原生端点):

curl https://api.anthropic.com/v1/messages \
  -H "content-type: application/json" \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -d '{
    "model": "claude-sonnet-4-20250514",
    "max_tokens": 1024,
    "messages": [{"role": "user", "content": "用一句话解释什么是 API"}]
  }'

Python(官方 SDK):

import os
import anthropic

client = anthropic.Anthropic(api_key=os.environ["ANTHROPIC_API_KEY"])

resp = client.messages.create(
    model="claude-sonnet-4-20250514",
    max_tokens=1024,
    system="你是一个简洁的技术助手。",
    messages=[{"role": "user", "content": "用一句话解释什么是 API"}],
)
print(resp.content[0].text)

Node.js(走 OpenAI 兼容端点,便于与既有代码共存):

import OpenAI from 'openai';

const client = new OpenAI({
  apiKey: process.env.ANTHROPIC_API_KEY,
  baseURL: 'https://api.anthropic.com/v1',
});

const resp = await client.chat.completions.create({
  model: 'claude-sonnet-4-20250514',
  max_tokens: 1024,
  messages: [{ role: 'user', content: '用一句话解释什么是 API' }],
});
console.log(resp.choices[0].message.content);

六、常见错误排查

错误码现象原因解决方案
401authentication_error原生端点误用了 Authorization: Bearer原生接口改用 x-api-key 头
400提示缺少 anthropic-version没带版本头补上 anthropic-version: 2023-06-01
400max_tokens: field required从 OpenAI 迁移时漏填必填项请求体显式加上 max_tokens
400system 消息被拒把 system 放进了 messages 数组原生接口的 system 是顶层独立字段
404not_found_error模型名写成了不带日期的简称使用完整模型 id,含日期后缀
429rate_limit_error超出账号档位的 RPM 或 TPM指数退避重试,或提升用量等级