Эта страница переведена автоматически. Оригинал на английском языке является каноническим. Читать на английском
Перейти к основному содержимому

Лимиты запросов

Ограничение частоты запросов на уровне кошелька для операций с ордерами и API-запросов.

Обзор

Лимиты применяются к каждому кошельку по алгоритму фиксированного окна. Ограничения действуют для:

  • Размещения ордеров (POST /order)
  • Отмены ордеров (DELETE /order)
  • API-запросов (общее использование эндпоинтов)

Лимиты сбрасываются каждые 60 секунд.

Лимиты по умолчанию

УровеньОрдеров/минОтмен/минAPI-запросов/минМакс. открытых ордеровМакс. позиций
По умолчанию6012060010050
Уровень 130603005020
Уровень 21203001 200500200
Маркетмейкер6001 2006 0002 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-ResetUnix-время сброса окна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 /order
  • DELETE /bulk_order (пакетные отмены, учитывается каждая отмена)
  • DELETE /bulk_order_cloid (пакетные отмены по клиентскому ID ордера, учитывается каждая отмена)

API-запросы

Применяется к общему использованию API по всем аутентифицированным эндпоинтам.

Лимиты на позиции и ордера

Помимо лимитов на частоту запросов, для кошельков действуют ограничения на максимальное число открытых ордеров и позиций:

Тип лимитаОписаниеОтклонение
Макс. открытых ордеровМаксимальное число одновременно открытых ордеровОрдер отклоняется до попадания в движок
Макс. позицийМаксимальное число уникальных позиций (-1 = без ограничений)Ордер отклоняется, если создаст новую позицию

При превышении лимитов:

{
"error": "limit_exceeded",
"message": "Maximum open orders limit exceeded (100)"
}

Рекомендации

Обработка превышений лимитов

  1. Отслеживайте заголовки: проактивно контролируйте X-RateLimit-Remaining
  2. Соблюдайте Retry-After: выждите указанное время перед повторной попыткой
  3. Реализуйте бэкофф: используйте экспоненциальный бэкофф при повторяющихся ответах 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")

Оптимизация использования запросов

  1. Используйте пакетные эндпоинты: POST /bulk_order для нескольких ордеров одним запросом
  2. Отменяйте пакетно: DELETE /bulk_order или DELETE /bulk_order_cloid вместо множества запросов DELETE /order
  3. WebSocket для обновлений: подписывайтесь на обновления ордеров вместо опроса GET /orders

Мониторинг

Отслеживайте следующие метрики на стороне клиента:

  • Частоту запросов по каждому типу действия
  • Динамику X-RateLimit-Remaining
  • Частоту ответов 429
  • Среднюю длительность Retry-After

Справочник ошибок

HTTP-статусКод ошибкиОписание
429rate_limit_exceededЛимит запросов превышен, повторите попытку по истечении указанного времени

Полный справочник ошибок см. в разделе Ошибки.