API Reference
Ліміти публічного API AOA за ендпоінтами, заголовки X-RateLimit-* і як коректно обробляти 429.
Ліміти рахуються ковзним вікном. Читання щедре, запис — стриманіший: резервування й оплата зачіпають реальні місця та гроші.
| Запит | Ліміт | Рахується за |
|---|---|---|
| Читання подій без ключа | 60 запитів за хвилину | IP-адресою |
| Читання подій з ключем | 600 запитів за хвилину | ключем |
POST /reservations | 60 запитів за хвилину | ключем |
POST /checkout | 20 запитів за 10 хвилин | ключем |
GET /orders/{paymentId} | 600 запитів за хвилину | ключем |
Ключ піднімає ліміт удесятеро
Навіть там, де ключ не обовʼязковий, надсилайте його: 60 запитів на хвилину з одного IP вичерпуються швидко, якщо ваш сервер обслуговує кількох користувачів одночасно.Ліміт статусу замовлення навмисно високий — це той самий рівень, що й для читання подій. Опитувати статус раз на 5–10 секунд можна спокійно.
Кожна відповідь несе поточний стан ліміту:
HTTP/1.1 200 OK
X-RateLimit-Limit: 600
X-RateLimit-Remaining: 597| Заголовок | Значення |
|---|---|
X-RateLimit-Limit | Скільки запитів дозволено у вікні |
X-RateLimit-Remaining | Скільки лишилось до кінця вікна |
Retry-After | Через скільки секунд повторювати. Приходить лише разом із 429 |
Запит повертає 429 з кодом rate_limited:
HTTP/1.1 429 Too Many Requests
X-RateLimit-Limit: 600
X-RateLimit-Remaining: 0
Retry-After: 42
{
"error": {
"code": "rate_limited",
"message": "Too many requests"
}
}Чекайте стільки, скільки каже Retry-After, і повторюйте. Ретраї без паузи лише подовжують вікно блокування.
async function callApi(url, options, attempt = 0) {
const response = await fetch(url, options);
if (response.status === 429 && attempt < 3) {
const retryAfter = Number(response.headers.get('Retry-After') ?? 1);
await new Promise((r) => setTimeout(r, retryAfter * 1000));
return callApi(url, options, attempt + 1);
}
return response;
}/availability: одна відповідь містить усі типи квитків події, тож не треба опитувати кожен окремо.SUCCESS, FAILED, EXPIRED, REFUNDED.Якщо вашій інтеграції потрібні вищі ліміти — напишіть нам, розберемось окремо.