# Лимиты

Запуск моделей частотой не ограничен: чат, картинки, видео, музыка, речь, транскрибация,
задачи, их события и файлы результатов — сколько угодно запросов, их ограничивают баланс и
потолки трат. Частотой ограничены вход, ключи, участники, настройки, оплата, загрузки и
бесплатные ручки без ключа. Ещё ограничены размеры и время.

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

- **Ключ** — потолок на всё время, в день или в месяц. Как он обновляется —
  `GET /v1/key` → `spend_limit_reset`: `none` — на всё время ключа, сам не обновляется;
  `daily` — заново каждый день в 00:00 UTC; `monthly` — 1-го числа в 00:00 UTC. У ключа без
  потолка (`spend_limit: null`) — тоже `none`.
- **Участник** — общий лимит на все его ключи, задаётся в кабинете.

Исчерпан — `402 key_spend_limit_exceeded` или `402 member_spend_limit_exceeded`, без
списания. Помогает новый период или повышение: потолок ключа — в кабинете или
`PATCH /v1/keys/{id}` ключом управления, лимит участника — в кабинете.

> [!WARNING]
> При `spend_limit_reset: "none"` ждать бесполезно: потолок — на всё время ключа.

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

Сверх предела — `429` с `type: "rate_limit_error"`, `code: "rate_limited"` и заголовком
`Retry-After`: через сколько секунд повторить. Предел копится равномерно: «120 в час» —
120 подряд, затем по одному каждые 30 секунд.

| Что | Предел | Считается |
|---|---|---|
| вход: возврат со страницы входа Яндекса, GitHub или Google, ссылка-приглашение, начало и завершение входа через Telegram | 60 в минуту | на адрес |
| опрос входа через Telegram | 300 в минуту | на адрес |
| выход | 30 в минуту | на участника |
| кабинет, любые запросы; ключ управления — изменения | 300 в минуту | на участника; у ключа управления — свой счёт |
| ключ управления — чтение (`GET`: расходы, запросы, баланс, `/v1/auth/me`, ключи) | 1200 в минуту | на ключ, отдельно от изменений |
| выпуск, правка, отзыв и показ секрета API-ключей, смена секрета вебхуков | 120 в час | на участника или ключ управления |
| `PATCH /v1/settings` | 120 в час | на участника или ключ управления |
| участники, название аккаунта, профиль, привязка способов входа | 60 в час | на участника |
| создание платежа | 20 в час | на участника |
| загрузка файла `POST /v1/files` | 3000 в минуту | на аккаунт |
| каталог `/v1/models`, `/v1/channels` | 1200 в минуту; с ключом — 6000 в минуту | на адрес; с ключом — на ключ |
| превью роутинга `POST /v1/models/{id}/routing/preview` | 300 в минуту, сверх каталога | на адрес |
| MCP-сервер без ключа или с незнакомым ключом | 600 сообщений в минуту | на адрес |
| запросы с ключом, которого сервер не знает | 300 в минуту | на адрес |

Вход, который браузер открывает переходом (возврат со страницы входа, завершение входа
через Telegram, ссылка-приглашение), сверх предела отвечает не `429`, а редиректом `302` на
`/login?error=rate_limited` — туда же, куда вёл вход, с `next`.

С ключом, который сервер уже проверил, запросы к моделям и сообщения MCP не считаются:
предел «на адрес» касается только неизвестных ключей и запросов без ключа.

Канал модели занят — запрос уходит в следующий канал; заняты все — `503 model_unavailable`
с `Retry-After`, деньги не списаны. Это не предел частоты: повторите позже или выберите
другую модель.

Большие запросы, загрузки файлов, транскрибация и синтез речи при всплеске нагрузки могут
ждать очереди; не дождались за 100 секунд — `503 overloaded` с `Retry-After`, деньги не
списаны: повторите запрос.

## Размеры

| Что | Предел |
|---|---|
| тело картинок и видео | 70 МиБ (референс до 50 МиБ в base64) |
| тело чата | 25 МиБ |
| загрузка файла | картинка 50 МиБ и 300 Мп (JPEG), видео 200 МиБ, звук 15 МиБ |
| звук на транскрибацию | 25 МиБ и 4 часа |
| сообщение MCP | 8 МиБ |

Тело больше предела — `413 invalid_request` с `{"path": "body", "reason": "too_large",
"allowed": ["at most <N> bytes"]}`. Большие файлы загружайте через
[`POST /v1/files`](https://souz.ai/docs/files.md) (картинка до 50 МиБ) и передавайте `file_…` или ссылку
`https://…`.

## Хранение файлов

Загрузки `POST /v1/files`, пока их срок не вышел, занимают не больше 10 ГБ на аккаунт, после
первого пополнения — не больше 50 ГБ. Файлы, присланные в самом запросе (байтами или
ссылкой `https://…`), и результаты моделей в квоту не входят. Загрузка сверх квоты —
`413 storage_limit_exceeded`: удалите ненужные файлы `DELETE /v1/files/{id}` или дождитесь
их срока.

## Потоки

Одновременных потоков на аккаунт — событий задачи (`GET /v1/jobs/{id}/events`) и чата с
`stream: true` — не больше 1000. Сверх — `429 rate_limited` с `Retry-After`: закройте
ненужные потоки или читайте задачи запросом `GET /v1/jobs/{id}`.

## Время

| Что | Сколько |
|---|---|
| ответ генерации в том же запросе | до 9 минут, дальше — `202` |
| ответ чата | до 14 минут, с потоком и без |
| первый токен чата от последнего канала | до 90 секунд |
| тишина потока чата после первого токена | до 60 секунд между чанками, у части моделей до 90 |
| одно соединение потока событий задачи | до 35 минут, затем переподключение |
| приём тела JSON больше 1 МиБ | не медленнее 32 КиБ/с и 60 секунд сверху; медленнее — `400` |
| ответ на вебхук | 10 секунд |
| файл | 1 день |

---

Оглавление документации: https://souz.ai/llms.txt. Всё руководство одним файлом: https://souz.ai/llms-full.txt. Справочник методов: https://souz.ai/docs/api-reference.md.
