В статье приведены лимиты для всех методов API данных Авиасейлс и статистики Travelpayouts.
Для обеспечения стабильной работы API данных Авиасейлс и статистики Travelpayouts используются лимиты на количество обращений к серверам. Это позволяет избежать повышенной нагрузки от недобросовестных партнёров, что может привести к снижению скорости работы API для всех партнёров.
Чтобы сделать работу лимитов более предсказуемой для партнёров, введено два показателя:
- максимальное количество запросов в пять минут;
- максимальное количество запросов в один час.
Это позволяет:
- скорректировать пиковые нагрузки (например, когда на сайт партнёра пришло сразу много посетителей, а обращения к API завязаны на каждый заход на сайт);
- оптимизировать в целом работу с API (например, использование партнёрами кэша и распределение обращений к API равномерно по дню).
В таблице приведены лимиты для всех методов API данных Авиасейлс и статистики Travelpayouts.
Метод |
Лимит количества запросов в пять минут |
Лимит количества запросов в один час |
/v1/prices/calendar |
7800 |
72000 |
/v1/prices/cheap |
3900 |
36000 |
/v1/prices/direct |
5850 |
54000 |
/v1/prices/monthly |
3900 |
36000 |
/v1/airline-directions |
3900 |
36000 |
/v1/city-directions |
3900 |
36000 |
/v2/prices/latest |
31200 |
288000 |
/v2/prices/month-matrix |
15600 |
144000 |
/v2/prices/nearest-places-matrix |
3900 |
36000 |
/v2/prices/week-matrix |
3900 |
36000 |
/v2/prices/special-offers |
3900 |
36000 |
/data/something.json |
3900 |
36000 |
/v2/statistics/balance |
3900 |
36000 |
/v2/statistics/detailed-sales |
3900 |
36000 |
/v2/statistics/sales |
3900 |
36000 |
/v3/prices_for_dates |
3900 |
36000 |
/v3/grouped_prices |
3900 |
36000 |
/v3/get_special_offers |
3900 |
36000 |
/statistics/v1/execute_query* |
100 |
- |
/graphql/v1/ |
300 |
2500 |
* execute_query имеет дополнительное ограничение в 30 запросов в минуту.
При превышении лимита в ответ на запрос придёт ошибка с кодом 429.
Например, вы используете запросы со следующими лимитами:
- 3 900 запросов в 5 минут;
- 36 000 запросов в 60 минут.
Если вы пошлёте больше 3 900 запросов за две минуты, то доступ к API будет заблокирован на три минуты. Если послать более 36 000 запросов за 40 минут, то доступ заблокируется на 20 минут. При этом вы будете получать ошибку с кодом 429 до тех пор, пока не пройдёт указанное время, и блокировка не будет снята. После чего доступ к API будет автоматически разблокирован.
Настоятельно рекомендуем использовать на своей стороне кэширование данных, чтобы сократить количество запросов к API. Если вам важно знать количество отправленных запросов, реализовать это необходимо самостоятельно на вашей стороне.
Вот несколько советов, как оптимизировать запросы к API:
- Убедитесь, что вы не отправляете лишних запросов.
- Оптимизируйте свой код, чтобы исключить вызовы API, ответы на которые не содержат нужной информации.
- Кэшируйте часто используемые данные на сервере или на клиенте, используя DOM хранилище. Вы также можете сохранять полученную информацию в базе данных или записывать её в файл.
Если вы давно работаете с API, перейдите на новые методы api/v3, которые содержат больше данных (а значит, вы сможете отправлять меньше запросов).
Если вы провели работы по оптимизации, а превышение лимитов всё равно происходит, напишите в нашу службу поддержки.