/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
既存アプリケーションのリクエスト形式を選択してください。1 つの ChinaAPI キーと Base URL で、3 つのプロトコル群を利用できます。
OpenAI SDK、Cherry Studio、Cline、Open WebUI など、ほとんどのツールクライアントで利用できます。
アプリケーションが Gemini のリクエスト構造に依存する場合は、Gemini 互換クライアントを使用します。
同じゲートウェイキーとクォータ制御を維持したまま、Claude Messages API のペイロードをルーティングします。
ChinaAPI はカタログに掲載された中国のモデル提供元を統合します。利用可能なモデル、エイリアス、料金はご利用のアカウントのダッシュボードで確認できます。
まずモデルタイプを選び、ダッシュボードから利用可能なモデルエイリアスを選択します。タイプごとにリクエスト形式と課金軸が異なります。
テキスト生成、ツール呼び出し、構造化出力、任意の推論制御。
モデル固有のサイズと品質オプションを備えたプロンプトからの画像生成。
長さ、解像度、モデル固有の品質設定を持つ非同期生成。
音声をアップロードして文字起こし、またはテキストから音声を生成します。
検索用のベクトルを作成し、候補文書をリランクします。
ほとんどの OpenAI クライアントは baseURL を変更するだけで利用できます。ChinaAPI ダッシュボードに掲載されているモデル名を使用してください。
主要パラメータ: model と messages は必須です。生成の挙動には temperature、top_p、max_tokens、stream を使用します。選択した推論モデルが対応する場合、reasoning_effort に low、medium、high またはモデル固有の値を指定できます。
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" }
],
"temperature": 0.7,
"max_tokens": 1024
}'
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" }],
});
コーディングエージェントは、それぞれがすでに話しているプロトコルでゲートウェイに接続します。Claude 系エージェントは /v1/messages、Codex は /v1/responses、それ以外は /v1/chat/completions です。ツールの向き先を ChinaAPI にすれば、そのリクエストも自前の API トラフィックと同じキー・クォータ・ログ・課金のまま扱われます。
/v1/messages を自分で付けるため、ホストのみ(https://api.chinaapi.ai)を指定します。このページの他のツールは /v1 まで明示する必要があります。/v1 の重複や欠落が、ここで 404 になる最も多い原因です。
POST /v1/chat/completions
~/.hermes/config.yaml の model ブロックをゲートウェイに向けるか、hermes model を実行して Custom endpoint を対話的に選択します。base_url には /v1 まで含めてください。/chat/completions は Hermes が自動で付加します。
model:
default: kimi-k2.7-code
provider: custom
base_url: https://api.chinaapi.ai/v1
api_key: <your ChinaAPI key>
POST /v1/messages
3 つの環境変数を export して、通常どおり claude を起動します。ANTHROPIC_DEFAULT_*_MODEL は Claude Code 内部のモデル階層を ChinaAPI のモデルに割り当てるもので、これにより Claude Code を改造せずに中国製モデルを動かせます。
export ANTHROPIC_BASE_URL=https://api.chinaapi.ai
export ANTHROPIC_AUTH_TOKEN=$CHINAAPI_KEY
export ANTHROPIC_DEFAULT_OPUS_MODEL=kimi-k3
export ANTHROPIC_DEFAULT_SONNET_MODEL=kimi-k2.7-code
export ANTHROPIC_DEFAULT_HAIKU_MODEL=glm-5-turbo
claude
POST /v1/responses
Codex は Responses プロトコルを使うため、wire_api は responses にします。chat 形式のままではツール呼び出しが壊れます。キーは env_key で指定した環境変数に入れてください。
model = "deepseek-v4-flash"
model_provider = "chinaapi"
[model_providers.chinaapi]
name = "ChinaAPI"
base_url = "https://api.chinaapi.ai/v1"
wire_api = "responses"
env_key = "CHINAAPI_KEY"
POST /v1/chat/completions
3 つとも同じ OpenAI Compatible プロバイダー設定を項目単位でそのまま使えます。モデル ID は コンソール → モデル の表記どおりに入力してください。これらのツールはカスタムプロバイダーのモデル一覧を取得しません。
Base URL https://api.chinaapi.ai/v1
API Key <your ChinaAPI key>
Model ID glm-5.2
POST /v1/chat/completions
Settings → Models → OpenAI API Key で Base URL を上書きします。先に Add model で ChinaAPI のモデル名を追加し、ChinaAPI のモデルだけを有効にしてください。そうしないと Cursor が内蔵のモデル名を上書き先の URL に送ってしまいます。
Base URL https://api.chinaapi.ai/v1
API Key <your ChinaAPI key>
Model deepseek-v4-pro
POST /v1/messages
"api": "anthropic-messages" を指定して ChinaAPI をプロバイダーとして宣言し、セッションの選択肢に出したいモデルを列挙します。
{
"models": {
"providers": {
"chinaapi": {
"baseUrl": "https://api.chinaapi.ai",
"apiKey": "<your ChinaAPI key>",
"api": "anthropic-messages",
"models": ["kimi-k3", "glm-5.2"]
}
}
}
}
POST /v1/chat/completions
Aider はモデル名の接頭辞でルーティングするため、実体が中国製モデルであっても openai/ の接頭辞は残してください。
export OPENAI_API_BASE=https://api.chinaapi.ai/v1
export OPENAI_API_KEY=$CHINAAPI_KEY
aider --model openai/deepseek-v4-pro
モデルの選び方:上記のモデル名は動作例であり、固定の一覧ではありません。アカウントで有効なエイリアスは コンソール → モデル で確認してください。エージェント用途では、最もよく使われる階層にコーディング特化モデルを、軽量な階層に安価で高速なモデルを割り当てるのが有効です。たとえば Claude Code はバックグラウンドの要約を Haiku 階層に送るため、その階層を小さなモデルにするとクォータの節約効果が最も大きくなります。
これらの機能もチャットと同じ Base URL と bearer キーを使用しますが、エンドポイントとペイロードは機能ごとに異なります。以下のモデル ID は動作例です。本番導入前に コンソール → モデル で最新のモデル一覧を確認してください。
POST /v1/images/generations
JSON 形式でプロンプトを送信します。生成結果は data[0].url、選択したモデルが base64 を返す場合は data[0].b64_json から取得します。
主要パラメータ: prompt と model は必須です。解像度は size、画像数は n、返却形式は response_format(url または b64_json)で指定します。quality と style はモデル固有です。一般的な値には standard、hd、auto があります。
curl https://api.chinaapi.ai/v1/images/generations \
-H "Authorization: Bearer $CHINAAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedream-4-5-251128",
"prompt": "A cinematic skyline at blue hour",
"size": "1024x1024",
"response_format": "url",
"n": 1
}'
POST /v1/chat/completions
Gemini 画像モデルは OpenAI Chat Completions 形式を使用します。生成された Markdown 画像は choices[0].message.content から取得します。画像ペイロードは data:image/... URL です。
主要パラメータ: ログイン後のカタログに表示されるモデル ID を model に、画像プロンプトを messages に指定します。このモデルを /v1/images/generations に送信しないでください。
curl https://api.chinaapi.ai/v1/chat/completions \
-H "Authorization: Bearer $CHINAAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "<GEMINI_IMAGE_MODEL>",
"messages": [
{
"role": "user",
"content": "Generate a cinematic skyline at blue hour"
}
],
"stream": false
}'
POST /v1/audio/transcriptions
音声ファイルを multipart form data でアップロードします。Content-Type ヘッダーは手動で設定しないでください。認識結果は text フィールドで返されます。
主要パラメータ: model と file を multipart フィールドとして送信します。選択モデルが対応する場合、response_format に json、text、verbose_json を指定できます。
curl https://api.chinaapi.ai/v1/audio/transcriptions \
-H "Authorization: Bearer $CHINAAPI_KEY" \
-F "model=qwen3-asr-flash" \
-F "file=@speech.wav" \
-F "response_format=json"
POST /v1/audio/speech
レスポンス本文はバイナリ音声なので、ファイルに保存します。alloy はモデルのデフォルト音声を選択します。モデルによってはプロバイダー固有の音声 ID も使用できます。
主要パラメータ: input、model、voice を使用します。response_format で mp3 や wav などの出力形式を選択します。speed と instructions は選択モデルが対応する場合に利用できます。
curl https://api.chinaapi.ai/v1/audio/speech \
-H "Authorization: Bearer $CHINAAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "mimo-v2.5-tts",
"input": "Hello from ChinaAPI.",
"voice": "alloy",
"response_format": "mp3"
}' \
--output speech.mp3
POST /v1/video/generations
動画生成は非同期です。1 回だけ送信して返された task_id を保存し、成功または失敗するまで GET /v1/video/generations/{task_id} をポーリングします。タスクの作成はクォータを消費する場合があります。
主要パラメータ: prompt と model でタスクを開始します。対応モデルでは duration、width、height、fps、n を使用できます。一般的な明瞭度の指定は解像度です。quality、quality_level、negative_prompt、カメラ設定などの提供元固有パラメータは、そのモデルに掲載されている場合のみ metadata に指定してください。
curl https://api.chinaapi.ai/v1/video/generations \
-H "Authorization: Bearer $CHINAAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "happyhorse-1.1-t2v",
"prompt": "A paper boat crossing a moonlit lake",
"duration": 5,
"width": 1280,
"height": 720
}'
curl https://api.chinaapi.ai/v1/video/generations/$TASK_ID \
-H "Authorization: Bearer $CHINAAPI_KEY"
POST /v1/embeddings
1 つの文字列または文字列配列を送信します。ベクトルは入力と同じ順序で data[].embedding に返されます。
主要パラメータ: input には 1 件の文字列またはバッチを指定できます。dimensions と encoding_format は選択した埋め込みモデルが対応する場合のみ使用します。
curl https://api.chinaapi.ai/v1/embeddings \
-H "Authorization: Bearer $CHINAAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "text-embedding-v4",
"input": ["ChinaAPI connects Chinese AI models."]
}'
POST /v1/rerank
クエリに対して候補文書を順位付けします。順位付けされた結果と関連度スコアは results から取得します。
主要パラメータ: query と documents を送信し、top_n で返す上位候補数を制限します。
curl https://api.chinaapi.ai/v1/rerank \
-H "Authorization: Bearer $CHINAAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gte-rerank-v2",
"query": "How do I call Chinese AI models?",
"documents": [
"Use one ChinaAPI Base URL and API key.",
"Install a local database."
],
"top_n": 2
}'
ChinaAPI は単なる転送エンドポイントではありません。実際の本番トラフィックのために、キー、ユーザー、グループ、チャネルヘルス、ログ、クォータ、請求管理を提供します。
トークンの作成・ローテーション、グループ割り当て、ユーザートラフィックの分離を行えます。
複数のアップストリームチャネルを設定し、プロバイダー障害時にも 1 つのモデルエイリアスを維持します。
リクエストの状態、トークン使用量、クォータ消費、エラー詳細を 1 か所で追跡できます。