Ограничения для запросов
Ограничения для запросов к партнерскому 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
с поясняющим сообщением.