/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
La plupart des clients OpenAI fonctionnent après avoir modifié baseURL. Utilisez le nom du modèle publié dans votre tableau de bord 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 peut transférer le trafic au format OpenAI et le trafic propre aux fournisseurs. Conservez des routes distinctes pour les clients qui nécessitent l’API Claude Messages ou des charges utiles compatibles Gemini.
Utilisez-le avec les SDK OpenAI, Cherry Studio, Cline, Open WebUI et la plupart des clients d’outils.
Acheminez les charges utiles de messages au format Claude tout en conservant la même clé de passerelle et les mêmes contrôles de quota.
Utilisez des clients compatibles Gemini lorsque votre application dépend de la structure de requête Gemini.
Les modèles vidéo répondent sous forme de tâches et non par une réponse unique. POST /v1/videos renvoie un identifiant de tâche avec "status": "queued", et GET /v1/videos/{task_id} indique la progression jusqu’à ce que la tâche atteigne completed ou failed. À la fin, le fichier produit est l’URL signée située dans metadata.url ; elle contient un paramètre Expires, téléchargez donc le fichier au lieu de conserver le lien. Une tâche en échec porte le code et le message du fournisseur dans error.code et error.message, ce qui suffit généralement à repérer le champ manquant. POST /v1/video/generations atteint le même gestionnaire, pour les clients déjà écrits pour ce chemin.
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=..."}}
Seuls model et prompt sont obligatoires. Sans size ni duration, la passerelle soumet 1280*720 pendant cinq secondes.
Animez une image fixe. input_reference attend l’URL d’une image accessible publiquement, qui devient la première image ; envoyez size et duration avec elle.
Construit une vidéo à partir de matériaux de référence. input_reference accepte une image de référence ; pour en envoyer plusieurs, utilisez images à la place, et video_url ajoute une vidéo de référence — les références se comptent ensemble, cinq au maximum. N’envoyez pas input_reference et images ensemble, car la passerelle ne garde que input_reference.
Modifiez un clip existant à partir d’un prompt. video_url attend la vidéo source, qui doit faire de 2 à 10 secondes en MP4 ou MOV, et size définit la sortie.
Les images de référence vont dans images, car cette famille ignore input_reference. La durée va dans seconds, et les paramètres du fournisseur vont dans metadata, où resolution vaut soit 480p soit 720p.
size comme la largeur et la hauteur reliées par une astérisque, par exemple 1280*720. La lettre x n’est pas acceptée : 832x480 renvoie invalid size: 832x480, example: 1920*1080. duration est un nombre entier de secondes. Pour wan2.7-i2v, wan2.7-r2v et wan2.7-videoedit, la passerelle replie size en un palier de résolution et l’amont n’en a que deux : envoyez 1280*720 pour 720P ou 1920*1080 pour 1080P ; une taille 480P comme 832*480 est refusée. wan2.7-t2v prend la valeur telle quelle.
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 est lue comme première image et non comme référence : la sortie suit le rapport d’aspect de cette image, envoyer ratio avec elle est refusé par InvalidParameter.TaskTypeConstraint, et un seconds de 2 y est également refusé alors que 5 fonctionne. generate_audio vaut true par défaut en amont, donc le fichier revient avec une piste audio sauf si vous le passez à false dans metadata. Marquez chaque élément de metadata.content avec un role pour atteindre le mode référence complet — jusqu’à 30 images, 10 vidéos et 10 extraits audio, entrée uniquement audio, et 30 secondes d’un seul tenant — où ratio est accepté.
Publiez les alias de modèles que votre équipe doit utiliser, puis associez-les aux canaux en amont, pools de secours, tarifs et groupes dans le tableau de bord.
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.