Комиссии и лимиты
Лимиты запросов и ошибки
Лимиты и ошибки 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_minimum | 400 | Меньше долей, чем минимум; minimum указывает, сколько нужно | Увеличьте размер |
would_take | 400 | Ордер «Только мейкер» исполнился бы сразу | Отодвиньте цену от противоположной стороны |
open_orders_limit | 400 | Слишком много ордеров в стакане; в limit — ограничения на аккаунт и на рынок | Сначала отмените часть ордеров |
trading_paused | 400 | Ключ сессии, подписавший ордер, был закрыт | Откройте новую сессию и подпишите заново |
rate_limited | 429 | Слишком много запросов на ордера; retryAfter в секундах | Подождите, затем отправьте тот же запрос |
trading_halted | 503 | Торговля остановлена для всех; причину может сообщить 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 |
| 502 | Solana или мост не ответили |
| 503 | Торговля остановлена (код trading_halted), биржевые часы недоступны или сервер перегружен (Retry-After) |
Лимиты запросов
| Что | Лимит | Считается на |
|---|---|---|
| Ордера (каждый ордер пакета считается отдельно), отмена, разделение, объединение | 250 за 10 секунд | Аккаунт |
| Ордера в стакане | 200 всего, 100 на одном рынке | Аккаунт |
| Ваш аккаунт, ордера, позиции, баланс, /auth/me | 12 000 в минуту на всё вместе | Аккаунт |
| Ваша активность, settled, feed, прибыль/убыток | 300 в минуту на всё вместе | Аккаунт |
| Рынки и раунды (/markets..., /rounds/:slug) | 1 200 в минуту | IP-адрес |
| Стакан, сделки, объём, сводка рынков, активность раунда | 3 000 в минуту | IP-адрес |
| Статистика, рейтинг, профили, держатели | 300 в минуту | IP-адрес |
| /auth/nonce, /auth/verify | 30 в минуту на каждый | IP-адрес |
| /deposit/recover | 2 в минуту | Аккаунт |
| 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: войдите заново.