เอกสารอ้างอิง API

Sanki API รองรับทั้งรูปแบบโปรโตคอล OpenAI และ Anthropic เลือกวิธีการผสานรวมที่เหมาะกับความต้องการของคุณ

เริ่มต้นอย่างรวดเร็ว

เริ่มต้นกับ Sanki API ในเพียงสามขั้นตอน:

สร้างบัญชี
ลงทะเบียนและเข้าสู่ระบบบนแพลตฟอร์ม Sanki
รับ API Key ของคุณ
สร้าง API Key ในหน้า API Keys
ส่งคำขอ
เลือกรูปแบบโปรโตคอลและเริ่มเรียกใช้

URL ฐาน

Sanki มีวิธีการเข้าถึงโปรโตคอลสองแบบ เลือก URL ฐานและวิธีการตรวจสอบสิทธิ์ที่ตรงกับไคลเอนต์ของคุณ:

เข้ากันได้กับ OpenAI
https://api.sanki.ink/v1

SDK ที่เหมาะสม: openai (Python/Node/Go)

วิธีการตรวจสอบสิทธิ์: Authorization: Bearer <key>

จุดปลายทางหลัก: /v1/chat/completions

เข้ากันได้กับ Anthropic
https://api.sanki.ink/v1

SDK ที่เหมาะสม: @anthropic-ai/sdk / Claude Code

วิธีการตรวจสอบสิทธิ์: x-api-key: <key>

จุดปลายทางหลัก: /v1/messages

ตารางอ้างอิง URL ฐานตามไคลเอนต์

ไคลเอนต์แต่ละตัวจัดการ base_url แตกต่างกัน: บางตัวใช้เป็นคำนำหน้าแบบสมบูรณ์ ในขณะที่บางตัวเติม /v1 โดยอัตโนมัติ การใช้การตั้งค่าที่ไม่ถูกต้องอาจทำให้เกิดข้อผิดพลาดคำนำหน้าซ้ำ เช่น /v1/v1/messages

ไคลเอนต์URL ฐานที่ต้องใช้หมายเหตุ
OpenAI Python/Node SDKhttps://api.sanki.ink/v1SDK ถือว่า base_url เป็นคำนำหน้าแบบสมบูรณ์ ต้องมี /v1
Anthropic Python/Node SDKhttps://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 โดยอัตโนมัติ
curlhttps://api.sanki.ink/v1/chat/completionsURL เต็มรวม /v1 และจุดปลายทางเฉพาะ

ลองใช้ในหนึ่งนาที

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!"}
    ]
  }'

การตรวจสอบสิทธิ์

ใช้ส่วนหัวการตรวจสอบสิทธิ์ที่แตกต่างกันขึ้นอยู่กับโปรโตคอล สร้างและจัดการ API Key ของคุณในหน้า API Keys

ข้อกำหนดรูปแบบ API Key

ปัจจุบันแพลตฟอร์มใช้ API Key ที่มีคำนำหน้า sk- ความยาว 64 ตัวอักษร (คำนำหน้า sk- + สตริงสุ่ม base62 61 ตัวอักษร):

text
sk-yt1zAiMnFWCH3OwAfwXZEMGRnIgLq1mxkxxUSlDaHgq3jOGTlSJUc6TPUuMzo
└sk─── 61 char base62 (A-Z a-z 0-9) ───────────────────────┘

⚠ ประกาศด้านความปลอดภัย: คีย์แบบเต็มจะแสดงเพียงครั้งเดียวเมื่อสร้างและไม่สามารถดูอีกครั้งได้หลังจากปิดแผงควบคุม กรุณาคัดลอกหรือดาวน์โหลดไฟล์สำรอง .txt ทันที รายการแสดงเฉพาะคำนำหน้า 12 ตัวอักษรแรก (เช่น sk-yt1zAiMnF) เพื่อการระบุตัวตน ไม่ใช่เพื่อการตรวจสอบสิทธิ์

⛔ คีย์เก่าเลิกใช้งานแล้ว: คีย์รูปแบบเก่า sk-sanki-* (35 ตัวอักษร) ทั้งหมดถูกเพิกถอนแล้ว กรุณาสร้างคีย์ใหม่ที่มีคำนำหน้า sk-

การตรวจสอบสิทธิ์โปรโตคอล OpenAI

http
Authorization: Bearer YOUR_API_KEY

ใช้กับ /v1/chat/completions, /v1/models และจุดปลายทางที่เข้ากันได้กับ OpenAI อื่นๆ

การตรวจสอบสิทธิ์โปรโตคอล Anthropic

http
x-api-key: YOUR_API_KEY
anthropic-version: 2023-06-01
สำคัญ: จุดปลายทาง /v1/messages ต้องใช้ส่วนหัว x-api-key และไม่รองรับ Authorization: Bearer ซึ่งตรงกับพฤติกรรมอย่างเป็นทางการของ Anthropic API — SDK อย่างเป็นทางการ / Claude Code / Hermes (โหมด anthropic) ใช้ x-api-key เป็นค่าเริ่มต้นโดยไม่ต้องกำหนดค่าเพิ่มเติม หากคุณเห็นข้อผิดพลาด 401 ไม่พบส่วนหัว x-api-key ให้ตรวจสอบว่าคุณใช้ส่วนหัว Bearer โดยไม่ได้ตั้งใจหรือไม่

Chat Completions (OpenAI)

จุดปลายทาง Chat Completions ที่เข้ากันได้กับ OpenAI มาตรฐาน เมื่อกำหนดรายการข้อความการสนทนา โมเดลจะส่งคืนการตอบกลับ

POST/v1/chat/completions

พารามิเตอร์คำขอ

พารามิเตอร์ประเภทจำเป็นคำอธิบาย
modelstringใช่ID โมเดล เช่น gpt-4o, claude-sonnet-4-6, gemini-2.5-pro
messagesarrayใช่รายการข้อความ แต่ละรายการประกอบด้วย role (system/user/assistant/tool) และ content
temperaturenumberไม่ใช่อุณหภูมิการสุ่ม 0-2 ค่าเริ่มต้น 1 ค่าที่สูงขึ้นให้ผลลัพธ์ที่สุ่มมากขึ้น
top_pnumberไม่ใช่พารามิเตอร์การสุ่มนิวเคลียส 0-1 ค่าเริ่มต้น 1
max_tokensintegerไม่ใช่จำนวนโทเค็นสูงสุดที่จะสร้าง
streambooleanไม่ใช่เปิดใช้งานการตอบกลับแบบสตรีมมิ่ง SSE ค่าเริ่มต้น false
toolsarrayไม่ใช่รายการคำจำกัดความเครื่องมือการเรียกฟังก์ชัน

ตัวอย่างคำขอ

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)

รูปแบบการตอบกลับ

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)

จุดปลายทางที่เข้ากันได้กับ Anthropic Messages API รองรับการผสานรวมโดยตรงกับเครื่องมือเช่น Claude Code ผ่าน /v1/messages

POST/v1/messages

พารามิเตอร์คำขอ

พารามิเตอร์ประเภทจำเป็นคำอธิบาย
modelstringใช่ID โมเดล เช่น gpt-4o, claude-sonnet-4-6, gemini-2.5-pro
messagesarrayใช่รายการข้อความ แต่ละรายการประกอบด้วย role (user/assistant) และ content
max_tokensintegerใช่จำนวนโทเค็นสูงสุดที่จะสร้าง
systemstring | arrayไม่ใช่พรอมต์ระบบ เป็นสตริงหรืออาร์เรย์ของบล็อกเนื้อหา
temperaturenumberไม่ใช่อุณหภูมิการสุ่ม 0-1 ค่าเริ่มต้น 1
top_pnumberไม่ใช่พารามิเตอร์การสุ่มนิวเคลียส 0-1 ค่าเริ่มต้น 1
toolsarrayไม่ใช่รายการคำจำกัดความเครื่องมือการเรียกฟังก์ชัน

ตัวอย่างคำขอ

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)

รูปแบบการตอบกลับ

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

ตัวอย่างคำขอ

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

การสร้างรูปภาพ

支持 DALL·E、Wan 等图片生成模型,返回生成图片的 URL。

POST/v1/images/generations

ตัวอย่างคำขอ

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"
  }'

รูปแบบการตอบกลับ

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

การสร้างวิดีโอ

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

POST/v1/videos/generations

ตัวอย่างคำขอ

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"
}

สตรีมมิ่ง (SSE)

ทั้งสองโปรโตคอลรองรับการสตรีม Server-Sent Events (SSE) เปิดใช้งานโดยการตั้งค่าพารามิเตอร์ที่เกี่ยวข้อง:

การสตรีม OpenAI

ตั้งค่า stream: true เพื่อรับเหตุการณ์ SSE ที่มีคำนำหน้า 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]

โมเดล

GET/v1/models

แสดงรายการโมเดลที่มีอยู่ทั้งหมดและข้อมูล ต้องมีส่วนหัวการตรวจสอบสิทธิ์

curl (OpenAI)
curl "https://api.sanki.ink/v1/models" \
  -H "Authorization: Bearer YOUR_API_KEY"

รหัสข้อผิดพลาด

พารามิเตอร์ประเภทจำเป็นคำอธิบาย
400Bad Requestไม่ใช่คำขอไม่ถูกต้อง — ขาดฟิลด์ที่จำเป็นหรือรูปแบบไม่ถูกต้อง
401Unauthorizedไม่ใช่ไม่ได้รับอนุญาต — API Key ไม่ถูกต้องหรือหมดอายุ
402Payment Requiredไม่ใช่ต้องชำระเงิน — ยอดเงินไม่เพียงพอ กรุณาเติมเงินแล้วลองอีกครั้ง
403Forbiddenไม่ใช่ถูกปฏิเสธ — ไม่มีสิทธิ์เข้าถึงทรัพยากรนี้
404Not Foundไม่ใช่ไม่พบ — ทรัพยากรไม่มีอยู่
429Too Many Requestsไม่ใช่คำขอมากเกินไป — เกินขีดจำกัดอัตรา กรุณาลองอีกครั้งภายหลัง
500Internal Server Errorไม่ใช่ข้อผิดพลาดเซิร์ฟเวอร์ภายใน — กรุณาลองอีกครั้งภายหลังหรือติดต่อฝ่ายสนับสนุน
503Service Unavailableไม่ใช่บริการไม่พร้อมใช้งาน — โมเดลต้นทางอาจทำงานหนักเกินไป

ตัวอย่างการตอบกลับข้อผิดพลาด

json
{
  "error": {
    "type": "insufficient_quota",
    "message": "余额不足,当前余额 ¥0.50,本次调用需要 ¥0.15",
    "code": 402
  }
}

ขีดจำกัดอัตรา

เพื่อรับประกันความเสถียรของแพลตฟอร์ม Sanki API บังคับใช้ขีดจำกัดอัตรา รหัสสถานะ 429 จะถูกส่งกลับเมื่อเกินขีดจำกัด

แผนฟรี
10 RPM
10,000 TPM
แผนพื้นฐาน
60 RPM
100,000 TPM
แผน Pro
300 RPM
1,000,000 TPM

RPM = คำขอต่อนาที TPM = โทเค็นต่อนาที อัปเกรดแผนของคุณเพื่อขีดจำกัดที่สูงขึ้น

SDK

Sanki API เข้ากันได้อย่างสมบูรณ์กับ SDK อย่างเป็นทางการของ OpenAI / Anthropic เพียงเปลี่ยน base_url เพื่อเริ่มต้น

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)

การกำหนดค่า Claude Code

ในการใช้ Sanki กับ Claude Code ให้ตั้งค่าตัวแปรสภาพแวดล้อมให้ชี้ไปที่ Sanki API:

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

บันทึกการเปลี่ยนแปลง

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
  • อัปเกรด API Key เป็น 64 ตัวอักษร (sk- + base62 61 ตัวอักษร)
  • แก้ไขปัญหาการต่อ /v1 ซ้ำใน base_url เพิ่มตารางอ้างอิงไคลเอนต์
  • แผง API Key ในศูนย์ผู้ใช้: สลับแสดง/ซ่อน คัดลอกหลายครั้ง ดาวน์โหลดไฟล์สำรอง .txt
  • คีย์รูปแบบเก่า sk-sanki-* 35 ตัวอักษรถูกเพิกถอนทั้งหมด
v2.12026-06
  • เพิ่มจุดปลายทางขาเข้า Anthropic Messages API /v1/messages
  • รองรับการผสานรวม Claude Code โดยตรง
  • อัปเดตเอกสาร API หลายโปรโตคอล
v2.02026-05
  • เปิดตัว API เกตเวย์แบบรวมศูนย์ใหม่
  • รองรับโปรโตคอลที่เข้ากันได้กับ OpenAI
  • เพิ่มลานโมเดลและการจัดอันดับ
  • ปรับปรุงการรองรับ i18n สามภาษา
v1.02025-12
  • เปิดตัวแพลตฟอร์มอย่างเป็นทางการ
  • จุดปลายทาง Chat Completions พื้นฐาน
  • การจัดการ API Key และสถิติการใช้งาน

ยังมีคำถาม? เยี่ยมชมคอนโซลเพื่อรับ API Key ของคุณ หรือสำรวจลานโมเดลเพื่อดูโมเดลที่มีให้บริการ

客服
สนับสนุน