curl --request POST \
--url https://direct.evolink.ai/v1/messages \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "claude-opus-5",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": "Hello, world"
}
]
}
'import requests
url = "https://direct.evolink.ai/v1/messages"
payload = {
"model": "claude-opus-5",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": "Hello, world"
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
model: 'claude-opus-5',
max_tokens: 1024,
messages: [{role: 'user', content: 'Hello, world'}]
})
};
fetch('https://direct.evolink.ai/v1/messages', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://direct.evolink.ai/v1/messages",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'model' => 'claude-opus-5',
'max_tokens' => 1024,
'messages' => [
[
'role' => 'user',
'content' => 'Hello, world'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://direct.evolink.ai/v1/messages"
payload := strings.NewReader("{\n \"model\": \"claude-opus-5\",\n \"max_tokens\": 1024,\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"Hello, world\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://direct.evolink.ai/v1/messages")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"claude-opus-5\",\n \"max_tokens\": 1024,\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"Hello, world\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://direct.evolink.ai/v1/messages")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"model\": \"claude-opus-5\",\n \"max_tokens\": 1024,\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"Hello, world\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"model": "claude-haiku-4-5-20251001",
"id": "msg_bdrk_017XLrAa77zWvfBGQ6ESvrxz",
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "# Hey there!\n\nHow's it going? What can I help you with today?"
}
],
"stop_reason": "end_turn",
"stop_sequence": null,
"usage": {
"input_tokens": 8,
"cache_creation_input_tokens": 0,
"cache_read_input_tokens": 0,
"output_tokens": 24
}
}{
"error": {
"message": "Invalid request",
"type": "invalid_request_error"
},
"request_id": "<string>",
"type": "error"
}{
"error": {
"message": "Authentication error",
"type": "authentication_error"
},
"request_id": "<string>",
"type": "error"
}{
"error": {
"message": "Billing error",
"type": "billing_error"
},
"request_id": "<string>",
"type": "error",
"fallback_suggestion": "https://evolink.ai/dashboard/billing"
}{
"error": {
"message": "Permission denied",
"type": "permission_error"
},
"request_id": "<string>",
"type": "error"
}{
"error": {
"message": "Not found",
"type": "not_found_error"
},
"request_id": "<string>",
"type": "error"
}{
"error": {
"message": "Rate limited",
"type": "rate_limit_error"
},
"request_id": "<string>",
"type": "error",
"fallback_suggestion": "retry after 60 seconds"
}{
"error": {
"message": "Internal server error",
"type": "api_error"
},
"request_id": "<string>",
"type": "error",
"fallback_suggestion": "try again later"
}{
"error": {
"message": "Overloaded",
"type": "overloaded_error"
},
"request_id": "<string>",
"type": "error",
"fallback_suggestion": "retry after 30 seconds"
}{
"error": {
"message": "Request timeout",
"type": "timeout_error"
},
"request_id": "<string>",
"type": "error",
"fallback_suggestion": "请将 BaseURL 切换为 https://direct.evolink.ai,这个地址对长任务更友好"
}Claude - 完整参数文档
- 发送包含文本或文本+图像内容的结构化输入消息列表,模型将生成对话中的下一条消息。
- Messages API 可用于单次查询或无状态多轮对话。
curl --request POST \
--url https://direct.evolink.ai/v1/messages \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "claude-opus-5",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": "Hello, world"
}
]
}
'import requests
url = "https://direct.evolink.ai/v1/messages"
payload = {
"model": "claude-opus-5",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": "Hello, world"
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
model: 'claude-opus-5',
max_tokens: 1024,
messages: [{role: 'user', content: 'Hello, world'}]
})
};
fetch('https://direct.evolink.ai/v1/messages', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://direct.evolink.ai/v1/messages",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'model' => 'claude-opus-5',
'max_tokens' => 1024,
'messages' => [
[
'role' => 'user',
'content' => 'Hello, world'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://direct.evolink.ai/v1/messages"
payload := strings.NewReader("{\n \"model\": \"claude-opus-5\",\n \"max_tokens\": 1024,\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"Hello, world\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://direct.evolink.ai/v1/messages")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"claude-opus-5\",\n \"max_tokens\": 1024,\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"Hello, world\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://direct.evolink.ai/v1/messages")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"model\": \"claude-opus-5\",\n \"max_tokens\": 1024,\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"Hello, world\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"model": "claude-haiku-4-5-20251001",
"id": "msg_bdrk_017XLrAa77zWvfBGQ6ESvrxz",
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "# Hey there!\n\nHow's it going? What can I help you with today?"
}
],
"stop_reason": "end_turn",
"stop_sequence": null,
"usage": {
"input_tokens": 8,
"cache_creation_input_tokens": 0,
"cache_read_input_tokens": 0,
"output_tokens": 24
}
}{
"error": {
"message": "Invalid request",
"type": "invalid_request_error"
},
"request_id": "<string>",
"type": "error"
}{
"error": {
"message": "Authentication error",
"type": "authentication_error"
},
"request_id": "<string>",
"type": "error"
}{
"error": {
"message": "Billing error",
"type": "billing_error"
},
"request_id": "<string>",
"type": "error",
"fallback_suggestion": "https://evolink.ai/dashboard/billing"
}{
"error": {
"message": "Permission denied",
"type": "permission_error"
},
"request_id": "<string>",
"type": "error"
}{
"error": {
"message": "Not found",
"type": "not_found_error"
},
"request_id": "<string>",
"type": "error"
}{
"error": {
"message": "Rate limited",
"type": "rate_limit_error"
},
"request_id": "<string>",
"type": "error",
"fallback_suggestion": "retry after 60 seconds"
}{
"error": {
"message": "Internal server error",
"type": "api_error"
},
"request_id": "<string>",
"type": "error",
"fallback_suggestion": "try again later"
}{
"error": {
"message": "Overloaded",
"type": "overloaded_error"
},
"request_id": "<string>",
"type": "error",
"fallback_suggestion": "retry after 30 seconds"
}{
"error": {
"message": "Request timeout",
"type": "timeout_error"
},
"request_id": "<string>",
"type": "error",
"fallback_suggestion": "请将 BaseURL 切换为 https://direct.evolink.ai,这个地址对长任务更友好"
}https://direct.evolink.ai,对文本模型支持更好,支持长连接;https://api.evolink.ai 是多模态主力地址,对文本模型作为备用地址使用。授权
##所有接口均需要使用Bearer Token进行认证##
获取 API Key:
访问 API Key 管理页面 获取您的 API Key
使用时在请求头中添加:
Authorization: Bearer YOUR_API_KEY
请求体
用于生成响应的模型。请选择下方列出的受支持模型 ID。
claude-haiku-4-5-20251001, claude-sonnet-4-5-20250929, claude-opus-4-5-20251101, claude-opus-4-6, claude-fable-5-1, claude-fable-5, claude-opus-5, claude-opus-4-8, claude-opus-4-7, claude-sonnet-4-6, claude-sonnet-5 "claude-opus-5"
停止前生成的最大令牌数。
请注意,我们的模型可能会在达到此最大值之前停止。此参数仅指定要生成的绝对最大令牌数。
x >= 11024
输入消息。
可以处理交替的 user 和 assistant 对话回合。创建新的 Message 时,需要通过 messages 参数指定之前的对话回合,然后模型会生成对话中的下一条 Message。请求中连续的 user 或 assistant 回合将被合并为一个回合。
每条输入消息必须是一个包含 role 和 content 的对象。可以指定单个 user 角色消息,也可以包含多个 user 和 assistant 消息。
1 - 100000 elementsShow child attributes
Show child attributes
包含要加载技能的容器参数。
Show child attributes
Show child attributes
模型输出的配置,例如输出格式。
Show child attributes
Show child attributes
会导致模型停止生成的自定义文本序列。
是否使用服务器发送事件增量流式传输响应。
系统提示。
"Today's date is 2024-06-01."
注入响应中的随机性程度。
默认为 1.0。范围从 0.0 到 1.0。
0 <= x <= 11
启用 Claude 扩展思考的配置。
type: "enabled" 需要 budget_tokens,最小为 1,024,并计入 max_tokens 上限。
type: "adaptive" 让 Claude 根据请求复杂度决定何时以及使用多少扩展思考。
type: "disabled" 关闭扩展思考。
- Enabled
- Disabled
- Adaptive
Show child attributes
Show child attributes
模型应如何使用提供的工具。
- Auto
- Any
- Tool
- None
Show child attributes
Show child attributes
模型可使用的客户端工具定义。每个工具包含 name、可选的 description 和 input_schema。
Show child attributes
Show child attributes
对于每个后续令牌,仅从前 K 个选项中采样。
x >= 05
使用核采样。
0 <= x <= 10.7
响应
消息对象
唯一对象标识符。
ID 的格式和长度可能随时间变化。
"msg_013Zva2CMHLNnXjNJJKqJ2EF"
对象类型。
对于 Messages,这始终是 "message"。
"message"生成消息的对话角色。
这始终是 "assistant"。
"assistant"模型生成的内容。
这是一个内容块数组,每个块都有一个决定其结构的 type。
- Text
- Thinking
- Redacted thinking
- Tool use
- Server tool use
- Web search tool result
- ResponseWebFetchToolResultBlock
- Code execution tool result
- ResponseBashCodeExecutionToolResultBlock
- ResponseTextEditorCodeExecutionToolResultBlock
- MCP tool use
- MCP tool result
- Container upload
Show child attributes
Show child attributes
处理请求的模型。
claude-haiku-4-5-20251001, claude-sonnet-4-5-20250929, claude-opus-4-5-20251101, claude-opus-4-6, claude-fable-5-1, claude-fable-5, claude-opus-5, claude-opus-4-8, claude-opus-4-7, claude-sonnet-4-6, claude-sonnet-5 "claude-opus-5"
我们停止的原因。
end_turn, max_tokens, stop_sequence, tool_use, pause_turn, refusal, model_context_window_exceeded 生成的自定义停止序列(如果有)。
计费和速率限制使用情况。
Show child attributes
Show child attributes
上下文管理响应。
Show child attributes
Show child attributes
此请求中使用的容器信息。
Show child attributes
Show child attributes