Ограничения VK API для сообществ и бизнес-аккаунтов
Все ограничения VK API в одном месте: rate limits, права доступа, модерация и стратегии работы.
Обзор ограничений VK API
VK API — мощный инструмент, но с большим количеством ограничений, которые далеко не всегда очевидны из документации. Для бизнеса, строящего уведомления или рассылки через VK, понимание этих ограничений критически важно: нарушение лимитов ведёт к временным блокировкам, потере сообщений и даже бану сообщества.
В этой статье мы систематизируем все ключевые ограничения VK API, актуальные на 2026 год, с фокусом на рассылки от имени сообществ. Если вы строите массовые уведомления через VK, также стоит ознакомиться с «VK API для массовых уведомлений: пошаговый разбор».
VK регулярно ужесточает ограничения без предупреждения. Мы обновляем эту статью по мере появления новых лимитов. Последнее обновление: февраль 2026.
Rate limits по методам API
VK использует многоуровневую систему rate limiting. Лимиты зависят от типа токена (пользователь или сообщество), метода API и типа приложения.
| Категория метода | Лимит (сообщество) | Лимит (пользователь) | Примечание |
|---|---|---|---|
| Общий rate limit | 20 req/s | 3 req/s | На один access_token |
messages.send | 20 req/s | Запрещено для рассылок | Группировка через execute |
messages.getConversations | 3 req/s | 3 req/s | Строгий лимит |
users.get | 20 req/s | 3 req/s | До 1000 user_ids за запрос |
wall.post | ~50/день | ~50/день | Внутренний лимит VK |
execute | 20 req/s | 3 req/s | До 25 вложенных вызовов |
groups.getMembers | 3 req/s | 3 req/s | До 1000 записей за запрос |
| Загрузка файлов | ~5 req/s | ~5 req/s | Зависит от размера файла |
Обратите внимание: VK не всегда возвращает стандартный HTTP 429 при превышении лимитов. Часто API отвечает кодом 200 с ошибкой error_code: 6 (Too many requests per second) или error_code: 9 (Flood control). Это требует специфической обработки.
Лимиты на сообщения сообществ
Лимиты на отправку сообщений — самое критичное ограничение для бизнеса:
| Ограничение | Значение | Обход |
|---|---|---|
| Рассылка в сутки | 5 000 сообщений | Распределение по дням |
| Сообщения не подписчику | Запрещено | Только через подписку |
| Ответ в диалоге (24 ч) | Без лимита | — |
| Проактивное сообщение (>24 ч) | Через рассылку | Считается в суточный лимит |
| Размер сообщения | 4 096 символов | Разбивка на несколько сообщений |
| Вложения | До 10 шт. | — |
| Inline-кнопки | 10×5 = 50 макс. | — |
Суточный лимит в 5 000 сообщений — это «потолок» для большинства сообществ. Для сравнения, В MAX ориентируйтесь на актуальные лимиты из нашего разбора MAX Bot API, а в Telegram — на отдельный разбор ограничений Telegram.
Права доступа и разрешения
VK API использует систему прав (permissions), которые запрашиваются при создании токена. Для работы с сообщениями сообщества необходимы:
messages— доступ к сообщениям сообщества. Без этого права отправка невозможнаmanage— управление сообществом. Необходимо для настройки Callback API и рассылокphotos— загрузка фотографий. Нужно при отправке изображений в сообщенияхdocs— работа с документами. Для отправки файлов (PDF, XLSX и т.д.)
Важные ограничения по правам:
- Токен пользователя не может использоваться для рассылок — только токен сообщества
- Для создания токена нужны права управления сообществом
- Нельзя отправлять сообщения пользователям, которые добавили сообщество в чёрный список
- VK может отозвать права без уведомления при обнаружении подозрительной активности
Модерация контента
VK активно модерирует содержимое сообщений от сообществ. Нарушение правил ведёт к блокировке рассылки или бану сообщества:
- Спам-фильтр — автоматическая проверка контента. Одинаковый текст большому количеству получателей повышает спам-скор
- Жалобы пользователей — если более 2–3% получателей пожалуются, рассылка блокируется
- Запрещённый контент — ссылки на внешние ресурсы (не VK) могут снижать доставляемость
- Капча — VK может потребовать капчу при подозрительной активности (error_code: 14)
// Обработка ошибок VK API в JavaScript
async function safeSendVk(userId, text, token) {
const params = new URLSearchParams({
user_id: String(userId),
random_id: String(Math.floor(Math.random() * 1e9)),
message: text,
access_token: token,
v: '5.199'
});
const res = await fetch(
'https://api.vk.com/method/messages.send?' + params.toString()
);
const data = await res.json();
if (data.error) {
switch (data.error.error_code) {
case 6: // Too many requests
await sleep(1000);
return safeSendVk(userId, text, token); // retry
case 9: // Flood control
await sleep(5000);
return safeSendVk(userId, text, token); // retry с увеличенной паузой
case 14: // Captcha required
console.error('Captcha required — нужно ручное вмешательство');
throw new Error('CAPTCHA_REQUIRED');
case 901: // Пользователь запретил сообщения
console.warn(`User ${userId} has blocked messages`);
return null; // не повторять
case 914: // Рассылка заблокирована
console.error('Mailing is blocked by VK');
throw new Error('MAILING_BLOCKED');
default:
throw new Error(`VK Error: ${data.error.error_code} — ${data.error.error_msg}`);
}
}
return data.response;
}
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}Версионирование и устаревание API
VK поддерживает несколько версий API одновременно, но периодически устаревает старые версии без длительного переходного периода:
- Актуальная версия — 5.199 (февраль 2026). Лучше использовать её во всех запросах
- Минимальная поддерживаемая — 5.131. Более старые версии могут возвращать ошибки или некорректные данные
- Обратная совместимость — не гарантирована. VK может изменить формат ответа между версиями
- Уведомления — об устаревании публикуются в блоге VK для разработчиков, но срок обычно составляет 3–6 месяцев
Всегда указывайте параметр v=5.199 в запросах. Без указания версии VK использует версию, привязанную к приложению (часто устаревшую).
Проблема версионирования VK API — одна из причин, почему разработчики предпочитают абстрагироваться через платформу-посредник. Релая отслеживает изменения в VK API и адаптируется автоматически, так что ваш код не ломается при обновлении VK.
Обходные решения и best practices
Многие ограничения VK API можно обойти грамотной архитектурой:
- Используйте
execute— группируйте до 25 вызовов в один запрос. Это фактически увеличивает пропускную способность в 25 раз при 20 req/s - Реализуйте retry с backoff — при ошибке 6 (rate limit) используйте экспоненциальный backoff: 1с → 2с → 4с → 8с
- Персонализируйте сообщения — уникальный контент для каждого получателя снижает спам-скор VK
- Распределяйте рассылку по времени — не отправляйте все 5 000 сообщений в одну минуту. Равномерно растяните на 2–4 часа
- Мониторьте error rate — если процент ошибок превышает 5%, приостановите рассылку и проверьте причину
- Сегментируйте базу — отправляйте разный контент разным группам подписчиков для повышения вовлечённости
И самый эффективный «обход» — использовать несколько каналов. Если суточный лимит VK (5 000) недостаточен, подключите MAX и Telegram через Релая.
Сравнение с MAX API
Для бизнеса, уставшего от ограничений VK, полезно взглянуть на альтернативы. MAX API предлагает принципиально другой подход:
| Критерий | VK API | MAX API |
|---|---|---|
| Модель взаимодействия | Через сообщества | Напрямую через ботов |
| Rate limit | 20 req/s | ~30 req/s |
| Суточный лимит рассылки | 5 000 | Нет жёсткого лимита |
| Подписка пользователя | Обязательна (сложно) | Нужен /start от пользователя |
| Капча | Может потребоваться | Нет |
| Версионирование | Частые изменения | Стабильное |
| Хранение данных (152-ФЗ) | Россия | Россия |
MAX API проще, быстрее и менее ограничен. Для бизнеса, которому нужна массовая рассылка в России, MAX становится предпочтительным каналом.
Не обязательно выбирать между VK и MAX — через Релая вы можете использовать оба канала (и Telegram) через единый API. VK для существующей аудитории, MAX для роста, Telegram как резерв. Подробнее: массовые уведомления через VK.
Создайте бесплатный MAX-профиль
Если хочется не просто читать, а сразу проверить сценарий руками: подключите MAX, отправьте себе тестовое сообщение и уже потом решайте, нужны ли другие каналы.