/v1/chat/completions
OpenAI SDK、Cherry Studio、Cline、Open WebUI など、ほとんどのツールクライアントで利用できます。
ChinaAPI は、DeepSeek、Qwen、GLM、Kimi、Doubao、画像、動画、埋め込み、リランクモデルに対応する単一の OpenAI 互換エンドポイントを提供します。SDK はそのままに、エンドポイントだけを置き換え、1 つのダッシュボードで利用状況を管理できます。
接続
https://api.chinaapi.ai
https://api.chinaapi.ai/v1 に設定し、ChinaAPI トークンを bearer キーとして使用します。
すべての API リクエストは bearer token 認証を使用します。ダッシュボードでトークンを作成し、Authorization ヘッダーで送信してください。
Authorization: Bearer $CHINAAPI_KEY
Content-Type: application/json
ほとんどの OpenAI クライアントは baseURL を変更するだけで利用できます。ChinaAPI ダッシュボードに掲載されているモデル名を使用してください。
curl https://api.chinaapi.ai/v1/chat/completions \
-H "Authorization: Bearer $CHINAAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-chat",
"messages": [
{ "role": "user", "content": "Hello" }
]
}'
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.CHINAAPI_KEY,
baseURL: "https://api.chinaapi.ai/v1",
});
const result = await client.chat.completions.create({
model: "deepseek-chat",
messages: [{ role: "user", content: "Hello" }],
});
ChinaAPI は OpenAI 形式のトラフィックとプロバイダー固有のトラフィックを転送できます。Claude Messages API または Gemini 互換ペイロードが必要なクライアントには、個別のルートを維持してください。
OpenAI SDK、Cherry Studio、Cline、Open WebUI など、ほとんどのツールクライアントで利用できます。
同じゲートウェイキーとクォータ制御を維持したまま、Claude 形式のメッセージペイロードをルーティングします。
アプリケーションが Gemini のリクエスト構造に依存する場合は、Gemini 互換クライアントを使用します。
動画モデルは 1 回のレスポンスではなくタスクとして応答します。POST /v1/videos はタスク ID と "status": "queued" を返し、GET /v1/videos/{task_id} でタスクが completed または failed になるまで進捗を確認します。完了したら、生成物は metadata.url にある署名付き URL です。この URL には Expires パラメーターが付くため、リンクを保存せずファイル自体をダウンロードしてください。失敗したタスクは上流のコードとメッセージを error.code と error.message に載せるので、リクエストに足りなかったフィールドはたいていそれで分かります。POST /v1/video/generations も同じハンドラーに届くので、そのパスに合わせて実装済みのクライアントはそのまま使えます。
curl https://api.chinaapi.ai/v1/videos \
-H "Authorization: Bearer $CHINAAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan2.7-i2v",
"prompt": "the cat turns and walks toward the camera",
"input_reference": "https://example.com/first-frame.jpg",
"size": "1280*720",
"duration": 5
}'
# {"id":"task_9f2c...","task_id":"task_9f2c...","object":"video",
# "model":"wan2.7-i2v","status":"queued","progress":0}
curl https://api.chinaapi.ai/v1/videos/task_9f2c... \
-H "Authorization: Bearer $CHINAAPI_KEY"
# {"id":"task_9f2c...","object":"video","model":"wan2.7-i2v",
# "status":"completed","progress":100,
# "metadata":{"url":"https://.../output.mp4?Expires=..."}}
必須フィールドは model と prompt だけです。size と duration を省略すると、ゲートウェイは 1280*720 の 5 秒で送信します。
静止画を動かします。input_reference には公開アクセスできる画像 URL を渡し、それが最初のフレームになります。size と duration も一緒に送ってください。
参照素材から動画を作ります。input_reference は参照画像 1 枚を受け取ります。複数渡すときは代わりに images を使い、video_url で参照動画を追加します — 参照は合わせて 5 件までです。input_reference と images を同時に送らないでください。ゲートウェイは input_reference だけを残します。
プロンプトで既存のクリップを編集します。video_url には元動画を渡します。元動画は 2〜10 秒の MP4 または MOV である必要があり、出力は size で決まります。
参照画像は images に入れます。このファミリーは input_reference を無視します。長さは seconds、ベンダー固有のパラメーターは metadata に入れ、resolution は 480p か 720p のどちらかです。
1280*720 のように書きます。x は使えません。832x480 は invalid size: 832x480, example: 1920*1080 が返ります。duration は秒数の整数です。wan2.7-i2v・wan2.7-r2v・wan2.7-videoedit ではゲートウェイが size を解像度の段階に折りたたみ、上流には 2 段階しかありません。720P には 1280*720、1080P には 1920*1080 を送ってください。832*480 のような 480P のサイズは拒否されます。wan2.7-t2v は値をそのまま受け取ります。
curl https://api.chinaapi.ai/v1/videos \
-H "Authorization: Bearer $CHINAAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-2-5-260628",
"prompt": "the subject slowly turns toward the camera",
"images": ["https://example.com/first-frame.jpg"],
"seconds": "5",
"metadata": {"resolution": "480p"}
}'
curl https://api.chinaapi.ai/v1/videos \
-H "Authorization: Bearer $CHINAAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-2-5-260628",
"prompt": "keep the subject from the reference image",
"seconds": "5",
"metadata": {
"resolution": "480p",
"ratio": "16:9",
"content": [
{
"type": "image_url",
"image_url": {"url": "https://example.com/reference.jpg"},
"role": "reference_image"
}
]
}
}'
role のない画像は参照ではなく先頭フレームとして読み取られます。出力の縦横比はその画像に従い、ratio を一緒に送ると InvalidParameter.TaskTypeConstraint で拒否され、seconds の 2 もそこでは拒否されます(5 なら通ります)。generate_audio は上流の既定が true なので、metadata で false にしない限り音声トラック付きのファイルが返ります。metadata.content の各要素に role を付けると参照モード全体 — 画像 30 枚・動画 10 本・音声 10 本まで、音声のみの入力、30 秒を一度に生成 — が使え、そこでは ratio も受け付けられます。
チームで使用するモデルエイリアスを公開し、ダッシュボードでアップストリームチャネル、フォールバックプール、料金、グループにマッピングします。
ChinaAPI は単なる転送エンドポイントではありません。実際の本番トラフィックのために、キー、ユーザー、グループ、チャネルヘルス、ログ、クォータ、請求管理を提供します。
トークンの作成・ローテーション、グループ割り当て、ユーザートラフィックの分離を行えます。
複数のアップストリームチャネルを設定し、プロバイダー障害時にも 1 つのモデルエイリアスを維持します。
リクエストの状態、トークン使用量、クォータ消費、エラー詳細を 1 か所で追跡できます。