Настройка rate-limiting для API Битрикс24

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Настройка rate-limiting для API Битрикс24
Простая
~1 рабочий день
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1177
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    811
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    747
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Настройка rate-limiting для API Битрикс24

Интеграция работает, данные синхронизируются — а потом в пятницу вечером скрипт начинает слать запросы в цикле без пауз, упирается в лимит, получает ошибку QUERY_LIMIT_EXCEEDED и падает. Или хуже — не падает, а повторяет запрос немедленно, усугубляя ситуацию. API Битрикс24 имеет жёсткие rate limits, и любая интеграция обязана их учитывать. Иначе — потеря данных, рассинхронизация, блокировка приложения.

Лимиты REST 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]

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

Стратегии работы с лимитами

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

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

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

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

Мониторинг расхода

Текущий расход API-вызовов можно проверить методом app.info — возвращает количество оставшихся запросов за текущий период. Для вебхуков аналогичной метрики нет — нужно считать на своей стороне.

В логах Б24 (раздел Настройки → Журнал событий) фиксируются ошибки API, включая превышение лимитов. Рекомендуем настроить мониторинг: алерт при достижении 80% суточного лимита.

Что настраиваем

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