Anthropic Compatible The standard Anthropic Messages compatible path, suited to the Anthropic SDK and existing Anthropic code migration.
POST /api/v1/messages
Anthropic 兼容
标准 Anthropic Messages 兼容路径;历史路径 /api/anthropic/v1/messages 继续兼容。
🔑 Bearer API Key Use the Authorization: Bearer sk_live_... header; x-api-key is also supported.
🧩 Confirm the model call name first First filter models that support this endpoint format on the Models page, then open a model detail page to copy its call name. Your account's final availability also depends on organization permissions. Request structure The section below confirms the method, URL and authentication scheme. It is an HTTP structure snippet, not a standalone runnable example.
POST https://www.silvamux.com/api/v1/messages
Authorization: Bearer $SILVAMUX_API_KEY
Content-Type: application/jsonRequest body application/json · AnthropicRequest · Required
Field Type Required Description max_tokensinteger Yes 单次响应允许生成的最大 token 数。 messagesarray<AnthropicMessage> Yes 对话消息列表(按时间顺序)。 messages.contentstring | array<AnthropicContentBlock> Yes 消息内容:字符串或内容块数组。 messages.rolestring (user | assistant) Yes 消息角色(system 是顶层参数,不是消息角色)。 metadataobject No 请求元数据。 metadata.user_idstring No 终端用户标识符。 modelstring Yes SilvaMux 模型调用名(id 或 alias)。从模型广场模型详情页复制。 stop_sequencesarray<string> No 停止序列列表。 streamboolean No 是否启用流式输出(SSE)。;Default: false systemstring | array<AnthropicTextBlock> No 系统提示(顶层参数)。 temperaturenumber No 采样温度,控制输出随机性。 tool_choiceAnthropicToolChoice No — tool_choice.namestring No type=tool 时指定的工具名。 tool_choice.typestring (auto | any | tool) Yes auto 模型自行决定;any 必须调用其中之一;tool 指定工具。 toolsarray<AnthropicTool> No 可用工具列表。 tools.descriptionstring No 工具用途描述。 tools.input_schemaobject Yes 入参的 JSON Schema。 tools.namestring Yes 工具名。 top_kinteger No 仅从概率前 k 的候选中采样。 top_pnumber No 核采样参数,temperature 的替代方案。
Response 200Anthropic Messages JSON 或 SSE 响应。 application/json · AnthropicMessageResponse
Field Type Description contentarray<AnthropicTextBlock | AnthropicToolUseBlock> 响应内容块列表。 idstring 消息 ID。 modelstring 实际使用的模型名。 rolestring (assistant) — stop_reasonstring (end_turn | max_tokens | stop_sequence | tool_use) 结束原因。 stop_sequencestring 命中的停止序列。 typestring (message) — usageobject — usage.input_tokensinteger 输入 token 数。 usage.output_tokensinteger 输出 token 数。
defaultAnthropic 兼容错误。 application/json · AnthropicError
Field Type Description errorobject — error.messagestring — error.typestring — typestring (error) —
ℹ️ The historical path /api/anthropic/v1/messages remains supported for existing projects only; new projects should use /api/v1/messages.
curl https://www.silvamux.com/api/v1/messages \
-H "Authorization: Bearer $SILVAMUX_API_KEY " \
-H "Content-Type: application/json" \
-d '{
"model": "minimax-m2.5",
"max_tokens": 1024,
"messages": [{"role": "user", "content": "Hello"}]
}'
# pip install anthropic
# Point base_url at /api: the SDK appends /v1/messages itself
import os
from anthropic import Anthropic
client = Anthropic(
api_key=os.environ["SILVAMUX_API_KEY"],
base_url="https://www.silvamux.com/api",
)
message = client.messages.create(
model="minimax-m2.5",
max_tokens=1024,
messages=[{"role": "user", "content": "Hello"}],
)
print(message.content[0].text)
// npm install @anthropic-ai/sdk
// Point baseURL at /api: the SDK appends /v1/messages itself
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({
apiKey: process.env.SILVAMUX_API_KEY,
baseURL: "https://www.silvamux.com/api",
});
const message = await client.messages.create({
model: "minimax-m2.5",
max_tokens: 1024,
messages: [{ role: "user", content: "Hello" }],
});
console.log(message.content[0].text);
// Standard library only
package main
import (
"bytes"
"fmt"
"io"
"net/http"
"os"
)
func main() {
payload := []byte(`{
"model": "minimax-m2.5",
"max_tokens": 1024,
"messages": [{"role": "user", "content": "Hello"}]
}`)
req, err := http.NewRequest("POST", "https://www.silvamux.com/api/v1/messages", bytes.NewReader(payload))
if err != nil {
panic(err)
}
req.Header.Set("Authorization", "Bearer "+os.Getenv("SILVAMUX_API_KEY"))
req.Header.Set("Content-Type", "application/json")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
cURL Python JavaScript Go
Response (Anthropic format):
{
"id" : "msg_xxxx" ,
"type" : "message" ,
"role" : "assistant" ,
"content" : [{ "type" : "text" , "text" : "Hello! How can I help you today?" }],
"usage" : { "input_tokens" : 10 , "output_tokens" : 15 }
}
Streaming follows the Anthropic SSE specification.