Ограничения
Лимиты запросов
| Что | Лимит |
|---|---|
| запросы с одного ключа | 600 в минуту |
| запросы с IP сервера сайта | 600 в минуту |
| все запросы компании (все ключи) | 1200 в минуту |
| заявки на бронь с одного IP посетителя | 5 за 10 минут |
| заявки на бронь с одного ключа | 100 в час |
При превышении CRM отвечает 429 too_many_attempts с заголовком Retry-After — через сколько секунд повторить. В пакете это TooManyAttemptsError с полем retryAfter.
Чтобы лимит заявок считался по посетителю, а не по вашему серверу, передавайте его IP: createBookingRequest(body, { visitorIp }) (заголовок X-Visitor-Ip). Без него все посетители сайта делят один лимит — IP сервера.
Как не упереться в лимит
- Кэшируйте. Каталог, районы и цены меняются редко — держите их в кэше и сбрасывайте вебхуком, а не запрашивайте на каждый показ страницы.
- Проверяйте даты из адреса. Не в прошлом, не дальше ~24 месяцев, разумная длина проживания. Иначе любой бот, перебирающий
?check_in=…, порождает новые запросы в CRM. - Повторяйте с паузой. На
429ждитеRetry-After, на сетевую ошибку — с нарастающей паузой; заявку повторяйте с тем жеrequest_id.
Другие ограничения
| Что | Значение |
|---|---|
период occupancy() | до 400 дней (date_to не включительно); больше — 422 invalid_period |
| тайм-аут пакета | 5 с для чтения, 10 с для заявки |
| окно подписи вебхука | 300 с |
| протокол | только HTTPS; ключ — только в заголовке Authorization |