跳至主要内容

Websocket下單指南

路徑

  • 主網:
    wss://stream.bybit.com/v5/trade
信息

帳戶創建自"www.bybit-tr.com"的用戶, 請使用wss://stream.bybit-tr.com/v5/trade

  • 測試網:
    wss://stream-testnet.bybit.com/v5/trade

支持範圍

鑒權請求

請求參數

參數是否必需類型說明
reqIdfalsestring可選參數, 可用於匹配響應。長度不能超過36個字串。
  • 若不傳, 該字段不會從響應種返回
optruestringOp類型 auth
argstruestring["api密鑰", 過期時間, "簽名"]. 請參閱這裡來生成簽名

響應參數

參數類型說明
reqIdstring
  • 若請求有傳, 則響應存在該字段
  • 若請求不傳, 則響應沒有該字段
retCodeinteger
  • 0: 鑒權成功
  • 20001: 重複請求
  • 10004: 無效簽名
  • 10001: 參數錯誤
retMsgstring
  • OK
  • 報錯信息
opstringOp類型
connIdstring連接的唯一id

請求示例

{
"op": "auth",
"args": [
"XXXXXX",
1711010121452,
"ec71040eff72b163a36153d770b69d6637bcb29348fbfbb16c269a76595ececf"
]
}

響應示例

{
"retCode": 0,
"retMsg": "OK",
"op": "auth",
"connId": "cnt5leec0hvan15eukcg-2t"
}

下單/改單/撤單

請求參數

參數是否必需類型說明
reqIdfalsestring請求reqId, 可作為請求的唯一標識, 若有傳, 則響應會返回該字段
  • 當傳, 需保證唯一, 否則將會拿到錯誤 "20006"
headertrueobject請求頭
> X-BAPI-TIMESTAMPtruestring當前時間戳
> X-BAPI-RECV-WINDOWfalsestring默認5000(毫秒). 請求的時間需要滿足該公式: Bybit服務器時間 - X-BAPI-RECV-WINDOW <= X-BAPI-TIMESTAMP < Bybit服務器時間 + 1000
> RefererfalsestringAPI broker用戶返佣標識
optruestringOp類型
  • order.create: 創建訂單
  • order.amend: 修改訂單
  • order.cancel: 撤銷訂單
argstruearray<object>參數數組, 僅支持一個訂單

響應參數

參數類型說明
reqIdstring
  • 若請求有傳, 則響應存在該字段
  • 若請求不傳, 則響應沒有該字段
retCodeinteger
  • 0: 成功
  • 10403: 超過了IP頻率. 單個IP最多允許3000次/秒的請求頻率
  • 10404: 1. op類型未找到; 2. category不支持/未找到
  • 10429: 觸發系統級別的頻率保護
  • 20006: reqId重複
  • 10016: 1.內部錯誤; 2. 服務重啟
  • 10019: ws下單服務正在重啟, 拒絕新的請求, 正在處理中的請求不受影響. 您可以重新/新建連接, 會分配到正常的服務上
retMsgstring
  • OK
  • ""
  • 報錯信息
opstringOp類型
dataobject業務數據, 和rest api響應的result字段業務數據一致
retExtInfoobject總是為空的對象
headerobject響應頭信息
> TraceIdstringTrace ID, 用於追蹤請求鏈路 (內部使用)
> Timenowstring當前時間戳
> X-Bapi-Limitstring該類型請求的帳戶總頻率
> X-Bapi-Limit-Statusstring該類型請求的帳戶剩餘可用頻率
> X-Bapi-Limit-Reset-Timestampstring如果您已超過該接口當前窗口頻率限製,該字段表示下個可用時間窗口的時間戳(毫秒)即什麽時候可以恢復訪問;如果您未超過該接口當前窗口頻率限製,該字段表示返回的是當前服務器時間(毫秒).
connIdstring連接的唯一id
信息

ack僅表示請求被成功接受. 請使用websocket-order推送來確認訂單狀態

請求示例

{
"reqId": "test-005",
"header": {
"X-BAPI-TIMESTAMP": "1711001595207",
"X-BAPI-RECV-WINDOW": "8000",
"Referer": "bot-001" // for api broker
},
"op": "order.create",
"args": [
{
"symbol": "ETHUSDT",
"side": "Buy",
"orderType": "Limit",
"qty": "0.2",
"price": "2800",
"category": "linear",
"timeInForce": "PostOnly"
}
]
}

響應示例

{
"reqId": "test-005",
"retCode": 0,
"retMsg": "OK",
"op": "order.create",
"data": {
"orderId": "a4c1718e-fe53-4659-a118-1f6ecce04ad9",
"orderLinkId": ""
},
"retExtInfo": {},
"header": {
"X-Bapi-Limit": "10",
"X-Bapi-Limit-Status": "9",
"X-Bapi-Limit-Reset-Timestamp": "1711001595208",
"Traceid": "38b7977b430f9bd228f4b19724794dfd",
"Timenow": "1711001595209"
},
"connId": "cnt5leec0hvan15eukcg-2v"
}

批量下單/改單/撤單

信息
  • 每個請求包含的訂單數最大是: 20筆(期权), 20筆(反向合約), 20筆(正向合約), 10筆(現貨), 返回的數據列表中分成兩個list,訂單創建的列表和創建結果的信息返回,兩個list的訂單的序列是完全保持一致的。
  • 期權批量接口頻率規則: 期權是按照實際發送的請求次數來統計頻率的, 因此如果帳戶頻率是10次/秒, 每次請求發送20筆訂單, 則可以每秒發送200筆訂單;
  • 期貨和現貨的批量接口頻率規則: 請從這裡查閱其API限頻說明
  • ack僅表示請求被成功接受. 請使用websocket-order推送來確認訂單狀態
  • websocket和http批量下單共享帳戶頻率

請求參數

參數是否必需類型說明
reqIdfalsestring請求reqId, 可作為請求的唯一標識, 若有傳, 則響應會返回該字段
  • 當傳, 需保證唯一, 否則將會拿到錯誤 "20006"
headertrueobject請求頭
> X-BAPI-TIMESTAMPtruestring當前時間戳
> X-BAPI-RECV-WINDOWfalsestring默認5000(毫秒). 請求的時間需要滿足該公式: Bybit服務器時間 - X-BAPI-RECV-WINDOW <= X-BAPI-TIMESTAMP < Bybit服務器時間 + 1000
> RefererfalsestringAPI broker用戶返佣標識
optruestringOp類型
  • order.create-batch: 批量創建訂單
  • order.amend-batch: 批量修改訂單
  • order.cancel-batch: 批量撤銷訂單
argstruearray<object>參數數組

響應參數

參數類型說明
reqIdstring
  • 若請求有傳, 則響應存在該字段
  • 若請求不傳, 則響應沒有該字段
retCodeinteger
  • 0: 成功
  • 10403: 超過了IP頻率. 單個IP最多允許3000次/秒的請求頻率
  • 10404: 1. op類型未找到; 2. category不支持/未找到
  • 10429: 觸發系統級別的頻率保護
  • 20006: reqId重複
  • 10016: 1.內部錯誤; 2. 服務重啟
  • 10019: ws下單服務正在重啟, 拒絕新的請求, 正在處理中的請求不受影響. 您可以重新/新建連接, 會分配到正常的服務上
retMsgstring
  • OK
  • ""
  • 報錯信息
opstringOp類型
dataobject業務數據, 和rest api響應的result字段業務數據一致
retExtInfoobject
> listarray<object>
>> codenumber成功/錯誤碼
>> msgstring成功/錯誤消息
headerobject響應頭信息
> TraceIdstringTrace ID, 用於追蹤請求鏈路 (內部使用)
> Timenowstring當前時間戳
> X-Bapi-Limitstring該類型請求的帳戶總頻率
> X-Bapi-Limit-Statusstring該類型請求的帳戶剩餘可用頻率
> X-Bapi-Limit-Reset-Timestampstring如果您已超過該接口當前窗口頻率限製,該字段表示下個可用時間窗口的時間戳(毫秒)即什麽時候可以恢復訪問;如果您未超過該接口當前窗口頻率限製,該字段表示返回的是當前服務器時間(毫秒).
connIdstring連接的唯一id

請求示例


{
"op": "order.create-batch",
"header": {
"X-BAPI-TIMESTAMP": "1740453381256",
"X-BAPI-RECV-WINDOW": "1000"
},
"args": [
{
"category": "linear",
"request": [
{
"symbol": "SOLUSDT",
"qty": "10",
"price": "500",
"orderType": "Limit",
"timeInForce": "GTC",
"orderLinkId": "-batch-000",
"side": "Buy"
},
{
"symbol": "SOLUSDT",
"qty": "20",
"price": "1000",
"orderType": "Limit",
"timeInForce": "GTC",
"orderLinkId": "batch-001",
"side": "Buy"
},
{
"symbol": "SOLUSDT",
"qty": "30",
"price": "1500",
"orderType": "Limit",
"timeInForce": "GTC",
"orderLinkId": "batch-002",
"side": "Buy"
}
]
}
]
}

響應示例

{
"retCode": 0,
"retMsg": "OK",
"op": "order.create-batch",
"data": {
"list": [
{
"category": "linear",
"symbol": "SOLUSDT",
"orderId": "",
"orderLinkId": "batch-000",
"createAt": ""
},
{
"category": "linear",
"symbol": "SOLUSDT",
"orderId": "",
"orderLinkId": "batch-001",
"createAt": ""
},
{
"category": "linear",
"symbol": "SOLUSDT",
"orderId": "",
"orderLinkId": "batch-002",
"createAt": ""
}
]
},
"retExtInfo": {
"list": [
{
"code": 10001,
"msg": "position idx not match position mode"
},
{
"code": 10001,
"msg": "position idx not match position mode"
},
{
"code": 10001,
"msg": "position idx not match position mode"
}
]
},
"header": {
"Timenow": "1740453408556",
"X-Bapi-Limit": "150",
"X-Bapi-Limit-Status": "147",
"X-Bapi-Limit-Reset-Timestamp": "1740453408555",
"Traceid": "0e32b551b3e17aae77651aadf6a5be80"
},
"connId": "cupviqn88smf24t2kpb0-536o"
}

Ping

請求參數

參數是否必需類型說明
optruestringOp類型. ping

響應參數

參數類型說明
retCodeinteger響應碼
retMsgstring響應信息
opstringOp類型 pong
dataarray數組會有有一個元素, 當前時間戳 (字符串類型)
connIdstring連接的唯一id

請求示例

{
"op": "ping"
}

響應示例

{
"retCode": 0,
"retMsg": "OK",
"op": "pong",
"data": [
"1711002002529"
],
"connId": "cnt5leec0hvan15eukcg-2v"
}