跳到主要内容

订阅 / 取消订阅报价数据流

WSProductionwss://ws.btse.com/ws/otcTestnetwss://testws.btse.io/ws/otc

订阅连续 OTC 价格报价。价格会随市场变动推送。 需要 WebSocket 身份验证。

要接受报价,请使用数据流中的 buyQuoteId 或 sellQuoteId 调用接受报价 REST 接口。

REST 与 WebSocket — 何时使用哪个:

  • REST POST /public-api/otc/v1/quotes — 请求一次性报价,TTL 为 5 秒。 这是标准的 RFQ(询价)工作流。
  • WebSocket quote 数据流(本 channel) — 为高频消费者订阅持续报价流, 与 REST RFQ 独立。

订阅 payload 与现货/期货不同。 OTC 使用 op: quote 加顶层 symbol (以及可选的 side、quantity);不使用现货/期货的 {op: "subscribe", args: [...]} 形式。 若误用现货/期货格式,服务器会以 {event: "subscribe", channel: []} 静默确认,但不会推送任何数据。

// ✅ OTC 订阅
{ "op": "quote", "symbol": "BTC-USD", "quantity": { "quantity": 1, "currency": "BTC" } }

// ❌ 现货/期货格式 — OTC 不接受
{ "op": "subscribe", "args": ["quote"] }

操作类型:

  • quote:订阅报价数据流
  • unsubscribe-quote:取消订阅指定报价数据流
  • unsubscribe-quote-all:取消订阅所有报价数据流

请求参数​

名称类型是否必填描述
opString是订阅操作
symbolString是市场交易对(来自 getMarket)
sideString否buy · sell(区分大小写)。省略时返回双向报价
clOrderIdString否自定义客户端订单 ID
quantityObject是

响应内容​

名称类型是否必填描述
topicString否固定为 quote
buyQuoteIdString否买方报价 ID。未订阅买方或未认证时为 null
sellQuoteIdString否卖方报价 ID。未订阅卖方或未认证时为 null
clOrderIdString否客户端订单 ID
buyQuantityDouble否买入数量。未订阅买方时为 null
buyUnitPriceDouble否买入单价。未订阅买方时为 null
buyTotalAmountDouble否买入总金额。未订阅买方时为 null
sellQuantityDouble否卖出数量。未订阅卖方时为 null
sellUnitPriceDouble否卖出单价。未订阅卖方时为 null
sellTotalAmountDouble否卖出总金额。未订阅卖方时为 null
statusString否响应状态(正常更新时为 null)
reasonString否错误原因(如有)
example

Request

{
"op": "quote",
"symbol": "BTC-USD",
"side": "buy",
"clOrderId": "ClientOrder1",
"quantity": {
"quantity": 1,
"currency": "BTC"
}
}

Request

{
"op": "unsubscribe-quote",
"symbol": "BTC-USD",
"clOrderId": "ClientOrder1",
"quantity": {
"quantity": 1,
"currency": "BTC"
}
}

Request

{
"op": "unsubscribe-quote-all"
}

Response

{
"topic": "quote",
"buyQuoteId": "015f05ba-1d55-46d7-94d9-214229414ae7",
"sellQuoteId": "0683a41a-a2ad-467b-99b3-241f3ab0cec4",
"clOrderId": null,
"buyQuantity": 10,
"buyUnitPrice": 47865.580838,
"buyTotalAmount": 478655.80838,
"sellQuantity": 10,
"sellUnitPrice": 47649.40351972,
"sellTotalAmount": 476494.0352,
"status": null,
"reason": null
}