> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sub2api.ruilinlu.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Sub2API Anthropic Messages API 接口说明

> 通过 Sub2API 使用 Anthropic 原生 Messages API 调用 Claude 模型，支持原生 Anthropic SDK 格式直接对接。

Sub2API 支持 Anthropic 原生 Messages API 格式，允许你直接使用 anthropic SDK 或原生 HTTP 请求调用 Claude 系列模型。相比使用 OpenAI 兼容格式，原生 Messages API 提供了更符合 Anthropic 设计哲学的接口结构。

## 接口端点

**POST** `https://sub2api.ruilinlu.com/v1/messages`

<Note>
  TODO: 请在后台确认实际配置后填写正确的端点路径。
</Note>

## 认证方式

Anthropic Messages API 支持以下两种认证方式:

<Tabs>
  <Tab title="x-api-key Header">
    ```bash theme={null}
    x-api-key: YOUR_API_KEY
    ```
  </Tab>

  <Tab title="Authorization Bearer">
    ```bash theme={null}
    Authorization: Bearer YOUR_API_KEY
    ```
  </Tab>
</Tabs>

## 请求参数

<ParamField body="model" type="string" required>
  Claude 模型名称，例如 `claude-3-5-sonnet`、`claude-3-opus` 等。具体可用模型请参考 <a href="/models/claude">Claude 模型列表</a>。
</ParamField>

<ParamField body="messages" type="array" required>
  对话消息数组。每条消息包含:

  * `role`: 消息角色，可选 `user` 或 `assistant`
  * `content`: 消息内容(字符串)

  ```json theme={null}
  [
    {"role": "user", "content": "你好，请介绍一下自己。"}
  ]
  ```
</ParamField>

<ParamField body="max_tokens" type="integer" required>
  生成内容的最大 Token 数量。**Anthropic 格式中此参数为必填项，不能省略。**
</ParamField>

<ParamField body="system" type="string">
  系统提示词，用于设定 AI 的行为和角色。与 OpenAI 格式不同，Anthropic 格式中 system prompt 是顶层字段，而非 `messages` 数组中的第一条消息。
</ParamField>

## 完整请求示例

以下请求展示了带系统提示和多条对话消息的结构:

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST https://sub2api.ruilinlu.com/v1/messages \
    -H "Content-Type: application/json" \
    -H "x-api-key: YOUR_API_KEY" \
    -d '{
      "model": "claude-3-5-sonnet",
      "system": "你是一个专业的技术文档撰写助手。",
      "messages": [
        {"role": "user", "content": "请帮我写一段 API 文档的简介。"},
        {"role": "assistant", "content": "好的，请问是关于什么主题的 API？"},
        {"role": "user", "content": "是关于 AI 模型网关的 REST API。"}
      ],
      "max_tokens": 1024
    }'
  ```

  ```python Python (anthropic SDK) theme={null}
  from anthropic import Anthropic

  client = Anthropic(
      base_url="https://sub2api.ruilinlu.com",
      api_key="YOUR_API_KEY"
  )

  message = client.messages.create(
      model="claude-3-5-sonnet",
      system="你是一个专业的技术文档撰写助手。",
      messages=[
          {"role": "user", "content": "请帮我写一段 API 文档的简介。"},
          {"role": "assistant", "content": "好的，请问是关于什么主题的 API？"},
          {"role": "user", "content": "是关于 AI 模型网关的 REST API。"}
      ],
      max_tokens=1024
  )

  print(message.content[0].text)
  ```
</CodeGroup>

<Warning>
  使用 anthropic SDK 时，必须将 `base_url` 设置为 `https://sub2api.ruilinlu.com`，SDK 默认指向 Anthropic 官方服务器。
</Warning>

## 响应结构

```json theme={null}
{
  "id": "msg_01AbCdEfGhIjKlMnOpQrStUv",
  "type": "message",
  "role": "assistant",
  "model": "claude-3-5-sonnet",
  "content": [
    {
      "type": "text",
      "text": "好的，以下是 API 文档简介:\n\n本 API 提供统一的网关服务..."
    }
  ],
  "stop_reason": "end_turn",
  "usage": {
    "input_tokens": 45,
    "output_tokens": 123
  }
}
```

## 重要注意事项

<Warning>
  <strong>max\_tokens 是必填字段</strong>: Anthropic Messages API 要求 `max_tokens` 参数必须提供，这与 OpenAI 的 Chat Completions API 不同，后者的 `max_tokens` 是可选的。
</Warning>

<Info>
  <strong>系统提示的位置</strong>: 在 Anthropic 格式中，`system` 是请求对象顶层的独立字段。而在 OpenAI 兼容格式中，system prompt 是 `messages` 数组中 `role` 为 `system` 的第一条消息。
</Info>

## 相关资源

* [Claude 模型列表](/models/claude) - 可用的 Claude 模型及参数
* [Chat Completions API](/api/chat-completions) - OpenAI 兼容格式(同样支持 Claude 模型)
* [模型概览](/models) - 所有支持的模型列表
