/v1/chat/completions
Use com SDKs da OpenAI, Cherry Studio, Cline, Open WebUI e a maioria dos clientes de ferramentas.
A ChinaAPI oferece ao seu aplicativo um único endpoint compatível com OpenAI para os modelos DeepSeek, Qwen, GLM, Kimi, Doubao, além de modelos de imagem, vídeo, embedding e rerank. Mantenha seus SDKs, troque apenas o endpoint e gerencie o uso a partir de um único painel.
Conexão
https://api.chinaapi.ai
https://api.chinaapi.ai/v1 e use seu token ChinaAPI como chave bearer.
Todas as requisições de API usam autenticação por bearer token. Crie um token no painel e envie-o no cabeçalho Authorization.
Authorization: Bearer $CHINAAPI_KEY
Content-Type: application/json
A maioria dos clientes OpenAI funciona após alterar o baseURL. Use o nome do modelo publicado no seu painel 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" }],
});
A ChinaAPI pode encaminhar tráfego no estilo OpenAI e tráfego específico de cada provedor. Mantenha rotas separadas para clientes que exigem a Claude Messages API ou payloads compatíveis com Gemini.
Use com SDKs da OpenAI, Cherry Studio, Cline, Open WebUI e a maioria dos clientes de ferramentas.
Roteie payloads de mensagens no formato Claude mantendo a mesma chave de gateway e os mesmos controles de cota.
Use clientes compatíveis com Gemini quando seu aplicativo depender da estrutura de requisição do Gemini.
Os modelos de vídeo respondem como tarefas, não como uma única resposta. POST /v1/videos devolve um id de tarefa com "status": "queued", e GET /v1/videos/{task_id} informa o progresso até a tarefa chegar a completed ou failed. Ao concluir, o arquivo final é a URL assinada em metadata.url; ela carrega um parâmetro Expires, então baixe o arquivo em vez de guardar o link. Uma tarefa que falha traz o código e a mensagem do provedor em error.code e error.message, o que costuma bastar para descobrir qual campo faltou na requisição. POST /v1/video/generations chega ao mesmo handler, para clientes já escritos para esse caminho.
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=..."}}
Apenas model e prompt são obrigatórios. Sem size e duration, o gateway envia 1280*720 com cinco segundos.
Anime uma imagem estática. input_reference recebe a URL de uma imagem acessível publicamente, que passa a ser o primeiro quadro; envie size e duration junto.
Monte um vídeo a partir de material de referência. input_reference aceita uma imagem de referência; para enviar várias use images, e video_url acrescenta um vídeo de referência — as referências contam juntas, até cinco. Não envie input_reference e images ao mesmo tempo, porque o gateway mantém apenas input_reference.
Edite um clipe existente a partir de um prompt. video_url recebe o vídeo de origem, que precisa ter de 2 a 10 segundos em MP4 ou MOV, e size define a saída.
As imagens de referência vão em images, já que esta família ignora input_reference. A duração vai em seconds, e os parâmetros do fornecedor vão em metadata, onde resolution é 480p ou 720p.
size como largura e altura unidas por um asterisco, como em 1280*720. A letra x não é aceita: 832x480 devolve invalid size: 832x480, example: 1920*1080. duration é um número inteiro de segundos. Para wan2.7-i2v, wan2.7-r2v e wan2.7-videoedit, o gateway dobra size em um patamar de resolução e o provedor só tem dois, então envie 1280*720 para 720P ou 1920*1080 para 1080P; um tamanho 480P como 832*480 é recusado. wan2.7-t2v aceita o valor como está.
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 é lida como primeiro quadro, não como referência: a saída segue a proporção daquela imagem, enviar ratio junto é recusado com InvalidParameter.TaskTypeConstraint, e um seconds igual a 2 também é recusado nesse modo, enquanto 5 funciona. generate_audio é true por padrão no provedor, então o arquivo volta com faixa de áudio a menos que você o defina como false em metadata. Marque cada parte de metadata.content com um role para alcançar o modo de referência completo — até 30 imagens, 10 vídeos e 10 trechos de áudio, entrada só de áudio, e 30 segundos de uma vez — onde ratio é aceito.
Publique os aliases de modelo que sua equipe deve usar e depois mapeie-os para canais upstream, pools de fallback, preços e grupos no painel.
A ChinaAPI não é apenas um endpoint de encaminhamento. Ela inclui chaves, usuários, grupos, saúde dos canais, logs, cota e controles de cobrança para o tráfego real de produção.
Crie e rotacione tokens, atribua grupos e mantenha o tráfego dos usuários isolado.
Configure múltiplos canais upstream para que um alias de modelo continue funcionando mesmo com falhas de provedor.
Acompanhe o status das requisições, o uso de tokens, o consumo de cota e os detalhes de erros em um só lugar.