端点
POST /v1/messages
Claude 全系列的推荐入口,请求与响应格式和 Anthropic Messages API 一致,完整支持 prompt cache、thinking、工具调用与流式输出。以 OpenAI 兼容格式调用 Claude 会丢失这些能力,调用 Claude 请使用本端点。其它文本模型也可以用本端点调用,网关自动转换。
- ·`tool_reference` 块自动剥除:Claude Code 开启按需工具(ToolSearch)后,历史消息里会出现
{"type":"tool_reference",…}块;网关转发给上游前自动删除这些块(删空的tool_result补一行说明文字、删空的消息整条去掉),其余内容逐字节不变,客户端无需处理。自建代理也建议同样剥除。 - ·不支持 `POST /v1/messages/count_tokens`(返回 404);Claude Code 等客户端会自动降级为本地估算。
- ·非流式请求超过约 30 秒可能被网络边缘断开:推理、长输出、大上下文请用
stream: true,详见 快速开始;再把客户端读超时调到 ≥300 秒(Claude 系列)或 ≥150 秒(其它模型),见 创建对话补全 的「客户端读超时」。
请求
请求头
| 请求头 | 取值 | 说明 |
|---|---|---|
x-api-key | sk-xxxxxx | 鉴权。也可以改用 Authorization: Bearer sk-xxxxxx |
anthropic-version | 2023-06-01 | 可省略,省略时自动补默认值 |
content-type | application/json |
最小请求体:
json
{
"model": "claude-sonnet-5",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "用一句话介绍你自己"}
]
}参数
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 模型 ID(推荐 Claude 系),完整列表见 GET /v1/models |
max_tokens | integer | 是 | 最大输出 token 数 |
messages | array | 是 | 对话消息。role 为 user 或 assistant,content 为文本字符串或内容块数组,与 Anthropic 官方格式一致 |
system | string 或数组 | 否 | 系统提示词 |
stream | boolean | 否 | 设为 true 时以 SSE 流式返回,默认 false |
其余字段(temperature、tools、thinking、内容块中的 cache_control 等)按 Anthropic Messages API 格式透传,用法以 Anthropic 官方文档为准。
响应
非流式返回 message 对象:
json
{
"id": "chatcmpl-202610041358…",
"type": "message",
"role": "assistant",
"model": "claude-sonnet-5",
"content": [{"type": "text", "text": "我是 Claude……"}],
"stop_reason": "end_turn",
"usage": {"input_tokens": 159, "output_tokens": 34}
}| 字段 | 说明 |
|---|---|
id | 消息 ID(本站生成,形如 chatcmpl-…,不是 msg_…;只作唯一标识,不要按前缀判断协议) |
type | 固定为 message |
role | 固定为 assistant |
model | 你请求时填的模型 ID(原样返回) |
content | 内容块数组,文本回复在 type 为 text 的块的 text 字段里 |
stop_reason | 停止原因,如 end_turn |
usage | 本次请求的 input_tokens 与 output_tokens;可能另带 billing_usage 等计费明细字段,属于本站内部字段,请勿依赖 |
stream 为 true 时响应为 text/event-stream,事件序列:message_start → content_block_start → 多个 content_block_delta → content_block_stop → message_delta → message_stop。
示例
本页示例为海外模型,地址用国外通道 https://acapi.top;换成国内通道 https://api.acapi.top 同样可用,两个地址均可用,见 调用地址。
基础请求
bash
curl https://acapi.top/v1/messages \
-H "x-api-key: sk-xxxxxx" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "claude-sonnet-5",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "用一句话介绍你自己"}
]
}'流式请求
bash
curl https://acapi.top/v1/messages \
-H "x-api-key: sk-xxxxxx" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "claude-sonnet-5",
"max_tokens": 1024,
"stream": true,
"messages": [{"role": "user", "content": "写一首五言绝句"}]
}'Python SDK
python
from anthropic import Anthropic
client = Anthropic(
api_key="sk-xxxxxx",
base_url="https://acapi.top",
)
resp = client.messages.create(
model="claude-sonnet-5",
max_tokens=1024,
messages=[{"role": "user", "content": "你好"}],
)
print(resp.content[0].text)错误
鉴权失败统一返回 401,type 固定为 new_api_error、code 为空字符串,响应体末尾带本次请求 ID;详见 鉴权。
json
{
"error": {
"code": "",
"message": "本次请求鉴权未通过;仅凭此错误无法确认是 本站令牌还是上游凭据问题,也不能据此判断 云上创造 API Key 已失效。请核对请求鉴权配置,具体以错误 code 与控制台令牌状态为准;持续失败请联系站方。 (request id: 202610040133111467987528268d9d6ACRm4IpF)",
"type": "new_api_error"
}
}