跳至主要内容

接入指南

提示

欲詳細了解 V5 API 内容,還請仔細閱讀概覽

API相關資源和頻道

鑒權/認證

信息

請先生成測試網主網API KEY。

REST接口根URL:

  • 測試網:
    https://api-testnet.bybit.com
  • 主網(請根據您的網絡情況選擇以下任意一個地址使用):
    https://api.bybit.com
    https://api.bytick.com
重要
  • 荷蘭地區用戶: 主網域名: https://api.bybit.nl
  • 香港地區用戶: 主網域名: https://api.byhkbit.com
    如您繼續使用該域名, 則Bybit無法保證該域名的穩定性和速度, 以及該域名對於以上地區的用戶可能隨時停止服務

選擇用於鑒權的API密鑰類型

系統生產的API密鑰: Bybit 系統生成的 API 密鑰基於 HMAC 對稱加密算法運作。您將獲得一對公鑰和私鑰。請將這對密鑰視為密碼一樣妥善保管。

跟隨HMAC簽名示例來完成加密過程。

自動生成的API密鑰: 自動生成的 API 密鑰基於 RSA 非對稱加密算法運作。您必須通過軟件自行創建公鑰和私鑰,然後僅向 Bybit 提供公鑰。Bybit 不會替您保管私鑰。

  1. 使用開源的RSA密鑰對創建器來創建出一組RSA密鑰對
  2. 跟隨RSA簽名示例來完成加密過程。

公共參數

需要簽名的接口必須包含以下http頭參數:

  • X-BAPI-API-KEY - API密鑰
  • X-BAPI-TIMESTAMP - UTC毫秒時間戳
  • X-BAPI-SIGN - 請求參數簽名
  • X-Referer or Referer - 經紀商用戶專用的頭參數

另外我們提供可選的X-BAPI-RECV-WINDOW參數(單位是毫秒,默認值為5000),來指定請求在多長時間內有效,同時用來防止重放攻擊。

警告

註意,timestamp參數必須符合如下規則:
server_time - recv_window <= timestamp < server_time + 1000
其中server_time是Bybit服務器時間,您可以通過Bybit服務器時間接口獲取.

構建請求

提示

為了幫助診斷高級網絡問題,您可以考慮將cdn-request-id添加到您的請求頭中。對於每個請求,它的值應該是唯一的。.

基本步驟:

  1. 時間戳 + API key + [recv_window]+ [queryString(無需排序) | jsonBodyString]
  2. 使用HMAC_SHA256或者RSA_SHA256算法對第1步中拼接的string簽名,並轉換為16進製字符串(HMAC_SHA256) / Base64編碼 (RSA_SHA256),得出sign參數。
  3. 添加生成的簽名到HTTP頭當中 注意: GETPOST請求的加密明文是不相同,請參考以下示例.

對明文加密的示例

# 拼接規則:
timestamp+api_key+recv_window+queryString

# 明文
"1658384314791XXXXXXXXXX5000category=option&symbol=BTC-29JUL22-25000-C"

# 解析
timestamp = "1658384314791"
api_key = "XXXXXXXXXX"
recv_window = "5000"
queryString = "category=option&symbol=BTC-29JUL22-25000-C"

http請求示例

GET /v5/order/realtime?category=option&symbol=BTC-29JUL22-25000-C HTTP/1.1
Host: api-testnet.bybit.com
-H 'X-BAPI-SIGN: XXXXXXXXXX' \
-H 'X-BAPI-API-KEY: XXXXXXXXXX' \
-H 'X-BAPI-TIMESTAMP: 1658384431891' \
-H 'X-BAPI-RECV-WINDOW: 5000'

外層通用數據結構

參數類型說明
retCodenumber成功/錯誤碼
retMsgstring成功/錯誤消息. 成功消息可以是OK,success,SUCCESS
resultObject業務數據體
retExtInfoObject額外信息. 大部分場景下都是{}
timenumber當前時間戳 (毫秒)
{
"retCode": 0,
"retMsg": "OK",
"result": {
},
"retExtInfo": {},
"time": 1671017382656
}