Настройка rate-limiting для API Битрикс24: избегаем QUERY_LIMIT_EXCEEDED

Мы часто сталкиваемся с ситуацией: интеграция работает, данные синхронизируются — а потом в пятницу вечером скрипт начинает слать запросы в цикле без пауз, упирается в лимит, получает ошибку `QUERY_LIMIT_EXCEEDED` и падает. Или хуже — не падает, а повторяет запрос немедленно, усугубляя ситуацию. API
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Настройка rate-limiting для API Битрикс24: избегаем QUERY_LIMIT_EXCEEDED
Простой
~1 день

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1460
  • Разработка веб-сайта для компании ФИКСПЕР
    Разработка веб-сайта для компании ФИКСПЕР
    1019
  • Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    764
  • Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    882
  • Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    810
  • Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1166

Мы часто сталкиваемся с ситуацией: интеграция работает, данные синхронизируются — а потом в пятницу вечером скрипт начинает слать запросы в цикле без пауз, упирается в лимит, получает ошибку QUERY_LIMIT_EXCEEDED и падает. Или хуже — не падает, а повторяет запрос немедленно, усугубляя ситуацию. API Битрикс24 имеет жёсткие rate limits, и любая интеграция обязана их учитывать. Иначе — потеря данных, рассинхронизация, блокировка приложения. Наш опыт показывает: правильная настройка rate-limiting экономит часы отладки и предотвращает инциденты. Наша команда имеет 10+ лет опыта разработки на Битрикс24 и реализовала более 50 интеграций, поэтому мы знаем все подводные камни. В этой статье мы разберём лимиты REST API Битрикс24, методы оптимизации и конкретные сценарии, которые мы реализуем для клиентов. Вы узнаете, как избежать типовых ошибок и построить устойчивую интеграцию.

Какие лимиты установлены в API Битрикс24?

Битрикс24 применяет ограничения на двух уровнях:

Тип Лимит Комментарий
Вебхуки (входящие) 2 запроса в секунду На один вебхук
Серверные приложения (OAuth) 2 запроса в секунду На одно приложение на один портал
Суточный лимит 10 000 запросов в сутки Для бесплатных тарифов. Коммерческие — выше
batch-запрос 50 команд в одном batch Считается как 1 запрос к API

При превышении лимита API возвращает HTTP 503 с телом {"error":"QUERY_LIMIT_EXCEEDED"}. Повторный запрос рекомендуется через 500 мс — но не сразу. Суточный лимит сбрасывается в 00:00 по времени портала. Для приложений из маркетплейса лимиты отличаются и зависят от подписки разработчика.

Как метод batch помогает обойти лимиты?

batch — главный инструмент экономии запросов. Один вызов batch содержит до 50 команд и считается как один запрос:

POST https://your-domain.bitrix24.by/rest/batch/ cmd[0]=crm.deal.list?filter[STAGE_ID]=WON cmd[1]=crm.deal.list?filter[STAGE_ID]=LOSE cmd[2]=crm.contact.list?filter[TYPE_ID]=CLIENT 

Команды внутри batch выполняются последовательно. Можно использовать результаты предыдущих команд через $result:

cmd[0]=crm.deal.get?id=123 cmd[1]=crm.contact.get?id=$result[0][CONTACT_ID] 

Batch-запросы позволяют выполнить до 50 операций за один запрос — это в 50 раз эффективнее последовательных вызовов. Вместо 50 отдельных запросов (25 секунд при 2 req/sec) — один запрос за 1-2 секунды.

Сравнение стратегий управления лимитами

Стратегия Сложность Надёжность Применимость
Exponential backoff Низкая Средняя Простые сценарии
Очередь запросов Средняя Высокая Высоконагруженные
Token bucket Высокая Высокая Распределённые системы

Exponential backoff — при получении QUERY_LIMIT_EXCEEDED повторять запрос с увеличивающейся задержкой: 500 мс → 1 с → 2 с → 4 с. Максимум 5 попыток, потом — ошибка в лог.

Очередь запросов — вместо прямых вызовов API запросы ставятся в очередь (Redis, RabbitMQ, БД). Воркер разбирает очередь, соблюдая интервал 500 мс между запросами. Это исключает ситуацию, когда два процесса одновременно шлют запросы и суммарно превышают лимит.

Token bucket — программный счётчик: приложение отслеживает количество запросов за последнюю секунду и блокирует отправку до освобождения слота. Реализуется через shared state (Redis) для распределённых систем.

Также применяйте разделение по времени: тяжёлые синхронизации (полная выгрузка сделок, обновление каталога) выполняйте ночью, когда пользователи не работают с API.

Как выбрать стратегию управления лимитами?

Выбор стратегии зависит от нагрузки и архитектуры. Для простых сценариев достаточно exponential backoff — он не требует дополнительных сервисов. Если интеграция высоконагруженная (более 10 запросов в секунду суммарно), используйте очередь запросов на Redis — она гарантирует соблюдение лимитов даже при конкурентных запросах. Token bucket подходит для распределённых систем, где несколько микросервисов обращаются к одному порталу.

Как проверить текущий расход API?Текущий расход API-вызовов можно проверить методом `app.info` — возвращает количество оставшихся запросов за текущий период. Для вебхуков аналогичной метрики нет — нужно считать на своей стороне. В логах Б24 (раздел Настройки → Журнал событий) фиксируются ошибки API, включая превышение лимитов. Настраиваем алерт при достижении 80% суточного лимита.

Что входит в работу

  • Архитектура интеграции с учётом rate limits: batch-запросы, очереди, backoff
  • Воркер для последовательной обработки API-запросов с контролем скорости
  • Переход с одиночных запросов на batch для массовых операций
  • Мониторинг расхода API-лимитов и алерты при приближении к порогу
  • Разнесение нагрузки: фоновые синхронизации в непиковое время
  • Диагностика и устранение ошибок QUERY_LIMIT_EXCEEDED
  • Документация по настроенной интеграции

Оценка проекта — бесплатно. Если вы столкнулись с ошибками QUERY_LIMIT_EXCEEDED или хотите оптимизировать API-интеграцию, свяжитесь с нами. Наши сертифицированные специалисты имеют многолетний опыт работы с Битрикс24 и гарантируют стабильность ваших интеграций. Получите консультацию — мы поможем устранить узкие места и предотвратить простои.