# Chat Completions

Универсальный эндпоинт для всех языковых моделей линейки — от Flash до Pro Extended.

`POST /v1/chat/completions`

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

| Параметр | Тип | Описание |
| --- | --- | --- |
| `model` * | string | Идентификатор модели: tokenola-v1-flash, tokenola-v1-pro, tokenola-v1-flash-extended или tokenola-v1-pro-extended. |
| `messages` * | array | Список сообщений диалога с полями role и content. |
| `temperature` | number | Степень случайности ответа, от 0 до 2. По умолчанию 0.7. |
| `max_tokens` | integer | Максимальное число токенов в ответе модели. |
| `stream` | boolean | Если true — ответ передаётся потоково через server-sent events. |

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

```bash
curl https://api.tokenola.ru/v1/chat/completions \
  -H "Authorization: Bearer $TOKENOLA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "tokenola-v1-flash",
    "messages": [
      { "role": "user", "content": "Объясни квантовую запутанность просто" }
    ]
  }'
```

## Пример ответа

```json
{
  "id": "chatcmpl_8f2a1c",
  "model": "tokenola-v1-flash",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Представь две монеты, которые всегда..."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": { "input_tokens": 12, "output_tokens": 96 }
}
```

## Поле usage

В каждом ответе возвращается объект `usage` с количеством входных и выходных токенов — используйте его для расчёта фактической стоимости запроса по тарифам из раздела [«Модели и цены»](/docs/models).
