Chat Completions
Gera uma resposta a partir de uma lista de mensagens, com ou sem streaming.
Atualizado em 16 de set. de 2026
O endpoint central da API. Envie o histórico como uma lista de mensagens e receba a próxima resposta do modelo — a chamada é sem estado, então o contexto é exatamente o que você mandou. O uso guiado está em Geração de texto.
https://api.hinow.ai/v1/chat/completionsBearerGera uma resposta a partir de uma lista de mensagens. Suporta streaming por SSE.
Parâmetros
modelstring· bodyobrigatórioId namespaced do modelo, como `hinow/himax`.
messagesarray· bodyobrigatórioMensagens da conversa. O conteúdo pode incluir texto e, nos modelos compatíveis, partes como `image_url`.
streamboolean· bodyDevolve os tokens conforme saem, por SSE. O `usage` vem no último evento.
temperaturenumber· bodyControla a variação da amostragem. Valores menores tendem a produzir respostas mais estáveis.
max_tokensinteger· bodyTeto de tokens da resposta. Ao cortar, o `finish_reason` vem `"length"`.
response_formatobject· body`{"type": "json_object"}` solicita conteúdo em JSON. Valide os campos na aplicação.
toolsarray· bodyFerramentas em JSON Schema para chamada de função.
tool_choicestring· body`"auto"` deixa o modelo decidir se chama uma ferramenta.
reasoningobject· bodyControle de raciocínio: `{ effort, enabled, exclude, max_tokens }`. Ver a página Raciocínio.
reasoning_effortstring· bodyAtalho para `reasoning.effort`: `none`, `minimal`, `low`, `medium`, `high`, `xhigh` ou `max`.
include_reasoningboolean· body`false` esconde o raciocínio na resposta (o mesmo que `reasoning.exclude: true`).
thinkingstring· body`"on"` ou `"off"`. Alias anterior de `reasoning.enabled`; continua aceito.
Respostas
{
"id": "chatcmpl-R2dSu3p8...",
"object": "chat.completion",
"model": "hinow/hinova",
"choices": [
{
"index": 0,
"message": { "role": "assistant", "content": "..." },
"finish_reason": "stop"
}
],
"usage": { "prompt_tokens": 132, "completion_tokens": 60, "total_tokens": 192 }
}Quando a chamada pede raciocínio (ou o modelo raciocina por padrão), a mensagem traz o traço junto do conteúdo, no padrão OpenRouter. Como ligar, escolher o nível e esconder está em Raciocínio.
| Campo | O que diz |
|---|---|
message.reasoning | O raciocínio como texto; ausente com exclude |
message.reasoning_details[] | type, text, format, index e, quando houver, signature |
native_finish_reason | O motivo de parada original do modelo |
usage.completion_tokens_details.reasoning_tokens | Tokens de saída gastos em raciocínio |
usage.prompt_tokens_details.cached_tokens | Tokens de entrada servidos do cache |
Em streaming, delta.reasoning chega antes de delta.content.
| Valor | O que significa | O que fazer |
|---|---|---|
stop | O modelo terminou a resposta | Nada — é o caso normal |
length | A geração bateu no max_tokens | A resposta está cortada; aumente o teto ou peça mais curto no prompt |
tool_calls | O modelo pediu uma ferramenta | Leia message.tool_calls e devolva o resultado |
Streaming e contagem de tokens
Com stream: true o campo usage só aparece no último evento, junto do finish_reason, e o fluxo encerra com data: [DONE]. Consuma o evento final quando precisar registrar a contagem retornada pela API.

