概覽
Zoomex V3 Open API 能讓用戶基於不同的產品構建API模型。
- 帶單交易: 您必須首先成為交易員才能使用該套接口。
鑒權/認證
信息
v1接口的鉴权与v3不一样,在调用时请注意使用对应的加签方式,对应的方式请参考各API的调用demo。
REST接口根URL:
公共參數
需要簽名的接口必須包含以下參數:
api_key
- api密鑰timestamp
- UTC毫秒時間戳sign
- 請求參數簽名
另外我們提供可選的 recv_window
參數(單位是毫秒,默認值為5000
),來指定請求在多長時間內有效,同時用來防止重放攻擊。
警告
註意,timestamp參數必須符合如下規則:
server_time - recv_window <= timestamp < server_time + 1000
其中server_time是Zoomex服務器時間,您可以通過 Zoomex服務器時間接口獲取.
構建請求
提示
為了幫助診斷高級網絡問題,您可以考慮將cdn-request-id
添加到您的請求頭中。對於每個請求,它的值應該是唯一的。
基本步驟:
時間戳 + API key + [recv_window]+ [queryString(無需排序) | jsonBodyString]
使用HMAC_SHA256或者RSA_SHA256算法對第1步中拼接的string簽名,並轉換為16進製字符串(HMAC_SHA256) / Base64編碼 (RSA_SHA256),得出sign參數
添加生成的簽名到HTTP頭當中 注意: GET和POST請求的加密明文是不相同,請參考以下示例
示例
import requests
import time
import hashlib
import hmac
import uuid
api_key='XXXXXXXX'
secret_key='XXXXXXXX'
httpClient=requests.Session()
recv_window=str(5000)
url="https://openapi-testnet.zoomex.com"
def HTTP_Request(endPoint,method,payload,Info):
global time_stamp
time_stamp=str(int(time.time() * 10 ** 3))
signature=genSignature(payload)
headers = {
'X-BAPI-API-KEY': api_key,
'X-BAPI-SIGN': signature,
'X-BAPI-SIGN-TYPE': '2',
'X-BAPI-TIMESTAMP': time_stamp,
'X-BAPI-RECV-WINDOW': recv_window,
'Content-Type': 'application/json'
}
if(method=="POST"):
response = httpClient.request(method, url+endPoint, headers=headers, data=payload)
else:
response = httpClient.request(method, url+endPoint+"?"+payload, headers=headers)
print(response.text)
print(Info + " Elapsed Time : " + str(response.elapsed))
def genSignature(payload):
param_str= time_stamp+ api_key + recv_window + payload
hash = hmac.new(bytes(secret_key, "utf-8"), param_str.encode("utf-8"),hashlib.sha256)
signature = hash.hexdigest()
return signature
#POST Create Order
endpoint="/cloud/trade/v3/order/create"
method="POST"
orderLinkId=uuid.uuid4().hex
params='{"category":"linear","symbol": "BTCUSDT","side": "Buy","positionIdx": 0,"orderType": "Market","qty": "0.001","price": "","timeInForce": "GTC","orderLinkId": "' + orderLinkId + '"}'
HTTP_Request(endpoint,method,params,"Create")
#GET history Orders
endpoint="/cloud/trade/v3/order/history"
method="GET"
params='category=linear&symbol=BTCUSDT'
HTTP_Request(endpoint,method,params,"history")
Response通用數據結構
參數 | 類型 | 說明 |
---|---|---|
retCode | number | 成功/錯誤碼 |
retMsg | string | 成功/錯誤消息. 成功消息可以是OK ,success ,SUCCESS |
result | Object | 業務數據體 |
retExtInfo | Object | 額外信息. 大部分場景下都是{} |
time | number | 當前時間戳 (毫秒) |
{
"retCode": 0,
"retMsg": "success",
"result": {},
"retExtInfo": {},
"time": 1690180896378
}
提示
- 由于历史原因,查询实时委托单接口的响应体中result对象中的list对象里返回的属性是大写字母开头,对接时请注意!