Ограничение частоты запросов
Все эндпоинты API ограничены по частоте запросов для предотвращения злоупотреблений. Лимиты применяются по IP-адресу клиента и пути эндпоинта через Redis.
Как это работает
- Каждый эндпоинт имеет настроенное максимальное количество запросов за 1 минуту
- Лимиты отслеживаются по комбинации IP клиента + нормализованный путь
- При превышении лимита API возвращает
429 Too Many Requests - При недоступности Redis ограничение деградирует (запросы разрешаются)
Заголовки ответа
| Заголовок | Описание |
|---|---|
X-RateLimit-Limit | Максимум запросов в минуту |
X-RateLimit-Remaining | Оставшиеся запросы в текущем окне |
X-RateLimit-Reset | Миллисекунды до сброса окна |
Retry-After | Секунды до повтора (только при 429) |
Лимиты по эндпоинтам
Аутентификация
| Эндпоинт | Метод | Лимит |
|---|---|---|
/auth/sign-up | POST | 5/мин |
/auth/sign-in | POST | 10/мин |
/auth/verify-email | POST | 5/мин |
/auth/refresh | POST | 30/мин |
/auth/me | GET | 60/мин |
Торговля (Orderbook)
| Эндпоинт | Метод | Лимит |
|---|---|---|
/market/orders | POST | 30/мин |
/market/orders/{id} | DELETE | 30/мин |
/market/positions/my | GET | 60/мин |
Торговля (LMSR / AMM)
| Эндпоинт | Метод | Лимит |
|---|---|---|
/lmsr/trade | POST | 30/мин |
/lmsr/preview | GET | 60/мин |
Прочее
| Эндпоинт | Метод | Лимит |
|---|---|---|
/events/feed, /events/{id} | GET | 120/мин |
/p2p/orders | ALL | 120/мин |
/ws/trades | GET | 480/мин |
| Все неизвестные | ANY | 30/мин |
Ответ 429
{
"error": {
"code": "RATE_LIMITED",
"message": "Too many requests. Please try again later."
}
}
Лучшие практики
- Уважайте заголовки
Retry-After - Реализуйте экспоненциальную задержку для повторов
- Кэшируйте ответы где возможно
- Используйте WebSocket-ленты вместо опроса для данных реального времени