Referência da API
Chat completions
Gere a resposta de um modelo a partir de uma lista de mensagens.
/v1/chat/completionsO endpoint principal. Recebe uma conversa e devolve a próxima mensagem do assistente, opcionalmente em streaming.
Corpo da requisição
modelstringObrigatórioO modelo que responde, por exemplo qwen/qwen3.5-9b. Veja em Modelos
os valores que o seu plano inclui; o GET /v1/models lista os que a sua
chave pode usar.
messagesMessage[]ObrigatórioA conversa até aqui, da mais antiga para a mais recente. Cada mensagem tem
um role e um content.
streambooleanOpcionalPadrão: falseDevolve server-sent events em vez de um único corpo JSON. Veja Streaming.
temperaturenumberOpcionalPadrão: 0.7Aleatoriedade da amostragem, de 0 a 2. Sobrepõe a configuração de
comportamento da stack apenas nesta requisição.
top_pnumberOpcionalPadrão: 1Amostragem por núcleo (nucleus sampling). Ajuste este parâmetro ou a
temperature, não os dois.
max_tokensintegerOpcionalPadrão: 8000Teto de tokens gerados. Fica limitado a um piso de 8000 e a um teto de 16000 — um valor baixo ou ausente nunca corta uma resposta no meio, e o piso conta contra a janela de contexto (veja Modelo de preços).
stopstring | string[]OpcionalAté quatro sequências que encerram a geração. A sequência em si não é devolvida.
toolsTool[]OpcionalDefinições de funções que o modelo pode chamar. Mesmo schema das tools da OpenAI.
response_formatobjectOpcionalDefina como { "type": "json_object" } para restringir a saída a um JSON
válido.
textjson_objectchat_template_kwargsobjectOpcionalAvançado, específico de cada família de modelos. Nos modelos Qwen3.x, envie
{ "enable_thinking": false } aqui para pular a etapa de raciocínio
interno do modelo e responder direto — útil em tarefas fechadas e
objetivas (classificação, extração), em que você prefere menor latência a
profundidade de raciocínio. Precisa estar aninhado sob esta chave; um
enable_thinking no nível de cima é ignorado em silêncio.
Se você enviar uma mensagem system, ela substitui o system prompt
configurado na sua stack apenas nesta requisição. Não envie mensagem
system para manter o comportamento configurado da stack.
A busca na base de conhecimento é à parte: ela segue a configuração da
própria chave de API, então uma chave com a busca ativada continua
consultando a base e acrescenta o trecho depois da sua mensagem system.
Veja Conceitos principais e
Base de conhecimento.
Objeto de mensagem
rolestringObrigatórioQuem produziu a mensagem.
systemuserassistanttoolcontentstring | Part[]OpcionalTexto, ou um array de partes para entrada multimodal. Pode ser null numa
mensagem do assistente que só chama uma tool.
tool_call_idstringOpcionalObrigatório em mensagens tool — liga o resultado à chamada de origem.
Exemplo
curl "https://api.trystac.com/v1/chat/completions" \
-H "Authorization: Bearer $STAC_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen/qwen3.5-9b",
"messages": [{ "role": "user", "content": "Cite três cores primárias." }],
"temperature": 0.2,
"max_tokens": 64
}'Resposta
{
"id": "chatcmpl-9f2a1c",
"object": "chat.completion",
"created": 1770000000,
"model": "qwen/qwen3.5-9b",
"choices": [
{
"index": 0,
"message": { "role": "assistant", "content": "Vermelho, azul e amarelo." },
"finish_reason": "stop"
}
],
"usage": { "prompt_tokens": 14, "completion_tokens": 7, "total_tokens": 21 }
}O usage é informado para fins de observabilidade. Ele não afeta a
cobrança — veja Modelo de preços.
finish_reason
| Valor | Significado |
|---|---|
stop | O modelo terminou, ou encontrou uma sequência de parada |
length | Atingiu o max_tokens |
tool_calls | O modelo precisa do resultado de uma tool antes de continuar |