One base URL, one bearer key, OpenAI-compatible. Everything below is public — copy it into any chat, image or video client. The table at the bottom marks what we have actually run against the gateway, so you know which parameters are confirmed.
https://chinesemodels.ai/v1Auth Authorization: Bearer sk-cm-…Keys /console/api-keys (sign-in required)Machine-readable model catalogueOpenAI-compatible chat completions. Streaming, tools and JSON output follow the OpenAI schema; usage returns token counts we bill from.
curl https://chinesemodels.ai/v1/chat/completions \
-H "Authorization: Bearer $CHINESEMODELS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-flash",
"messages": [{ "role": "user", "content": "Hello" }],
"stream": false
}'import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://chinesemodels.ai/v1",
apiKey: process.env.CHINESEMODELS_API_KEY,
});
const chat = await client.chat.completions.create({
model: "deepseek-flash",
messages: [{ role: "user", content: "Hello" }],
});
const image = await client.images.generate({
model: "qwen-image-3.0",
prompt: "a red panda on a mossy rock",
n: 1,
});from openai import OpenAI
client = OpenAI(
base_url="https://chinesemodels.ai/v1",
api_key=os.environ["CHINESEMODELS_API_KEY"],
)
chat = client.chat.completions.create(
model="deepseek-flash",
messages=[{"role": "user", "content": "Hello"}],
)Billed per image. Returns the provider payload with an added chinesemodels.charged_usd block.
curl https://chinesemodels.ai/v1/images/generations \
-H "Authorization: Bearer $CHINESEMODELS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen-image-3.0",
"prompt": "a red panda on a mossy rock, morning light",
"n": 1
}'Asynchronous: submit, poll, download. Billed per output second, priced from the provider's own settlement (`billing.charged_usd`) where it is reported. Size tokens differ by family — the table below lists what each one accepts.
# 1. Submit — returns { id, status }
curl https://chinesemodels.ai/v1/videos \
-H "Authorization: Bearer $CHINESEMODELS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "Seedance-2.5",
"prompt": "a corgi running through shallow water, golden hour",
"duration": 5,
"size": "480P 16:9"
}'
# 2. Poll until status is "completed" (or "failed")
curl https://chinesemodels.ai/v1/videos/task_XXXX \
-H "Authorization: Bearer $CHINESEMODELS_API_KEY"
# 3. Download the file
curl -L https://chinesemodels.ai/v1/videos/task_XXXX/content \
-H "Authorization: Bearer $CHINESEMODELS_API_KEY" -o clip.mp4curl https://chinesemodels.ai/v1/videos \
-H "Authorization: Bearer $CHINESEMODELS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "minimax_h3_b99_001",
"prompt": "a model walking down a runway, editorial lighting",
"duration": 5,
"metadata": { "resolution": "736p横" }
}'"<height>P <aspect>"metadata.resolutionsize: "1280x720"verified end to end· documented, not yet run
| Status | Family | Endpoint | Parameters we send | Duration |
|---|---|---|---|---|
| not verified | qwen3.7-flash Qwen | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | Qwen3.5-27B Qwen | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | qwen3-max-preview Qwen | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | doubao-seed-1-8-251228 ByteDance | /v1/chat/completions | messages, max_tokens, stream | n/a |
| verified | qwen-image-3.0-pro Qwen | /v1/images/generations | prompt, n | n/a |
| not verified | DeepSeek-V4-Pro-0813 DeepSeek | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | MiniMax-M2.5 MiniMax | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | GLM-5 Z-ai | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | GLM-5.3 Z-ai | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | doubao-seed-2-1-pro-260628 ByteDance | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | doubao-seed-2-0-lite-260428 ByteDance | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | Kimi-K3 Moonshot AI | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | GLM-5-Turbo Z-ai | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | GLM-5V-Turbo Z-ai | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | doubao-seed-2-0-code-preview-260215 ByteDance | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | Doubao-Seed-1.6-vision ByteDance | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | doubao-1-5-pro-32k-250115 ByteDance | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | qwen3-coder-plus Qwen | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | Hy3 Hunyuan | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | minimax_h3_zm_u24 MiniMax | /v1/videos | metadata.resolution: "736p横" | "736p竖" | "736p(1:1)" | 1–15s |
| not verified | Wan2.2-T2V-Plus Qwen | /v1/videos | size: "720P 16:9" | 2–30s |
| verified | deepseek-flash DeepSeek | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | glm-5.3-flash Z-ai | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | DeepSeek-V3.2 DeepSeek | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | qwen-mt-turbo Qwen | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | doubao-seed-1-6-250615 ByteDance | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | Wan2.2-I2V-Plus Qwen | /v1/videos | size: "720P 16:9" | 2–30s |
| not verified | MiniMax-M2.7 MiniMax | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | qwen3.5-flash Qwen | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | Kimi-K2.5 Moonshot AI | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | qwen3-vl-plus Qwen | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | Hy3-preview Hunyuan | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | doubao-seed-2-0-lite-260215 ByteDance | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | Doubao-Seed-1.6-flash ByteDance | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | doubao-seed-1-6-flash-250828 ByteDance | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | Qwen3.5-122B-A10B Qwen | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | qwen3-omni-flash Qwen | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | qwen3-max Qwen | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | qwen-long Qwen | /v1/chat/completions | messages, max_tokens, stream | n/a |
| verified | qwen-image-2.0 Qwen | /v1/images/generations | prompt, n | n/a |
| not verified | kling-v3-i2v Kling | /v1/videos | size: "1280x720" (unconfirmed) | 5–10s |
| not verified | DeepSeek-V4-Flash-0731 DeepSeek | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | minimax_h3_b99_002 MiniMax | /v1/videos | metadata.resolution: "736p横" | "736p竖" | "736p(1:1)" | 1–15s |
| not verified | GLM-5.2 Z-ai | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | qwen3.6-max-preview Qwen | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | Qwen3.6-27B Qwen | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | Qwen3.5-397B-A17B Qwen | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | qwen3.7-plus Qwen | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | qwen3-vl-flash Qwen | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | qwen-plus Qwen | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | Wan3.0-Video-Prime Alibaba | /v1/videos | size: "720P 16:9" | 2–30s |
| not verified | doubao-seed-2-0-pro-260215 ByteDance | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | qwen3.8-max Qwen | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | Seedance-1.5-Pro ByteDance | /v1/videos | size: "<height>P <aspect>" | 4–30s |
| not verified | Kimi-K2.7-Code Moonshot AI | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | DeepSeek-V4-Pro DeepSeek | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | GLM-5.1 Z-ai | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | happyhorse-1.1-t2v HappyHorse | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | happyhorse-1.1-r2v HappyHorse | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | Doubao-Seed-1.6 ByteDance | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | kling-v3-t2v Kling | /v1/videos | size: "1280x720" (unconfirmed) | 5–10s |
| not verified | qwen3.7-max Qwen | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | qwen3.6-plus Qwen | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | Wan2.7-I2V Qwen | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | doubao-seed-2-0-mini-260215 ByteDance | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | Qwen3.5-35B-A3B Qwen | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | qwen-flash Qwen | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | qwen3.8-flash Qwen | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | Wan3.0-Video Alibaba | /v1/videos | size: "720P 16:9" | 2–30s |
| not verified | Wan2.6-I2V Qwen | /v1/chat/completions | messages, max_tokens, stream | n/a |
| verified | qwen-image-2.0-pro Qwen | /v1/images/generations | prompt, n | n/a |
| verified | minimax_h3_b99_001 MiniMax | /v1/videos | metadata.resolution: "736p横" | "736p竖" | "736p(1:1)" | 1–15s |
| verified | Seedance-2.5 ByteDance | /v1/videos | size: "<height>P <aspect>" | 4–30s |
| not verified | MiniMax-M3 MiniMax | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | happyhorse-1.0-video-edit HappyHorse | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | doubao-1-5-lite-32k-250115 ByteDance | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | qwen3.5-plus Qwen | /v1/chat/completions | messages, max_tokens, stream | n/a |
| verified | qwen-image-3.0 Qwen | /v1/images/generations | prompt, n | n/a |
| not verified | Seedance-1.0-Pro ByteDance | /v1/videos | size: "<height>P <aspect>" | 4–30s |
| not verified | Seedance-2.0 ByteDance | /v1/videos | size: "<height>P <aspect>" | 4–30s |
| not verified | DeepSeek-V4-Flash DeepSeek | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | Kimi-K2.6 Moonshot AI | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | Qwen3.6-35B-A3B Qwen | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | qwen-plus-latest Qwen | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | DeepSeek-V4-Flash-Vision-Exp DeepSeek | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | qwen3.6-flash Qwen | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | doubao-seed-2-0-mini-260428 ByteDance | /v1/chat/completions | messages, max_tokens, stream | n/a |
| not verified | happyhorse-1.1-i2v HappyHorse | /v1/chat/completions | messages, max_tokens, stream | n/a |
Green means a call to that model returned a result we could download. Red means the parameters are documented from the family convention but not yet exercised — if a call fails, the provider's own error names the field and is returned unchanged.
| Code | HTTP | Meaning |
|---|---|---|
| invalid_api_key | 401 | Missing, malformed or revoked key |
| quota_exceeded | 402 | The key reached its own spend cap |
| insufficient_balance | 402 | Account has no credit, or less than one call costs |
| unsupported_endpoint | 404 | Path outside the allowlist |
| upstream_blocked | 502 | Provider returned a bot challenge instead of JSON |
| upstream_unavailable | 502 | Provider timed out or refused the connection |