Anthropic Messages API

接口

POST /v1/messages
x-api-key: tp_your_api_key
anthropic-version: 2023-06-01
Content-Type: application/json

也可以使用 TokenPostie 标准 Bearer 鉴权:

Authorization: Bearer tp_your_api_key

使用前提

先调用 GET /v1/models,把返回的 data[].id 填入 model。不要猜测模型名,也不要把文档里的占位符当成真实模型。

请求体

字段必填说明
model是GET /v1/models 返回且 capability 为 llm 的模型 id
max_tokens是最大输出 token 数,包含思考和正文,必须是正整数且不超过模型最大输出
messages是支持 user 和 assistant
system否系统提示词,支持字符串或 text block 数组
temperature否目标模型支持时透传
top_p否取值大于 0 且不超过 1;实际采样行为由模型决定
thinking否原生 Messages 渠道支持时保留原始思考配置
output_config.effort否原生渠道的思考档位
tools、tool_choice否原生渠道支持时保留工具定义、选择和历史

纯文本内容可以使用字符串或 text block:

{ "type": "text", "text": "你好" }

示例

curl -X POST "https://newapi.yxhhkj.com/v1/messages" \
  -H "x-api-key: tp_your_api_key" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "model_from_models_api",
    "max_tokens": 1024,
    "system": "请保持简洁。",
    "messages": [
      {
        "role": "user",
        "content": [
          { "type": "text", "text": "请用一句话介绍 TokenPostie" }
        ]
      }
    ]
  }'

流式响应

请求支持 stream: true。原生渠道返回 Messages SSE,保留思考、签名和工具参数增量,以 message_stop 结束,不附加 Chat 的 [DONE]。流中上游异常转换成安全的 event: error;缺少正常终态不会记为成功账单。

当前限制

渠道已配置原生 Messages 端点时,网关直接请求该端点,不转换成 Chat。未配置原生端点的旧渠道只支持纯文本兼容转换,不支持工具和思考历史。

有原生渠道时默认不回退到未明确允许转换的 Chat 渠道。可使用 GET /v1/models,携带 anthropic-version 和 x-api-key 获取 Messages 客户端格式的模型列表。

DeepSeek 原生渠道的额外边界:

  • thinking.type 使用 enabled 或 disabled,不支持 adaptive。
  • 默认开启思考。指定 tool_choice: {"type":"tool","name":"..."} 时应明确设置 thinking: {"type":"disabled"},否则返回指向 tool_choice 的参数错误。
  • 使用 output_config.effort 控制思考档位;上游不执行 thinking.budget_tokens,网关明确拒绝该字段,避免误以为预算生效。
  • 上游不执行 top_k,网关明确拒绝该字段。
  • output_config 暂只支持 effort,不提供 JSON Schema 输出保证。
  • 图片、文档、缓存写入控制和服务端会话不属于当前文本接口验收范围。

如果请求包含这些字段,TokenPostie 会在调用上游前返回明确错误。请保留响应里的请求 ID,方便排障。

计费口径

该入口共用余额、限额、请求日志和账单。原生 Messages 的 input_tokens 不包含缓存读写,平台输入总量为该字段与缓存读写量之和;output_tokens 已包含思考,不再重复累加。上游未报告独立思考计数时不从文本猜测该数字。计费以确认用量为准,不以请求前估算值为准。达到 max_tokens 后可能只产生思考而没有正文,调用方应检查 stop_reason。