https://tracker.my.com/api/open/user/v1/quotas/get.json
Для обеспечения максимальной доступности API сервисов предусмотрен ряд ограничений на интенсивность запросов со стороны пользователей в секунду/минуту/час:
Если в запросе зафиксированы ошибки, то доступ ко всему API будет ограничен до конца временного интервала по выделенной квоте, даже если ошибки исправлены.
Неавторизованный пользователь — это пользователь, который при обращении к API не передал подпись или подпись некорректна. В этом случае MyTracker не может идентифицировать пользователя, и он будет считаться неавторизованным.
Для некоторых разделов API могут быть установлены дополнительные виды ограничений и максимальные значения лимитов.
Квоты на количество запросов могут быть изменены в будущем. Актуальные данные будут отображаться в данной статье.
Вы можете получить информацию о своих квотах, отправив GET запрос, в котором quotas
возвращает информацию о количестве квот.
https://tracker.my.com/api/open/user/v1/quotas/get.json
Проверка достижения лимита квот происходит по следующему алгоритму — сначала проверяются квоты по IP, потом квоты по авторизованному пользователю, а затем квоты по ошибкам в запросе. Количество запросов проверяется за каждый временной интервал по каждому виду ограничений. Если лимит по квотам исчерпан, то доступ к API блокируется до конца соответствующего временного интервала.
Например, если авторизованный пользователь совершил 1000 запросов менее чем за час, то возможность отправки следующих запросов будет заблокирована до конца этого часа, так как выделенная квота исчерпана.
После того как квота исчерпана, API начинает возвращать ответ с HTTP-статусом 429 (Too Many Requests). В качестве информации будет выдана одна из групп проверяемых лимитов со следующими данными:
В примере показан ответ на запрос, в котором превышена минутная квота:
{
"code": 429,
"message": "Too Many Requests",
"data": {
"error": {
"info": {
"quotas": [
{
"name": "RequestsByUserPerSecond",
"count": 3,
"limit": 10,
"resetTime": 1500000291,
"resetInSecond": 1,
"exceeded": false
},
{
"name": "RequestsByUserPerMinute",
"count": 127,
"limit": 100,
"resetTime": 1500000320,
"resetInSecond": 30,
"exceeded": true
},
{
"name": "RequestsByUserPerHour",
"count": 100,
"limit": 1000,
"resetTime": 1500000800,
"resetInSecond": 510,
"exceeded": false
}
]
}
}
}
}
Обратите внимание, что в ответе может быть показано более одной превышенной квоты, а также квоты, лимиты которых еще не превышены. Данная функциональность, при необходимости, поможет принять более правильное решение, через какой промежуток времени и с какой интенсивностью возобновить взаимодействие с API.
Вы можете запросить увеличение квот для IP или авторизованного пользователя (API User ID) в службе поддержки MyTracker.