curl -X POST https://api-llm.sunra.ai/v1/messages \
-H "Authorization: Bearer <SUNRA_KEY>" \
-H "Content-Type: application/json" \
-d '{
"model": "anthropic/claude-sonnet-4-6",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": "Hello, how are you?"
}
]
}'
import requests
response = requests.post(
"https://api-llm.sunra.ai/v1/messages",
headers={
"Authorization": "Bearer <SUNRA_KEY>",
"Content-Type": "application/json"
},
json={
"model": "anthropic/claude-sonnet-4-6",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "Hello, how are you?"}
]
}
)
print(response.json())
const response = await fetch("https://api-llm.sunra.ai/v1/messages", {
method: "POST",
headers: {
"Authorization": "Bearer <SUNRA_KEY>",
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "anthropic/claude-sonnet-4-6",
max_tokens: 1024,
messages: [
{ role: "user", content: "Hello, how are you?" }
]
})
});
const data = await response.json();
console.log(data);
{
"id": "msg_01XFDUDYJgAACzvnptvVoYEL",
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "Hello! I'm doing well, thank you for asking. How can I help you today?"
}
],
"model": "anthropic/claude-sonnet-4-6",
"stop_reason": "end_turn",
"stop_sequence": null,
"usage": {
"input_tokens": 12,
"output_tokens": 19,
"total_tokens": 31,
"sunra_usage_semantics": "anthropic.exclusive.v1"
}
}
LLM
Create a message
POST
/
v1
/
messages
curl -X POST https://api-llm.sunra.ai/v1/messages \
-H "Authorization: Bearer <SUNRA_KEY>" \
-H "Content-Type: application/json" \
-d '{
"model": "anthropic/claude-sonnet-4-6",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": "Hello, how are you?"
}
]
}'
import requests
response = requests.post(
"https://api-llm.sunra.ai/v1/messages",
headers={
"Authorization": "Bearer <SUNRA_KEY>",
"Content-Type": "application/json"
},
json={
"model": "anthropic/claude-sonnet-4-6",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "Hello, how are you?"}
]
}
)
print(response.json())
const response = await fetch("https://api-llm.sunra.ai/v1/messages", {
method: "POST",
headers: {
"Authorization": "Bearer <SUNRA_KEY>",
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "anthropic/claude-sonnet-4-6",
max_tokens: 1024,
messages: [
{ role: "user", content: "Hello, how are you?" }
]
})
});
const data = await response.json();
console.log(data);
{
"id": "msg_01XFDUDYJgAACzvnptvVoYEL",
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "Hello! I'm doing well, thank you for asking. How can I help you today?"
}
],
"model": "anthropic/claude-sonnet-4-6",
"stop_reason": "end_turn",
"stop_sequence": null,
"usage": {
"input_tokens": 12,
"output_tokens": 19,
"total_tokens": 31,
"sunra_usage_semantics": "anthropic.exclusive.v1"
}
}
使用 Anthropic Messages API 格式创建消息。支持文本、图像、PDF、工具和扩展思维。
认证
string
必填
Bearer 令牌。在 Authorization 请求头中使用您的 API 密钥作为 Bearer 令牌。格式:
Bearer <SUNRA_KEY>请求
此端点接受一个 JSON 对象。string
必填
将完成您的提示的模型。在 sunra.ai/models 浏览可用模型。
object
可选的 Provider 路由偏好。省略时使用自动路由。支持的字段和 Provider 查询方式见 Provider 路由。
object[]
必填
输入消息。每条输入消息都有一个
role 和 content。显示 属性
显示 属性
string
必填
消息作者的角色。支持的值:
user、assistant。string | object[]
必填
消息的内容。可以是单个字符串或内容块数组。
string | object[]
系统提示。系统提示是一种为模型提供上下文和指令的方式。可以是字符串或内容块数组。
boolean
默认值:false
是否使用服务器发送事件(SSE)增量流式传输响应。流式请求受空闲超时与生命周期上限约束,见输出上限与流生命周期。
number
默认值:1
注入到响应中的随机性量。范围从 0.0 到 1.0。对于分析/多选任务使用接近 0.0 的
temperature,对于创意和生成任务使用接近 1.0 的值。number
使用核采样。在核采样中,我们按概率递减顺序计算所有后续令牌选项的累积分布,并在达到由
top_p 指定的特定概率时截断。integer
仅从每个后续令牌的前 K 个选项中采样。用于移除”长尾”低概率响应。仅建议高级用例使用。
string[]
自定义文本序列,将导致模型停止生成。返回的文本将不包含停止序列。
object[]
object
响应
成功的消息响应。string
唯一消息标识符,例如
msg_01XFDUDYJgAACzvnptvVoYEL。string
对象类型。始终为
message。string
生成消息的对话角色。始终为
assistant。object[]
string
处理请求的模型。
string | null
模型停止的原因。可以是
end_turn(模型到达自然停止点)、max_tokens(超过 max_tokens 或模型的最大值)、stop_sequence(生成了您的自定义停止序列之一)或 tool_use(模型调用了一个或多个工具)。string | null
生成了哪个自定义停止序列(如果有)。
object
curl -X POST https://api-llm.sunra.ai/v1/messages \
-H "Authorization: Bearer <SUNRA_KEY>" \
-H "Content-Type: application/json" \
-d '{
"model": "anthropic/claude-sonnet-4-6",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": "Hello, how are you?"
}
]
}'
import requests
response = requests.post(
"https://api-llm.sunra.ai/v1/messages",
headers={
"Authorization": "Bearer <SUNRA_KEY>",
"Content-Type": "application/json"
},
json={
"model": "anthropic/claude-sonnet-4-6",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "Hello, how are you?"}
]
}
)
print(response.json())
const response = await fetch("https://api-llm.sunra.ai/v1/messages", {
method: "POST",
headers: {
"Authorization": "Bearer <SUNRA_KEY>",
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "anthropic/claude-sonnet-4-6",
max_tokens: 1024,
messages: [
{ role: "user", content: "Hello, how are you?" }
]
})
});
const data = await response.json();
console.log(data);
{
"id": "msg_01XFDUDYJgAACzvnptvVoYEL",
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "Hello! I'm doing well, thank you for asking. How can I help you today?"
}
],
"model": "anthropic/claude-sonnet-4-6",
"stop_reason": "end_turn",
"stop_sequence": null,
"usage": {
"input_tokens": 12,
"output_tokens": 19,
"total_tokens": 31,
"sunra_usage_semantics": "anthropic.exclusive.v1"
}
}
⌘I