API リファレンスドキュメント
Sanki API は OpenAI と Anthropic の2つのプロトコル形式をサポートしています。ニーズに合わせて適切な接続方法を選択してください。
クイックスタート
わずか3ステップで Sanki API に接続:
Base URLs
Sanki は2つのプロトコルアクセス方法を提供しています。クライアントに応じて適切な 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 と特定のエンドポイントを含む |
1分間体験
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 キー形式仕様
現在のプラットフォームでは sk- で始まる64文字の API キー(プレフィックス sk- + 61文字の base62 ランダム文字列)を使用しています:
sk-yt1zAiMnFWCH3OwAfwXZEMGRnIgLq1mxkxxUSlDaHgq3jOGTlSJUc6TPUuMzo
└sk─── 61 char base62 (A-Z a-z 0-9) ───────────────────────┘⚠ セキュリティ注意:完全なキーは作成時に一度だけ表示され、パネルを閉じると再表示できません。作成後すぐにコピーするか .txt バックアップをダウンロードしてください。一覧には識別用の先頭12文字のプレフィックス(例:sk-yt1zAiMnF)のみが表示され、認証には使用できません。
⛔ 旧キー廃止:過去の sk-sanki-* 形式(35文字)の旧キーはすべて強制失効されました。新しい sk- で始まるキーを再生成してください。
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 | いいえ | 生成する最大トークン数 |
| 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 互換エンドポイント。/v1/messages を介して Claude Code などのツールとの直接統合をサポートします。
/v1/messagesリクエストパラメータ
| パラメータ | タイプ | 必須 | 説明 |
|---|---|---|---|
| model | string | はい | モデル ID、例:gpt-4o、claude-sonnet-4-6、gemini-2.5-pro |
| messages | array | はい | メッセージリスト、各メッセージに role(user/assistant)と content を含む |
| max_tokens | integer | はい | 生成する最大トークン数 |
| 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 | いいえ | Bad Request — 必須フィールドの不足または形式が正しくありません |
| 401 | Unauthorized | いいえ | Unauthorized — API キーが無効または期限切れです |
| 402 | Payment Required | いいえ | Payment Required — 残高不足です。チャージして再試行してください |
| 403 | Forbidden | いいえ | Forbidden — このリソースにアクセスする権限がありません |
| 404 | Not Found | いいえ | Not Found — リソースが存在しません |
| 429 | Too Many Requests | いいえ | Too Many Requests — レート制限を超えました。しばらくしてから再試行してください |
| 500 | Internal Server Error | いいえ | Internal Server Error — しばらくしてから再試行するか、サポートにお問い合わせください |
| 503 | Service Unavailable | いいえ | Service Unavailable — 上流モデルが過負荷の可能性があります |
エラーレスポンス例
{
"error": {
"type": "insufficient_quota",
"message": "余额不足,当前余额 ¥0.50,本次调用需要 ¥0.15",
"code": 402
}
}レート制限
プラットフォームの安定性を確保するため、Sanki API はレート制限を実施しています。制限を超えると 429 ステータスコードが返されます。
RPM = 1分あたりのリクエスト数、TPM = 1分あたりのトークン数。プランをアップグレードするとより高い制限が得られます。
SDK
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 キーを64文字にアップグレード(sk- + 61文字 base62)
- base_url の二重 /v1 連結問題を修正、クライアント早見表を追加
- ユーザーセンター API キーパネル:表示/非表示切替、複数回コピー、.txt バックアップダウンロード
- 過去の sk-sanki-* 35文字キーは強制失効
- Anthropic Messages API インバウンドエンドポイント /v1/messages を追加
- Claude Code 直接統合サポート
- マルチプロトコル API ドキュメントを更新
- 新しい統合 API ゲートウェイをリリース
- OpenAI 互換プロトコルサポート
- モデル広場と人気ランキングを追加
- 三言語国際化サポートを改善
- プラットフォーム正式リリース
- 基本的な Chat Completions エンドポイント
- API キー管理と利用統計
まだ質問がありますか?コンソールにアクセスして API キーを取得するか、モデル広場で利用可能なモデルを確認してください。
