TokenCode 兼容 Anthropic Messages API 协议,你可以直接使用 Anthropic SDK 或任何兼容 Claude 协议的客户端连接。
https://tokencode.dev
所有端点需要认证:
Anthropic Claude 兼容的 Messages 端点。支持 Claude 模型,也支持通过协议转换调用其他模型。
curl https://tokencode.dev/v1/messages \
-H "x-api-key: sk-your-api-key" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-4-6",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "解释一下量子计算"}
]
}'
请求参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| model | string | 是 | 模型 ID(如 claude-sonnet-4-6) |
| messages | array | 是 | 消息对象数组 |
| max_tokens | integer | 是 | 最大生成 Token 数 |
| stream | boolean | 否 | 是否启用流式响应 |
| temperature | number | 否 | 采样温度(0-1) |
| top_p | number | 否 | 核采样概率 |
| top_k | integer | 否 | Top-K 采样 |
| stop_sequences | array | 否 | 停止序列 |
| system | string/array | 否 | 系统提示词 |
| tools | array | 否 | 工具定义 |
| tool_choice | object | 否 | 工具调用策略 |
响应示例:
{
"id": "msg_abc123",
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "量子计算是一种利用量子力学原理..."
}
],
"model": "claude-sonnet-4-6",
"stop_reason": "end_turn",
"stop_sequence": null,
"usage": {
"input_tokens": 25,
"output_tokens": 128
}
}
设置 "stream": true 时,响应使用 SSE 格式,事件类型与 Anthropic 原生协议一致:
event: message_start
data: {"type":"message_start","message":{"id":"msg_abc123","type":"message","role":"assistant","content":[],"model":"claude-sonnet-4-6","usage":{"input_tokens":25,"output_tokens":0}}}
event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"量子"}}
event: message_stop
data: {"type":"message_stop"}
通过 Anthropic 协议端点调用非 Claude 模型时,TokenCode 会自动完成协议转换:
这意味着你可以在 Claude Code 等 Anthropic 原生客户端中,通过本端点调用 OpenAI、Gemini 等其他模型,无需做任何适配工作。
import anthropic
client = anthropic.Anthropic(
api_key="sk-your-api-key",
base_url="https://tokencode.dev"
)
# 调用 Claude 模型
message = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[{"role": "user", "content": "你好"}]
)
# 调用 OpenAI 模型 — 协议自动转换
message = client.messages.create(
model="gpt-5.5",
max_tokens=1024,
messages=[{"role": "user", "content": "你好"}]
)
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({
apiKey: "sk-your-api-key",
baseURL: "https://tokencode.dev",
});
// 调用 Claude 模型
const message = await client.messages.create({
model: "claude-sonnet-4-6",
max_tokens: 1024,
messages: [{ role: "user", content: "你好" }],
});
支持图片输入(Vision):
message = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[
{
"role": "user",
"content": [
{
"type": "image",
"source": {
"type": "base64",
"media_type": "image/png",
"data": "<base64-encoded-image>"
}
},
{
"type": "text",
"text": "描述这张图片"
}
]
}
]
)
错误响应遵循 Anthropic 错误格式:
{
"type": "error",
"error": {
"type": "invalid_request_error",
"message": "max_tokens: required"
}
}
| HTTP 状态码 | 含义 |
|---|---|
| 400 | 请求参数无效 |
| 401 | 认证失败 — API Key 无效 |
| 403 | 权限不足 |
| 404 | 模型不存在 |
| 429 | 速率限制或余额不足 |
| 500 | 服务器内部错误 |
| 529 | 上游服务过载 |