Ліміти запитів
Обмеження частоти запитів на рівні гаманця для операцій з ордерами та API-запитів.
Огляд
Обмеження частоти запитів застосовується для кожного гаманця за алгоритмом фіксованого вікна. Ліміти застосовуються до:
- Розміщення ордерів (
POST /order) - Скасування ордерів (
DELETE /order) - API-запитів (загальне використання ендпоінтів)
Ліміти скидаються кожні 60 секунд.
Ліміти за замовчуванням
| Рівень | Ордерів/хв | Скасувань/хв | API-запитів/хв | Макс. відкритих ордерів | Макс. позицій |
|---|---|---|---|---|---|
| За замовчуванням | 60 | 120 | 600 | 100 | 50 |
| Рівень 1 | 30 | 60 | 300 | 50 | 20 |
| Рівень 2 | 120 | 300 | 1,200 | 500 | 200 |
| Маркетмейкер | 600 | 1,200 | 6,000 | 2,000 | Без обмежень |
Нові гаманці отримують ліміти за замовчуванням. Зверніться до служби підтримки для підвищення рівня.
Відповідь при перевищенні ліміту
Коли ліміт запитів перевищено, API повертає 429 Too Many Requests:
{
"error": "rate_limit_exceeded",
"message": "Rate limit exceeded for OrderPlacement: 60 per minute, retry after 45 seconds",
"retry_after_secs": 45,
"limit": 60
}
Заголовки відповіді
Усі ендпоінти з обмеженням частоти запитів включають ці заголовки як в успішних відповідях, так і у відповідях з помилками:
| Заголовок | Опис | Приклад |
|---|---|---|
X-RateLimit-Limit | Максимальна кількість дозволених запитів за вікно | 60 |
X-RateLimit-Remaining | Кількість запитів, що залишилися в поточному вікні | 42 |
X-RateLimit-Reset | Unix-час скидання вікна | 1737312060 |
Retry-After | Секунди до повторної спроби (лише при 429) | 45 |
Приклади заголовків відповіді
Успішний запит:
HTTP/1.1 200 OK
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 42
X-RateLimit-Reset: 1737312060
Запит з перевищенням ліміту:
HTTP/1.1 429 Too Many Requests
Retry-After: 45
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1737312060
Категорії лімітів запитів
Ліміти запитів відстежуються окремо для кожного типу дій:
Розміщення ордерів
Застосовується до:
POST /order(ордери на опціони)POST /bulk_order(масові ордери, кожен ордер у пакеті враховується)PUT /bulk_order(масові заміни, кожна заміна враховується)
Скасування ордерів
Застосовується до:
DELETE /orderDELETE /bulk_order(масові скасування, кожне скасування враховується)DELETE /bulk_order_cloid(масові скасування за клієнтським ID ордера, кожне скасування враховується)
API-запити
Застосовується до загального використання API на всіх автентифікованих ендпоінтах.
Ліміти позицій та ордерів
На додаток до лімітів запитів, гаманці мають обмеження на максимальну кількість відкритих ордерів та позицій:
| Тип ліміту | Опис | Відхилення |
|---|---|---|
| Макс. відкритих ордерів | Максимальна кількість одночасно відкритих ордерів | Ордер відхиляється до потрапляння в рушій |
| Макс. позицій | Максимальна кількість унікальних позицій (-1 = без обмежень) | Ордер відхиляється, якщо він створить нову позицію |
Коли ліміти перевищено:
{
"error": "limit_exceeded",
"message": "Maximum open orders limit exceeded (100)"
}
Найкращі практики
Обробка лімітів запитів
- Відстежуйте заголовки: проактивно відстежуйте
X-RateLimit-Remaining - Дотримуйтесь Retry-After: зачекайте вказаний час перед повторною спробою
- Реалізуйте backoff: використовуйте експоненційну затримку при повторюваних 429
import time
def place_order_with_retry(order, max_retries=3):
for attempt in range(max_retries):
response = api.place_order(order)
if response.status_code == 429:
retry_after = int(response.headers.get('Retry-After', 60))
time.sleep(retry_after)
continue
return response
raise RateLimitError("Max retries exceeded")
Оптимізація використання запитів
- Використовуйте масові ендпоінти:
POST /bulk_orderдля кількох ордерів в одному запиті - Групуйте скасування:
DELETE /bulk_orderабоDELETE /bulk_order_cloidзамість кількох запитівDELETE /order - WebSocket для оновлень: підписуйтесь на оновлення ордерів замість опитування
GET /orders
Моніторинг
Відстежуйте ці метрики на стороні клієнта:
- Частота запитів за типом дій
- Тенденції
X-RateLimit-Remaining - Частота відповідей 429
- Середня тривалість
Retry-After
Довідник помилок
| HTTP-статус | Код помилки | Опис |
|---|---|---|
| 429 | rate_limit_exceeded | Ліміт запитів перевищено, повторіть спробу після вказаного часу |
Дивіться Помилки для повного довідника помилок.