Websocket Request for public market data.
This method provides ticker, order book, recent trades.
1. Subscribe Request
param | type | description |
---|---|---|
type | string | must be 'subscribe' |
channel | string | Must be 'marketdata' |
market_id | string | Market ID that you want subscribe. |
filter | string[] | Required parameters are one or more of the values below. ticker, |
interval | number | Data sending interval(ms). It can be one of this values: 100, 500 |
// request
{
"channel": "marketdata",
"filter": [<FILTER>],
"interval": <INTERVAL>,
"market_id": <MARKET_ID>,
"type": "subscribe"
}
2. Responses (When subscribe, and on going)
param | type | description |
---|---|---|
channel | string | It will return 'marketdata' |
lag | number | API server's internal lag (ms). |
market_id | string | same as request |
status | string | "ok" - working normal |
ticker | Object | Returns if you put 'ticker' in your "filter" parameter. TICKER Object:
|
recent_trades | RECENT_TRADES[] | Returns if you put 'recent_trades' in your "filter" parameter. RECENT_TRADES:
|
order_books | ORDER_BOOK[] | Returns if you put 'order_books' or 'order_books_l1' or 'order_books_l2' or 'order_books_l3' or 'order_books_l4' in your "filter" parameter. It sends differ of order_book. order_books_l1 |
reset | boolean | If data is returning all data (not diff), set it true. |
//response
{
"channel": "marketdata",
"market_id": <MARKET_ID>,
"status":"ok",
"lag":0,
"<channels>": <data>
"reset":true
}
example)
// request
{
"channel": "marketdata",
"filter": ["ticker", "recent_trades"],
"interval": 100,
"market_id": "XRP-BTC",
"type": "subscribe"
}
//response
{
"channel": "marketdata",
"market_id": "XRP-BTC",
"status": "ok",
"lag": 0,
"ticker": {
"time": "2018-08-17T03:00:43.000Z",
"last": "0.00004221",
"low": "0.00003953",
"high": "0.00004233",
"change": "0.00000195",
"base_volume": "119304953.57728445",
"quote_volume": "4914.391934022046355"
},
"recent_trades": [
{
"price": "0.00004221",
"quantity": "555",
"time": "2018-08-17T02:56:17.249Z",
"side": "buy",
"tick_direction": "zeroup"
},
...
...
...
{
"side": "buy",
"price": "0.00003218",
"quantity": "167912.55816365"
}
],
"reset": true
}
Marketdata sends the full value on the first request, and only changes thereafter.
You can 'overwrite' the quantity of the Orderbook as received.
If the Orderbook quantity is 0, there is no quantity for that amount, or the quantity is completely exhausted between intervals.