WebSocket-ленты
Intotes предоставляет три WebSocket-эндпоинта для потоковой передачи данных в реальном времени. Используйте их для поддержания актуальности интерфейса без опроса.
Все пути WebSocket указаны относительно базового URL /api/v1/.
Протокол подключения
Все три ленты используют стандартное WebSocket-рукопожатие для обновления:
- Откройте WebSocket-соединение по URL эндпоинта.
- Сервер выполняет HTTP 101 upgrade.
- При успешном подключении сервер отправляет начальное сообщение с недавней историей (чтобы ваш интерфейс мог отрисоваться немедленно без отдельного REST-вызова).
- Последующие сообщения поступают по мере возникновения событий.
Keep-Alive
- Сервер отправляет ping-фреймы каждые 50 секунд.
- Клиент должен ответить pong-фреймом (большинство WebSocket-библиотек обрабатывают это автоматически).
- Сервер применяет дедлайн чтения 60 секунд. Если pong не получен в этом окне, соединение закрывается.
Лимиты
| Лимит | Значение |
|---|---|
| Максимум подключений на хаб | 10,000 |
| Максимальный размер сообщения (лента сделок) | 512 байт |
| Максимальный размер сообщения (лента графиков / активов) | 128 байт |
1. Лента сделок в реальном времени
Поток всех сделок, исполненных на платформе в реальном времени.
GET /api/v1/ws/trades
Формат сообщения
{
"type": "trade",
"trade": {
"amount": 50000,
"name": "alice",
"token": "Yes",
"event": "Will ETH hit $5k?",
"market": "mkt_001",
"avatar": "https://cdn.intots.com/avatars/alice.jpg"
}
}
| Поле | Тип | Описание |
|---|---|---|
type | string | Всегда "trade". |
trade.amount | integer | Размер сделки в копейках. |
trade.name | string | Отображаемое имя трейдера. |
trade.token | string | Торгуемый токен исхода (например, "Yes", "No"). |
trade.event | string | Название события, к которому относится сделка. |
trade.market | string | ID рынка. |
trade.avatar | string | URL аватара трейдера. |
Сценарии использования
- Глобальный тикер активности ("Алиса только что купила 500 акций Yes на ...").
- Панели мониторинга объемов.
- Индикаторы социального подтверждения на страницах событий.
Пример
const ws = new WebSocket('wss://api.intots.com/api/v1/ws/trades');
ws.onopen = () => {
console.log('Connected to trades feed');
};
ws.onmessage = (event) => {
const msg = JSON.parse(event.data);
if (msg.type === 'trade') {
const { name, amount, token, event: eventName } = msg.trade;
console.log(`${name} traded ${amount / 100} on "${token}" in "${eventName}"`);
}
};
2. Лента графиков событий
Обновления цен в реальном времени для конкретного события. Подписка по ID события.
GET /api/v1/ws/events/{event_id}/chart
Параметры пути
| Параметр | Тип | Описание |
|---|---|---|
event_id | string | Событие для подписки. |
Формат сообщения
{
"type": "chart_update",
"timestamp": "2026-03-15T14:30:05Z",
"ratios": {
"Yes": 6450,
"No": 3550
}
}
| Поле | Тип | Описание |
|---|---|---|
type | string | Всегда "chart_update". |
timestamp | string | Временная метка обновления ISO 8601. |
ratios | object | Текущая цена для каждого исхода по шкале 0--10000. |
Сценарии использования
- Графики цен с обновлением в реальном времени на страницах деталей событий.
- Отображение вероятностей в реальном времени.
- Комбинирование с историческими данными графиков для плавного отображения.
Пример
const eventId = 'evt_abc123';
const ws = new WebSocket(`wss://api.intots.com/api/v1/ws/events/${eventId}/chart`);
ws.onmessage = (event) => {
const msg = JSON.parse(event.data);
if (msg.type === 'chart_update') {
updateChart(msg.timestamp, msg.ratios);
}
};
3. Лента цен активов
Обновления цен криптоактивов в реальном времени. Подписка по торговому символу.
GET /api/v1/ws/assets/{symbol}/price
Параметры пути
| Параметр | Тип | Описание |
|---|---|---|
symbol | string | Символ торговой пары актива (например, BTCUSDT, ETHUSDT, SOLUSDT). |
Формат сообщения
{
"type": "price_update",
"symbol": "BTCUSDT",
"price": 8734521
}
| Поле | Тип | Описание |
|---|---|---|
type | string | Всегда "price_update". |
symbol | string | Символ актива для этого обновления. |
price | integer | Текущая цена актива в копейках. |
Сценарии использования
- Тикеры криптовалютных цен в реальном времени на страницах событий для криптовалютных ци клических событий.
- Ценовые оповещения и мониторинг пороговых значений.
- Отображение текущих справочных цен рядом с прогнозными рынками.
Пример
const ws = new WebSocket('wss://api.intots.com/api/v1/ws/assets/BTCUSDT/price');
ws.onmessage = (event) => {
const msg = JSON.parse(event.data);
if (msg.type === 'price_update') {
console.log(`${msg.symbol}: $${(msg.price / 100).toFixed(2)}`);
}
};