xcaDocs
Початок роботи

Ліміти та квоти

Скільки запитів можна робити і що відбувається, коли ліміт вичерпано.

Ліміти залежать від тарифу і рахуються окремо для кожного API-ключа.

Запити на хвилину#

Ковзне вікно в одну хвилину на ключ. Кожна успішна відповідь містить X-RateLimit-Remaining — скільки запитів лишилося в поточному вікні. Понад ліміт приходить 429 rateLimited з error.retryAfter у секундах.

200
X-RateLimit-Remaining: 59
429
{
  "error": {
    "code": "rateLimited",
    "message": "Rate limit exceeded",
    "retryAfter": 12
  }
}

Місячна квота#

Кожен ключ має місячну квоту запитів, яка скидається 1-го числа кожного місяця о 00:00 UTC. Коли вона закінчується, запити повертають 429 rateLimited з error.reason = quota до наступного місяця.

429
{
  "error": {
    "code": "rateLimited",
    "message": "Monthly quota exceeded",
    "reason": "quota"
  }
}

Скани на день#

Виклик POST /scans, який справді запускає скан, витрачає один скан із денного ліміту тарифу — спільного зі сканами, які ти запускаєш у застосунку. Читання звітів і виклики скану, що повертають свіжий звіт із кешу, ліміт сканів не витрачають (але рахуються як запити до API).

Ліміти за тарифами#

ТарифЗапитів / хвЗапитів / міс
Pro60100 000

Корисні практики#

  • Кешуй звіти на своєму боці — звіт лишається свіжим кілька хвилин.
  • При 429 зачекай retryAfter секунд, потім повторюй з експоненційною затримкою та випадковим розкидом.
  • Опитуй скани раз на 3–5 секунд, а не в щільному циклі.
  • Розподіляй пакетні задачі в часі, а не запускай їх паралельно.