1. 文档
  2. API 参考
  3. Messages

Messages

POSThttps://api.airoutly.com/v1/messages

Anthropic 原生接口,用于调用 Claude 模型,Anthropic SDK 与 Claude Code 使用。SDK 的 Base URL 设为 https://api.airoutly.com,不带 /v1。

认证

发送 x-api-key: <key>(Anthropic SDK 的默认方式)或 Authorization: Bearer <key> 均可,anthropic-version 请求头照常传递。

请求参数

参数说明
modelstring必填模型页上标有 Msg 的模型,例如 claude-sonnet-4-5。
max_tokensinteger必填生成 token 数上限。
messagesarray必填user 与 assistant 交替的对话;content 可包含文本、图片和工具结果。
systemstring | array系统提示词。用数组形式才能加 cache_control。
streamboolean以 SSE 流式返回回复。
toolsarray模型可调用的工具列表。
thinkingobject支持的模型可开启扩展思考,例如 {"type": "enabled", "budget_tokens": 4096}。

请求示例

curl https://api.airoutly.com/v1/messages \
  -H "x-api-key: $AIROUTLY_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-4-5",
    "max_tokens": 1024,
    "messages": [{"role": "user", "content": "Hello"}]
  }'

提示词缓存

用 cache_control 标记较长、会重复使用的内容。写入缓存按缓存写入价计费,之后命中按低得多的缓存读取价计费,两个价格都在各模型的详情页上。

Python
msg = client.messages.create(
    model="claude-sonnet-4-5",
    max_tokens=1024,
    system=[{
        "type": "text",
        "text": LONG_SYSTEM_PROMPT,
        "cache_control": {"type": "ephemeral"},
    }],
    messages=[{"role": "user", "content": "Summarise section 3."}],
)
print(msg.usage.cache_creation_input_tokens, msg.usage.cache_read_input_tokens)

响应

200 OK
{
  "id": "msg_123",
  "type": "message",
  "role": "assistant",
  "model": "claude-sonnet-4-5",
  "content": [{ "type": "text", "text": "Hello! How can I help?" }],
  "stop_reason": "end_turn",
  "usage": { "input_tokens": 9, "output_tokens": 8, "cache_creation_input_tokens": 0, "cache_read_input_tokens": 0 }
}
计算 token 数暂不支持 /v1/messages/count_tokens,请从响应的 usage 读取 token 数。