Skip to content

Messages API

xmAI 原生兼容 Anthropic Messages API(/v1/messages),无需修改代码即可将官方 Anthropic SDK 接入 xmAI。

端点

POST https://api.xmai.sg/v1/messages

认证方式与 /v1/chat/completions 相同,使用 Authorization: Bearer <xmAI-API-Key> 请求头。

最小示例(curl)

bash
curl -X POST https://api.xmai.sg/v1/messages \
  -H "Authorization: Bearer $XMAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-4-6",
    "messages": [{"role": "user", "content": "你好!"}],
    "max_tokens": 1024
  }'

SDK 接入(零代码改动)

使用官方 @anthropic-ai/sdk,只需设置 baseURL

typescript
import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic({
  baseURL: "https://api.xmai.sg",
  apiKey: process.env.XMAI_API_KEY,
});

const message = await client.messages.create({
  model: "claude-sonnet-4-6",
  max_tokens: 1024,
  messages: [{ role: "user", content: "你好,Claude!" }],
});

console.log(message.content[0].text);

计费详情(x_billing_details

响应中的 usage._billing 以及顶层 x_billing_details 字段包含本次请求的计费快照:

json
{
  "usage": {
    "input_tokens": 10,
    "output_tokens": 5,
    "_billing": {
      "dimensions": {
        "input": 10,
        "output": 5
      },
      "cost_micro_usd": 120,
      "saved_micro_usd": 0
    }
  },
  "x_billing_details": {
    "dimensions": { "input": 10, "output": 5 },
    "cost_micro_usd": 120,
    "saved_micro_usd": 0
  }
}
  • usage._billing:遵循 Anthropic 非官方扩展字段约定(下划线前缀)。
  • x_billing_details:顶层镜像字段,与 usage._billing 为同一对象引用。
  • cost_micro_usd:本次请求费用(单位:百万分之一美元)。
  • saved_micro_usd:相比官方价格节省的金额。

支持字段

Anthropic Messages API 完全兼容,包括:

  • modelmessagesmax_tokens(必填)
  • system(字符串或数组,支持 cache_control
  • temperaturetop_ptop_kstop_sequences
  • streamtoolstool_choice
  • thinkingmetadata.user_id

不支持的端点

以下端点暂不支持(在未来独立 Story 中实现):

  • POST /v1/messages/count_tokens
  • POST /v1/messages/batches

The Unified API for LLMs