/v1/chat/completions
Utilisez-le avec les SDK OpenAI, Cherry Studio, Cline, Open WebUI et la plupart des clients d’outils.
ChinaAPI offre à votre application un point de terminaison unique compatible OpenAI pour DeepSeek, Qwen, GLM, Kimi, Doubao, ainsi que les modèles d’image, vidéo, embedding et rerank. Conservez vos SDK, remplacez le point de terminaison et gérez l’utilisation depuis un seul tableau de bord.
Connexion
https://api.chinaapi.ai
https://api.chinaapi.ai/v1 et utilisez votre jeton ChinaAPI comme clé bearer.
Toutes les requêtes API utilisent l’authentification par jeton bearer. Créez un jeton dans le tableau de bord, puis envoyez-le dans l’en-tête Authorization.
Authorization: Bearer $CHINAAPI_KEY
Content-Type: application/json
Choisissez le format de requête déjà utilisé par votre application. Une clé ChinaAPI et une Base URL fonctionnent avec les trois familles de protocoles.
Utilisez-le avec les SDK OpenAI, Cherry Studio, Cline, Open WebUI et la plupart des clients d’outils.
Utilisez des clients compatibles Gemini lorsque votre application dépend de la structure de requête Gemini.
Acheminez les payloads de l’API Claude Messages tout en conservant la même clé de passerelle et les mêmes contrôles de quota.
ChinaAPI unifie les fournisseurs de modèles chinois déjà publiés dans le catalogue. La disponibilité, les alias et les prix sont affichés dans le tableau de bord de votre compte.
Commencez par le type de modèle, puis choisissez un alias disponible dans le tableau de bord. Chaque type possède son propre format de requête et ses propres dimensions de facturation.
Génération de texte, appels d’outils, sortie structurée et contrôles de raisonnement facultatifs.
Requêtes texte-vers-image avec options de taille et de qualité propres au modèle.
Génération asynchrone avec durée, résolution et réglages de qualité propres au modèle.
Téléversez un audio pour le transcrire ou générez une voix à partir de texte.
Créez des vecteurs pour la recherche et réordonnez les documents candidats.
La plupart des clients OpenAI fonctionnent après avoir modifié baseURL. Utilisez le nom du modèle publié dans votre tableau de bord ChinaAPI.
Paramètres clés : model et messages sont requis. Utilisez temperature, top_p, max_tokens et stream pour le comportement de génération. reasoning_effort peut être low, medium, high ou une valeur propre au modèle lorsque le modèle de raisonnement sélectionné le prend en charge.
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" }],
});
Les agents de code atteignent la passerelle via le protocole qu'ils parlent déjà : /v1/messages pour les agents de type Claude, /v1/responses pour Codex et /v1/chat/completions pour les autres. Pointez l'outil vers ChinaAPI et ses requêtes conservent la même clé, le même quota, les mêmes journaux et la même facturation que votre propre trafic API.
/v1/messages à ce que vous lui donnez : indiquez donc uniquement l'hôte, https://api.chinaapi.ai. Tous les autres outils de cette page attendent le suffixe /v1 écrit explicitement. Un /v1 en double ou manquant est ici la première cause d'erreurs 404.
POST /v1/chat/completions
Faites pointer le bloc model de ~/.hermes/config.yaml vers la passerelle, ou lancez hermes model et choisissez Custom endpoint en mode interactif. base_url inclut le suffixe /v1 ; Hermes ajoute lui-même /chat/completions.
model:
default: kimi-k2.7-code
provider: custom
base_url: https://api.chinaapi.ai/v1
api_key: <your ChinaAPI key>
POST /v1/messages
Exportez les trois variables d'environnement puis lancez claude comme d'habitude. Les variables ANTHROPIC_DEFAULT_*_MODEL associent les niveaux de modèles internes de Claude Code à des modèles ChinaAPI : c'est ce qui permet d'exécuter des modèles chinois dans un Claude Code non modifié.
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 parle le protocole Responses : wire_api doit donc valoir responses, sinon les appels d'outils sont cassés. Placez votre clé dans la variable d'environnement désignée par 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
Les trois utilisent le même formulaire de fournisseur OpenAI Compatible, champ pour champ. Saisissez l'ID du modèle exactement tel qu'il apparaît dans Console → Modèles : ces outils ne récupèrent pas la liste des modèles pour un fournisseur personnalisé.
Base URL https://api.chinaapi.ai/v1
API Key <your ChinaAPI key>
Model ID glm-5.2
POST /v1/chat/completions
Remplacez la base URL dans Settings → Models → OpenAI API Key. Ajoutez d'abord le nom du modèle ChinaAPI via Add model, puis ne laissez actifs que les modèles ChinaAPI, sans quoi Cursor enverra ses noms de modèles intégrés à votre URL de remplacement.
Base URL https://api.chinaapi.ai/v1
API Key <your ChinaAPI key>
Model deepseek-v4-pro
POST /v1/messages
Déclarez ChinaAPI comme fournisseur avec "api": "anthropic-messages" et listez les modèles que vous voulez voir proposés dans le sélecteur de session.
{
"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 route selon le préfixe du modèle : conservez donc le préfixe openai/ sur le nom du modèle, même si le modèle lui-même est chinois.
export OPENAI_API_BASE=https://api.chinaapi.ai/v1
export OPENAI_API_KEY=$CHINAAPI_KEY
aider --model openai/deepseek-v4-pro
Choisir les modèles : les noms ci-dessus sont des exemples fonctionnels, pas une liste figée. Ouvrez Console → Modèles pour voir les alias activés sur votre compte. Pour un usage agent, placez un modèle spécialisé code sur le niveau que l'agent sollicite le plus et un modèle rapide et bon marché sur son niveau léger : Claude Code envoie par exemple ses résumés d'arrière-plan au niveau Haiku, si bien que mapper ce niveau sur un petit modèle est ce qui économise le plus de quota.
Ces fonctions utilisent la même Base URL et la même clé bearer que le chat, mais chacune possède son propre endpoint et son propre payload. Les ID de modèles ci-dessous sont des exemples fonctionnels ; vérifiez Console → Modèles pour obtenir le catalogue à jour avant la mise en production.
POST /v1/images/generations
Envoyez un prompt JSON. Récupérez le résultat dans data[0].url, ou dans data[0].b64_json lorsque le modèle sélectionné renvoie du base64.
Paramètres clés : prompt et model sont requis. Utilisez size pour la résolution, n pour le nombre d’images et response_format pour url ou b64_json. quality et style dépendent du modèle ; les valeurs courantes incluent standard, hd ou 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
Les modèles d’image Gemini utilisent le format OpenAI Chat Completions. L’image Markdown générée se trouve dans choices[0].message.content et utilise une URL data:image/....
Paramètres clés : utilisez dans model l’ID visible dans le catalogue après connexion et placez le prompt d’image dans messages. N’envoyez pas ce modèle à /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
Envoyez le fichier audio en multipart form data ; ne définissez pas manuellement l’en-tête Content-Type. Le texte reconnu est renvoyé dans le champ text.
Paramètres clés : envoyez model et file sous forme de champs multipart. Utilisez response_format avec json, text ou verbose_json lorsque le modèle sélectionné le prend en charge.
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
Le corps de la réponse contient des données audio binaires : enregistrez-le dans un fichier. alloy sélectionne la voix par défaut du modèle ; certains modèles publient aussi des ID de voix propres au fournisseur.
Paramètres clés : utilisez input, model et voice. Choisissez une sortie avec response_format, par exemple mp3 ou wav ; speed et instructions sont disponibles lorsque le modèle sélectionné les prend en charge.
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
La génération vidéo est asynchrone. Envoyez la requête une seule fois, conservez le task_id renvoyé, puis interrogez GET /v1/video/generations/{task_id} jusqu’à la réussite ou l’échec. La création d’une tâche peut consommer du quota.
Paramètres clés : prompt et model démarrent la tâche. Utilisez duration, width, height, fps et n lorsqu’ils sont pris en charge. La résolution est le réglage habituel de la netteté. Ajoutez les contrôles propres au fournisseur, tels que quality, quality_level, negative_prompt ou les réglages de caméra, dans metadata uniquement lorsqu’ils sont publiés pour ce modèle.
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
Envoyez une chaîne ou un tableau de chaînes. Les vecteurs sont renvoyés dans data[].embedding, dans le même ordre que les entrées.
Paramètres clés : input accepte une chaîne ou un lot. Utilisez dimensions et encoding_format uniquement lorsque le modèle d’embedding sélectionné les prend en charge.
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
Classez des documents candidats par rapport à une requête. Les résultats ordonnés et leurs scores de pertinence se trouvent dans results.
Paramètres clés : envoyez une query et des documents ; utilisez top_n pour limiter le nombre de candidats classés renvoyés.
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 n’est pas seulement un point de terminaison de transfert. Il propose clés, utilisateurs, groupes, santé des canaux, journaux, quotas et contrôles de facturation pour le trafic de production.
Créez et renouvelez des jetons, attribuez des groupes et isolez le trafic utilisateur.
Configurez plusieurs canaux en amont afin qu’un alias de modèle reste disponible lors des défaillances de fournisseur.
Suivez l’état des requêtes, l’utilisation des jetons, la consommation de quota et les erreurs au même endroit.