Market Channel
Публичный канал для real-time данных о рынках. Не требует авторизации.
Подписка
{
"type": "subscribe",
"channel": "market",
"assets_ids": ["TOKEN_ID_1", "TOKEN_ID_2"]
}
Типы событий
book
Полный снимок ордербука при каждом изменении. Приходит при добавлении, удалении или изменении любого ордера. Используйте для поддержания актуального состояния книги заявок в реальном времени. Заменяет polling /book.
{
"event_type": "book",
"asset_id": "71321...",
"market": "0xabc...",
"timestamp": "1705329600",
"hash": "0x...",
"bids": [{"price": "0.64", "size": "500"}],
"asks": [{"price": "0.66", "size": "300"}]
}
price_change
Уведомление об изменении лучшей цены (bid или ask). Приходит реже, чем book — только когда меняется топ книги. Используйте для обновления отображаемой цены без обработки всего ордербука.
{
"event_type": "price_change",
"asset_id": "71321...",
"price": "0.65",
"timestamp": "1705329600"
}
last_trade_price
Уведомление о совершённой сделке. Содержит цену, направление и объём. Используйте для ленты сделок, расчёта объёмов в реальном времени или триггеров на крупные сделки.
{
"event_type": "last_trade_price",
"asset_id": "71321...",
"price": "0.65",
"side": "BUY",
"size": "100"
}
Пример
const ws = new WebSocket("wss://ws-subscriptions-clob.polymarket.com/ws/");
ws.onopen = () => {
ws.send(JSON.stringify({
type: "subscribe",
channel: "market",
assets_ids: ["71321045679252212594626385532706912750332728571942532289631379312455583992563"]
}));
};
ws.onmessage = (event) => {
const data = JSON.parse(event.data);
if (data.event_type === "book") {
console.log("Orderbook update:", data.bids, data.asks);
}
if (data.event_type === "price_change") {
console.log("New price:", data.price);
}
};
Отписка
{
"type": "unsubscribe",
"channel": "market",
"assets_ids": ["TOKEN_ID"]
}