오더북
실시간 오더북(매수/매도 호가) 스트림입니다. 구독한 {symbol}@{exchange}
페어에 대해 현물 또는 선물 시장에서 업데이트를 받을 수 있으며, 각 업데이트는
전체 오더북 스냅샷이므로 클라이언트에서 델타를 병합할 필요가 없습니다.
연결
- websocat
- wscat
# spot market
websocat wss://api.datamaxiplus.com/ws/v1/orderbook/spot -H 'X-DTMX-APIKEY: $YOUR_API_KEY'
# futures market
websocat wss://api.datamaxiplus.com/ws/v1/orderbook/futures -H 'X-DTMX-APIKEY: $YOUR_API_KEY'
# spot market
wscat -c wss://api.datamaxiplus.com/ws/v1/orderbook/spot -H 'X-DTMX-APIKEY: $YOUR_API_KEY'
# futures market
wscat -c wss://api.datamaxiplus.com/ws/v1/orderbook/futures -H 'X-DTMX-APIKEY: $YOUR_API_KEY'
구독
method는 요청 유형을 지정합니다 (SUBSCRIBE또는PING).params리스트는 사용자가 구독하려는 거래소의 심볼 목록입니다. 파라미터 형식은{base}-{quote}@{exchange}@{currency}@{conversionBase}입니다 (예:"BTC-KRW@upbit@USD@USDT"). 티커와 동일한 형식으로, 뒤쪽 두 세그먼트는 생략 가능하며 기본값은USD/USDT입니다.- 지원 거래소 목록은 /api/v1/ticker/exchanges, 심볼 목록은 /api/v1/ticker/symbols 엔드포인트에서 조회할 수 있습니다.
- 지원 통화:
USD,KRW - 지원 변환 기준:
USDT,USD
id는 구독 요청을 고유하게 식별하며 응답 ack에도 반환됩니다.
- schema
- example
{
"method": "SUBSCRIBE",
"params": [
string
],
"id": int32
}
{
"method": "SUBSCRIBE",
"params": [
"BTC-KRW@upbit@USD@USDT",
"ETH-USDT@bybit@USD@USDT"
],
"id": 1
}
유효하지 않은 페어는 구독 목록에서 조용히 제거됩니다. ack 응답에는
검증을 통과한 페어만 반환됩니다. 브로드캐스트되는 매수/매도 가격은
페어의 원래 호가 통화(quote)에서 요청한 currency로 변환됩니다.
응답
각 업데이트는 하나의 페어에 대한 전체 오더북 스냅샷입니다. protojson 인코딩 — 키는 protobuf 스키마의 짧은 JSON 이름을 사용합니다.
| 필드 (JSON key) | 설명 |
|---|---|
id | TokenId — 내부 통합 토큰 id |
m | Market — spot 또는 futures |
e | Exchange — 거래소 식별자 (예: bybit, okx) |
d | Timestamp — 거래소가 보고한 스냅샷 시각 (ms, UTC) |
s | Symbol — 거래소 네이티브 API 심볼 (구독 키와 일치) |
b | Base — 기준 자산 (예: BTC) |
q | Quote — 호가 통화 (변환 후에는 요청한 currency로 바뀝니다) |
as | Asks — 매도 호가 배열 |
bs | Bids — 매수 호가 배열 |
pa | ProcessedAt — 서버 처리 시각 (ms, UTC) |
ms | MarginSupported — 해당 심볼의 마진 거래 지원 여부 |
각 호가 레벨은 두 필드로 구성됩니다:
| 필드 | 설명 |
|---|---|
p | 가격 |
v | 물량 |
예시
{
"id": "bitcoin",
"m": "spot",
"e": "bybit",
"d": 1776825400123,
"s": "BTC-USDT",
"b": "BTC",
"q": "USD",
"as": [
{ "p": "76145.2", "v": "0.0438" },
{ "p": "76145.3", "v": "0.1250" }
],
"bs": [
{ "p": "76145.1", "v": "0.0219" },
{ "p": "76145.0", "v": "0.5000" }
],
"pa": 1776825400180,
"ms": false
}
Ping / Keepalive
연결 유지를 위해 주기적으로 {"method":"PING"}을 보내면 서버가 세션을 갱신합니다.
요금
각 구독 요청은 params 안의 페어 수와 무관하게 1 credit이 과금됩니다.
연결 자체는 무료입니다.