Tài liệu tham khảo API
API Sanki hỗ trợ cả định dạng giao thức OpenAI và Anthropic. Chọn phương thức tích hợp phù hợp với nhu cầu của bạn.
Bắt đầu nhanh
Bắt đầu với API Sanki chỉ trong ba bước:
URL cơ sở
Sanki cung cấp hai phương thức truy cập giao thức. Chọn URL cơ sở và phương thức xác thực phù hợp với client của bạn:
https://api.sanki.ink/v1SDK phù hợp: openai (Python/Node/Go)
Phương thức xác thực: Authorization: Bearer <key>
Điểm cuối chính: /v1/chat/completions
https://api.sanki.ink/v1SDK phù hợp: @anthropic-ai/sdk / Claude Code
Phương thức xác thực: x-api-key: <key>
Điểm cuối chính: /v1/messages
Bảng tra cứu URL cơ sở theo Client
Các client khác nhau xử lý base_url khác nhau: một số sử dụng nó như tiền tố hoàn chỉnh, trong khi số khác tự động thêm /v1. Sử dụng cài đặt sai có thể gây lỗi tiền tố kép như /v1/v1/messages.
| Máy khách | URL cơ sở cần dùng | Ghi chú |
|---|---|---|
| OpenAI Python/Node SDK | https://api.sanki.ink/v1 | SDK coi base_url là tiền tố hoàn chỉnh, cần /v1 |
| Anthropic Python/Node SDK | https://api.sanki.ink/v1 | Tương tự trên, cần /v1 |
| Claude Code (ANTHROPIC_BASE_URL) | https://api.sanki.ink/v1 | Không có /v1; Claude Code tự động thêm /v1/messages |
| Hermes Agent (custom_providers) | https://api.sanki.ink | Không có /v1; Hermes tự động thêm /v1/messages |
| curl | https://api.sanki.ink/v1/chat/completions | URL đầy đủ bao gồm /v1 và điểm cuối cụ thể |
Dùng thử trong một phút
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!"}
]
}'Xác thực
Sử dụng tiêu đề xác thực khác nhau tùy theo giao thức. Tạo và quản lý Khóa API trên trang Khóa API.
Đặc tả định dạng Khóa API
Nền tảng hiện sử dụng Khóa API tiền tố sk-, dài 64 ký tự (tiền tố sk- + 61 ký tự ngẫu nhiên base62):
sk-yt1zAiMnFWCH3OwAfwXZEMGRnIgLq1mxkxxUSlDaHgq3jOGTlSJUc6TPUuMzo
└sk─── 61 char base62 (A-Z a-z 0-9) ───────────────────────┘⚠ Lưu ý bảo mật: Khóa đầy đủ chỉ hiển thị một lần khi tạo và không thể xem lại sau khi đóng bảng điều khiển. Sao chép hoặc tải xuống bản sao lưu .txt ngay lập tức. Danh sách chỉ hiển thị 12 ký tự tiền tố đầu tiên (ví dụ: sk-yt1zAiMnF) để nhận dạng, không phải để xác thực.
⛔ Khóa cũ đã ngừng hỗ trợ: Các khóa định dạng cũ sk-sanki-* (35 ký tự) đã bị thu hồi bắt buộc. Vui lòng tạo lại khóa mới có tiền tố sk-.
Xác thực giao thức OpenAI
Authorization: Bearer YOUR_API_KEYÁp dụng cho /v1/chat/completions, /v1/models và các điểm cuối tương thích OpenAI khác.
Xác thực giao thức Anthropic
x-api-key: YOUR_API_KEY
anthropic-version: 2023-06-01Chat Completions (OpenAI)
Điểm cuối Chat Completions tương thích OpenAI tiêu chuẩn. Với danh sách tin nhắn hội thoại, mô hình trả về phản hồi.
/v1/chat/completionsTham số yêu cầu
| Tham số | Loại | Bắt buộc | Mô tả |
|---|---|---|---|
| model | string | Có | ID mô hình, ví dụ: gpt-4o, claude-sonnet-4-6, gemini-2.5-pro |
| messages | array | Có | Danh sách tin nhắn, mỗi tin chứa role (system/user/assistant/tool) và content |
| temperature | number | Không | Nhiệt độ lấy mẫu 0-2, mặc định 1. Giá trị cao hơn tạo ra nhiều ngẫu nhiên hơn. |
| top_p | number | Không | Tham số lấy mẫu hạt nhân 0-1, mặc định 1 |
| max_tokens | integer | Không | Số lượng token tối đa cần tạo |
| stream | boolean | Không | Bật phản hồi luồng SSE, mặc định false |
| tools | array | Không | Danh sách định nghĩa công cụ gọi hàm |
Ví dụ yêu cầu
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)Định dạng phản hồi
{
"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)
Điểm cuối tương thích Anthropic Messages API. Hỗ trợ tích hợp trực tiếp với các công cụ như Claude Code qua /v1/messages.
/v1/messagesTham số yêu cầu
| Tham số | Loại | Bắt buộc | Mô tả |
|---|---|---|---|
| model | string | Có | ID mô hình, ví dụ: gpt-4o, claude-sonnet-4-6, gemini-2.5-pro |
| messages | array | Có | Danh sách tin nhắn, mỗi tin chứa role (user/assistant) và content |
| max_tokens | integer | Có | Số lượng token tối đa cần tạo |
| system | string | array | Không | Lời nhắc hệ thống, có thể là chuỗi hoặc mảng khối nội dung |
| temperature | number | Không | Nhiệt độ lấy mẫu 0-1, mặc định 1 |
| top_p | number | Không | Tham số lấy mẫu hạt nhân 0-1, mặc định 1 |
| tools | array | Không | Danh sách định nghĩa công cụ gọi hàm |
Ví dụ yêu cầu
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)Định dạng phản hồi
{
"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/responsesVí dụ yêu cầu
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
}'Tạo Ảnh
支持 DALL·E、Wan 等图片生成模型,返回生成图片的 URL。
/v1/images/generationsVí dụ yêu cầu
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"
}'Định dạng phản hồi
{
"created": 1720000000,
"data": [
{
"url": "https://...",
"revised_prompt": "A detailed illustration of..."
}
]
}Tạo Video
支持 Kling、Wan 等视频生成模型。视频生成是异步任务,提交后返回 task_id,通过查询接口获取结果。
/v1/videos/generationsVí dụ yêu cầu
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"
}Luồng (SSE)
Cả hai giao thức đều hỗ trợ luồng Server-Sent Events (SSE). Kích hoạt bằng cách đặt tham số tương ứng:
Luồng OpenAI
Đặt stream: true để nhận sự kiện SSE có tiền tố data:.
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]
Mô hình
/v1/modelsLiệt kê tất cả mô hình khả dụng và thông tin của chúng. Yêu cầu tiêu đề xác thực.
curl "https://api.sanki.ink/v1/models" \
-H "Authorization: Bearer YOUR_API_KEY"Mã lỗi
| Tham số | Loại | Bắt buộc | Mô tả |
|---|---|---|---|
| 400 | Bad Request | Không | Yêu cầu không hợp lệ — thiếu trường bắt buộc hoặc định dạng không hợp lệ |
| 401 | Unauthorized | Không | Không được ủy quyền — Khóa API không hợp lệ hoặc đã hết hạn |
| 402 | Payment Required | Không | Yêu cầu thanh toán — số dư không đủ, vui lòng nạp tiền và thử lại |
| 403 | Forbidden | Không | Bị cấm — không có quyền truy cập tài nguyên này |
| 404 | Not Found | Không | Không tìm thấy — tài nguyên không tồn tại |
| 429 | Too Many Requests | Không | Quá nhiều yêu cầu — vượt quá giới hạn tốc độ, vui lòng thử lại sau |
| 500 | Internal Server Error | Không | Lỗi máy chủ nội bộ — vui lòng thử lại sau hoặc liên hệ hỗ trợ |
| 503 | Service Unavailable | Không | Dịch vụ không khả dụng — mô hình ngược dòng có thể đang quá tải |
Ví dụ phản hồi lỗi
{
"error": {
"type": "insufficient_quota",
"message": "余额不足,当前余额 ¥0.50,本次调用需要 ¥0.15",
"code": 402
}
}Giới hạn tốc độ
Để đảm bảo tính ổn định của nền tảng, API Sanki áp dụng giới hạn tốc độ. Mã trạng thái 429 được trả về khi vượt quá giới hạn.
RPM = Yêu cầu mỗi phút, TPM = Token mỗi phút. Nâng cấp gói để có giới hạn cao hơn.
SDK
API Sanki hoàn toàn tương thích với SDK chính thức của OpenAI / Anthropic. Chỉ cần thay đổi base_url để bắt đầu.
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)Cấu hình Claude Code
Để sử dụng Sanki với Claude Code, đặt biến môi trường trỏ đến API Sanki:
export ANTHROPIC_BASE_URL="https://api.sanki.ink/v1"
export ANTHROPIC_API_KEY="YOUR_SANKI_API_KEY"Nhật ký thay đổi
- 新增图片生成 API (/v1/images/generations)
- 新增视频生成 API (/v1/videos/generations)
- 新增 Responses API (/v1/responses)
- 新增计量规则体系(8 维 token + 图片/视频)
- 销售价设置:支持按维度独立加价
- 计量计价全链路优化
- 生产环境深度优化
- 断路器机制完善
- 协议框架零转换原则落地
- 新增 Gemini 协议入口
- Nâng cấp Khóa API lên 64 ký tự (sk- + 61 ký tự base62)
- Sửa lỗi trùng lặp /v1 trong base_url, thêm bảng tra cứu client
- Bảng Khóa API trong Trung tâm người dùng: bật/tắt hiển thị, sao chép nhiều lần, tải xuống sao lưu .txt
- Khóa định dạng cũ sk-sanki-* 35 ký tự đã bị thu hồi bắt buộc
- Thêm điểm cuối inbound Anthropic Messages API /v1/messages
- Hỗ trợ tích hợp trực tiếp Claude Code
- Cập nhật tài liệu API đa giao thức
- Ra mắt cổng API hợp nhất mới
- Hỗ trợ giao thức tương thích OpenAI
- Thêm Quảng trường Mô hình và Bảng xếp hạng
- Cải thiện hỗ trợ i18n ba ngôn ngữ
- Nền tảng chính thức ra mắt
- Điểm cuối Chat Completions cơ bản
- Quản lý Khóa API và thống kê sử dụng
Vẫn còn thắc mắc? Truy cập Bảng điều khiển để lấy Khóa API, hoặc khám phá Quảng trường Mô hình để xem các mô hình khả dụng.
