主题
API 端点参考
Shuro 同时支持 Anthropic 和 OpenAI 两套协议,同一把 key 双协议都通。
主要端点
Anthropic Messages API
POST https://shuro.vip/v1/messages请求示例:
bash
curl -X POST 'https://shuro.vip/v1/messages' \
-H 'content-type: application/json' \
-H 'anthropic-version: 2023-06-01' \
-H 'x-api-key: sk-...' \
-d '{
"model": "claude-opus-4-7",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "Hello"}
]
}'适用客户端:Claude Code、Cline (Anthropic 模式)、OpenCode (Anthropic 模式)、Anthropic SDK。
OpenAI Chat Completions
POST https://shuro.vip/v1/chat/completions请求示例:
bash
curl -X POST 'https://shuro.vip/v1/chat/completions' \
-H 'content-type: application/json' \
-H 'Authorization: Bearer sk-...' \
-d '{
"model": "gpt-5.5",
"messages": [
{"role": "user", "content": "Hello"}
]
}'适用客户端:Cursor、OpenAI SDK、Cline (OpenAI 模式)、OpenCode (OpenAI 模式)。
OpenAI Responses API(Codex 专用)
POST https://shuro.vip/v1/responses请求示例:
bash
curl -X POST 'https://shuro.vip/v1/responses' \
-H 'content-type: application/json' \
-H 'Authorization: Bearer sk-...' \
-d '{
"model": "gpt-5.5",
"input": "Hello"
}'适用客户端:Codex CLI。注意:你的 key 需要有 OpenAI 模型权限才能用此端点。
待验证(TODO/VERIFY)
以下内容基于旧平台实测(2026-06),尚未在 Shuro 复测,仅供参考:Claude 模型走 /v1/responses 曾报 500 not implemented;previous_response_id 链式调用经上游也曾不可用。详见 Responses API。
模型列表
GET https://shuro.vip/v1/modelsbash
curl 'https://shuro.vip/v1/models' \
-H 'Authorization: Bearer sk-...'返回你这把 key 实际可用的模型。
鉴权方式
两种 header 都接受:
| Header | 适用 |
|---|---|
x-api-key: sk-... | Anthropic 协议(推荐 Claude Code 用) |
Authorization: Bearer sk-... | OpenAI 协议(推荐 Cursor / Codex 用) |
两种 header 互换在旧平台实测都能通(2026-06,Shuro 未复测),建议按协议匹配。
跨协议支持
按 Shuro 模型目录,Claude 模型同时支持 Anthropic 和 OpenAI 两种协议(即也可走 /v1/chat/completions);GPT 模型仅标注 OpenAI 协议。
待验证(TODO/VERIFY)
以下内容基于旧平台实测(2026-06),尚未在 Shuro 复测,仅供参考:旧平台上 GPT 模型也可以走 /v1/messages(Anthropic 格式),网关自动转换;/v1/responses 仅限 GPT 系列。
流式响应
所有端点都支持流式响应:
bash
curl -X POST 'https://shuro.vip/v1/messages' \
-H 'x-api-key: sk-...' \
-H 'anthropic-version: 2023-06-01' \
-d '{"model": "...", "stream": true, ...}'返回 SSE 事件流:
event: message_start
data: {...}
event: content_block_start
data: {...}
event: content_block_delta
data: {...}
event: message_stop
data: {...}待验证(TODO/VERIFY)
以下内容基于旧平台实测(2026-06),尚未在 Shuro 复测,仅供参考。
旧平台部分上游只支持流式响应,非流式会被拒(返 503)。表现为:
- new-api 测试按钮(默认非流式)失败
- 但 Claude Code(默认流式)能用
如果碰到测试失败但实际能用,可能是这个原因。
必要 Header
| Header | 必填 | 说明 |
|---|---|---|
content-type: application/json | ✅ | 所有 POST 请求 |
x-api-key 或 Authorization | ✅ | 鉴权 |
anthropic-version: 2023-06-01 | Anthropic 协议必填 | 协议版本 |
anthropic-beta: ... | 可选 | 启用 beta 特性(如 1M 上下文) |
可用的 anthropic-beta 值
1M 上下文说明
Shuro 的 Claude 模型目录标注原生 1M 上下文(haiku 为 200K),理论上无需额外 header。是否仍需要 context-1m-2025-08-07 beta 头待验证(TODO/VERIFY)。
| Beta 标识 | 启用功能 |
|---|---|
context-1m-2025-08-07 | 1M 上下文(是否需要待验证) |
prompt-caching-2024-07-31 | Prompt cache |
computer-use-2024-10-22 | Computer use |
fine-grained-tool-streaming-2025-05-14 | 细粒度工具流式 |
多个 beta 用逗号分隔:
anthropic-beta: context-1m-2025-08-07,prompt-caching-2024-07-31响应格式
Anthropic 响应
json
{
"id": "msg_xxx",
"type": "message",
"role": "assistant",
"model": "claude-opus-4-7",
"content": [{"type": "text", "text": "..."}],
"stop_reason": "end_turn",
"usage": {
"input_tokens": 10,
"output_tokens": 25,
"cache_creation_input_tokens": 0,
"cache_read_input_tokens": 1234,
"service_tier": "standard"
}
}OpenAI 响应
json
{
"id": "chatcmpl-xxx",
"object": "chat.completion",
"model": "gpt-5.5",
"choices": [{
"message": {"role": "assistant", "content": "..."},
"finish_reason": "stop"
}],
"usage": {
"prompt_tokens": 10,
"completion_tokens": 25,
"total_tokens": 35
}
}速率限制
| 维度 | 默认值 |
|---|---|
| 每分钟请求数 | 按套餐 |
| 每分钟 token 数 | 按套餐 |
| 并发请求数 | 按套餐 |
超限返 429 Too Many Requests,等几秒重试即可。
SDK 使用
Python (Anthropic SDK)
python
from anthropic import Anthropic
client = Anthropic(
api_key="sk-...",
base_url="https://shuro.vip" # 不带 /v1
)
msg = client.messages.create(
model="claude-opus-4-7",
max_tokens=1024,
messages=[{"role": "user", "content": "Hello"}]
)Python (OpenAI SDK)
python
from openai import OpenAI
client = OpenAI(
api_key="sk-...",
base_url="https://shuro.vip/v1" # 带 /v1
)
resp = client.chat.completions.create(
model="gpt-5.5",
messages=[{"role": "user", "content": "Hello"}]
)Node.js (Anthropic SDK)
javascript
import Anthropic from '@anthropic-ai/sdk';
const client = new Anthropic({
apiKey: 'sk-...',
baseURL: 'https://shuro.vip' // 不带 /v1
});
const msg = await client.messages.create({
model: 'claude-opus-4-7',
max_tokens: 1024,
messages: [{ role: 'user', content: 'Hello' }]
});