Ліміти та квоти
Скільки запитів можна робити і що відбувається, коли ліміт вичерпано.
Ліміти залежать від тарифу і рахуються окремо для кожного API-ключа.
Запити на хвилину#
Ковзне вікно в одну хвилину на ключ. Кожна успішна відповідь містить X-RateLimit-Remaining — скільки запитів лишилося в поточному вікні. Понад ліміт приходить 429 rateLimited з error.retryAfter у секундах.
X-RateLimit-Remaining: 59{
"error": {
"code": "rateLimited",
"message": "Rate limit exceeded",
"retryAfter": 12
}
}Місячна квота#
Кожен ключ має місячну квоту запитів, яка скидається 1-го числа кожного місяця о 00:00 UTC. Коли вона закінчується, запити повертають 429 rateLimited з error.reason = quota до наступного місяця.
{
"error": {
"code": "rateLimited",
"message": "Monthly quota exceeded",
"reason": "quota"
}
}Скани на день#
Виклик POST /scans, який справді запускає скан, витрачає один скан із денного ліміту тарифу — спільного зі сканами, які ти запускаєш у застосунку. Читання звітів і виклики скану, що повертають свіжий звіт із кешу, ліміт сканів не витрачають (але рахуються як запити до API).
Ліміти за тарифами#
| Тариф | Запитів / хв | Запитів / міс |
|---|---|---|
Pro | 60 | 100 000 |
Корисні практики#
- Кешуй звіти на своєму боці — звіт лишається свіжим кілька хвилин.
- При 429 зачекай
retryAfterсекунд, потім повторюй з експоненційною затримкою та випадковим розкидом. - Опитуй скани раз на 3–5 секунд, а не в щільному циклі.
- Розподіляй пакетні задачі в часі, а не запускай їх паралельно.