メインコンテンツへスキップ

クイックスタート

AI Station は NewAPI を基盤とした統一モデルゲートウェイです。API は OpenAI 互換で、さらに Anthropic、Gemini、Midjourney、および各種動画/音声プラグインタスクにも対応しています。

エンドポイント​

項目値
Base URLhttps://test.kailin.com.cn
認証Authorization: Bearer sk-xxxx(リクエストヘッダー)
プロトコルHTTPS — REST、SSE ストリーミング、WebSocket(Realtime)

API キーの取得​

  1. コンソール にサインインします。
  2. トークン / API Keys ページで新しいトークンを作成します。トークンは sk-xxxxxxxx のような形式です。
  3. トークンは厳重に管理してください。リポジトリにコミットしたり、クライアントサイドのコードで露出させたりしないでください。

最初のリクエスト​

すべてのエンドポイントは Authorization: Bearer <あなたのトークン> ヘッダーで認証されます。チャット補完の例:

curl https://test.kailin.com.cn/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-your-token" \
-d '{
"model": "deepseek-v4-1-flash-261017",
"messages": [
{ "role": "user", "content": "Hello, introduce yourself" }
]
}'
RequestREQUEST
POSThttps://test.kailin.com.cn/v1/chat/completions
ResponseRESPONSE
Fill in the request and hit Send — the response shows up here

公式 SDK​

API は OpenAI 互換のため、公式 SDK はそのまま動作します — base_url をこのサイトに向けるだけです。

from openai import OpenAI

client = OpenAI(
api_key="sk-your-token",
base_url="https://test.kailin.com.cn/v1",
)

resp = client.chat.completions.create(
model="deepseek-v4-1-flash-261017",
messages=[{"role": "user", "content": "Hello"}],
)
print(resp.choices[0].message.content)
import OpenAI from 'openai';

const client = new OpenAI({
apiKey: 'sk-your-token',
baseURL: 'https://test.kailin.com.cn/v1',
});

const resp = await client.chat.completions.create({
model: 'deepseek-v4-1-flash-261017',
messages: [{ role: 'user', content: 'Hello' }],
});
console.log(resp.choices[0].message.content);

Anthropic SDK も利用できます(base_url をこのサイトに向けてください)。詳しくは Anthropic Messages を参照してください。

ストリーミング​

ほとんどのテキスト系エンドポイントは "stream": true を受け付け、SSE (Server-Sent Events) で応答します — text/event-stream 形式で、各イベントは data: で始まり、data: [DONE] で終了します:

data: {"id":"chatcmpl-xxx","choices":[{"delta":{"content":"Hi"},"index":0}]}

data: {"id":"chatcmpl-xxx","choices":[{"delta":{"content":" there"},"index":0}]}

data: [DONE]

SDK で stream=True(Python)または stream: true(Node.js)を設定すれば、あとのパースは SDK が処理してくれます。

エラー形式​

エラーは JSON として返されます。type は通常 new_api_error(ゲートウェイレベル)か、invalid_request_error などの上流エラーです:

{
"error": {
"message": "Invalid token (request id: 2026xxxx)",
"type": "new_api_error",
"code": ""
}
}
HTTP ステータス意味よくある原因
401認証失敗トークンが無効・削除済み、または Authorization ヘッダーがない
403権限なしトークンにモデルへのアクセス権がない、グループ不一致、IP 制限
404見つかりませんモデル名またはタスク ID の誤り
429レート制限RPM/TPM 上限に到達 — 時間を置いて再試行
5xxサーバーエラー上流チャネルの問題 — 再試行するかモデルを切り替えてください
備考

エラーメッセージに含まれる request id はトラブルシューティングの手がかりです。問題を報告する際は必ず添付してください。

利用可能なモデルの一覧​

List Models を呼び出すと、このトークンがアクセスできるモデルを確認できます:

curl https://test.kailin.com.cn/v1/models \
-H "Authorization: Bearer sk-your-token"

API 概要​

カテゴリエンドポイント説明
ModelsGET /v1/models利用可能なモデル一覧
TextPOST /v1/chat/completionsチャット補完(マルチモーダル / ツール / 推論)
TextPOST /v1/completionsレガシーのテキスト補完
TextPOST /v1/responsesResponses API
TextPOST /v1/messagesAnthropic 形式
EmbeddingsPOST /v1/embeddingsテキスト埋め込み
ImagesPOST /v1/images/generations画像生成
AudioPOST /v1/audio/transcriptions など文字起こし / 翻訳 / TTS
RealtimeWS /v1/realtimeリアルタイム音声会話
RankingPOST /v1/rerankテキストのリランキング
SafetyPOST /v1/moderationsコンテンツモデレーション
VideoPOST /v1/video/generations動画生成タスク
Images/mj/*Midjourney プロキシ
TasksPOST /v1/tasks汎用プラグインタスク(Suno/Kling など)