API 参考文档
Sanki API 支持 OpenAI 和 Anthropic 两种协议格式,你可根据需求选择合适的接入方式。
快速开始
只需三步即可接入 Sanki API:
Base URLs
Sanki 提供两种协议接入,根据你的客户端选择对应的 Base URL 和认证方式:
https://api.sanki.ink/v1适用 SDK:openai (Python/Node/Go)
认证方式:Authorization: Bearer <key>
主要端点:/v1/chat/completions
https://api.sanki.ink/v1适用 SDK:@anthropic-ai/sdk / Claude Code
认证方式:x-api-key: <key>
主要端点:/v1/messages
Base URL 客户端速查表
不同客户端对 base_url 的处理方式不同:有些把它当完整前缀直接使用,有些会自己再拼 /v1。如果填错会产生 /v1/v1/messages 双前缀错误。
| 客户端 | 填写 Base URL | 说明 |
|---|---|---|
| OpenAI Python/Node SDK | https://api.sanki.ink/v1 | SDK 把 base_url 当完整前缀,需带 /v1 |
| Anthropic Python/Node SDK | https://api.sanki.ink/v1 | 同上,需带 /v1 |
| Claude Code (ANTHROPIC_BASE_URL) | https://api.sanki.ink/v1 | 不带 /v1;Claude Code 自动拼 /v1/messages |
| Hermes Agent (custom_providers) | https://api.sanki.ink | 不带 /v1;Hermes 自动拼 /v1/messages |
| curl | https://api.sanki.ink/v1/chat/completions | 完整 URL,包含 /v1 和具体端点 |
一分钟体验
curl -X POST "https://api.sanki.ink/v1/chat/completions" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "MiniMax-M3",
"messages": [
{"role": "user", "content": "Hello, Sanki!"}
]
}'curl -X POST "https://api.sanki.ink/v1/messages" \
-H "x-api-key: YOUR_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v4-pro",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "Hello, Sanki!"}
]
}'认证鉴权
根据协议类型使用不同的认证头。API Key 请在控制台 API Keys 页面创建和管理。
API Key 格式规范
当前平台使用 sk- 开头、总长 64 字符的 API Key(前缀 sk- + 61 字符 base62 随机串):
sk-yt1zAiMnFWCH3OwAfwXZEMGRnIgLq1mxkxxUSlDaHgq3jOGTlSJUc6TPUuMzo
└sk─── 61 char base62 (A-Z a-z 0-9) ───────────────────────┘⚠ 安全提示:完整密钥仅在创建时显示一次,关闭面板后无法再次查看。创建后请立即复制或下载 .txt 备份。列表中显示的是前 12 字符前缀(如 sk-yt1zAiMnF),用于识别而非认证。
⛔ 旧 Key 已停用:历史 sk-sanki-* 格式(35 字符)的旧 Key 已全部强制吊销。请重新生成 sk- 开头的新 Key。
OpenAI 协议认证
Authorization: Bearer YOUR_API_KEY适用于 /v1/chat/completions、/v1/models 等 OpenAI 兼容端点。
Anthropic 协议认证
x-api-key: YOUR_API_KEY
anthropic-version: 2023-06-01Chat Completions(OpenAI)
标准 OpenAI 兼容 Chat Completions 接口。给定对话消息列表,模型将返回响应。
/v1/chat/completions请求参数
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
| model | string | 是 | 模型 ID,如 gpt-4o、claude-sonnet-4-6、gemini-2.5-pro 等 |
| messages | array | 是 | 消息列表,每条包含 role(system/user/assistant/tool)和 content |
| temperature | number | 否 | 采样温度 0-2,默认 1。越高越随机 |
| top_p | number | 否 | 核采样参数 0-1,默认 1 |
| max_tokens | integer | 否 | 生成最大 token 数 |
| stream | boolean | 否 | 是否启用 SSE 流式响应,默认 false |
| tools | array | 否 | 函数调用工具定义列表 |
请求示例
curl -X POST "https://api.sanki.ink/v1/chat/completions" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "MiniMax-M3",
"messages": [
{"role": "system", "content": "你是专业的 AI 助手"},
{"role": "user", "content": "解释量子计算"}
],
"temperature": 0.7,
"max_tokens": 1024
}'from openai import OpenAI
client = OpenAI(
base_url="https://api.sanki.ink/v1",
api_key="YOUR_API_KEY"
)
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{"role": "user", "content": "Hello!"}
]
)
print(response.choices[0].message.content)响应格式
{
"id": "chatcmpl-abc123",
"object": "chat.completion",
"created": 1700000000,
"model": "MiniMax-M3",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Hello! How can I help you today?"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 10,
"completion_tokens": 9,
"total_tokens": 19
}
}Messages(Anthropic)
Anthropic Messages API 兼容端点。支持 Claude Code 等工具直接接入,使用 /v1/messages 端点。
/v1/messages请求参数
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
| model | string | 是 | 模型 ID,如 gpt-4o、claude-sonnet-4-6、gemini-2.5-pro 等 |
| messages | array | 是 | 消息列表,每条包含 role(user/assistant)和 content |
| max_tokens | integer | 是 | 生成最大 token 数 |
| system | string | array | 否 | 系统提示词,可以是字符串或内容块数组 |
| temperature | number | 否 | 采样温度 0-1,默认 1 |
| top_p | number | 否 | 核采样参数 0-1,默认 1 |
| tools | array | 否 | 函数调用工具定义列表 |
请求示例
curl -X POST "https://api.sanki.ink/v1/messages" \
-H "x-api-key: YOUR_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v4-pro",
"max_tokens": 1024,
"system": "你是专业的 AI 助手",
"messages": [
{"role": "user", "content": "解释量子计算"}
]
}'from anthropic import Anthropic
client = Anthropic(
base_url="https://api.sanki.ink/v1",
api_key="YOUR_API_KEY"
)
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
system="你是专业的 AI 助手",
messages=[
{"role": "user", "content": "Hello!"}
]
)
print(response.content[0].text)响应格式
{
"id": "msg_abc123",
"type": "message",
"role": "assistant",
"model": "deepseek-v4-pro",
"content": [
{
"type": "text",
"text": "Hello! How can I help you today?"
}
],
"usage": {
"input_tokens": 10,
"output_tokens": 9
}
}Responses API
OpenAI Responses API 兼容端点,支持字符串和数组两种 input 格式。
/v1/responses请求示例
curl -X POST "https://api.sanki.ink/v1/responses" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o",
"input": "解释量子计算的基本原理",
"max_output_tokens": 1024
}'图片生成
支持 DALL·E、Wan 等图片生成模型,返回生成图片的 URL。
/v1/images/generations请求示例
curl -X POST "https://api.sanki.ink/v1/images/generations" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedream-4-0-250828",
"prompt": "a cat sitting on a cloud",
"n": 1,
"size": "1024x1024"
}'响应格式
{
"created": 1720000000,
"data": [
{
"url": "https://...",
"revised_prompt": "A detailed illustration of..."
}
]
}视频生成
支持 Kling、Wan 等视频生成模型。视频生成是异步任务,提交后返回 task_id,通过查询接口获取结果。
/v1/videos/generations请求示例
curl -X POST "https://api.sanki.ink/v1/videos/generations" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "kling-v1",
"prompt": "a sunset over the ocean with waves",
"duration": 5,
"size": "1920x1080"
}'{
"task_id": "task_abc123",
"status": "processing",
"message": "Video generation started"
}/v1/videos/:task_id查询视频任务状态和结果。
curl "https://api.sanki.ink/v1/videos/task_abc123" \
-H "Authorization: Bearer YOUR_API_KEY"{
"task_id": "task_abc123",
"status": "completed",
"video_url": "https://...",
"duration": 5,
"size": "1920x1080"
}流式响应(SSE)
两种协议均支持 Server-Sent Events (SSE) 流式响应。设置对应参数启用:
OpenAI 流式
设置 stream: true,返回 data: 前缀的 SSE 事件。
curl -X POST "https://api.sanki.ink/v1/chat/completions" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "MiniMax-M3",
"messages": [{"role": "user", "content": "讲个故事"}],
"stream": true
}'data: {"choices":[{"delta":{"content":"前"}}]}
data: {"choices":[{"delta":{},"finish_reason":"stop"}]}
data: [DONE]
模型列表
/v1/models列出所有可用的模型及信息。需携带认证头。
curl "https://api.sanki.ink/v1/models" \
-H "Authorization: Bearer YOUR_API_KEY"错误码
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
| 400 | Bad Request | 否 | 请求参数错误,如缺少必填字段或格式不正确 |
| 401 | Unauthorized | 否 | 认证失败,API Key 无效或已过期 |
| 402 | Payment Required | 否 | 余额不足,请充值后重试 |
| 403 | Forbidden | 否 | 无权限访问该资源 |
| 404 | Not Found | 否 | 资源不存在 |
| 429 | Too Many Requests | 否 | 请求频率超过限制,请稍后重试 |
| 500 | Internal Server Error | 否 | 服务器内部错误,请稍后重试或联系支持 |
| 503 | Service Unavailable | 否 | 服务暂不可用,上游模型可能过载 |
错误响应示例
{
"error": {
"type": "insufficient_quota",
"message": "余额不足,当前余额 ¥0.50,本次调用需要 ¥0.15",
"code": 402
}
}速率限制
为保障平台稳定性,Sanki API 实施速率限制。超出限制时返回 429 状态码。
RPM = 每分钟请求数,TPM = 每分钟 Token 数。升级套餐可获得更高限额。
SDKs
Sanki API 完全兼容 OpenAI / Anthropic 官方 SDK,直接修改 base_url 即可接入。
Python (OpenAI SDK)
pip install openaifrom openai import OpenAI
client = OpenAI(
base_url="https://api.sanki.ink/v1",
api_key="YOUR_API_KEY"
)
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "Hello!"}]
)
print(response.choices[0].message.content)Node.js (OpenAI SDK)
npm install openaiimport OpenAI from 'openai';
const client = new OpenAI({
baseURL: 'https://api.sanki.ink/v1',
apiKey: 'YOUR_API_KEY',
});
const response = await client.chat.completions.create({
model: 'gpt-4o',
messages: [{ role: 'user', content: 'Hello!' }],
});
console.log(response.choices[0].message.content);Python (Anthropic SDK)
pip install anthropicfrom anthropic import Anthropic
client = Anthropic(
base_url="https://api.sanki.ink/v1",
api_key="YOUR_API_KEY"
)
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[{"role": "user", "content": "Hello!"}]
)
print(response.content[0].text)Claude Code 配置
在 Claude Code 中使用 Sanki,设置环境变量指向 Sanki API:
export ANTHROPIC_BASE_URL="https://api.sanki.ink/v1"
export ANTHROPIC_API_KEY="YOUR_SANKI_API_KEY"变更日志
- 新增图片生成 API (/v1/images/generations)
- 新增视频生成 API (/v1/videos/generations)
- 新增 Responses API (/v1/responses)
- 新增计量规则体系(8 维 token + 图片/视频)
- 销售价设置:支持按维度独立加价
- 计量计价全链路优化
- 生产环境深度优化
- 断路器机制完善
- 协议框架零转换原则落地
- 新增 Gemini 协议入口
- API Key 升级为 64 字符(sk- + 61 char base62)
- 修复 base_url 双 /v1 拼接问题,新增客户端速查表
- 用户中心 API Key 面板:显示/隐藏切换、多次复制、下载 .txt 备份
- 历史 sk-sanki-* 35 字符 Key 已强制停用
- 新增 Anthropic Messages API 入站端点 /v1/messages
- 支持 Claude Code 直接接入
- 更新多协议 API 文档
- 全新统一 API 网关上线
- 支持 OpenAI 兼容协议
- 新增模型广场与热门排行
- 完善三语国际化支持
- 平台正式上线
- 基础 Chat Completions 接口
- API Key 管理与用量统计
还有问题?访问控制台获取 API Key,或查看模型广场了解可用模型。
