Ограничения для запросов

Ограничения для запросов к партнерскому API делятся на следующие типы:

  • глобальные ограничения (ограничения на количество одновременных запросов);

  • ресурсные ограничения (ограничения на количество запросов к одному и тому же ресурсу за продолжительный период времени, например, за сутки);

  • функциональные ограничения (ограничения на количество передаваемых или возвращаемых данных в одном запросе).

Глобальные ограничения

Действуют на количество одновременных (параллельных) запросов c одного логина. Разрешается выполнять не более двух одновременных запросов.

При превышении ограничения сервер возвращает специальный HTTP-код 420 Enhance Your Calm с поясняющим сообщением:

Hit rate limit of 2 parallel requests

Ресурсные ограничения

Действуют на объем запросов к одному и тому же ресурсу партнерского API за продолжительный период времени с одного логина. Под объемом запросов понимается количество запросов и количество передаваемых или возвращаемых данных за один запрос.

Для большинства ресурсов ограничения действуют только на количество запросов. Эти ограничения индивидуальны для каждого ресурса.

Для остальных ресурсов ограничения действуют на суммарное количество передаваемых или возвращаемых данных в запросах к одному и тому же ресурсу. Эти ограничения рассчитываются индивидуально для каждого магазина или партнера. Критерии расчета ограничений указаны в описаниях таких ресурсов. Перерасчет ограничений происходит с задержкой от двух до восьми часов.

Некоторые ресурсы объединены в группы, для которых действует общее ресурсное ограничение. В этом случае ограничения действуют на объем запросов к любому из ресурсов группы за продолжительный период времени.

В каждом ответе на запрос сервер возвращает специальные HTTP-заголовки, в которых указывается состояние ресурсного ограничения для магазина или партнера:

  • заголовок X-RateLimit-Resource-Limit содержит числовое значение ограничения;

  • заголовок X-RateLimit-Resource-Until содержит дату, до которой действует ограничение, в формате RFC822 (например, Thu, 10 Jul 2018 00:42:42 GMT);

  • заголовок X-RateLimit-Resource-Remaining содержит числовое значение объема запросов к данному ресурсу, оставшихся до превышения ограничения.

При превышении ограничения сервер отдает специальный HTTP-код 420 Enhance Your Calm с поясняющим сообщением, например:

Hit rate limit of 10 000 points per 1 day for resource /regions/{regionId}.json

Функциональные ограничения

Действуют на количество передаваемых или возвращаемых данных для ресурса за один запрос. Ограничения индивидуальны для каждого ресурса, их значения указаны в описаниях самих методов.

Кроме того, действует общее для всех запросов ограничение: максимальный объем тела запроса составляет 512 КБ. Если объем получается больше, разбейте запрос на несколько.

При превышении ограничения сервер отдает специальный HTTP-код 400 Bad Request с поясняющим сообщением.