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": "你好,請介紹一下你自己"
}
]
}'
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 寫一個快速排序"
}
]
}'
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": "解釋一下什麼是遞歸"
}
]
}'
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)
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)
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)
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);
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);
}
}
{
"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
}
}
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"}
{
"type": "error",
"error": {
"type": "invalid_request_error",
"message": "messages: field required"
}
}
{
"type": "error",
"error": {
"type": "authentication_error",
"message": "Invalid API key"
}
}
{
"type": "error",
"error": {
"type": "rate_limit_error",
"message": "Rate limit exceeded"
}
}
Anthropic 格式
Anthropic Messages API
使用 Anthropic Messages API 原生格式與 Claude 系列模型對話
POST
/
v1
/
messages
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": "你好,請介紹一下你自己"
}
]
}'
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 寫一個快速排序"
}
]
}'
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": "解釋一下什麼是遞歸"
}
]
}'
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)
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)
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)
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);
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);
}
}
{
"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
}
}
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"}
{
"type": "error",
"error": {
"type": "invalid_request_error",
"message": "messages: field required"
}
}
{
"type": "error",
"error": {
"type": "authentication_error",
"message": "Invalid API key"
}
}
{
"type": "error",
"error": {
"type": "rate_limit_error",
"message": "Rate limit exceeded"
}
}
- 兼容 Anthropic Messages API 原生格式
- 支持 Anthropic 官方 SDK(Python / JavaScript)直接對接,僅需修改
base_url - 支持流式輸出(SSE)
- 支持多輪對話、系統提示詞、視覺輸入、工具調用
如果你已經在使用 OpenAI SDK,建議使用 OpenAI 格式接口。
如果你在使用 Anthropic SDK 或 Claude Code,推薦使用本接口。
Authorizations
string
Bearer Token 認證,適用於直接 HTTP 調用
Authorization: Bearer YOUR_API_KEY
string
API Key 認證,與 Anthropic SDK 兼容
x-api-key: YOUR_API_KEY
string
預設值:"2023-06-01"
Anthropic API 版本號,使用 Anthropic SDK 時自動傳入推薦值:
2023-06-01Body
string
必填
模型名稱支持所有 Claude 系列模型,例如:
claude-opus-4-6claude-sonnet-4-6claude-haiku-4-5
object[]
必填
對話消息列表,按時間順序排列。只支持
user 和 assistant 角色,系統提示詞請使用頂層 system 字段顯示 messages[n]
顯示 messages[n]
string
必填
消息角色,可選值:
user、assistantstring | object[]
必填
integer
必填
生成內容的最大 token 數量
- Claude Sonnet 4-6 最大支持
64000 - Claude Opus 4-6 最大支持
32000
string | object[]
系統提示詞,在頂層設置(不放在
messages 中)支持字符串或內容塊數組格式boolean
預設值:false
是否啓用流式輸出(Server-Sent Events)
true:逐 token 流式返回,事件格式遵循 Anthropic SSE 規範false:等待完整響應後一次性返回
number
預設值:1
採樣溫度,控制輸出隨機性範圍:
0 ~ 1number
核採樣概率閾值範圍:
0 ~ 1,建議不要同時設置 temperature 和 top_pstring[]
停止序列,遇到指定字符串時停止生成
Response
string
本次請求的唯一標識符,格式爲
msg_*string
對象類型,固定爲
messagestring
響應角色,固定爲
assistantobject[]
生成的內容塊列表
content[].type:內容類型,通常爲textcontent[].text:生成的文本內容
string
實際使用的模型名稱
string
停止原因
end_turn:模型正常結束max_tokens:達到max_tokens限制stop_sequence:觸發了停止序列
object
本次請求的 token 消耗統計
usage.input_tokens:輸入 token 數usage.output_tokens:輸出 token 數
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": "你好,請介紹一下你自己"
}
]
}'
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 寫一個快速排序"
}
]
}'
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": "解釋一下什麼是遞歸"
}
]
}'
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)
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)
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)
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);
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);
}
}
{
"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
}
}
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"}
{
"type": "error",
"error": {
"type": "invalid_request_error",
"message": "messages: field required"
}
}
{
"type": "error",
"error": {
"type": "authentication_error",
"message": "Invalid API key"
}
}
{
"type": "error",
"error": {
"type": "rate_limit_error",
"message": "Rate limit exceeded"
}
}
⌘I