# Лимиты запросов

> Сколько запросов в минуту принимает Slicer API на один токен, заголовки X-RateLimit, ответ 429 и другие ограничения v1.

Источник: https://docs.slicer.media/api/rate-limits/

Лимиты защищают сервис от случайных циклов и перегрузки. Они считаются **на токен** (у приложений, подключённых через OAuth, — на подключение), а не на IP-адрес: два ваших сервиса с разными токенами не мешают друг другу.

## Запросы в минуту

| Корзина | Лимит | Какие запросы |
| --- | --- | --- |
| Обычные | 120 в минуту | все запросы, кроме перечисленных ниже |
| Платные операции и рендер | 30 в минуту | создание проекта, пересборка, повтор, ИИ-помощник, перевод субтитров, экспорт |
| Части загрузки | 1200 в минуту | `PUT /v1/uploads/{id}/parts/{n}` |

К какой корзине относится эндпоинт, видно в [справочнике](https://docs.slicer.media/api/reference/). Окно — минута. Значения могут меняться; действующие всегда приходят в заголовках ответа.

## Заголовки

Каждый ответ API содержит текущее состояние лимита:

| Заголовок | Значение |
| --- | --- |
| `X-RateLimit-Limit` | сколько запросов разрешено в окне для этой корзины |
| `X-RateLimit-Remaining` | сколько осталось в текущем окне |
| `X-RateLimit-Reset` | когда окно обнулится — Unix-время в секундах |
| `Retry-After` | только в ответе 429: через сколько секунд повторить |

Ответ 429:

```http
HTTP/1.1 429 Too Many Requests
Retry-After: 17
X-RateLimit-Limit: 120
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1792152060

{
  "ok": false,
  "error": {
    "code": "rate_limit_exceeded",
    "message": "Слишком много запросов: не больше 120 в минуту на токен",
    "retryAfterSec": 17
  }
}
```

## Как не упираться в лимит

-   **Опрашивайте статус раз в 5 секунд**, не чаще: монтаж идёт минуты, частый опрос ничего не ускорит. А лучше — [вебхуки](https://docs.slicer.media/api/webhooks/): они приходят сами и не тратят лимит.
-   **Загружайте части параллельно, но умеренно** — 4–6 потоков достаточно, чтобы загрузить большой файл быстро.
-   **Кэшируйте каталог** `GET /v1/styles` — он меняется редко.
-   При 429 ждите `Retry-After` секунд и повторяйте тот же запрос с тем же `Idempotency-Key` — см. [Ошибки](https://docs.slicer.media/api/errors/).

## Другие ограничения

| Что | Ограничение |
| --- | --- |
| Действующих API-токенов на аккаунт | 20  |
| Вебхуков на аккаунт | 5   |
| Материалов в одном проекте (`uploadIds`) | до 20, точные лимиты по видам — `GET /v1/styles` → `materialLimits` |
| Одновременных импортов по адресу | 3 на аккаунт; больше — `429 too_many_imports` |
| Операций в одном запросе правок | до 80 |
| Публикаций в одном экспорте | до 8 аккаунтов |
| Ссылка на загрузку `uploadUrl` | один файл, до 1 часа |
| Ожидание ответа вебхука | 10 секунд |

Ограничения на размер, длительность и формат файлов — те же, что в приложении: [Форматы и ограничения файлов](https://docs.slicer.media/guide/help/files/).

Кроме лимитов на токен, у сервиса есть общая защита от перегрузки по сетевым адресам — обычная работа в неё не упирается.

## Что дальше

[ОшибкиКоды ошибок и что можно повторять.](https://docs.slicer.media/api/errors/)[ВебхукиСобытия вместо опроса.](https://docs.slicer.media/api/webhooks/)
