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:

Tạo tài khoản
Đăng ký và đăng nhập trên nền tảng Sanki
Lấy Khóa API
Tạo khóa API trên trang Khóa API
Gửi yêu cầu
Chọn định dạng giao thức và bắt đầu gọi

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:

Tương thích OpenAI
https://api.sanki.ink/v1

SDK 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

Tương thích Anthropic
https://api.sanki.ink/v1

SDK 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áchURL cơ sở cần dùngGhi chú
OpenAI Python/Node SDKhttps://api.sanki.ink/v1SDK coi base_url là tiền tố hoàn chỉnh, cần /v1
Anthropic Python/Node SDKhttps://api.sanki.ink/v1Tương tự trên, cần /v1
Claude Code (ANTHROPIC_BASE_URL)https://api.sanki.ink/v1Không có /v1; Claude Code tự động thêm /v1/messages
Hermes Agent (custom_providers)https://api.sanki.inkKhông có /v1; Hermes tự động thêm /v1/messages
curlhttps://api.sanki.ink/v1/chat/completionsURL đầy đủ bao gồm /v1 và điểm cuối cụ thể

Dùng thử trong một phút

curl (OpenAI)
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 (Anthropic)
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):

text
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

http
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

http
x-api-key: YOUR_API_KEY
anthropic-version: 2023-06-01
Quan trọng: Điểm cuối /v1/messages phải sử dụng tiêu đề x-api-key và KHÔNG hỗ trợ Authorization: Bearer. Điều này khớp với hành vi chính thức của Anthropic API — SDK chính thức / Claude Code / Hermes (chế độ anthropic) sử dụng x-api-key theo mặc định, không cần cấu hình thêm. Nếu bạn thấy lỗi 401 thiếu tiêu đề x-api-key, hãy kiểm tra xem có đang sử dụng nhầm tiêu đề Bearer hay không.

Chat 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.

POST/v1/chat/completions

Tham số yêu cầu

Tham sốLoạiBắt buộcMô tả
modelstringID mô hình, ví dụ: gpt-4o, claude-sonnet-4-6, gemini-2.5-pro
messagesarrayDanh sách tin nhắn, mỗi tin chứa role (system/user/assistant/tool) và content
temperaturenumberKhôngNhiệ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_pnumberKhôngTham số lấy mẫu hạt nhân 0-1, mặc định 1
max_tokensintegerKhôngSố lượng token tối đa cần tạo
streambooleanKhôngBật phản hồi luồng SSE, mặc định false
toolsarrayKhôngDanh sách định nghĩa công cụ gọi hàm

Ví dụ yêu cầu

curl
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
  }'
python
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

json
{
  "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.

POST/v1/messages

Tham số yêu cầu

Tham sốLoạiBắt buộcMô tả
modelstringID mô hình, ví dụ: gpt-4o, claude-sonnet-4-6, gemini-2.5-pro
messagesarrayDanh sách tin nhắn, mỗi tin chứa role (user/assistant) và content
max_tokensintegerSố lượng token tối đa cần tạo
systemstring | arrayKhôngLời nhắc hệ thống, có thể là chuỗi hoặc mảng khối nội dung
temperaturenumberKhôngNhiệt độ lấy mẫu 0-1, mặc định 1
top_pnumberKhôngTham số lấy mẫu hạt nhân 0-1, mặc định 1
toolsarrayKhôngDanh sách định nghĩa công cụ gọi hàm

Ví dụ yêu cầu

curl
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": "解释量子计算"}
    ]
  }'
python
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

json
{
  "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 格式。

POST/v1/responses

Ví dụ yêu cầu

curl
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。

POST/v1/images/generations

Ví dụ yêu cầu

curl
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

json
{
  "created": 1720000000,
  "data": [
    {
      "url": "https://...",
      "revised_prompt": "A detailed illustration of..."
    }
  ]
}

Tạo Video

支持 Kling、Wan 等视频生成模型。视频生成是异步任务,提交后返回 task_id,通过查询接口获取结果。

POST/v1/videos/generations

Ví dụ yêu cầu

curl
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"
  }'
json
{
  "task_id": "task_abc123",
  "status": "processing",
  "message": "Video generation started"
}
GET/v1/videos/:task_id

查询视频任务状态和结果。

curl
curl "https://api.sanki.ink/v1/videos/task_abc123" \
  -H "Authorization: Bearer YOUR_API_KEY"
json
{
  "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
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":{"content":"前"}}]}
data: {"choices":[{"delta":{},"finish_reason":"stop"}]}
data: [DONE]

Mô hình

GET/v1/models

Liệ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 (OpenAI)
curl "https://api.sanki.ink/v1/models" \
  -H "Authorization: Bearer YOUR_API_KEY"

Mã lỗi

Tham sốLoạiBắt buộcMô tả
400Bad RequestKhôngYê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ệ
401UnauthorizedKhôngKhông được ủy quyền — Khóa API không hợp lệ hoặc đã hết hạn
402Payment RequiredKhôngYêu cầu thanh toán — số dư không đủ, vui lòng nạp tiền và thử lại
403ForbiddenKhôngBị cấm — không có quyền truy cập tài nguyên này
404Not FoundKhôngKhông tìm thấy — tài nguyên không tồn tại
429Too Many RequestsKhôngQuá nhiều yêu cầu — vượt quá giới hạn tốc độ, vui lòng thử lại sau
500Internal Server ErrorKhôngLỗi máy chủ nội bộ — vui lòng thử lại sau hoặc liên hệ hỗ trợ
503Service UnavailableKhôngDị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

json
{
  "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.

Gói miễn phí
10 RPM
10,000 TPM
Gói cơ bản
60 RPM
100,000 TPM
Gói Pro
300 RPM
1,000,000 TPM

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)

bash
pip install openai
python
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)

Node.js (OpenAI SDK)

bash
npm install openai
javascript
import 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)

bash
pip install anthropic
python
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,
    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:

bash
export ANTHROPIC_BASE_URL="https://api.sanki.ink/v1"
export ANTHROPIC_API_KEY="YOUR_SANKI_API_KEY"

Nhật ký thay đổi

v2.62026-07
  • 新增图片生成 API (/v1/images/generations)
  • 新增视频生成 API (/v1/videos/generations)
  • 新增 Responses API (/v1/responses)
  • 新增计量规则体系(8 维 token + 图片/视频)
  • 销售价设置:支持按维度独立加价
  • 计量计价全链路优化
v2.52026-06
  • 生产环境深度优化
  • 断路器机制完善
  • 协议框架零转换原则落地
  • 新增 Gemini 协议入口
v2.22026-06-06
  • 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
v2.12026-06
  • 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
v2.02026-05
  • 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ữ
v1.02025-12
  • 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.

客服
Hỗ trợ