Перейти до вмісту

Пошук доступний лише у виробничих збірках. Спробуйте зібрати та переглянути сайт, щоби протестувати його локально

Рейтліміти

Рейтліміти захищають API від сплесків навантаження й діють незалежно від тарифікації. Вони обчислюються окремо для акаунта й операції, а не для IP-адреси чи API-токена. Тому скидання токена не обнуляє лічильники.

Ендпоінт Запитів за 60 секунд Одночасних запитів
GET /v1/me/ 120 5
GET /v1/users/{identifier} 120 5
GET /v1/groups/{identifier} 120 5
GET /v1/search/ 60 3
GET /v1/users/{identifier}/similar 60 3
GET /v1/groups/{identifier}/similar 30 2
GET /v1/groups/{identifier}/members 30 2

Кожен рядок має окремий лічильник. Наприклад, запити профілів користувачів не витрачають квоту отримання груп.

Після перевищення будь-якого ліміту API повертає 429 Too Many Requests і заголовок Retry-After із цілою кількістю секунд до повторної спроби:

HTTP/1.1 429 Too Many Requests
Retry-After: 17
Content-Type: application/json
{
"detail": "Rate limit exceeded",
"reason": "rpm"
}

Можливі значення reason:

  • rpm — вичерпано квоту запитів у рухомому хвилинному вікні;
  • concurrency — для операції вже виконується максимальна кількість запитів.

Для concurrency значення Retry-After зазвичай дорівнює 1. Повторюйте запит після зазначеної затримки й не запускайте відразу ту саму кількість паралельних запитів.

Якщо сервіс рейтлімітів не може обробити запит, API закриває доступ відповіддю 503 Service Unavailable:

HTTP/1.1 503 Service Unavailable
Retry-After: 5
Content-Type: application/json
{ "detail": "Rate limiter is temporarily unavailable" }

Повторіть запит через час із Retry-After. Успішні відповіді зараз не містять заголовків із розміром квоти, залишком запитів або часом скидання.