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

# Anthropic Messages API

> 使用 Anthropic Messages API 原生格式與 Claude 系列模型對話

> [!NOTE]
>
> **中國大陸用戶請注意：** 中國大陸用戶請使用 `https://toapis.cn` 作為接口地址（Base URL）。文檔示例中的 `https://toapis.com` 請替換為 `https://toapis.cn`。

* 兼容 Anthropic Messages API 原生格式
* 支持 Anthropic 官方 SDK（Python / JavaScript）直接對接，僅需修改 `base_url`
* 支持流式輸出（SSE）
* 支持多輪對話、系統提示詞、視覺輸入、工具調用

> [!NOTE]
>
> 如果你已經在使用 OpenAI SDK，建議使用 [OpenAI 格式接口](https://docs.toapis.com/docs/zh-Hant/api-reference/chat/chat.md)。
> 如果你在使用 Anthropic SDK 或 Claude Code，推薦使用本接口。

## Authorizations

**Authorization** `string`

Bearer Token 認證，適用於直接 HTTP 調用

```
Authorization: Bearer YOUR_API_KEY
```

**x-api-key** `string`

API Key 認證，與 Anthropic SDK 兼容

```
x-api-key: YOUR_API_KEY
```

**anthropic-version** `string` (default: 2023-06-01)

Anthropic API 版本號，使用 Anthropic SDK 時自動傳入

推薦值：`2023-06-01`

## Body

**model** `string` *required*

模型名稱

支持所有 Claude 系列模型，例如：

* `claude-opus-4-6`
* `claude-sonnet-4-6`
* `claude-haiku-4-5`

**messages** `object[]` *required*

對話消息列表，按時間順序排列。只支持 `user` 和 `assistant` 角色，系統提示詞請使用頂層 `system` 字段

**messages\[n]**

**role** `string` *required*

消息角色，可選值：`user`、`assistant`

**content** `string | object[]` *required*

消息內容，字符串或內容塊數組

**內容塊（content block）**

**type** `string` *required*

內容類型：`text`（文本）或 `image`（圖片）

**text** `string`

文本內容，`type` 爲 `text` 時必填

**source** `object`

圖片來源，`type` 爲 `image` 時必填

**source**

**type** `string` *required*

圖片來源類型：`base64` 或 `url`

**media\_type** `string`

MIME 類型，`type` 爲 `base64` 時必填，例如 `image/jpeg`、`image/png`

**data** `string`

Base64 編碼的圖片數據，`type` 爲 `base64` 時必填

**url** `string`

圖片 URL，`type` 爲 `url` 時必填

**max\_tokens** `integer` *required*

生成內容的最大 token 數量

* Claude Sonnet 4-6 最大支持 `64000`
* Claude Opus 4-6 最大支持 `32000`

**system** `string | object[]`

系統提示詞，在頂層設置（不放在 `messages` 中）

支持字符串或內容塊數組格式

**stream** `boolean` (default: false)

是否啓用流式輸出（Server-Sent Events）

* `true`：逐 token 流式返回，事件格式遵循 Anthropic SSE 規範
* `false`：等待完整響應後一次性返回

**temperature** `number` (default: 1)

採樣溫度，控制輸出隨機性

範圍：`0` \~ `1`

**top\_p** `number`

核採樣概率閾值

範圍：`0` \~ `1`，建議不要同時設置 `temperature` 和 `top_p`

**stop\_sequences** `string[]`

停止序列，遇到指定字符串時停止生成

## Response

**id** `string`

本次請求的唯一標識符，格式爲 `msg_*`

**type** `string`

對象類型，固定爲 `message`

**role** `string`

響應角色，固定爲 `assistant`

**content** `object[]`

生成的內容塊列表

* `content[].type`：內容類型，通常爲 `text`
* `content[].text`：生成的文本內容

**model** `string`

實際使用的模型名稱

**stop\_reason** `string`

停止原因

* `end_turn`：模型正常結束
* `max_tokens`：達到 `max_tokens` 限制
* `stop_sequence`：觸發了停止序列

**usage** `object`

本次請求的 token 消耗統計

* `usage.input_tokens`：輸入 token 數
* `usage.output_tokens`：輸出 token 數

```bash cURL theme={null}
curl --request POST \
  --url https://toapis.com/v1/messages \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "claude-sonnet-4-6",
    "max_tokens": 1024,
    "messages": [
      {
        "role": "user",
        "content": "你好，請介紹一下你自己"
      }
    ]
  }'
```

```bash cURL（系統提示詞） theme={null}
curl --request POST \
  --url https://toapis.com/v1/messages \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "claude-sonnet-4-6",
    "max_tokens": 1024,
    "system": "你是一個專業的代碼助手，擅長 Python 和 Go 語言。",
    "messages": [
      {
        "role": "user",
        "content": "用 Python 寫一個快速排序"
      }
    ]
  }'
```

```bash cURL（流式輸出） theme={null}
curl --request POST \
  --url https://toapis.com/v1/messages \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "claude-sonnet-4-6",
    "max_tokens": 1024,
    "stream": true,
    "messages": [
      {
        "role": "user",
        "content": "解釋一下什麼是遞歸"
      }
    ]
  }'
```

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

client = anthropic.Anthropic(
    api_key="your-ToAPIs-key",
    base_url="https://toapis.com"
)

message = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    messages=[
        {"role": "user", "content": "你好，請介紹一下你自己"}
    ]
)

print(message.content[0].text)
```

```python Python（帶系統提示詞） theme={null}
import anthropic

client = anthropic.Anthropic(
    api_key="your-ToAPIs-key",
    base_url="https://toapis.com"
)

message = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    system="你是一個專業的代碼助手，擅長 Python 和 Go 語言。",
    messages=[
        {"role": "user", "content": "用 Python 寫一個快速排序"}
    ]
)

print(message.content[0].text)
```

```python Python（流式輸出） theme={null}
import anthropic

client = anthropic.Anthropic(
    api_key="your-ToAPIs-key",
    base_url="https://toapis.com"
)

with client.messages.stream(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    messages=[
        {"role": "user", "content": "解釋一下什麼是遞歸"}
    ]
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)
```

```javascript JavaScript (Anthropic SDK) theme={null}
import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic({
  apiKey: "your-ToAPIs-key",
  baseURL: "https://toapis.com",
});

const message = await client.messages.create({
  model: "claude-sonnet-4-6",
  max_tokens: 1024,
  messages: [{ role: "user", content: "你好，請介紹一下你自己" }],
});

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

```javascript JavaScript（流式輸出） theme={null}
import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic({
  apiKey: "your-ToAPIs-key",
  baseURL: "https://toapis.com",
});

const stream = await client.messages.stream({
  model: "claude-sonnet-4-6",
  max_tokens: 1024,
  messages: [{ role: "user", content: "解釋一下什麼是遞歸" }],
});

for await (const chunk of stream) {
  if (
    chunk.type === "content_block_delta" &&
    chunk.delta.type === "text_delta"
  ) {
    process.stdout.write(chunk.delta.text);
  }
}
```

```json 200 theme={null}
{
  "id": "msg_01XFDUDYJgAACzvnptvVoYEL",
  "type": "message",
  "role": "assistant",
  "content": [
    {
      "type": "text",
      "text": "你好！我是 Claude，由 Anthropic 開發的 AI 助手。我可以幫助你回答問題、分析信息、編寫代碼、創作內容等。有什麼我可以幫你的嗎？"
    }
  ],
  "model": "claude-sonnet-4-6",
  "stop_reason": "end_turn",
  "usage": {
    "input_tokens": 12,
    "output_tokens": 38
  }
}
```

```json 200（流式，SSE 事件示例） theme={null}
data: {"type":"message_start","message":{"id":"msg_01abc","type":"message","role":"assistant","content":[],"model":"claude-sonnet-4-6","stop_reason":null,"usage":{"input_tokens":12,"output_tokens":0}}}

data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""}}

data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"你好"}}

data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"！我是"}}

data: {"type":"content_block_stop","index":0}

data: {"type":"message_delta","delta":{"stop_reason":"end_turn"},"usage":{"output_tokens":38}}

data: {"type":"message_stop"}
```

```json 400 theme={null}
{
  "type": "error",
  "error": {
    "type": "invalid_request_error",
    "message": "messages: field required"
  }
}
```

```json 401 theme={null}
{
  "type": "error",
  "error": {
    "type": "authentication_error",
    "message": "Invalid API key"
  }
}
```

```json 429 theme={null}
{
  "type": "error",
  "error": {
    "type": "rate_limit_error",
    "message": "Rate limit exceeded"
  }
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.