# Messages API для Grok

Генерация текста через Messages API Grok и OpenAI-совместимый Responses API: формат запросов, параметры, ответы, расход токенов и история диалога.

Чтобы показывать ответ по мере генерации, используйте [Streaming API](https://grok-api.dev/ru/docs/streaming).

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

```bash
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": "Объясни бинарный поиск в двух предложениях."
  }'
```

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

| Поле | Тип | Обязательно | Описание |
| --- | --- | --- | --- |
| model | string | Да | ID модели. |
| input | string или array | Да | Промпт или упорядоченный массив сообщений. |
| instructions | string | Нет | Общие инструкции для текущего ответа. |
| max_output_tokens | integer | Нет | Максимальное число выходных токенов. |
| temperature | number | Нет | Степень случайности генерации. |
| stream | boolean | Нет | При true возвращает последовательные SSE-события. |
| store | boolean | Нет | Определяет, можно ли сослаться на ответ по ID. |
| previous_response_id | string | Нет | ID предыдущего ответа для продолжения диалога. |

## Роли сообщений

| role | description |
| --- | --- |
| system | Правила приложения и контекст. |
| user | Текущий запрос пользователя. |
| assistant | Предыдущий ответ модели в локальной истории. |

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

| status | meaning |
| --- | --- |
| completed | Ответ готов. |
| in_progress | Генерация ещё выполняется. |
| incomplete | Ответ остановлен до завершения. |

`usage.input_tokens` — обработанный контекст, `usage.output_tokens` — сгенерированный ответ, `usage.total_tokens` — их сумма. Входные и выходные токены тарифицируются отдельно.

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

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