Referência da API
Conceitos básicos de integração
#URL base
Todos os endpoints ficam sob /v1 no próprio domínio desta implantação. Não há seleção de região — o roteamento para os provedores upstream acontece por trás do gateway.
#Cabeçalho de autenticação
Um único cabeçalho Authorization: Bearer é toda a autenticação. Sem assinatura, sem timestamp e sem cabeçalho por usuário — nada além do bearer token que outros gateways exigem existe aqui.
#Envelope de erro
As rejeições do lado do gateway usam o envelope no formato da OpenAI com type "xiaoxiang_error". Erros do upstream são encaminhados sem alteração, os endpoints de tarefas assíncronas respondem com um corpo plano, e dois casos não trazem corpo nenhum — leia a página de erros antes de escrever seu parser.
HTTP/1.1 402 Payment Required
X-Oneapi-Request-Id: 2026091023...
{
"error": {
"message": "insufficient account balance, please top up to continue (request id: 2026091023...)",
"type": "xiaoxiang_error",
"code": "insufficient_user_quota"
}
}#Política de novas tentativas
Repita 429 e 5xx com backoff exponencial, respeitando Retry-After quando presente. Não repita erros de validação 4xx — o mesmo corpo vai falhar de novo. Em envios cobrados, envie uma Idempotency-Key para que uma nova tentativa após um timeout reproduza o primeiro resultado em vez de iniciar um segundo trabalho.
import time, requests
def call_with_backoff(url, headers, body, tries=5):
for i in range(tries):
r = requests.post(url, headers=headers, json=body)
if r.status_code not in (429, 500, 502, 503, 504):
return r
# 429 and 413 have no JSON body — never parse before checking status.
wait = int(r.headers.get("Retry-After", 2 ** i))
time.sleep(wait)
r.raise_for_status()#Especificação legível por máquina
O mesmo contrato em dois formatos gerados: OpenAPI para geração de clientes, Postman e ferramentas de API, e um único arquivo markdown para colar em um agente de código. Os dois são gerados a partir destas páginas, então não ficam diferentes do que você está lendo.
openapi.json
OpenAPI 3.1 — todos os caminhos documentados, com parâmetros e respostas de erro.
llms-full.txt
Todo o contrato da API em um único arquivo markdown, dimensionado para a janela de contexto de um agente.
llms.txt
Índice curto de todas as páginas da documentação, para clientes de IA que o buscam primeiro.
# Any OpenAPI generator works; this is the common one.
npx @openapitools/openapi-generator-cli generate \
-i https://www.aisplice.store/openapi.json \
-g python \
-o ./gateway-client#Visão geral dos endpoints
Todos os caminhos aceitam o corpo de requisição da OpenAI — parâmetros específicos do provedor (anthropic tool_use, gemini thinking_config) são repassados sem alteração. As rotas nativas de provedores e as rotas legadas congeladas estão listadas à parte na página de compatibilidade.
| Texto | ||
| POST | /v1/chat/completions | Chat de vários turnos, chamada de ferramentas, streaming, modo JSON. |
| POST | /v1/responses | Texto em uma única chamada, com saídas estruturadas e raciocínio. |
| POST | /v1/messages | Formato nativo da Anthropic — mesma autenticação, sem adaptador. |
| POST | /v1/responses/compact | Condensa uma conversa longa nos modelos que suportam compactação — sem versão em streaming. |
| Vetor | ||
| POST | /v1/moderations | Moderação de conteúdo no mesmo formato de API. |
| Música | ||
| POST | /v1/music/generations | Geração de música assíncrona — retorna um task_id; aceita webhook opcional. |
| GET | /v1/music/tasks/:task_id | Consulta o status e o progresso de uma tarefa de música assíncrona. |
| GET | /v1/music/tasks/:task_id/content | Baixe o áudio concluído pelo gateway. |
| Imagem | ||
| POST | /v1/images/tasks | Geração de imagens assíncrona, a rota usada pelos modelos de imagem — retorna um task_id; aceita webhook opcional. |
| GET | /v1/images/tasks/:task_id | Consulta o status e o progresso de uma tarefa de imagem assíncrona. |
| GET | /v1/images/tasks/:task_id/content | Busque as URLs finais das imagens — links persistentes, seguros para armazenar. |
| Vídeo | ||
| POST | /v1/videos | Geração de vídeo no formato da OpenAI (Sora, Doubao) — aceita webhook opcional. |
| GET | /v1/videos/:task_id | Consulta o status de uma tarefa assíncrona; o conteúdo fica em /content. |
| GET | /v1/videos/:task_id/content | Baixe o vídeo concluído pelo gateway. |
| DELETE | /v1/videos/:task_id | Cancela uma tarefa que ainda não chegou a um estado final. |
| POST | /v1/videos/:video_id/remix | Renderiza de novo um vídeo existente com um novo prompt, nos modelos que oferecem isso. |
| 3D | ||
| POST | /v1/model3d/tasks | Geração assíncrona de ativos 3D e pós-processamento — retorna um task_id. |
| GET | /v1/model3d/tasks/:task_id | Consulta a tarefa 3D; a URL do resultado vem no corpo da tarefa, não há rota /content. |
| Mídia | ||
| POST | /v1/media/upload-policy | Cria uma política de upload de curta duração para uma imagem, vídeo, áudio ou arquivo genérico, até o limite configurado para ele. |
| Assinaturas de apps | ||
| POST | /v1/google-play/verify | Verifica um token de compra do Google Play no seu app com a conta de serviço configurada nesta chave — grátis, sem chamada de modelo. |
| POST | /v1/xsolla/verify | Verifica se um usuário da Xsolla tem uma assinatura ativa com a chave de API da Xsolla definida nesta chave — grátis, sem chamada de modelo. |
| Conta | ||
| GET | /v1/balance | Saldo da conta e quanto esta chave ainda pode gastar — grátis, sem chamada de modelo. |
| Metadados | ||
| GET | /v1/models | Lista todos os modelos que esta chave pode acessar. |
| GET | /v1/models/:model | Retorna uma entrada de modelo — o formato que os clientes da Anthropic e da OpenAI consultam ao iniciar. |
Ainda com problemas?
Envie para nós o ID da requisição ou a mensagem de erro e vamos investigar.