WebSocket Public Information Streams
- Path: /public
- Method: WebSocket
- Description: WebSocket format
- Parameters:
├─ op: String (Operation, subscribe unsubscribe)
└─ args: Array (List of subscribed channels)
├─ channel: String
└─ symbol: String
- Response:
├─ event: String (subscribe, unsubscribe)
├─ channel: String
├─ symbol: String
├─ code: Number
└─ msg: String
- Example:
Request:
{
"op": "",
"args": [
{
"channel": "",
"symbol": ""
}
]
}
Response:
{
"event": "",
"channel": "",
"symbol": ""
"code": 0,
"msg": ""
}
- Path: /public
- Method: WebSocket
- Description: When the user's websocket client connects to the websocket server, the server will send a 'ping' message to it regularly (currently set to 10 seconds). When the user's websocket client receives this heartbeat message, it should return a 'pong' message. When the websocket server sends 'ping' messages for three consecutive times but does not receive any 'pong' messages, the server will actively disconnect from this client. When the websocket client does not receive the 'ping' message from the server for more than 30 seconds, it is considered that it is disconnected from the server and needs to be reconnected.
- Parameters:
└─ ping
- Response:
└─ pong
- Path: /public
- Method: WebSocket
- Description: Websocket channel to subscribe simplify ticker of all contracts
- Parameters:
├─ op: String (Operation, subscribe unsubscribe)
└─ args: Array (List of subscribed channels)
└─ channel: String (tickers: All contracts tickers)
- Response:
├─ channel: String
└─ data: Array
├─ symbol: String
├─ lastPrice: String
└─ priceChangePercent: String (Percentage of 24-hour price change)
- Example:
Request:
{
"op": "subscribe",
"args": [
{
"channel": "tickers"
}
]
}
Response:
{
"channel": "tickers"
"data": [
{
"symbol": "ETH-USDC",
"lastPrice": "4.00000200",
"priceChangePercent": "-95.960"
}
]
}
- Path: /public
- Method: WebSocket
- Description: Websocket channel to subscribe ticker
- Parameters:
├─ op: String (Operation, subscribe unsubscribe)
└─ args: Array
├─ channel: String (ticker: Single Contract Ticker)
└─ symbol: String
- Response:
├─ channel: String
├─ symbol: String
└─ data: Object
├─ symbol: String
├─ priceChange: String (24-hour price change)
├─ priceChangePercent: String (Percentage of 24-hour price change)
├─ lastPrice: String (Last trades price)
├─ lastQty: String (Last trades amount)
├─ openPrice: String (Price of the first trades within 24 hours)
├─ highPrice: String (24-hour maximum price)
├─ lowPrice: String (24-hour lowest price)
├─ volume: String (24-hour trades quantity)
├─ quoteVolume: String (24-hour trades amount)
└─ count: Number (24-hour trades count)
- Example:
Request:
{
"op": "subscribe",
"args": [
{
"channel": "ticker",
"symbol": "ETH-USDC"
}
]
}
Response:
{
"channel": "ticker",
"symbol": "ETH-USDC"
"data": {
"symbol": "ETH-USDC",
"priceChange": "-94.99999800",
"priceChangePercent": "-95.960",
"lastPrice": "4.00000200",
"lastQty": "200.00000000",
"openPrice": "99.00000000",
"highPrice": "100.00000000",
"lowPrice": "0.10000000",
"volume": "8913.30000000",
"quoteVolume": "15.30000000",
"count": 76
}
}
- Path: /public
- Method: WebSocket
- Description: Channel to subscribe order book update
- Parameters:
├─ op: String (Operation, subscribe unsubscribe)
└─ args: Array (List of subscribed channels)
├─ channel: String (depth<levels>: levels mean depth levels, Optional 5/10/20; depth5 for 5 depth levels)
└─ symbol: String
- Response:
├─ channel: String
├─ symbol: String
├─ action: String (Push data action, incremental data or full snapshot. snapshot: full update: incremental)
└─ data: Object
├─ bids: Array (Buy)
│ ├─ 0: String (price, 1st bit of array)
│ └─ 1: String (quantity, 2nd bit of array)
├─ asks: Array (Sell)
│ ├─ 0: String (price, 1st bit of array)
│ └─ 1: String (quantity, 2nd bit of array)
└─ time: Number
- Example:
Request:
{
"op": "subscribe",
"args": [
{
"channel": "depth<levels>",
"symbol": "ETH-USDC"
}
]
}
Response:
{
"channel": "depth5",
"symbol": "ETH-USDC"
"action": "snapshot",
"data": {
"bids": [
{
"0": "4.00000000",
"1": "431.00000000"
}
],
"asks": [
{
"0": "4.00000200",
"1": "12.00000000"
}
],
"time": 1569514978020
}
}
- Path: /public
- Method: WebSocket
- Description: Channel to subscribe latest trades update
- Parameters:
├─ op: String (Operation, subscribe unsubscribe)
└─ args: Array
├─ channel: String (trade:trades)
└─ symbol: String
- Response:
├─ channel: String
├─ symbol: String
└─ data: Object
├─ symbol: String
├─ id: String (Trades id)
├─ price: String (Trades price)
├─ qty: String (Trades quantity)
├─ time: Number (Trades time)
├─ side: String
└─ maker: Boolean (if maker)
- Example:
Request:
{
"op": "subscribe",
"args": [
{
"channel": "trade",
"symbol": "ETH-USDC"
}
]
}
Response:
{
"channel": "trade",
"symbol": "ETH-USDC"
"data": {
"symbol": "ETH-USDC",
"id": "28457",
"price": "4.00000100",
"qty": "12.00000000",
"time": 1499865549590,
"side": "SELL",
"maker": false
}
}
- Path: /public
- Method: WebSocket
- Description: Channel to subscribe kline update
- Parameters:
├─ op: String (Operation, subscribe unsubscribe)
└─ args: Array
├─ channel: String (channel: kline1m,kline5m,kline15m,kline30m,kline1h,kline4h,kline1d)
└─ symbol: String
- Response:
├─ channel: String
├─ symbol: String
└─ data: Object
├─ 0: Number (Start time)
├─ 1: String (Open price)
├─ 2: String (highest price)
├─ 3: String (Lowest price)
├─ 4: String (Close price)
├─ 5: String (Trades quantity)
├─ 6: String (Trades amount)
└─ 7: Number (Trades count)
- Example:
Request:
{
"op": "subscribe",
"args": [
{
"channel": "kline15m",
"symbol": "ETH-USDC"
}
]
}
Response:
{
"channel": "kline15m",
"symbol": "ETH-USDC"
"data": {
"0": 1499040000000,
"1": "0.01634790",
"2": "0.80000000",
"3": "0.01575800",
"4": "0.01577100",
"5": "148976.11427815",
"6": "2434.19055334",
"7": 308
}
}
- Path: /public
- Method: WebSocket
- Description: Channel to subscribe index ticker update
- Parameters:
├─ op: String (Operation, subscribe unsubscribe)
└─ args: Array
├─ channel: String (index:Index price)
└─ symbol: String
- Response:
├─ channel: String
├─ symbol: String
└─ data: Object
├─ symbol: String
├─ indexPrice: String
└─ time: Number
- Example:
Request:
{
"op": "subscribe",
"args": [
{
"channel": "index",
"symbol": "ETH-USDC"
}
]
}
Response:
{
"channel": "index",
"symbol": "ETH-USDC"
"data": {
"symbol": "ETH-USDC",
"indexPrice": "28457",
"time": 1499865549590
}
}
- Path: /public
- Method: WebSocket
- Description: Channel to subscribe oracle price update
- Parameters:
├─ op: String (Operation, subscribe unsubscribe)
└─ args: Array
├─ channel: String (oracle: Oracle price)
└─ symbol: String
- Response:
├─ channel: String
├─ symbol: String
└─ data: Object
├─ symbol: String
├─ oraclePrice: String
└─ time: Number (Effective time)
- Example:
Request:
{
"op": "subscribe",
"args": [
{
"channel": "oracle",
"symbol": "ETH-USDC"
}
]
}
Response:
{
"channel": "oracle",
"symbol": "ETH-USDC"
"data": {
"symbol": "ETH-USDC",
"oraclePrice": "28457",
"time": 1499865549590
}
}
- Path: /public
- Method: WebSocket
- Description: Channel to subscribe funding rate
- Parameters:
├─ op: String (Operation, subscribe unsubscribe)
└─ args: Array
├─ channel: String (funding:Funding rate)
└─ symbol: String
- Response:
├─ channel: String
├─ symbol: String
└─ data: Object
├─ symbol: String
├─ fundingRate: String
└─ time: Number
- Example:
Request:
{
"op": "subscribe",
"args": [
{
"channel": "funding",
"symbol": "ETH-USDC"
}
]
}
Response:
{
"channel": "funding",
"symbol": "ETH-USDC"
"data": {
"symbol": "ETH-USDC",
"fundingRate": "0.0008",
"time": 1499865549590
}
}
Last modified 8mo ago