Claude 原生 Messages 协议通过 /messages 提供,保留原生 message、content block、tool use 和错误语义。
https://api.tokensapi.cn/v1POST /messages请求地址固定,请根据当前页面的参数说明替换模型 ID 和业务输入。
${base_url}/messages使用 Claude-compatible 客户端时同时提供其原生 Header。
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
x-api-key | string | 是 | — | Claude-compatible API Key Header。 |
anthropic-version | string | 是 | 2023-06-01 | Claude 协议版本 Header。 |
Content-Type | string | 是 | application/json | 请求体使用 JSON 格式。 |
max_tokens 和 messages 是必填字段;其余字段仅在模型支持时发送。
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
model | string | 是 | — | Claude 或兼容模型 ID。 |
max_tokens | integer | 是 | — | 本次生成允许的最大输出 token 数。 |
messages | array | 是 | — | Claude Messages 消息数组。 |
system | string | array | 否 | — | 系统指令。 |
tools / tool_choice | array | object | 否 | — | 工具定义及选择策略。 |
thinking | object | 否 | — | 扩展推理配置。 |
output_config | object | 否 | — | 输出格式和限制配置。 |
cache_control | object | 否 | — | 提示缓存控制。 |
context_management | object | 否 | — | 上下文管理配置。 |
stream | boolean | 否 | — | 启用 Claude 原生 SSE。 |
本接口支持路由和软粘性 Session。Session ID 最长 256 个字符,读取顺序为顶层 session_id、extra_body.session_id、X-Session-Id。
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
extra_body.provider | object | 否 | — | 服务商过滤、范围、排序和优先顺序的容器。 可选值 / 约束:ignore、*_range、only、sort、order、allow_fallbacks。 |
session_id | string | 否 | — | 顶层 Session ID;适用于同一模型的连续对话或任务。 可选值 / 约束:最长 256 个字符。 |
extra_body.session_id | string | 否 | — | 顶层 session_id 未提供时使用的 Session ID。 可选值 / 约束:最长 256 个字符。 |
X-Session-Id | string | 否 | — | body 中未提供 Session ID 时使用的请求 Header。 可选值 / 约束:最长 256 个字符。 |
extra_body.provider.allow_fallbacks | boolean | 否 | — | 非空 only 时默认 false;否则默认 true。 可选值 / 约束:true 可放宽 only、ranges、sort、order;不会放宽 ignore、权限、端点能力或通道可用性。 |
以下字段属于 HTTP 响应 Header,不属于 JSON、SSE 事件或二进制响应 body。网络层失败而未进入网关时不保证返回。
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
X-Client-Request-Id | string | 否 | — | 调用方在请求中提供时回显;未提供时网关不会自动生成。 |
X-Upstream-Request-Id | string | 否 | — | 通常用于网关请求追踪,不代表 provider 的原始 request ID。 |
错误 body 遵循所选协议。HTTP 400 表示 invalid_request,HTTP 402 表示可用余额或配额不足,HTTP 429 表示限流。
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
error.code | string | 否 | — | 协议定义的机器可读错误码。 |
error.message | string | 否 | — | 可读错误说明。 |
Claude 原生流以 message_stop 事件结束,不追加 data: [DONE]。如果流被中断,message_stop 可能不会到达。
示例使用占位符,请替换为模型详情页中当前可用的 model ID,并将 API Key 保存在服务端环境变量中。
curl https://api.tokensapi.cn/v1/messages \
-H "x-api-key: $TOKEN_MARKET_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{"model":"<MODEL_ID>","max_tokens":512,"messages":[{"role":"user","content":"Hello"}],"extra_body":{"session_id":"conversation-<UUID>","provider":{"sort":["latency"]}}}'