> ## Documentation Index
> Fetch the complete documentation index at: https://speshu.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Лимиты и таймауты

> Ограничения запросов, таймауты и что делать при 429

Здесь собраны все ограничения запроса: потолки по времени, размеру и частоте, лимиты тарифа и квоты.

## Таймауты и размер тела

| Что | Потолок |
| - | - |
| Весь запрос к любому эндпоинту `/api/v1/*` | 300 секунд, дальше `504 gateway_timeout` |
| Поток генерации текста | до 15 минут |
| Чат без потоковой передачи | до 15 минут |
| Тело запроса: создание медиа-задачи, текст с таймкодами, проверка длительности | 100 МБ |
| Загрузка файла | 100 МБ |

<Note>
  Поток идёт на контексте, отвязанном от клиента: если соединение оборвалось, генерация всё равно доходит до конца и деньги списываются. Потоковое ограничение в 15 минут — это не «сколько вы успеете прочитать», а верхняя граница работы всей генерации.
</Note>

## Частота запросов

Лимиты частоты считаются **на пользователя**, а не на ключ, и проверяются раньше всего остального: если превышены, до модели дело не доходит.

| Проверка | Ошибка при превышении |
| - | - |
| Запросов в минуту | `429 rate_limit_exceeded` |
| Токенов в минуту | `429 token_limit_exceeded` |

<Note>
  Оба лимита **выключены по умолчанию**. Включены ли они для вашего аккаунта и какие значения у них — вопрос настроек аккаунта, поэтому конкретное число здесь не приводится. Ориентируйтесь на поведение: получили `429` — значит, превысили тот предел, который задан у вас.
</Note>

Что делать при `429`:

* Отступайте экспоненциально и добавляйте джиттер, иначе параллельные клиенты будут бить в один и тот же момент.
* Объединяйте запросы: если задача допускает батчинг, это заметно экономит квоту токенов.
* Отличайте два кода: `token_limit_exceeded` — вы упираетесь в объём, `rate_limit_exceeded` — в число запросов. Это разные меры.

Цикл повторов с джиттером — на странице [Ошибки](/docs/errors).

## Лимиты тарифа

Отдельно от частоты запросов тариф может ограничивать число запросов и суммарное число токенов за день, неделю или месяц. Что происходит при их исчерпании — зависит от эндпоинта.

| Эндпоинт | Поведение при исчерпании |
| - | - |
| `/api/v1/chat/completions` | Если настроена резервная модель — запрос **молча** уходит на неё и тарифицируется по факту. Если не настроена — `422 limit_exceeded` |
| `/api/v1/responses` | `422 limit_exceeded` |
| `/api/v1/messages` | `422 limit_exceeded` |

<Warning>
  На `/api/v1/chat/completions` запрос может **успешно вернуться от другой модели**, чем та, которую вы просили, и по цене «по факту» вместо тарифной. Никакого признака в ответе об этом нет, если только вы не сравниваете поле `model` в результате с тем, что отправляли. Проверяйте его, пока тарифные лимиты активны, либо отключите резервную модель, если подмена недопустима.
</Warning>

Повтор внутри периода бесполезен: счётчик сбросится по расписанию тарифа. Вариантов два — дождаться сброса или сменить тариф. Текущий объём потребления виден в [Биллинге](/docs/billing).

## Прочие ограничения

| Что | Потолок |
| - | - |
| Активных API-ключей на аккаунт | 10 |
| Объём хранилища | Квота на аккаунт |

<Warning>
  Исчерпание квоты хранилища даёт `413 payload_too_large` на загрузке. Эндпоинта, который отдал бы текущий объём или остаток квоты, на `/api/v1` нет — лимит узнаётся только по факту отказа.
</Warning>

<Note>
  Загруженные изображения могут быть перекодированы без потерь, если это даёт меньший файл. Поэтому `size` в ответе на загрузку может оказаться **меньше** размера отправленного файла. Это норма.
</Note>

## Политика повторов

| HTTP | Повторять | Рекомендуемая пауза |
| - | - | - |
| `429` | Да | Заголовок `Retry-After`, иначе 1–2 секунды с джиттером, рост по степени двойки до \~30 секунд |
| `500`, `502` | Да | 1–2 с, до 5 попыток |
| `503` | Да | 5–10 с: очередь на модель разходится не мгновенно |
| `504` | Осторожно | Только если уверены, что запрос идемпотентен. Потолок в 300 с уже выбран |
| `400`, `401`, `402`, `403`, `404`, `422` | Нет | Правьте запрос |

## Практические замечания

**Поток обходит потолок в 300 секунд.** Для длинной генерации переходите на `stream: true`: вместо одного запроса на 300 секунд вы получаете поток, идущий до 15 минут. Подробности — в разделе [Потоковая передача](/docs/gaidy/streaming).

**Параллельные потоки складываются.** Каждый открытый поток занимает место в квоте параллельных генераций. Планируйте конкурентность под свой лимит, а не под число ядер клиента.

**Клиентский таймаут должен быть больше серверного.** Поставьте в клиенте 320 секунд против серверных 300 — иначе вы получите локальный обрыв на ровном месте, где сервер ещё готов был ответить.

**Отменяйте ненужные потоки.** Закрытое соединение освобождает слот сразу, а не по истечении 15 минут.

## Что дальше

<CardGroup cols={2}>
  <Card title="Ошибки" icon="triangle-exclamation" href="/docs/errors">
    Коды и цикл повторов
  </Card>

  <Card title="Запрос чату" icon="message" href="/docs/api-reference/chat/completions">
    Формат запроса и потоковая передача
  </Card>

  <Card title="Создать задачу" icon="plus" href="/docs/api-reference/media/create">
    Лимиты медиа-задач и идемпотентность
  </Card>

  <Card title="Загрузить файл" icon="upload" href="/docs/api-reference/storage/upload">
    Квота хранилища и предел в 100 МБ
  </Card>

  <Card title="Биллинг" icon="credit-card" href="/docs/billing">
    Списания, тарифы и потребление
  </Card>

  <Card title="Аутентификация" icon="key" href="/docs/authentication">
    Ключи и их ограничения
  </Card>

  <Card title="Модели и цены" icon="microchip" href="/docs/models">
    Контекстные окна и стоимость токенов
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.