概覽
鑒權/認證
REST接口根URL:
- 測試網:
https://api-testnet.bybit.com - 主網(請根據您的網絡情況選擇以下任意一個地址使用):
https://api.bybit.com
https://api.bytick.com
選擇用於鑒權的API密鑰類型
系統生產的API密鑰: Bybit 系統生成的 API 密鑰基於 HMAC 對稱加密算法運作。您將獲得一對公鑰和私鑰。請將這對密鑰視為密碼一樣妥善保管。
跟隨HMAC簽名示例來完成加密過程。
自動生成的API密鑰: 自動生成的 API 密鑰基於 RSA 非對稱加密算法運作。您必須通過軟件自行創建公鑰和私鑰,然後僅向 Bybit 提供公鑰。Bybit 不會替您保管私鑰。
公共參數
需要簽名的接口必須包含以下http頭參數:
X-BAPI-API-KEY
- api密鑰X-BAPI-TIMESTAMP
- UTC毫秒時間戳X-BAPI-SIGN
- 請求參數簽名X-Referer
orReferer
- 經紀商用戶專用的頭參數
另外我們提供可選的X-BAPI-RECV-WINDOW
參數(單位是毫秒,默認值為5000
),來指定請求在多長時間內有效,同時用來防止重放攻擊。
信息
註意,timestamp參數必須符合如下規則:
server_time - recv_window <= timestamp < server_time + 1000
構建請求
信息
基本步驟:
- 時間戳 + api-key + [recv_window]+ [queryString(無需排序) | jsonBodyString]
- 使用HMAC_SHA256或者RSA_SHA256算法對第1步中拼接的string簽名,並轉換為16進製字符串(HMAC_SHA256) / Base64編碼 (RSA_SHA256),得出sign參數。
- 添加生成的簽名到HTTP頭當中 注意: GET和POST請求的加密明文是不相同,請參考以下示例.
對明文加密的示例
- GET
- POST
# 拼接規則:
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"
# 拼接規則:
timestamp+api_key+recv_window+raw_request_body
# 明文
1658385579423XXXXXXXXXX5000{
"category": "option"
}
# 解析
timestamp = 1658385579423
api_key = XXXXXXXXXX
recv_window = 5000
raw_request_body = {"category": "option"}
http請求示例
- http-get
- http-post
GET /unified/v3/private/order/list?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'
POST /unified/v3/private/order/cancel-all HTTP/1.1
Host: api-testnet.bybit.com
-H 'X-Referer: XXXXXXXXXX' \ [經紀商用戶專用的頭參數]
-H 'X-BAPI-SIGN: XXXXXXXXXX' \
-H 'X-BAPI-API-KEY: XXXXXXXXXX' \
-H 'X-BAPI-TIMESTAMP: 1658385589135' \
-H 'X-BAPI-RECV-WINDOW: 5000' \
-H 'Content-Type: application/json' \
-d '{
"category": "option"
}'
外層通用數據結構
衍生品
參數 | 類型 | 說明 |
---|---|---|
retCode | number | 成功/錯誤碼 |
retMsg | string | 成功/錯誤消息. 成功消息可以是OK ,success ,SUCCESS |
result | Object | 業務數據體 |
retExtInfo | Object | 額外信息. 大部分場景下都是{} |
time | number | 當前時間戳 (毫秒) |
{
"retCode": 0,
"retMsg": "OK",
"result": {
},
"retExtInfo": {},
"time": 1671017382656
}
{
"retCode": 0,
"retMsg": "success",
"result": {
},
"retExtInfo": {},
"time": 1671017473888
}
{
"retCode": 0,
"retMsg": "Success",
"result": {
},
"retExtInfo": {},
"time": 1671017572923
}
現貨
參數 | 類型 | 說明 |
---|---|---|
retCode | number | 成功/錯誤碼 |
retMsg | string | 成功/錯誤消息. 成功消息可以是OK ,success ,SUCCESS |
result | Object | 業務數據體 |
retExtInfo | Object | 額外信息. 大部分場景下都是{} |
time | number | 當前時間戳 (毫秒) |
{
"retCode": 0,
"retMsg": "OK",
"result": {
},
"retExtInfo": {},
"time": 1671017382656
}
{
"retCode": 0,
"retMsg": "success",
"result": {
},
"retExtInfo": {},
"time": 1671017473888
}
{
"retCode": 0,
"retMsg": "Success",
"result": {
},
"retExtInfo": {},
"time": 1671017572923
}
帳戶資產
參數 | 類型 | 說明 |
---|---|---|
retCode | number | 成功/錯誤碼 |
retMsg | string | 成功/錯誤消息. 成功消息可以是OK ,success ,SUCCESS |
result | Object | 業務數據體 |
retExtInfo | Object | 額外信息. 大部分場景下都是{} |
time | number | 當前時間戳 (毫秒) |
{
"retCode": 0,
"retMsg": "OK",
"result": {
},
"retExtInfo": {},
"time": 1671017382656
}
{
"retCode": 0,
"retMsg": "success",
"result": {
},
"retExtInfo": {},
"time": 1671017473888
}
{
"retCode": 0,
"retMsg": "Success",
"result": {
},
"retExtInfo": {},
"time": 1671017572923
}