Лимиты защищают Voice от перегрузки и спама. При превышении сервер отвечает 429 Too Many Requests: подождите столько секунд, сколько указано в заголовке Retry-After (или в поле retryAfter), и повторите. Если заголовка нет — подождите 1–2 секунды.
JSON
HTTP/1.1 429 Too Many Requests
Retry-After: 12
{ "error": "Слишком много запросов — подождите немного", "retryAfter": 12 }REST API
| Что | Лимит | На кого |
|---|---|---|
| Все запросы к /api | 600 в минуту | IP-адрес |
| Отправка сообщений (каналы и беседы) | 12 за 10 секунд | бот или пользователь |
| Новые личные беседы | 20 за 10 минут | бот |
| Загрузка вложений | 40 за 10 минут | бот |
| Медленный режим канала | 1 сообщение в N секунд | автор в канале |
| Обмен кода и обновление токена Voice ID | 60 в минуту | IP-адрес |
| Сообщения вебхука | 30 в минуту | вебхук |
| Новые приложения | 10 в час, всего до 25 | аккаунт |
Шлюз
| Что | Лимит |
|---|---|
| Новые подключения | 60 в минуту с IP-адреса |
| Одновременные подключения | 12 на аккаунт |
| Команды по одному соединению | 800 за 10 секунд (иначе закрытие 4008) |
| ACTIVITY_UPDATE | 30 в минуту — лишние отбрасываются |
| TYPING_START | раз в 4 секунды на канал |
Сроки
| Что | Сколько |
|---|---|
| Первый ответ на команду или кнопку | 3 секунды |
| Продолжения (followup, правка ответа) | 15 минут |
| Код авторизации Voice ID | 5 минут, одноразовый |
| Токен доступа / обновления Voice ID | 7 дней / 60 дней |
| id_token | 1 час |
SDK voice.mjs сам ждёт и повторяет запрос при 429.