Skip to content

Websocket 行情推送接口

实时订阅/取消数据流

  • Base Url: wss://stream.toobit.com
  • 以下数据可以通过websocket发送以实现订阅或取消订阅数据流。示例如下。
  • 直接访问时URL格式为 wss://#HOST/quote/ws/v1
名称
topicrealtimes(实时行情), trade(最新成交), kline_$interval(k线), depth(深度)
eventsub(订阅), cancel(取消), cancel_all(取消全部)
interval1m, 5m, 15m, 30m, 1h, 2h, 6h, 12h, 1d, 1w, 1M

请求订阅数据样例:

json
{
  "symbol": "$symbol0, $symbol1", //交易所ID+币对
  "topic": "$topic",
  "event": "sub",
  "params": {
    "limit": "$limit",  // kline返回上限是2000,默认为1
    "binary": "false"  // 返回的数据是否是压缩过的,默认为false
  }
}

心跳

每隔一段时间,客户端需要发送ping帧,服务端会回复pong帧,否则服务端会在5分钟内主动断开链接。

请求

json
{
  "ping": 1535975085052
}

响应:

json
{
  "pong": 1535975085052
}

最新合约价格

逐笔交易推送每一笔成交的信息。成交,或者说交易的定义是仅有一个吃单者与一个挂单者相互交易。 在成功连接到服务器后,服务器首先会推送一条最近的60条成交。在这条推送之后,每条推送都是实时的成交。 变量"v"可以理解成一个交易ID。这个变量是全局递增的并且独特的。 例如:假设过去5秒有3笔交易发生,分别是ETH-SWAP-USDTBTC-SWAP-USDTDOGE-SWAP-USDT。它们的"v"会为连续的值(112,113,114)。

Payload

json
{
    "symbol": "BTC-SWAP-USDT",
    "symbolName": "BTC-SWAP-USDTUSDT",
    "topic": "trade",
    "params": {
        "realtimeInterval": "24h",
        "binary": "false"
    },
    "data": [
        {
            "v": "1291465821801168896", // 参见解释
            "t": 1668690723096, //时间戳
            "p": "399", // 价格
            "q": "1", // 数量
            "m": false // true = 买, false = 卖
        },
        {
            "v": "1291465842546196481",
            "t": 1668690725569,
            "p": "399",
            "q": "1",
            "m": false
        }
    ],
    "f": true, // 是不是第一个返回
    "sendTime": 1668753154192
}

请求订阅数据样例:

json
{
  "symbol": "$symbol0, $symbol1",//币对
  "topic": "trade",
  "event": "sub",
  "params": {
    "binary": false // Whether data returned is in binary format
  }
}

最新标记价格

合约标记价格。

Payload

json
{
    "symbol": "BTC-SWAP-USDT",
    "symbolName": "BTC-SWAP-USDTUSDT",
    "topic": "markPrice",
    "params": {
        "realtimeInterval": "24h"
    },
    "data": [
        {
            "symbol": "BTC-SWAP-USDT",//symbol
            "markPrice": "16792.28",//当前标记价格
            "time": 1668754084000
        }
    ],
    "f": false,//是否为第一个返回
    "sendTime": 1668754084738
}

请求订阅数据样例:

json
{
  "symbol": "$symbol0, $symbol1", // 币对
  "topic": "markPrice",
  "event": "sub"
}

K线

K线stream逐秒推送所请求的K线种类(最新一根K线)的更新

Payload

json
{
    "symbol": "BTC-SWAP-USDT",
    "symbolName": "BTC-SWAP-USDTUSDT",
    "topic": "kline",
    "params": {
        "realtimeInterval": "24h",
        "klineType": "1m",
        "binary": "false"
    },
    "data": [
        {
            "t": 1668753840000,//k线开始时间
            "s": "BTC-SWAP-USDT",// symbol
            "sn": "BTC-SWAP-USDTUSDT",// symbol name
            "c": "445",//收盘价
            "h": "445",//最高价
            "l": "445",//最低价
            "o": "445",//开盘价
            "v": "0"//交易量
        }
    ],
    "f": true,// 是否为第一个返回
    "sendTime": 1668753854576
}

请求订阅数据样例

json
{
  "symbol": "$symbol0, $symbol1",//币对
  "topic": "kline_"+$间隔,
  "event": "sub",
  "params": {
    "binary": false
  }
}

K线/蜡烛图间隔:

订阅Kline需要提供间隔参数,最短为分钟线,最长为月线。支持以下间隔: m -> 分钟; h -> 小时; d -> 天; w -> 周; M -> 月

  • 1m
  • 5m
  • 15m
  • 30m
  • 1h
  • 2h
  • 4h
  • 6h
  • 12h
  • 1d
  • 1w
  • 1M

按Symbol的完整Ticker

按Symbol逐秒刷新的24小时完整ticker信息

Payload

json
{
    "symbol": "BTC-SWAP-USDT",
    "symbolName": "BTC-SWAP-USDTUSDT",
    "topic": "realtimes",
    "params": {
        "realtimeInterval": "24h",
        "binary": "false"
    },
    "data": [
        {
            "t": 1668753480049, //时间戳
            "s": "BTC-SWAP-USDT", //symbol
            "sn": "BTC-SWAP-USDTUSDT", // symbol name
            "c": "445", //收盘价
            "h": "445", //最高价
            "l": "310", //最低价
            "o": "311", //开盘价
            "v": "3747.7597191", //交易量
            "qv": "1426443.9553995", //交易额
            "m": "0.4309", // margin
            "e": 301 // 交易id
        }
    ],
    "f": true, // 是否为第一个返回
    "sendTime": 1668753481048
}

请求订阅数据样例

json
{
  "symbol": "$symbol0, $symbol1",//币对
  "topic": "realtimes",
  "event": "sub",
  "params": {
    "binary": false
  }
}

全市场的完整Ticker

所有symbol 24小时完整ticker信息.

Payload

json
{
  "topic": "wholeRealTime", //订阅主题
  "params": {
    "realtimeInterval": "24h",
    "binary": "false"
  },
  "data": {
    "e": "24hrTicker", //事件类型
    "E": 1768249147338, //事件时间
    "s": "ARC_SOL_ONCHAINUSDT", // 交易对
    "o": "0.0474", // 24小时内第一比成交的价格
    "h": "0.0522", // 24小时内最高成交价
    "l": "0.0467", // 24小时内最低成交价
    "c": "0.0497", // 最新成交价格
    "v": "2299", // 24小时内成交量
    "qv": "0", // 24小时内成交额
    "P": "0.0485", // 涨跌幅(比例)
    "p": "0.0023", //24小时价格变化
    "ltv": "1" //最新成交价格上的成交量
  },
  "f": false,//是否是第一次推送
  "sendTime": 1768249147338 //消息推送时间
}

请求订阅数据样例

json
{
  "topic":"wholeRealTime","event": "sub"
}

指数价格

指数价格订阅

Payload

json
{
    "symbol": "BTCUSDT",  //币对
    "symbolName": "BTCUSDT", //币对名称
    "topic": "index",
    "data": [
        {
            "symbol": "BTCUSDT",  //币对
            "index": "42992.432", //指数价格
            "edp": "43000.95379", //10分钟内指数平均值
            "formula": "OKEX.BTCUSDT*1.0,KUCOIN.BTCUSDT*1.0,BINANCE.BTCUSDT*1.0,BITGET.BTCUSDT*1.0,COINBASE.BTCUSDT*1.0,BYBIT.BTCUSDT*1.0",// 加权平均值公式
            "time": 1703692663000  //时间戳
        }
    ],
    "f": false,
    "sendTime": 1703692664103
}

请求订阅数据样例:

json
{
  "id":"index", //用户自定义标识,
  "topic":"index",  //订阅主题
  "event":"sub",
  "symbol":"BTCUSDT",  //币对
  "params": {
    "reduceSerial":true, //减少序列化,推送速度更快
    "binary":true,  //是否压缩
    "limit":1500  //条数限制
  }
}

有限档深度信息

Payload

json
{
  "symbol": "BTC-SWAP-USDT",
  "topic": "depth",
  "data": [{
    "s": "BTC-SWAP-USDT", //Symbol
    "t": 1565600357643, //时间戳
    "v": "112801745_18", //版本号_18(18表示18位精度,版本号不保证唯一,但时间相近的数据版本号会不同)
    "b": [ //Bids
      ["11371.49", "0.0014"], //[价格, 数量]
      ["11371.12", "0.2"],
      ["11369.97", "0.3523"],
      ["11369.96", "0.5"],
      ["11369.95", "0.0934"],
      ["11369.94", "1.6809"],
      ["11369.6", "0.0047"],
      ["11369.17", "0.3"],
      ["11369.16", "0.2"],
      ["11369.04", "1.3203"]
    ],
    "a":[//Asks
      ["11375.41", "0.0053"], //[价格, 数量]
      ["11375.42", "0.0043"],
      ["11375.48", "0.0052"],
      ["11375.58", "0.0541"],
      ["11375.7", "0.0386"],
      ["11375.71", "2"],
      ["11377", "2.0691"],
      ["11377.01", "0.0167"],
      ["11377.12", "1.5"],
      ["11377.61", "0.3"]
    ]
  }],
  "f": true//是否为第一个返回
}

请求订阅数据样例

json
{
  "symbol": "$symbol0, $symbol1",//币对
  "topic": "depth",
  "event": "sub",
  "params": {
    "binary": false
  }
}

增量深度信息

Payload

json
{
  "symbol": "BTC-SWAP-USDT",
  "topic": "diffDepth",
  "data": [{
    "e": 0,
    "t": 1565687625534,
    "v": "115277986_18",
    "b": [
      ["11316.78", "0.078"],
      ["11313.16", "0.0052"],
      ["11312.12", "0"],
      ["11309.75", "0.0067"],
      ["11309.58", "0"],
      ["11306.14", "0.0073"]
    ],
    "a": [
      ["11318.96", "0.0041"],
      ["11318.99", "0.0017"],
      ["11319.12", "0.0017"],
      ["11319.22", "0.4516"],
      ["11319.23", "0.0934"],
      ["11319.24", "3.0665"]
    ]
  }],
  "f": false //是否为第一个返回值
}

请求订阅数据样例

json
{
  "symbol": "$symbol0, $symbol1",//币对
  "topic": "diffDepth",
  "event": "sub",
  "params": {
    "binary": false
  }
}

按Symbol的最优挂单信息

Payload

json
{
  "topic": "bookTicker", //订阅主题
  "params": {
    "symbol": "BTC-SWAP-USDT",
    "realtimeInterval": "24h"
  },
  "data": {
    "e": "bookTicker", //事件类型
    "E": 1768249193064, //事件推送时间
    "s": "BTC-SWAP-USDT", // 交易对
    "b": "91791.9", // 买单最优挂单价格
    "bq": "41710", // 买单最优挂单数量
    "a": "92704.1", // 卖单最优挂单价格
    "aq": "57121", // 卖单最优挂单数量
    "t": 1768249193006 // 撮合时间
  },
  "f": false, //是否是首次返回
  "sendTime": 1768249193064 //消息推送时间
}

请求订阅数据样例

json
{
  "symbol": "BTC-SWAP-USDT",
  "topic":"bookTicker",
  "event": "sub"
}

全市场最优挂单信息

描述:所有交易对交易对最优挂单信息

Payload

json
{
  "topic": "wholeBookTicker",//订阅主题
  "params": {
    "realtimeInterval": "24h"
  },
  "data": {
    "e": "wholeBookTicker",// 事件类型
    "E": 1768249218139,// 事件推送时间
    "s": "ETH-SWAP-USDT",// 交易对
    "b": "4325",// 买单最优挂单价格
    "bq": "405",// 买单最优挂单数量
    "a": "4330",// 卖单最优挂单价格
    "aq": "310",// 卖单最优挂单数量
    "t": 1768249218057 // 撮合时间
  },
  "f": false, //是否是首次返回
  "sendTime": 1768249218139 //消息推送时间
}

请求订阅数据样例

json
{
  "topic":"wholeBookTicker","event": "sub"
}

每秒推送订单簿的变化部分(如果有)。 在增量深度信息中,数量不一定等于对应价格的数量。如果数量=0,这说明在上一条推送中的这个价格已经没有了。如果数量>0,这时的数量为更新后的这个价格所对应的数量 假设我们收到的返回数据中有这样一条: ["0.00181860", "155.92000000"]// 价格,数量 如果下一条返回数据中有: ["0.00181860", "12.3"] 这说明这个价格对应的数量有变更,已经更新变更的数量 如果下一条返回数据中有: ["0.00181860", "0"] 这说明这个价格对应的数量已经消失,将会在客户端中删除。

基于 MIT 许可发布