Messages API
在 OneProvider 上用 Anthropic 原生请求格式调用 POST /v1/messages:系统提示词、工具调用、图片和提示词缓存均可使用。
Anthropic 原生的对话补全。请求和响应的结构 100% 一致;tool_choice 是唯一做了规范化的部分。
全部模型、功能与价格 面向 AI 智能体的文档索引:https://oneprovider.dev/docs/llms.txt 请求
httpPOST https://api.oneprovider.dev/v1/messages
x-api-key: sk-...
anthropic-version: 2023-06-01
content-type: application/json
{
"model": "claude-sonnet-5-5",
"max_tokens": 1024,
"system": "You are a concise assistant.",
"messages": [
{"role": "user", "content": "Why is the sky blue?"}
]
} 请求体
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 受支持的模型 ID 之一(/v1/messages 上的 Claude 白名单) |
messages | array | 是 | 由 {role, content} 对象组成的列表 |
max_tokens | int | 是 | 输出的硬性上限 |
system | string | 否 | 系统提示词 |
temperature | 0.0–1.0 | 否 | |
top_p | 0.0–1.0 | 否 | |
top_k | int | 否 | |
stop_sequences | array | 否 | |
stream | bool | 否 | 见流式输出 |
tools | array | 否 | 见工具调用 |
tool_choice | object | 否 | 已规范化,见工具页面 |
提示词缓存
可以在文本块或 system 块上用 cache_control: {"type": "ephemeral"} 标记最多四个缓存断点。大多数模型的缓存 token 按正常输入价格的 10% 计费(响应的 usage 中会返回 cache_read_input_tokens)。
{
"model": "claude-sonnet-5-5",
"max_tokens": 1024,
"system": [
{
"type": "text",
"text": "Long stable system prompt that should be cached...",
"cache_control": {"type": "ephemeral"}
}
],
"messages": [{"role": "user", "content": "Question 1"}]
} 响应
json{
"id": "msg_01XYZ...",
"type": "message",
"role": "assistant",
"model": "claude-sonnet-5-5",
"content": [
{"type": "text", "text": "Rayleigh scattering — short wavelengths..."}
],
"stop_reason": "end_turn",
"usage": {
"input_tokens": 48,
"output_tokens": 92,
"cache_creation_input_tokens": 0,
"cache_read_input_tokens": 0
}
} Anthropic 兼容性 请求和响应的结构与 Anthropic Messages API 逐字节兼容。如果您现有的代码调用的是 api.anthropic.com,唯一必须修改的就是 base_url。 快速解答
该使用哪个 base URL?
Claude Code 和 Anthropic SDK 使用 https://api.oneprovider.dev。OpenAI SDK 和兼容 OpenAI 的客户端使用 https://api.oneprovider.dev/v1。同一个密钥可用于这两个地址;模型列表见模型页面 ,费率见价格页面 。
如何进行身份验证?
将完整的 sk-… 密钥放在 x-api-key 或 Authorization: Bearer 中,二选一,不要同时使用。请把密钥存放在环境变量中,不要写进会被提交的文件。了解更多身份验证说明 。
在哪里获取密钥?
在 Telegram 机器人 @oneprovider_robot 或 app.oneprovider.dev 打开您的个人中心,为余额充值,然后点击“签发密钥”。每个密钥都可以设置各自的消费限额。个人中心与 API 密钥 。
401、404 和 429 是什么意思?
401:密钥缺失、拼写有误或放错了请求头;请粘贴完整的密钥,不要带引号或空格。404:通常是 base URL 不对,例如缺少或重复了 /v1。429 且提示“Insufficient balance”:个人中心余额或密钥的消费限额已用完,请充值,不要反复重试;其他 429 属于速率限制,请等待 Retry-After 指定的时间。详情见:错误码 和故障排查 。
流式输出为什么会中断或被重置?
VPN 和 VLESS 代理常常会缓冲 SSE,或破坏 HTTP/2 协商。OneProvider 没有地区限制,也不会缓冲流式输出,请关闭代理后重试。
以上都没解决,该去哪里咨询?
请在 Telegram 联系 @Oneproviderhelpbot ,或在网页个人中心打开“客服”,并附上 HTTP 状态码和完整的错误信息。客服如何运作 。
最后更新: 2026-11-08 发现问题? @Oneproviderhelpbot