跳到主要内容

WebSocket

Endpoint

wss://big.one/ws/v2

认证

在订阅 private 数据之前,您需要认证客户,例如 OrderAccount 等。

协议

当前,我们支持两种协议:protojson。默认使用 json

proto 模式下,我们使用 Google 的 Protocol Buffers(Protobuf)来编码和解码数据流。使用 Protobuf 的优点是能够将数据流压缩到最小尺寸,减少传输延迟。此外,开发者可以通过提供 proto 文件自动生成相应的数据结构,从而大大降低了使用门槛。

如何设置 WebSocket 协议

设置请求头 Sec-WebSocket-Protocolprotojson

我们推荐使用 proto 格式,proto 文件可以在 这里 找到。

请求ID

requestId 用作 API 请求的标识符。API 响应将包括 requestId,使您能够将每个响应与相应的请求匹配。因此,对于每个请求,使用唯一的 requestId 是确保准确跟踪的必要条件。

响应

成功订阅后,API 会首先返回 snapshot,然后如果订阅生成新数据,则会推送 更新数据

错误响应
{
"requestId":"1",
"error":{
"code":45000,
"message":"GRPC error: xxx"
}
}

保活

开发者可以使用 Ping/Pong 帧保持连接活跃。我们还提供了一个 HeartBeat 消息。

错误代码
代码类型
45000grpc 错误
45001登录状态错误
其他默认错误

支持的方法

AuthenticateCustomer

{"requestId":"1", "authenticateCustomerRequest":{"token":"Bearer {YOUR_TOKEN}"}}

参数

名称描述示例必填
market交易对的 IDBTC-USDT

交易对深度

订阅

{"requestId": "1", "subscribeMarketDepthRequest":{"market":"BTC-USDT"}}

当用户发送订阅深度数据请求时,服务器会首先推送该交易对的深度snapshot。然后,在深度数据发生变化时,服务器会推送更新。

响应

snapshot

{
"requestId": "1",
"depthSnapshot": {
"depth": {
"market":"BTC-USDT",
"asks":[
{
"price":"197.96",
"amount":"5.0",
"orderCount":1
}
],
"bids":[
{
"price":"159.99",
"amount":"1.07552",
"orderCount":1
}
]
},
"changeId":"2",
"prevId":"1"
}
}

更新数据

{
"requestId": "1",
"depthUpdate": {
"depth": {
"market":"BTC-USDT",
"asks":[
{
"price":"197.96",
"amount":"5.0",
"orderCount":"1"
}
],
"bids":[
{
"price":"159.99",
"amount":"1.07552",
"orderCount":"1"
}
]
},
"changeId":"2",
"prevId":"1"
}
}

深度

名称类型描述示例
market字符串交易对符号BTC-USDT
asksPriceLevel卖方(卖单)
bidsPriceLevel买方(买单)
changeId字符串当前交易对的变化 ID
prevId字符串上一个交易对的变化 ID

PriceLevel

名称类型描述示例
price字符串卖单价格197.96
amount字符串卖单数量5.0
orderCount整数卖单的订单数量1

取消订阅

{"requestId": "1", "unsubscribeMarketDepthRequest":{"market":"BTC-USDT"}}

交易对Candle

订阅

{"requestId": "1", "subscribeMarketCandlesRequest":{"market":"BTC-USDT", "period": "MIN5", "limit": "20"}}

参数

名称描述示例必需
market交易对IDBTC-USDT
period时间周期MIN5
limit期望的candle snapshot数量20

时间周期

符号描述
MIN11分钟
MIN55分钟
MIN1515分钟
MIN3030分钟
HOUR11小时
HOUR33小时
HOUR44小时
HOUR66小时
HOUR1212小时
DAY11天
WEEK11周

snapshot

{
"requestId":"1",
"candlesSnapshot":{
"candles":[
{
"market":"BTC-USDT",
"time":"2018-09-12T13:40:00Z",
"open":"9.0",
"high":"9.0",
"low":"9.0",
"close":"9.0",
"period":"MIN5"
}
]
}
}

更新数据

{
"requestId":"1",
"candleUpdate":{
"candle":{
"market":"BTC-USDT",
"time":"2018-09-12T05:30:00Z",
"open":"9",
"high":"9",
"low":"9",
"close":"9",
"period":"MIN5"
}
}
}

candle

名称描述示例
market交易对IDBTC-USDT
timecandle的UTC时间2018-09-12T13:40:00Z
open该周期内的开盘价9.0
high该周期内的最高价9.0
low该周期内的最低价9.0
close该周期内的收盘价9.0
period时间周期MIN5

取消订阅

{"requestId": "1", "unsubscribeMarketCandlesRequest":{"market":"BTC-USDT", "period": "MIN5"}}

交易对行情

订阅

{"requestId": "1", "subscribeMarketsTickerRequest":{"markets":["BTC-USDT", "ONE-BTC"]}}

参数

名称描述示例必需
requestId请求ID1
markets交易对ID列表["BTC-USDT"]

snapshot

{
"requestId":"1",
"tickersSnapshot":{
"tickers":[
{
"market":"ETH-USDT",
"ask":{
"price":"197.96",
"amount":"5.0",
"orderCount":"1"
},
"bid":{
"price":"159.99",
"amount":"1.07552",
"orderCount":"1"
},
"open":"197.46",
"high":"0.0",
"low":"0.0",
"close":"213.96",
"volume":"0.0"
}
]
}
}

更新数据

{
"requestId":"1",
"tickerUpdate":{
"ticker":{
"market":"ETH-USDT",
"ask":{
"price":"197.96",
"amount":"5.0",
"orderCount":"1"
},
"bid":{
"price":"159.99",
"amount":"1.07552",
"orderCount":"1"
},
"open":"197.46",
"high":"220.0",
"low":"190.0",
"close":"213.96",
"volume":"1000.0"
}
}
}

行情

名称描述示例
market交易对IDBTC-USDT
ask第一个卖单价格层
bid第一个买单价格层
open24小时内的开盘价10.24
high24小时内的最高价10.24
low24小时内的最低价10.24
close24小时内的收盘价10.24
volume24小时内的成交量10.24

取消订阅

{"requestId": "1", "unsubscribeMarketsTickerRequest":{"markets":["BTC-USDT", "ONE-BTC"]}}

交易对交易

订阅

{"requestId": "1", "subscribeMarketTradesRequest":{"market":"BTC-USDT", "limit": "20"}}

参数

名称描述示例必需
requestId请求ID1
market交易对IDBTC-USDT
limit期望的交易snapshot数量20

snapshot

注:takerOrdermakerOrder 字段总是为 null。

{
"requestId":"1",
"tradesSnapshot":{
"trades":[
{
"id":"28622",
"price":"9.0",
"amount":"10000.0",
"market":"BTC-USDT",
"createdAt":"2018-09-12T09:52:37Z",
"makerOrder":null,
"takerOrder":null,
"takerSide":"BID"
}
]
}
}

更新数据

注:takerOrdermakerOrder 字段总是为 null。

{
"requestId":"1",
"tradeUpdate":{
"trade":{
"id":"28622",
"price":"9.0",
"amount":"10000.0",
"market":"BTC-USDT",
"createdAt":"2018-09-12T09:52:37Z",
"makerOrder":null,
"takerOrder":{
"id":"",
"price":"",
"stopPrice":"",
"amount":"",
"market":"",
"side":"BID",
"state":"PENDING",
"filledAmount":"",
"filledFees":"",
"avgDealPrice":"",
"createdAt":null,
"updatedAt":null,
"businessUnit":"SPOT",
"type":"LIMIT",
"operator":"LTE",
"ioc":false
},
"takerSide":"BID"
}
}
}

交易

名称描述示例
id交易ID1
price交易价格9.0
amount交易金额1000.0
market交易对IDBTC-USDT
createdAt交易创建时间2018-09-12T09:52:37Z
makerOrder做市方订单
takerOrder承接方订单

订单

名称描述示例
id订单ID1
price订单价格10.24
stopPrice止损价格10.24
amount订单金额1000.0
market交易对IDBTC-USDT
side订单方向ASK
state订单状态FILLED
filledAmount已成交金额1000.0
filledFees已成交费用90.0
avgDealPrice订单平均成交价格9.0
createdAt订单创建时间2018-09-12T09:52:36Z
updatedAt订单更新时间2018-09-12T09:52:36Z

取消订阅

{"requestId": "1", "unsubscribeMarketTradesRequest":{"market":"BTC-USDT"}}

用户账户

订阅

{"requestId": "1", "subscribeViewerAccountsRequest":{}}

snapshot

{
"requestId":"1",
"accountsSnapshot":{
"accounts":[
{
"asset":"BTC",
"balance":"10.0",
"lockedBalance":"0.0"
}
]
}
}

更新数据

{
"requestId":"1",
"accountUpdate":{
"account":{
"asset":"BTC",
"balance":"0.0",
"lockedBalance":"0.0"
}
}
}

账户

名称描述示例
asset货币BTC
balance账户余额10.0
lockedBalance账户锁仓余额10.0

取消订阅

{"requestId": "1", "unsubscribeViewerAccountsRequest":{}}

用户订单

订阅某交易对的订单

{"requestId": "1", "subscribeViewerOrdersRequest":{"market":"BTC-USDT"}}

参数

名称描述示例必需
market交易对IDBTC-USDT

snapshot

{
"requestId":"1",
"ordersSnapshot":{
"orders":[
{
"id":"42844576",
"price":"9.0",
"stopPrice":"0.0",
"amount":"10000.0",
"market":"BTC-USDT",
"side":"ASK",
"state":"FILLED",
"filledAmount":"10000.0",
"filledFees":"90.0",
"avgDealPrice":"9.0",
"createdAt":"2018-09-12T09:52:36Z",
"updatedAt":"2018-09-12T09:52:37Z"
}
]
}
}

更新数据

{
"requestId":"1",
"orderUpdate":{
"order":{
"id":"42844576",
"price":"9.0",
"stopPrice":"0.0",
"amount":"10000.0",
"market":"BTC-USDT",
"side":"ASK",
"state":"FILLED",
"filledAmount":"10000.0",
"filledFees":"90.0",
"avgDealPrice":"9.0",
"createdAt":"2018-09-12T09:52:36Z",
"updatedAt":"2018-09-12T09:52:37Z"
}
}
}

订单

名称描述示例
id订单ID1
price订单价格10.24
stopPrice止损价格10.24
amount订单金额1000.0
market交易对IDBTC-USDT
side订单方向ASK
state订单状态FILLED
filledAmount已成交金额1000.0
filledFees已成交费用90.0
avgDealPrice订单平均成交价格9.0
createdAt订单创建时间2018-09-12T09:52:36Z
updatedAt订单更新时间2018-09-12T09:52:36Z

取消订阅

{"requestId": "1", "unsubscribeViewerOrdersRequest":{"market":"BTC-USDT"}}

订阅所有交易对的订单

不会返回snapshot数据,只会推送订单更新响应

{"requestId": "1", "subscribeAllViewerOrdersRequest":{}}

取消订阅

{"requestId": "1", "unsubscribeAllViewerOrdersRequest":{}}