/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
Escolha o formato de requisição que seu aplicativo já utiliza. Uma única chave ChinaAPI e Base URL funcionam nas três famílias de protocolo.
Use com SDKs da OpenAI, Cherry Studio, Cline, Open WebUI e a maioria dos clientes de ferramentas.
Use clientes compatíveis com Gemini quando seu aplicativo depender da estrutura de requisição do Gemini.
Roteie payloads da Claude Messages API mantendo a mesma chave de gateway e os mesmos controles de cota.
A ChinaAPI unifica os provedores de modelos chineses já publicados no catálogo. Disponibilidade, aliases e preços são exibidos no painel da sua conta.
Comece pelo tipo de modelo e depois selecione um alias de modelo disponível no painel. Cada tipo tem seu próprio formato de requisição e dimensões de cobrança.
Geração de texto, chamadas de ferramentas, saída estruturada e controles de raciocínio opcionais.
Requisições de texto para imagem com opções de tamanho e qualidade específicas do modelo.
Geração assíncrona com duração, resolução e configurações de qualidade específicas do modelo.
Envie áudio para transcrição ou gere fala a partir de texto.
Crie vetores para recuperação e reordene (rerank) documentos candidatos.
A maioria dos clientes OpenAI funciona após alterar o baseURL. Use o nome do modelo publicado no seu painel ChinaAPI.
Parâmetros principais: model e messages são obrigatórios. Use temperature, top_p, max_tokens e stream para controlar o comportamento de geração. reasoning_effort pode ser low, medium, high ou um valor específico do modelo, quando o modelo de raciocínio selecionado suportar.
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" }],
});
Os agentes de código acessam o gateway pelo protocolo que já utilizam: /v1/messages para agentes do estilo Claude, /v1/responses para o Codex e /v1/chat/completions para os demais. Aponte a ferramenta para a ChinaAPI e as requisições continuam usando a mesma chave, cota, logs e cobrança do seu próprio tráfego de API.
/v1/messages automaticamente ao valor que você fornecer, então use apenas o host puro https://api.chinaapi.ai. Todas as outras ferramentas nesta página esperam o sufixo /v1 explícito. Um /v1 duplicado ou ausente é a causa mais comum de erros 404 aqui.
POST /v1/chat/completions
Aponte o bloco model de ~/.hermes/config.yaml para o gateway, ou execute hermes model e escolha Custom endpoint interativamente. base_url inclui o sufixo /v1; o Hermes adiciona /chat/completions automaticamente.
model:
default: kimi-k2.7-code
provider: custom
base_url: https://api.chinaapi.ai/v1
api_key: <your ChinaAPI key>
POST /v1/messages
Exporte as três variáveis de ambiente e inicie o claude normalmente. As variáveis ANTHROPIC_DEFAULT_*_MODEL mapeiam os níveis internos de modelo do Claude Code para modelos da ChinaAPI, o que permite rodar modelos chineses dentro de um Claude Code não modificado.
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
O Codex fala o protocolo Responses, então wire_api deve ser responses; deixá-lo no formato chat quebra as chamadas de ferramentas. Coloque sua chave na variável de ambiente indicada por 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
Os três usam o mesmo formulário de provedor OpenAI Compatible, campo a campo. Digite o ID do modelo exatamente como aparece em Console → Modelos; essas ferramentas não buscam automaticamente a lista de modelos para provedores personalizados.
Base URL https://api.chinaapi.ai/v1
API Key <your ChinaAPI key>
Model ID glm-5.2
POST /v1/chat/completions
Substitua a base URL em Settings → Models → OpenAI API Key. Primeiro adicione o nome do modelo ChinaAPI usando Add model, depois deixe apenas os modelos ChinaAPI ativados, pois do contrário o Cursor enviará os nomes de modelo embutidos para sua URL substituída.
Base URL https://api.chinaapi.ai/v1
API Key <your ChinaAPI key>
Model deepseek-v4-pro
POST /v1/messages
Declare a ChinaAPI como um provedor com "api": "anthropic-messages" e liste os modelos que deseja disponibilizar no seletor de sessão.
{
"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
O Aider roteia pelo prefixo do nome do modelo, então mantenha o prefixo openai/ no nome do modelo mesmo que o modelo em si seja chinês.
export OPENAI_API_BASE=https://api.chinaapi.ai/v1
export OPENAI_API_KEY=$CHINAAPI_KEY
aider --model openai/deepseek-v4-pro
Escolhendo modelos: os nomes de modelo acima são exemplos funcionais, não uma lista fixa. Abra Console → Modelos para ver os aliases habilitados na sua conta. Para uso com agentes, prefira um modelo voltado a código no nível mais usado pelo agente e um modelo rápido e barato no nível leve — o Claude Code, por exemplo, envia resumos em segundo plano para seu nível Haiku, então mapear esse nível para um modelo pequeno é o que mais economiza cota.
Esses recursos usam a mesma Base URL e chave bearer do chat, mas cada um tem seu próprio endpoint e payload. Os IDs de modelo abaixo são exemplos funcionais; consulte Console → Modelos para o catálogo de modelos mais recente antes de colocar em produção.
POST /v1/images/generations
Envie um prompt em JSON. Leia o recurso gerado em data[0].url, ou em data[0].b64_json quando o modelo selecionado retornar base64.
Parâmetros principais: prompt e model são obrigatórios. Use size para a resolução, n para o número de imagens e response_format para url ou b64_json. quality e style são específicos de cada modelo; valores comuns incluem 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
Os modelos de imagem do Gemini usam o formato de requisição do OpenAI Chat Completions. Leia a imagem em Markdown gerada em choices[0].message.content; o payload da imagem é uma URL data:image/....
Parâmetros principais: envie o ID do modelo do catálogo autenticado em model e o prompt da imagem em messages. Não envie esse modelo para /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
Envie o áudio como multipart form data; não defina o cabeçalho Content-Type manualmente. O texto reconhecido é retornado no campo text.
Parâmetros principais: envie model e file como campos multipart. Use response_format como json, text ou verbose_json quando suportado pelo modelo selecionado.
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
O corpo da resposta é áudio binário, então grave-o em um arquivo. alloy seleciona a voz padrão do modelo; um modelo também pode publicar IDs de voz específicos do provedor.
Parâmetros principais: use input, model e voice. Selecione uma saída com response_format, como mp3 ou wav; speed e instructions estão disponíveis quando o modelo selecionado suportar.
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
A geração de vídeo é assíncrona. Envie uma vez, salve o task_id retornado e então consulte GET /v1/video/generations/{task_id} até a tarefa concluir com sucesso ou falhar. A criação de uma tarefa pode consumir cota.
Parâmetros principais: prompt e model iniciam a tarefa. Use duration, width, height, fps e n quando suportado. A resolução é o controle de nitidez mais comum. Coloque controles específicos do provedor, como quality, quality_level, negative_prompt ou ajustes de câmera, em metadata apenas quando estiverem listados para esse modelo.
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
Envie uma string ou um array de strings. Os vetores são retornados em data[].embedding na mesma ordem das entradas.
Parâmetros principais: input aceita uma string única ou um lote. Use dimensions e encoding_format apenas quando o modelo de embedding selecionado suportar.
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
Classifique documentos candidatos em relação a uma consulta. Leia as correspondências ordenadas e as pontuações de relevância em results.
Parâmetros principais: envie uma query e documents; use top_n para limitar os candidatos classificados retornados.
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
}'
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.