главная

Комиссии и лимиты

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

Лимиты и ошибки API Seeryx: формат ошибки в JSON, коды вроде below_minimum и rate_limited, HTTP-статусы, лимиты запросов и повторы.

Формат ошибок

Каждая ошибка — это JSON с понятной человеку фразой в error; там, где программа должна на неё реагировать, — ещё стабильный code, а иногда и другие поля.

Ошибки
{ "error": "Invalid limit" }
{ "error": "Minimum order is 5 shares", "code": "below_minimum", "minimum": 5 }
{ "error": "Post only: this order would trade at once at 16¢; lower the price or turn Post only off", "code": "would_take" }
{ "error": "Too many open orders ...", "code": "open_orders_limit", "limit": { "account": 200, "round": 100 } }
{ "error": "Too many orders", "code": "rate_limited", "retryAfter": 4 }

Коды ошибок

codeСтатусЧто означаетЧто делать
below_minimum400Меньше долей, чем минимум; minimum указывает, сколько нужноУвеличьте размер
would_take400Ордер «Только мейкер» исполнился бы сразуОтодвиньте цену от противоположной стороны
open_orders_limit400Слишком много ордеров в стакане; в limit — ограничения на аккаунт и на рынокСначала отмените часть ордеров
trading_paused400Ключ сессии, подписавший ордер, был закрытОткройте новую сессию и подпишите заново
rate_limited429Слишком много запросов на ордера; retryAfter в секундахПодождите, затем отправьте тот же запрос
trading_halted503Торговля остановлена для всех; причину может сообщить GET /api/noticeПодождите; отмена ордеров по-прежнему работает

Ответы на ордера могут содержать и reason, которое не является ошибкой: no_liquidity, beyond_limit и share_limit (см. Торговля).

HTTP-статусы

СтатусКогда
400Неверные входные данные, недостаточно средств или свободных долей, раунд не торгуется или закрывается, ордер меньше минимума, ордер «Только мейкер», который исполнился бы, несовпадающий подписанный ордер, отсутствующий или повторно использованный Idempotency-Key
401Отсутствующий, неверный или просроченный токен входа (seeryx.com отвечает на это 403)
403Отсутствующий, неверный или просроченный токен входа на seeryx.com («Authentication required», «Invalid or expired token») или заблокированный аккаунт
404Неизвестный раунд, рынок или профиль
408Запрос выполнялся дольше 30 секунд
409Сейчас невозможно: счёта ещё нет, сделка ещё проходит расчёт, вывод не готов
413Слишком большое тело: для ордера, разделения или объединения — 16 КБ, для пакета — в 15 раз больше, для остального — 100 КБ
429Лимит запросов: подождите столько секунд, сколько указано в Retry-After
502Solana или мост не ответили
503Торговля остановлена (код trading_halted), биржевые часы недоступны или сервер перегружен (Retry-After)

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

ЧтоЛимитСчитается на
Ордера (каждый ордер пакета считается отдельно), отмена, разделение, объединение250 за 10 секундАккаунт
Ордера в стакане200 всего, 100 на одном рынкеАккаунт
Ваш аккаунт, ордера, позиции, баланс, /auth/me12 000 в минуту на всё вместеАккаунт
Ваша активность, settled, feed, прибыль/убыток300 в минуту на всё вместеАккаунт
Рынки и раунды (/markets..., /rounds/:slug)1 200 в минутуIP-адрес
Стакан, сделки, объём, сводка рынков, активность раунда3 000 в минутуIP-адрес
Статистика, рейтинг, профили, держатели300 в минутуIP-адрес
/auth/nonce, /auth/verify30 в минуту на каждыйIP-адрес
/deposit/recover2 в минутуАккаунт
WebSocketСм. WebSocketСоединение, IP-адрес

При превышении лимита возвращается 429 с Retry-After в секундах. Перегруженный сервер отвечает 503 с Retry-After. Ответы статистики, рейтинга и держателей могут отставать на несколько секунд. GET https://seeryx.com/health возвращает { "status": "ok" } для проверок доступности.

Безопасные повторы

  • 429 и 503: подождите столько, сколько указано в Retry-After, затем отправьте тот же запрос снова.
  • Сетевая ошибка или 5xx при записи: отправьте то же тело с тем же Idempotency-Key; если первая попытка прошла, вы получите её ответ, и ничего не будет размещено дважды.
  • 400: не повторяйте запрос без изменений; исправьте его и отправьте с новым ключом (и новым подписанным id).
  • 401 или 403: войдите заново.