Grok API

Messages API для Grok

View as Markdown

Обновлено:

Генерация текста через Messages API Grok — основной формат взаимодействия с нейросетью Grok. Формат запросов, параметры, примеры ответов и работа с историей диалога.

Если ответ нужно показывать по мере генерации ответа, используйте Streaming API.

Пример запроса

curl https://api.llm-gate.tech/v1/responses \
  -H "Authorization: Bearer $GROK_API_DEV_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "grok-4.5",
    "input": [
      {"role": "system", "content": "Answer clearly and concisely."},
      {"role": "user", "content": "Объясни бинарный поиск в двух предложениях"}
    ]
  }'

Параметры запроса

ПолеТипОбязательноОписание
modelstringДаID модели. Для описанной на сайте модели используйте grok-4.5.
inputstring | arrayДаСтрока с промптом или упорядоченный массив сообщений с role и content.
instructionsstringНетОбщие правила поведения или контекст для текущего ответа.
max_output_tokensintegerНетВерхняя граница выходных токенов для контроля задержки и стоимости.
temperaturenumberНетСтепень случайности генерации. Не задавайте без необходимости точной настройки.
streambooleanНетВозвращает последовательные SSE-события вместо ожидания полного ответа.
storebooleanНетОпределяет, можно ли позже сослаться на ответ по ID, если режим поддерживается.
previous_response_idstringНетID предыдущего ответа для продолжения диалога.

Роли сообщений и инструкции

Роли отделяют общие инструкции для модели, текущий запрос пользователя и предыдущие ответы ассистента.

system

Правила приложения, тон ответа, ограничения и контекст.

user

Запрос или данные, полученные от пользователя.

assistant

Предыдущий ответ модели при локальном хранении истории.

Формат ответа

JSON
{
  "id": "resp_01abc",
  "object": "response",
  "status": "completed",
  "model": "grok-4.5",
  "output": [{
    "type": "message",
    "role": "assistant",
    "content": [{
      "type": "output_text",
      "text": "A binary search repeatedly halves the search range."
    }]
  }],
  "usage": {
    "input_tokens": 24,
    "output_tokens": 12,
    "total_tokens": 36
  }
}
status
completed

Ответ готов.

in_progress

Генерация ещё выполняется.

incomplete

Ответ остановлен до завершения.

id
Идентификатор resp_… нужен для продолжения stateful-диалога через previous_response_id и диагностики конкретного запроса.
usage

input_tokens — обработанный контекст, output_tokens — сгенерированный текст, total_tokens — их сумма. Стоимость входных и выходных токенов рассчитывается отдельно.

Формулу расчёта и актуальные ставки смотрите на странице «Цены».

Stateful- и stateless-диалоги

Формат xAI Responses API поддерживает оба подхода. В stateless-режиме приложение само хранит всю историю сообщений и передаёт нужный контекст в каждом запросе. В stateful-режиме API связывает реплики через previous_response_id, поэтому в следующий запрос достаточно добавить новое сообщение пользователя.

Stateless

JavaScript
const history = [
  { role: "user", content: "Explain binary search in one sentence." },
  { role: "assistant", content: "Binary search repeatedly halves a sorted search range." },
  { role: "user", content: "Now show a JavaScript implementation." },
];

const response = await client.responses.create({
  model: "grok-4.5",
  input: history,
  store: false,
});

console.log(response.output_text);

Stateful

JavaScript
const first = await client.responses.create({
  model: "grok-4.5",
  input: "Explain binary search in one sentence.",
});

const followUp = await client.responses.create({
  model: "grok-4.5",
  previous_response_id: first.id,
  input: "Now show a JavaScript implementation.",
});

console.log(followUp.output_text);