Skip to content

POST /v1/messages

接口用途

Anthropic Messages API 兼容入口,也是 Claude SDK / Claude Code 最推荐的接入方式之一。

当 API Key 绑定的是 OpenAI 分组时,这条路由会自动切换到 OpenAI 兼容实现;否则进入 Anthropic / Claude 兼容实现。

请求路径

text
POST /v1/messages

完整地址示例:

text
https://your-domain/api/v1/v1/messages

认证方式

  • Authorization: Bearer <API_KEY>,推荐
  • x-api-key: <API_KEY>

路由别名

无根路径别名。

适用平台

  • Anthropic / Claude 分组:原生 Claude 兼容实现
  • OpenAI 分组:自动转到 OpenAI 兼容 Messages 实现
  • Antigravity:在 /antigravity/v1/messages 下有专用入口

上游官方规范

本项目支持说明

  • 自动按分组平台分流
  • 支持流式与非流式
  • 会做 API Key、用户、IP、余额 / 订阅、并发和内容审核检查
  • 会根据分组配置做模型映射与限制
  • 对 Claude Code 客户端有额外上下文识别与版本检查逻辑

参数说明

常用上游标准字段

参数类型必填说明
modelstring上游模型名;本项目也会用它做分组内模型路由与限制判断
messagesarray标准 Anthropic 消息数组
max_tokensnumber最大输出 token 数
streamboolean是否启用流式响应
system`stringarray`
toolsarray工具定义
metadataobject上游兼容元数据

完整字段请参考 Anthropic 官方规范。

KToken 差异与限制

字段 / 行为说明
model不能为空;缺失时返回 400 invalid_request_error
空请求体直接返回 400 Request body is empty
非法 JSON返回 400 Failed to parse request body
stream=true会影响并发占位与流式输出链路
分组平台由 API Key 当前分组决定最终走 OpenAI 还是 Anthropic 实现

响应说明

成功时返回 Anthropic Messages 响应;流式时返回 SSE。

常见成功响应示例:

json
{
  "id": "msg_...",
  "type": "message",
  "role": "assistant",
  "model": "claude-sonnet-4-20250514",
  "content": [
    {
      "type": "text",
      "text": "你好,我可以帮你做什么?"
    }
  ],
  "stop_reason": "end_turn",
  "usage": {
    "input_tokens": 12,
    "output_tokens": 18
  }
}

错误响应

典型错误:

json
{
  "type": "error",
  "error": {
    "type": "invalid_request_error",
    "message": "model is required"
  }
}

示例请求

bash
curl https://your-domain/api/v1/v1/messages \
  -H "Authorization: Bearer sk-xxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-4-20250514",
    "max_tokens": 512,
    "messages": [
      { "role": "user", "content": "请介绍一下你自己" }
    ]
  }'

注意事项

  • 这是 Claude 客户端最稳定的接入入口之一
  • 如果你实际绑定的是 OpenAI 分组,不要假设一定会落到 Anthropic 上游
  • 如果只允许 Claude Code 客户端的分组使用 /v1/chat/completions,代码会直接拒绝