本文介紹火幣Huobi API
REST API 簡介
火幣為用戶提供了一套全新的API,可以幫用戶快速接入火幣PRO站及HADAX站的交易系統,實現程序化交易。
訪問地址 | 適用站點 | 適用功能 | 適用交易對 |
---|---|---|---|
https://api.huobi.pro/market | 火幣PRO | 行情 | 所有Pro站交易中的交易對 |
https://api.huobi.pro/v1 | 火幣PRO | 交易 | 同上 |
https://api.hadax.com/market | HADAX hadax.com | 行情 | 所有HADAX站交易中的交易對 |
https://api.hadax.com/v1 | HADAX hadax.com | 交易 | 同上 |
通過API可以實現以下功能:
- 市場行情信息查詢(K線、深度、實時成交、24小時行情)
- 賬戶資產信息查詢
- 下單、撤單操作
- 訂單信息查詢 所有請求基於 HTTPS 協議。在使用中如果遇到問題,請加技術討論 QQ 群: 火幣網API交流群(7) 887876710(加群時請注明uid和編程語言),我們將盡力幫您答疑解惑。
安全認證
目前關於apikey申請和修改,請在“賬戶 - API管理”頁面進行相關操作。其中AccessKey為API 訪問密鑰,SecretKey為用戶對請求進行簽名的密鑰(僅申請時可見)。Pro站和HADAX站apikey通用。
重要提示:這兩個密鑰與賬號安全緊密相關,無論何時都請勿向其它人透露。
合法請求結構
基於安全考慮,除行情API 外的 API 請求都必須進行簽名運算。一個合法的請求由以下幾部分組成:
-
方法請求地址 即訪問服務器地址:api.huobi.pro或者api.hadax.com后面跟上方法名,比如api.huobi.pro/v1/order/orders。
-
API 訪問密鑰(AccessKeyId) 您申請的 APIKEY 中的AccessKey。
-
簽名方法(SignatureMethod) 用戶計算簽名的基於哈希的協議,此處使用 HmacSHA256。
-
簽名版本(SignatureVersion) 簽名協議的版本,此處使用2。
-
時間戳(Timestamp) 您發出請求的時間 (UTC 時區) (UTC 時區) (UTC 時區) 。在查詢請求中包含此值有助於防止第三方截取您的請求。如:2017-05-11T16:22:06。再次強調是 (UTC 時區) 。
-
必選和可選參數 每個方法都有一組用於定義 API 調用的必需參數和可選參數。可以在每個方法的說明中查看這些參數及其含義。 請一定注意:對於GET請求,每個方法自帶的參數都需要進行簽名運算; 對於POST請求,每個方法自帶的參數不進行簽名認證,即POST請求中需要進行簽名運算的只有AccessKeyId、SignatureMethod、SignatureVersion、Timestamp四個參數,其它參數放在body中。
-
簽名 簽名計算得出的值,用於確保簽名有效和未被篡改。
例:
https://api.huobi.pro/v1/order/orders?
AccessKeyId=e2xxxxxx-99xxxxxx-84xxxxxx-7xxxx
&SignatureMethod=HmacSHA256
&SignatureVersion=2
&Timestamp=2017-05-11T15%3A19%3A30
&order-id=1234567890
&Signature=calculated value
簽名運算
API 請求在通過 Internet 發送的過程中極有可能被篡改。為了確保請求未被更改,我們會要求用戶在每個請求中帶上簽名(行情 API 除外),來校驗參數或參數值在傳輸途中是否發生了更改。
計算簽名所需的步驟:
- 規范要計算簽名的請求 因為使用 HMAC 進行簽名計算時,使用不同內容計算得到的結果會完全不同。所以在進行簽名計算前,請先對請求進行規范化處理。下面以查詢某訂單詳情請求為例進行說明
https://api.huobi.pro/v1/order/orders?
AccessKeyId=e2xxxxxx-99xxxxxx-84xxxxxx-7xxxx
&SignatureMethod=HmacSHA256
&SignatureVersion=2
&Timestamp=2017-05-11T15:19:30
&order-id=1234567890
- 請求方法(GET 或 POST),后面添加換行符\n。
GET\n
- 添加小寫的訪問地址,后面添加換行符\n。
api.huobi.pro\n
- 訪問方法的路徑,后面添加換行符\n。
/v1/order/orders\n
- 按照ASCII碼的順序對參數名進行排序(使用 UTF-8 編碼,且進行了 URI 編碼,十六進制字符必須大寫,如‘:’會被編碼為'%3A',空格被編碼為'%20')。 例如,下面是請求參數的原始順序,進行過編碼后。
AccessKeyId=e2xxxxxx-99xxxxxx-84xxxxxx-7xxxx
order-id=1234567890
SignatureMethod=HmacSHA256
SignatureVersion=2
Timestamp=2017-05-11T15%3A19%3A30
這些參數會被排序為:
AccessKeyId=e2xxxxxx-99xxxxxx-84xxxxxx-7xxxx
SignatureMethod=HmacSHA256
SignatureVersion=2
Timestamp=2017-05-11T15%3A19%3A30
order-id=1234567890
按照以上順序,將各參數使用字符’&’連接。
AccessKeyId=e2xxxxxx-99xxxxxx-84xxxxxx-7xxxx&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2017-05-11T15%3A19%3A30&order-id=1234567890
組成最終的要進行簽名計算的字符串如下:
GET\n
api.huobi.pro\n
/v1/order/orders\n
AccessKeyId=e2xxxxxx-99xxxxxx-84xxxxxx-7xxxx&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2017-05-11T15%3A19%3A30&order-id=1234567890
計算簽名,將以下兩個參數傳入加密哈希函數: 要進行簽名計算的字符串
GET\n
api.huobi.pro\n
/v1/order/orders\n
AccessKeyId=e2xxxxxx-99xxxxxx-84xxxxxx-7xxxx&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2017-05-11T15%3A19%3A30&order-id=1234567890
進行簽名的密鑰(SecretKey)
b0xxxxxx-c6xxxxxx-94xxxxxx-dxxxx
得到簽名計算結果並進行 Base64編碼
4F65x5A2bLyMWVQj3Aqp+B4w+ivaA7n5Oi2SuYtCJ9o=
將上述值作為參數Signature的取值添加到 API 請求中。 將此參數添加到請求時,必須將該值進行 URI 編碼。
最終,發送到服務器的 API 請求應該為:
https://api.huobi.pro/v1/order/orders?AccessKeyId=e2xxxxxx-99xxxxxx-84xxxxxx-7xxxx&order-id=1
請求說明
- 訪問地址
-
注意:HADAX和Pro是兩個不同的交易站,所以行情信息也不一樣,請通過 Pro symbols 和 HADAX symbols 查詢相應的交易對信息
-
Pro 站: 行情: https://api.huobi.pro/market 交易: https://api.huobi.pro/v1
-
HADAX 站: 行情: https://api.hadax.com/market 交易: https://api.hadax.com/v1
- POST請求頭信息中必須聲明 Content-Type:application/json;GET請求頭信息中必須聲明 Content-Type:application/x-www-form-urlencoded。(漢語用戶建議設置 Accept-Language:zh-cn)
- 所有請求參數請按照 API 說明進行參數封裝。
- 將封裝好參數的 API 請求通過 POST 或 GET 的方式提交到服務器。
- 火幣網處理請求,並返回相應的 JSON 格式結果。
- 請使用 https 請求。
- 限制頻率為10秒100次(單個APIKEY維度限制,建議行情API訪問也要加上簽名,否則限頻會更嚴格)。
- 查詢資產詳情方法調用順序:查詢當前用戶的所有賬戶->查詢指定賬戶的余額
- 支持所有Pro站上交易中的交易對,上新幣保持與網站同步。
API Reference
請務必在header中設置user agent為 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36'
symbol 規則: 基礎幣種+計價幣種。如BTC/USDT,symbol為btcusdt;ETH/BTC, symbol為ethbtc。以此類推
接口列表
接口數據類型 | 請求方法 | 類型 | 描述 | 需要驗簽 | 子賬號可用 |
---|---|---|---|---|---|
市場行情 | GET /market/history/kline | GET | K線 | N | Y |
市場行情 | GET /market/detail/merged | GET | 滾動24小時交易和最優報價聚合行情(單個symbol) | N | Y |
市場行情 | GET /market/tickers | GET | 全部symbol的交易行情 | N | Y |
市場行情 | GET /market/depth | GET | 市場深度行情(單個symbol) | N | Y |
市場行情 | GET /market/trade | GET | 單個symbol最新成交記錄 | N | Y |
市場行情 | GET /market/history/trade | GET | 單個symbol批量成交記錄 | N | Y |
市場行情 | GET /market/detail | GET | 滾動24小時交易聚合行情(單個symbol) | N | Y |
交易品種信息 | GET /v1/common/symbols | GET | 交易品種的計價貨幣和報價精度 | N | Y |
交易品種信息 | GET /v1/common/currencys | GET | 交易幣種列表 | N | Y |
系統信息 | GET /v1/common/timestamp | GET | 查詢當前系統時間 | N | Y |
賬戶信息 | GET /v1/account/accounts | GET | 查詢用戶的所有賬戶狀態 | Y | Y |
賬戶信息 | GET /v1/account/accounts/{account-id}/balance | GET | 查詢指定賬戶余額 | Y | Y |
交易 | POST/v1/order/orders/place | POST | 下單 | Y | Y |
交易 | POST/v1/order/orders/{order-id}/submitcancel | POST | 按order-id撤銷一個訂單 | Y | Y |
交易 | POST /v1/order/orders/batchcancel | POST | 按order_id, 批量撤銷訂單(up to 50) | Y | Y |
交易 | POST /v1/order/orders/batchCancelOpenOrders | POST | 按訂單條件批量撤銷訂單(up to 100) | Y | Y |
用戶訂單信息 | GET /v1/order/orders/{order-id} | GET | 根據order-id查詢訂單詳情 | Y | Y |
用戶訂單信息 | GET /v1/order/orders/{order-id}/matchresults | GET | 根據order-id查詢訂單的成交明細 | Y | Y |
用戶訂單信息 | GET /v1/order/orders | GET | 查詢用戶當前委托、或歷史委托訂單 (up to 100) | Y | Y |
用戶訂單信息 | GET /v1/order/matchresults | GET | 查詢用戶當前成交、歷史成交 | Y | Y |
用戶訂單信息 | GET /v1/order/openOrders | GET | 查詢用戶當前未成交訂單 (up to 500) | Y | Y |
充提幣 | POST /v1/dw/withdraw/api/create | POST | 申請提幣 | Y | N |
充提幣 | POST /v1/dw/withdraw-virtual/{withdraw-id}/cancel | POST | 撤銷提幣申請 | Y | N |
充提幣 | GET /v1/query/deposit-withdraw | GET | 查詢充提記錄 | Y | N |
杠桿交易 | POST /v1/dw/transfer-in/margin | POST | 從幣幣交易賬戶划轉至杠桿賬戶 | Y | N |
杠桿交易 | POST /v1/dw/transfer-out/margin | POST | 從杠桿賬戶划轉至幣幣交易賬戶 | Y | N |
杠桿交易 | POST /v1/margin/orders | POST | 申請借貸 | Y | N |
杠桿交易 | POST /v1/margin/orders/{order-id}/repay | POST | 歸還借貸 | Y | N |
杠桿交易 | GET /v1/margin/loan-orders | GET | 查詢借貸記錄 | Y | N |
杠桿交易 | GET /v1/margin/accounts/balance | GET | 查詢杠桿賬戶余額 | Y | N |
ETF換入換出 | GET /etf/swap/config | GET | ETF換入換出的基本信息,ETF換入換出狀態,以及ETF的成分結構。 | Y | N |
ETF換入換出 | POST/etf/swap/in | POST | 用戶可以通過該接口換入一定數量的ETF. | Y | N |
ETF換入換出 | POST/etf/swap/out | POST | 用戶可以通過該接口換出一定數量的ETF. | Y | N |
ETF換入換出 | GET/etf/list | GET | ETF換入換出操作的明細記錄。最多返回 100 條記錄。 | Y | N |
ETF換入換出 | GET/quotation/market/history/kline | GET | ETF凈值的K線 | N | N |
母子賬號 | POST /v1/subuser/transfer | POST | 母賬號執行母子賬戶之間的划轉 | Y | N |
母子賬號 | GET /v1/subuser/aggregate-balance | GET | 母賬號查詢所有子賬號各幣種資產累加余額 | Y | N |
母子賬號 | GET /v1/account/accounts/{sub-uid} | GET | 母賬號查詢某個子賬號的各幣種和各賬戶類型的余額 | Y | N |
市場行情
在調用行情接口時,請添加get參數,key為AccessKeyId ,value為網頁上申請的apikey的accesskey 。
例:
https://api.huobipro.com/market/history/kline?period=1day&size=200&symbol=btcusdt&AccessKeyId=fff-xxx-ssss-kkk
GET /market/history/kline 獲取K線數據
請求參數:
參數名稱 | 是否必須 | 類型 | 描述 | 默認值 | 取值范圍 |
---|---|---|---|---|---|
symbol | true | string | 交易對 | btcusdt, bchbtc, rcneth ... | |
period | true | string | K線類型 | 1min, 5min, 15min, 30min, 60min, 1day, 1mon, 1week, 1year | |
size | false | integer | 獲取數量 | 150 | [1,2000] |
響應數據:
參數名稱 | 是否必須 | 數據類型 | 描述 | 取值范圍 |
---|---|---|---|---|
status | true | string | 請求處理結果 | "ok" , "error" |
ts | true | number | 響應生成時間點,單位:毫秒 | |
tick | true | object | KLine 數據 | |
ch | true | string | 數據所屬的 channel,格式: market.$symbol.kline.$period |
data 說明:
"data": [
{
"id": K線id,
"amount": 成交量,
"count": 成交筆數,
"open": 開盤價,
"close": 收盤價,當K線為最晚的一根時,是最新成交價
"low": 最低價,
"high": 最高價,
"vol": 成交額, 即 sum(每一筆成交價 * 該筆的成交量)
}
]
請求響應示例:
/* GET /market/history/kline?period=1day&size=200&symbol=btcusdt */
{
"status": "ok",
"ch": "market.btcusdt.kline.1day",
"ts": 1499223904680,
"data": [
{
"id": 1499184000,
"amount": 37593.0266,
"count": 0,
"open": 1935.2000,
"close": 1879.0000,
"low": 1856.0000,
"high": 1940.0000,
"vol": 71031537.97866500
},
// more data here
]
}
/* GET /market/history/kline?period=not-exist&size=200&symbol=ethusdt */
{
"ts": 1490758171271,
"status": "error",
"err-code": "invalid-parameter",
"err-msg": "invalid period"
}
/* GET /market/history/kline?period=1day&size=not-exist&symbol=ethusdt */
{
"ts": 1490758221221,
"status": "error",
"err-code": "bad-request",
"err-msg": "invalid size, valid range: [1,2000]"
}
/* GET /market/history/kline?period=1day&size=200&symbol=not-exist */
{
"ts": 1490758171271,
"status": "error",
"err-code": "invalid-parameter",
"err-msg": "invalid symbol"
}
GET /market/detail/merged 獲取聚合行情(Ticker)
請求參數:
參數名稱 | 是否必須 | 類型 | 描述 | 默認值 | 取值范圍 |
---|---|---|---|---|---|
symbol | true | string | 交易對 | btcusdt, bchbtc, rcneth ... |
響應數據:
參數名稱 | 是否必須 | 數據類型 | 描述 | 取值范圍 |
---|---|---|---|---|
status | true | string | 請求處理結果 | "ok" , "error" |
ts | true | number | 響應生成時間點,單位:毫秒 | |
tick | true | object | K線數據 | |
ch | true | string | 數據所屬的 channel,格式: market.$symbol.detail.merged |
tick 說明:
"tick": {
"id": K線id,
"amount": 成交量,
"count": 成交筆數,
"open": 開盤價,
"close": 收盤價,當K線為最晚的一根時,是最新成交價
"low": 最低價,
"high": 最高價,
"vol": 成交額, 即 sum(每一筆成交價 * 該筆的成交量)
"bid": [買1價,買1量],
"ask": [賣1價,賣1量]
}
請求響應示例:
/* GET /market/detail/merged?symbol=ethusdt */
{
"status":"ok",
"ch":"market.ethusdt.detail.merged",
"ts":1499225276950,
"tick":{
"id":1499225271,
"ts":1499225271000,
"close":1885.0000,
"open":1960.0000,
"high":1985.0000,
"low":1856.0000,
"amount":81486.2926,
"count":42122,
"vol":157052744.85708200,
"ask":[1885.0000,21.8804],
"bid":[1884.0000,1.6702]
}
}
/* GET /market/detail/merged?symbol=not-exist */
{
"ts": 1490758171271,
"status": "error",
"err-code": "invalid-parameter",
"err-msg": "invalid symbol”
}
GET /market/tickers
{
"status":"ok",
"ts":1510885463001,
"data":[
{
"open":0.044297, // 日K線 開盤價
"close":0.042178, // 日K線 收盤價
"low":0.040110, // 日K線 最低價
"high":0.045255, // 日K線 最高價
"amount":12880.8510, // 24小時成交量
"count":12838, // 24小時成交筆數
"vol":563.0388715740, // 24小時成交額
"symbol":"ethbtc" // 交易對
},
{
"open":0.008545,
"close":0.008656,
"low":0.008088,
"high":0.009388,
"amount":88056.1860,
"count":16077,
"vol":771.7975953754,
"symbol":"ltcbtc"
}
]
}
注:當交易對尚未產生成交時,返回的數據里面 open
close
high
low
amount
count
vol
的值都為 null
GET /market/depth 獲取 Market Depth 數據
請求參數:
參數名稱 | 是否必須 | 類型 | 描述 | 默認值 | 取值范圍 |
---|---|---|---|---|---|
symbol | true | string | 交易對 | btcusdt, bchbtc, rcneth ... | |
type | true | string | Depth 類型 | step0, step1, step2, step3, step4, step5(合並深度0-5);step0時,不合並深度 |
- 用戶選擇“合並深度”時,一定報價精度內的市場掛單將予以合並顯示。合並深度僅改變顯示方式,不改變實際成交價格。
響應數據:
參數名稱 | 是否必須 | 數據類型 | 描述 | 取值范圍 |
---|---|---|---|---|
status | true | string | "ok" 或者 "error" | |
ts | true | number | 響應生成時間點,單位:毫秒 | |
tick | true | object | Depth 數據 | |
ch | true | string | 數據所屬的 channel,格式: market.$symbol.depth.$type |
tick 說明:
"tick": {
"id": 消息id,
"ts": 消息生成時間,單位:毫秒,
"bids": 買盤,[price(成交價), amount(成交量)], 按price降序,
"asks": 賣盤,[price(成交價), amount(成交量)], 按price升序
}
請求響應示例:
/* GET /market/depth?symbol=ethusdt&type=step1 */
{
"status": "ok",
"ch": "market.btcusdt.depth.step1",
"ts": 1489472598812,
"tick": {
"id": 1489464585407,
"ts": 1489464585407,
"bids": [
[7964, 0.0678], // [price, amount]
[7963, 0.9162],
[7961, 0.1],
[7960, 12.8898],
[7958, 1.2],
[7955, 2.1009],
[7954, 0.4708],
[7953, 0.0564],
[7951, 2.8031],
[7950, 13.7785],
[7949, 0.125],
[7948, 4],
[7942, 0.4337],
[7940, 6.1612],
[7936, 0.02],
[7935, 1.3575],
[7933, 2.002],
[7932, 1.3449],
[7930, 10.2974],
[7929, 3.2226]
],
"asks": [
[7979, 0.0736],
[7980, 1.0292],
[7981, 5.5652],
[7986, 0.2416],
[7990, 1.9970],
[7995, 0.88],
[7996, 0.0212],
[8000, 9.2609],
[8002, 0.02],
[8008, 1],
[8010, 0.8735],
[8011, 2.36],
[8012, 0.02],
[8014, 0.1067],
[8015, 12.9118],
[8016, 2.5206],
[8017, 0.0166],
[8018, 1.3218],
[8019, 0.01],
[8020, 13.6584]
]
}
}
/* GET /market/depth?symbol=ethusdt&type=not-exist */
{
"ts": 1490759358099,
"status": "error",
"err-code": "invalid-parameter",
"err-msg": "invalid type"
}
GET /market/trade 獲取 Trade Detail 數據
請求參數:
參數名稱 | 是否必須 | 類型 | 描述 | 默認值 | 取值范圍 |
---|---|---|---|---|---|
symbol | true | string | 交易對 | btcusdt, bchbtc, rcneth ... |
響應數據:
參數名稱 | 是否必須 | 數據類型 | 描述 | 取值范圍 |
---|---|---|---|---|
status | true | string | "ok" 或者 "error" | |
ts | true | number | 響應生成時間點,單位:毫秒 | |
tick | true | object | Trade 數據 | |
ch | true | string | 數據所屬的 channel,格式: market.$symbol.trade.detail |
tick 說明:
"tick": {
"id": 消息id,
"ts": 最新成交時間,
"data": [
{
"id": 成交id,
"price": 成交價錢,
"amount": 成交量,
"direction": 主動成交方向,
"ts": 成交時間
}
]
}
請求響應例子:
/* GET /market/trade?symbol=ethusdt */
{
"status": "ok",
"ch": "market.btcusdt.trade.detail",
"ts": 1489473346905,
"tick": {
"id": 600848670,
"ts": 1489464451000,
"data": [
{
"id": 600848670,
"price": 7962.62,
"amount": 0.0122,
"direction": "buy",
"ts": 1489464451000
}
]
}
}
/* GET /market/trade?symbol=not-exist */
{
"ts": 1490759506429,
"status": "error",
"err-code": "invalid-parameter",
"err-msg": "invalid symbol"
}
GET /market/history/trade 批量獲取最近的交易記錄
請求參數:
參數名稱 | 是否必須 | 類型 | 描述 | 默認值 | 取值范圍 |
---|---|---|---|---|---|
symbol | true | string | 交易對 | btcusdt, bchbtc, rcneth ... | |
size | false | integer | 獲取交易記錄的數量 | 1 | [1, 2000] |
響應數據:
參數名稱 | 是否必須 | 類型 | 描述 | 默認值 | 取值范圍 |
---|---|---|---|---|---|
status | true | string | ok, error | ||
ch | true | string | 數據所屬的 channel,格式: market.$symbol.trade.detail | ||
ts | true | integer | 發送時間 | ||
data | true | object | 成交記錄 |
data 說明:
"data": {
"id": 消息id,
"ts": 最新成交時間,
"data": [
{
"id": 成交id,
"price": 成交價,
"amount": 成交量,
"direction": 主動成交方向,
"ts": 成交時間
}
]
}
請求響應例子:
/* GET /market/history/trade?symbol=ethusdt */
{
"status": "ok",
"ch": "market.ethusdt.trade.detail",
"ts": 1502448925216,
"data": [
{
"id": 31459998,
"ts": 1502448920106,
"data": [
{
"id": 17592256642623,
"amount": 0.04,
"price": 1997,
"direction": "buy",
"ts": 1502448920106
}
]
}
]
}
GET /market/detail 獲取 Market Detail 24小時成交量數據
請求參數:
參數名稱 | 是否必須 | 類型 | 描述 | 默認值 | 取值范圍 |
---|---|---|---|---|---|
symbol | true | string | 交易對 | btcusdt, bchbtc, rcneth ... |
響應數據:
參數名稱 | 是否必須 | 數據類型 | 描述 | 取值范圍 |
---|---|---|---|---|
status | true | string | "ok" 或者 "error" | |
ts | true | number | 響應生成時間點,單位:毫秒 | |
tick | true | object | Detail 數據 | |
ch | true | string | 數據所屬的 channel,格式: market.$symbol.depth.$type |
tick 說明:
"tick": {
"id": 消息id,
"ts": 24小時統計時間,
"amount": 24小時成交量,
"open": 前推24小時成交價,
"close": 當前成交價,
"high": 近24小時最高價,
"low": 近24小時最低價,
"count": 近24小時累積成交數,
"vol": 近24小時累積成交額, 即 sum(每一筆成交價 * 該筆的成交量)
}
請求響應例子
/* GET /market/detail?symbol=ethusdt */
{
"status": "ok",
"ch": "market.btcusdt.detail",
"ts": 1489473538996,
"tick": {
"amount": 4316.4346,
"open": 8090.54,
"close": 7962.62,
"high": 8119.00,
"ts": 1489464451000,
"id": 1489464451,
"count": 9595,
"low": 7875.00,
"vol": 34497276.905760
}
}
/* GET /market/detail?symbol=not-exists */
{
"ts": 1490759594752,
"status": "error",
"err-code": "invalid-parameter",
"err-msg": "invalid symbol"
}
公共API
GET /v1/common/symbols 查詢Pro站支持的所有交易對及精度
GET /v1/hadax/common/symbols 查詢HADAX站支持的所有交易對及精度
請求參數: (無)
響應數據:
參數名稱 | 是否必須 | 數據類型 | 描述 | 取值范圍 |
---|---|---|---|---|
base-currency | true | string | 基礎幣種 | |
quote-currency | true | string | 計價幣種 | |
price-precision | true | string | 價格精度位數(0為個位,市價買單 buy-market 時使用此精度, ethbtc, etcbtc, bchbtc, ltcbtc 除外,這四個交易對的精度固定為4位 ) | |
amount-precision | true | string | 數量精度位數(0為個位,指 base-currency 數量) | |
symbol-partition | true | string | 交易區 | main主區,innovation創新區,bifurcation分叉區 |
請求響應例子:
/* GET /v1/common/symbols */
{
"status": "ok",
"data": [
{
"base-currency": "btc",
"quote-currency": "usdt",
"price-precision": 2,
"amount-precision": 4,
"symbol-partition": "main",
"symbol": "btcusdt"
}
{
"base-currency": "eth",
"quote-currency": "usdt",
"price-precision": 2,
"amount-precision": 4,
"symbol-partition": "main",
"symbol": "ethusdt"
}
]
}
GET /v1/common/currencys 查詢Pro站支持的所有幣種
GET /v1/hadax/common/currencys 查詢HADAX站支持的所有幣種
請求參數:
(無)
響應數據:
currency list
請求響應例子:
/* GET /v1/common/currencys */
{
"status": "ok",
"data": [
"usdt",
"eth",
"etc"
]
}
GET /v1/common/timestamp 查詢系統當前時間
請求參數:
(無)
響應數據:
系統時間戳
請求響應例子
/* GET /v1/common/timestamp */
{
"status": "ok",
"data": 1494900087029
}
用戶資產API
GET /v1/account/accounts
查詢當前用戶的所有賬戶(即account-id),Pro站和HADAX account-id通用
請求參數:
無
響應數據:
參數名稱 | 是否必須 | 數據類型 | 描述 | 取值范圍 |
---|---|---|---|---|
id | true | long | account-id | |
state | true | string | 賬戶狀態 | working:正常, lock:賬戶被鎖定 |
type | true | string | 賬戶類型 | spot:現貨賬戶, margin:杠桿賬戶,otc:OTC賬戶,point:點卡賬戶 |
請求響應例子:
/* GET /v1/account/accounts */
{
"status": "ok",
"data": [
{
"id": 100009,
"type": "spot",
"state": "working",
"user-id": 1000
}
]
}
GET /v1/account/accounts/{account-id}/balance 查詢Pro站指定賬戶的余額
GET /v1/hadax/account/accounts/{account-id}/balance 查詢HADAX站指定賬戶的余額
請求參數
參數名稱 | 是否必須 | 類型 | 描述 | 默認值 | 取值范圍 |
---|---|---|---|---|---|
account-id | true | string | account-id,填在 path 中,可用 GET /v1/account/accounts 獲取 |
- 如果不知道自己的賬戶ID,請使用
GET /v1/account/accounts
查詢
響應數據:
參數名稱 | 是否必須 | 數據類型 | 描述 | 取值范圍 |
---|---|---|---|---|
id | true | long | 賬戶 ID | |
state | true | string | 賬戶狀態 | working:正常 lock:賬戶被鎖定 |
type | true | string | 賬戶類型 | spot:現貨賬戶, margin:杠桿賬戶,otc:OTC賬戶,point:點卡賬戶 |
list | false | Array | 子賬戶數組 |
list字段說明
參數名稱 | 是否必須 | 數據類型 | 描述 | 取值范圍 |
---|---|---|---|---|
balance | true | string | 余額 | |
currency | true | string | 幣種 | |
type | true | string | 類型 | trade: 交易余額,frozen: 凍結余額 |
請求響應例子:
/* GET /v1/account/accounts/'account-id'/balance */
{
"status": "ok", "data": { "id": 100009, "type": "spot", "state": "working", "list": [ { "currency": "usdt", "type": "trade", "balance": "500009195917.4362872650" }, { "currency": "usdt", "type": "frozen", "balance": "328048.1199920000" }, { "currency": "etc", "type": "trade", "balance": "499999894616.1302471000" }, { "currency": "etc", "type": "frozen", "balance": "9786.6783000000" } { "currency": "eth", "type": "trade", "balance": "499999894616.1302471000" }, { "currency": "eth", "type": "frozen", "balance": "9786.6783000000" } ], "user-id": 1000 } }
交易API
POST /v1/order/orders/place Pro站下單
POST /v1/hadax/order/orders/place HADAX站下單
請求參數
參數名稱 | 是否必須 | 類型 | 描述 | 默認值 | 取值范圍 |
---|---|---|---|---|---|
account-id | true | string | 賬戶 ID,使用accounts方法獲得。幣幣交易使用‘spot’賬戶的accountid;借貸資產交易,請使用‘margin’賬戶的accountid | ||
amount | true | string | 限價單表示下單數量,市價買單時表示買多少錢,市價賣單時表示賣多少幣 | ||
price | false | string | 下單價格,市價單不傳該參數 | ||
source | false | string | 訂單來源 | api,如果使用借貸資產交易,請填寫‘margin-api’ | |
symbol | true | string | 交易對 | btcusdt, bchbtc, rcneth ... | |
type | true | string | 訂單類型 | buy-market:市價買, sell-market:市價賣, buy-limit:限價買, sell-limit:限價賣, buy-ioc:IOC買單, sell-ioc:IOC賣單, buy-limit-maker, sell-limit-maker(詳細說明見下) |
buy-limit-maker
當“下單價格”>=“市場最低賣出價”,訂單提交后,系統將拒絕接受此訂單;
當“下單價格”<“市場最低賣出價”,提交成功后,此訂單將被系統接受。
sell-limit-maker
當“下單價格”<=“市場最高買入價”,訂單提交后,系統將拒絕接受此訂單;
當“下單價格”>“市場最高買入價”,提交成功后,此訂單將被系統接受。
響應數據:
參數名稱 | 是否必須 | 數據類型 | 描述 | 取值范圍 |
---|---|---|---|---|
data | false | string | 訂單ID |
請求響應例子:
/* POST /v1/order/orders/place {
"account-id": "100009", "amount": "10.1", "price": "100.1", "source": "api", "symbol": "ethusdt", "type": "buy-limit" } */ { "status": "ok", "data": "59378" }
GET /v1/order/openOrders 獲取所有當前帳號下未成交訂單
請求參數:
“account-id” 和 “symbol” 需同時指定或者二者都不指定。如果二者都不指定,返回最多500條尚未成交訂單,按訂單號降序排列。
參數名稱 | 是否必須 | 類型 | 描述 | 默認值 | 取值范圍 |
---|---|---|---|---|---|
account-id | true | string | 賬號ID | ||
symbol | true | string | 交易對 | 單個交易對字符串,缺省將返回所有符合條件尚未成交訂單 | |
side | false | string | 主動交易方向 | “buy”或者“sell”,缺省將返回所有符合條件尚未成交訂單 | |
size | false | int | 所需返回記錄數 | 10 | [0,500] |
響應數據:
參數名稱 | 是否必須 | 數據類型 | 描述 | 取值范圍 |
---|---|---|---|---|
id | true | long | 訂單號 | |
symbol | true | string | 交易對 | |
price | true | string | 下單價格 | |
created-at | true | int | 下單時間(毫秒) | Unix時間戳 |
type | true | string | 訂單類型 | buy-market, sell-market, buy-limit, sell-limit, buy-ioc, sell-ioc |
filled-amount | true | string | 下單時間(毫秒) | 對於非“部分成交”訂單,此字段為 0 |
filled-cash-amount | true | string | 已成交部分的訂單價格(=已成交單量x下單價格) | 對於非“部分成交”訂單,此字段為 0 |
filled-fees | true | string | 已成交部分所收取手續費 | 對於非“部分成交”訂單,此字段為 0 |
source | true | string | 訂單來源 | sys, web, api, app |
state | true | string | 此訂單狀態 | submitted(已提交), partial-filled(部分成交), cancelling(正在取消) |
響應示例:
/* GET /v1/orders/openOrders */
{
"status": "ok", "data": [ { "id": 5454937, "symbol": "ethusdt", "account-id": 30925, "amount": "1.000000000000000000", "price": "0.453000000000000000", "created-at": 1530604762277, "type": "sell-limit", "filled-amount": "0.0", "filled-cash-amount": "0.0", "filled-fees": "0.0", "source": "web", "state": "submitted" } ] }
POST /v1/order/orders/{order-id}/submitcancel 申請撤銷一個訂單請求
請求參數:
參數名稱 | 是否必須 | 類型 | 描述 | 默認值 | 取值范圍 |
---|---|---|---|---|---|
order-id | true | string | 訂單ID,填在path中 |
響應數據:
參數名稱 | 是否必須 | 數據類型 | 描述 | 取值范圍 |
---|---|---|---|---|
data | true | string | 訂單 ID |
請求響應例子:
/* POST /v1/order/orders/{order-id}/submitcancel */
{
"status": "ok",//注意,返回OK表示撤單請求成功。訂單是否撤銷成功請調用訂單查詢接口查詢該訂單狀態
"data": "59378"
}
POST /v1/order/orders/batchcancel 批量撤銷訂單
請求參數:
參數名稱 | 是否必須 | 類型 | 描述 | 默認值 | 取值范圍 |
---|---|---|---|---|---|
order-ids | true | list | 撤銷訂單ID列表 | 單次不超過50個訂單id |
響應數據:
參數名稱 | 是否必須 | 數據類型 | 描述 | 取值范圍 |
---|---|---|---|---|
data | false | map | 撤單結果 |
請求響應例子:
/* POST /v1/order/orders/batchcancel */
{
"order-ids": [
"1", "2", "3"
]
}
-----
{
"status": "ok",
"data": {
"success": [
"1",
"3"
],
"failed": [
{
"err-msg": "記錄無效",
"order-id": "2",
"err-code": "base-record-invalid"
}
]
}
}
POST /v1/order/orders/batchCancelOpenOrders 批量取消符合條件的訂單
請求參數:
參數名稱 | 是否必須 | 類型 | 描述 | 默認值 | 取值范圍 |
---|---|---|---|---|---|
account-id | true | string | 賬戶ID | ||
symbol | false | string | 交易對 | 單個交易對字符串,缺省將返回所有符合條件尚未成交訂單 | |
side | false | string | 主動交易方向 | “buy”或“sell”,缺省將返回所有符合條件尚未成交訂單 | |
size | false | int | 所需返回記錄數 | 100 | [0,100] |
響應數據:
參數名稱 | 是否必須 | 數據類型 | 描述 | 取值范圍 |
---|---|---|---|---|
success-count | true | int | 成功取消的訂單數 | |
failed-count | true | int | 取消失敗的訂單數 | |
next-id | true | long | 下一個符合取消條件的訂單號 |
響應示例:
/* POST /v1/order/orders/batchCancelOpenOrders */
{
"status": "ok", "data": { "success-count": 2, "failed-count": 0, "next-id": 5454600 } }
GET /v1/order/orders/{order-id} 查詢某個訂單詳情
請求參數:
參數名稱 | 是否必須 | 類型 | 描述 | 默認值 | 取值范圍 |
---|---|---|---|---|---|
order-id | true | string | 訂單ID,填在path中 |
響應數據:
參數名稱 | 是否必須 | 數據類型 | 描述 | 取值范圍 |
---|---|---|---|---|
account-id | true | long | 賬戶 ID | |
amount | true | string | 訂單數量 | |
canceled-at | false | long | 訂單撤銷時間 | |
created-at | true | long | 訂單創建時間 | |
field-amount | true | string | 已成交數量 | |
field-cash-amount | true | string | 已成交總金額 | |
field-fees | true | string | 已成交手續費(買入為幣,賣出為錢) | |
finished-at | false | long | 訂單變為終結態的時間,不是成交時間,包含“已撤單”狀態 | |
id | true | long | 訂單ID | |
price | true | string | 訂單價格 | |
source | true | string | 訂單來源 | api |
state | true | string | 訂單狀態 | submitting , submitted 已提交, partial-filled 部分成交, partial-canceled 部分成交撤銷, filled 完全成交, canceled 已撤銷 |
symbol | true | string | 交易對 | btcusdt, bchbtc, rcneth ... |
type | true | string | 訂單類型 | buy-market:市價買, sell-market:市價賣, buy-limit:限價買, sell-limit:限價賣, buy-ioc:IOC買單, sell-ioc:IOC賣單 |
請求響應例子:
/* GET /v1/order/orders/{order-id} */
{
"status": "ok",
"data": {
"id": 59378,
"symbol": "ethusdt",
"account-id": 100009,
"amount": "10.1000000000",
"price": "100.1000000000",
"created-at": 1494901162595,
"type": "buy-limit",
"field-amount": "10.1000000000",
"field-cash-amount": "1011.0100000000",
"field-fees": "0.0202000000",
"finished-at": 1494901400468,
"user-id": 1000,
"source": "api",
"state": "filled",
"canceled-at": 0,
"exchange": "huobi",
"batch": ""
}
}
GET /v1/order/orders/{order-id}/matchresults 查詢某個訂單的成交明細
請求參數:
參數名稱 | 是否必須 | 類型 | 描述 | 默認值 | 取值范圍 |
---|---|---|---|---|---|
order-id | true | string | 訂單ID,填在path中 |
響應數據:
參數名稱 | 是否必須 | 數據類型 | 描述 | 取值范圍 |
---|---|---|---|---|
created-at | true | long | 成交時間 | |
filled-amount | true | string | 成交數量 | |
filled-fees | true | string | 成交手續費 | |
id | true | long | 訂單成交記錄ID | |
match-id | true | long | 撮合ID | |
order-id | true | long | 訂單 ID | |
price | true | string | 成交價格 | |
source | true | string | 訂單來源 | api |
symbol | true | string | 交易對 | btcusdt, bchbtc, rcneth ... |
type | true | string | 訂單類型 | buy-market:市價買, sell-market:市價賣, buy-limit:限價買, sell-limit:限價賣, buy-ioc:IOC買單, sell-ioc:IOC賣單 |
請求響應例子:
/* GET /v1/order/orders/{order-id}/matchresults */
{
"status": "ok",
"data": [
{
"id": 29553,
"order-id": 59378,
"match-id": 59335,
"symbol": "ethusdt",
"type": "buy-limit",
"source": "api",
"price": "100.1000000000",
"filled-amount": "9.1155000000",
"filled-fees": "0.0182310000",
"created-at": 1494901400435
}
]
}
GET /v1/order/orders 查詢當前委托、歷史委托
請求參數:
參數名稱 | 是否必須 | 類型 | 描述 | 默認值 | 取值范圍 |
---|---|---|---|---|---|
symbol | true | string | 交易對 | btcusdt, bchbtc, rcneth ... | |
types | false | string | 查詢的訂單類型組合,使用','分割 | buy-market:市價買, sell-market:市價賣, buy-limit:限價買, sell-limit:限價賣, buy-ioc:IOC買單, sell-ioc:IOC賣單 | |
start-date | false | string | 查詢開始日期, 日期格式yyyy-mm-dd | ||
end-date | false | string | 查詢結束日期, 日期格式yyyy-mm-dd | ||
states | true | string | 查詢的訂單狀態組合,使用','分割 | submitted 已提交, partial-filled 部分成交, partial-canceled 部分成交撤銷, filled 完全成交, canceled 已撤銷 | |
from | false | string | 查詢起始 ID | ||
direct | false | string | 查詢方向 | prev 向前,next 向后 | |
size | false | string | 查詢記錄大小 |
響應數據:
參數名稱 | 是否必須 | 數據類型 | 描述 | 取值范圍 |
---|---|---|---|---|
account-id | true | long | 賬戶 ID | |
amount | true | string | 訂單數量 | |
canceled-at | false | long | 接到撤單申請的時間 | |
created-at | true | long | 訂單創建時間 | |
field-amount | true | string | 已成交數量 | |
field-cash-amount | true | string | 已成交總金額 | |
field-fees | true | string | 已成交手續費(買入為幣,賣出為錢) | |
finished-at | false | long | 最后成交時間 | |
id | true | long | 訂單ID | |
price | true | string | 訂單價格 | |
source | true | string | 訂單來源 | api |
state | true | string | 訂單狀態 | submitting , submitted 已提交, partial-filled 部分成交, partial-canceled 部分成交撤銷, filled 完全成交, canceled 已撤銷 |
symbol | true | string | 交易對 | btcusdt, bchbtc, rcneth ... |
type | true | string | 訂單類型 | submit-cancel:已提交撤單申請 ,buy-market:市價買, sell-market:市價賣, buy-limit:限價買, sell-limit:限價賣, buy-ioc:IOC買單, sell-ioc:IOC賣單 |
請求響應例子:
/* GET /v1/order/orders */
{
"status": "ok",
"data": [
{
"id": 59378,
"symbol": "ethusdt",
"account-id": 100009,
"amount": "10.1000000000",
"price": "100.1000000000",
"created-at": 1494901162595,
"type": "buy-limit",
"field-amount": "10.1000000000",
"field-cash-amount": "1011.0100000000",
"field-fees": "0.0202000000",
"finished-at": 1494901400468,
"user-id": 1000,
"source": "api",
"state": "filled",
"canceled-at": 0,
"exchange": "huobi",
"batch": ""
}
]
}
GET /v1/order/matchresults 查詢當前成交、歷史成交
請求參數:
參數名稱 | 是否必須 | 類型 | 描述 | 默認值 | 取值范圍 |
---|---|---|---|---|---|
symbol | true | string | 交易對 | btcusdt, bchbtc, rcneth ... | |
types | false | string | 查詢的訂單類型組合,使用','分割 | buy-market:市價買, sell-market:市價賣, buy-limit:限價買, sell-limit:限價賣, buy-ioc:IOC買單, sell-ioc:IOC賣單 | |
start-date | false | string | 查詢開始日期, 日期格式yyyy-mm-dd | -61 days | [-61day, now] |
end-date | false | string | 查詢結束日期, 日期格式yyyy-mm-dd | Now | [start-date, now] |
from | false | string | 查詢起始 ID | 訂單成交記錄ID(最大值) | |
direct | false | string | 查詢方向 | 默認next, 成交記錄ID由大到小排序 | prev 向前,next 向后 |
size | false | string | 查詢記錄大小 | 100 | <=100 |
響應數據:
參數名稱 | 是否必須 | 數據類型 | 描述 | 取值范圍 |
---|---|---|---|---|
created-at | true | long | 成交時間 | |
filled-amount | true | string | 成交數量 | |
filled-fees | true | string | 成交手續費 | |
id | true | long | 訂單成交記錄ID | |
match-id | true | long | 撮合ID | |
order-id | true | long | 訂單 ID | |
price | true | string | 成交價格 | |
source | true | string | 訂單來源 | api |
symbol | true | string | 交易對 | btcusdt, bchbtc, rcneth ... |
type | true | string | 訂單類型 | buy-market:市價買, sell-market:市價賣, buy-limit:限價買, sell-limit:限價賣, buy-ioc:IOC買單, sell-ioc:IOC賣單 |
請求響應例子:
/* GET /v1/orders/matchresults */
{
"status": "ok",
"data": [
{
"id": 29555,
"order-id": 59378,
"match-id": 59335,
"symbol": "ethusdt",
"type": "buy-limit",
"source": "api",
"price": "100.1000000000",
"filled-amount": "0.9845000000",
"filled-fees": "0.0019690000",
"created-at": 1494901400487
}
]
}
借貸交易API (重要:如果使用借貸資產交易,請在下單接口/v1/order/orders/place請求參數source中填寫‘margin-api’)
目前僅支持 USDT 交易區和 BTC 交易區部分交易對
POST /v1/dw/transfer-in/margin 現貨賬戶划入至借貸賬戶
POST /v1/dw/transfer-out/margin 借貸賬戶划出至現貨賬戶
請求參數
參數名稱 | 是否必須 | 類型 | 描述 | 默認值 | 取值范圍 |
---|---|---|---|---|---|
symbol | true | string | 交易對 | ||
currency | true | string | 幣種 | ||
amount | true | string | 金額 |
響應數據:
參數名稱 | 是否必須 | 數據類型 | 描述 | 取值范圍 |
---|---|---|---|---|
data | true | long | 划轉ID |
請求響應例子:
/* POST /v1/dw/transfer-in/margin
{
"symbol": "ethusdt",
"currency": "eth",
"amount": "1.0"
} */
{
"status": "ok",
"data": 1000
}
POST /v1/margin/orders 申請借貸
請求參數
參數名稱 | 是否必須 | 類型 | 描述 | 默認值 | 取值范圍 |
---|---|---|---|---|---|
symbol | true | string | 交易對 | ||
currency | true | string | 幣種 | ||
amount | true | string | 金額 |
響應數據:
參數名稱 | 是否必須 | 數據類型 | 描述 | 取值范圍 |
---|---|---|---|---|
data | true | long | 訂單號 |
請求響應例子:
/* POST /v1/margin/orders {
"amount": "10.1",
"symbol": "ethusdt",
"currency": "eth"
} */
{
"status": "ok",
"data": 59378
}
POST /v1/margin/orders/{order-id}/repay 歸還借貸
請求參數
參數名稱 | 是否必須 | 類型 | 描述 | 默認值 | 取值范圍 |
---|---|---|---|---|---|
order-id | true | long | 借貸訂單 ID,寫在path中 | ||
amount | true | string | 還款量 |
響應數據:
參數名稱 | 是否必須 | 數據類型 | 描述 | 取值范圍 |
---|---|---|---|---|
data | true | long | 訂單號 |
請求響應例子:
/* POST /v1/margin/orders/59378/repay {
"amount": "10.1"
}*/
{
"status": "ok",
"data": 59378
}
GET /v1/margin/loan-orders 借貸訂單
請求參數
參數名稱 | 是否必須 | 類型 | 描述 | 默認值 | 取值范圍 |
---|---|---|---|---|---|
symbol | true | string | 交易對 | ||
start-date | false | string | 查詢開始日期, 日期格式yyyy-mm-dd | ||
end-date | false | string | 查詢結束日期, 日期格式yyyy-mm-dd | ||
states | false | string | 狀態 | ||
from | false | string | 查詢起始 ID | ||
direct | false | string | 查詢方向 | prev 向前,next 向后 | |
size | false | string | 查詢記錄大小 |
響應數據:
參數名稱 | 是否必須 | 數據類型 | 描述 | 取值范圍 |
---|---|---|---|---|
id | true | long | 訂單號 | |
user-id | true | long | 用戶ID | |
account-id | true | long | 賬戶ID | |
symbol | true | string | 交易對 | |
currency | true | string | 幣種 | |
loan-amount | true | string | 借貸本金總額 | |
loan-balance | true | string | 未還本金 | |
interest-rate | true | string | 利率 | |
interest-amount | true | string | 利息總額 | |
interest-balance | true | string | 未還利息 | |
created-at | true | long | 借貸發起時間 | |
accrued-at | true | long | 最近一次計息時間 | |
state | true | string | 訂單狀態 | created 未放款,accrual 已放款,cleared 已還清,invalid 異常 |
請求響應例子:
/* GET /v1/margin/loan-orders?symbol=btcusdt
*/
{
"status": "ok",
"data": [
{
"loan-balance": "0.100000000000000000",
"interest-balance": "0.000200000000000000",
"interest-rate": "0.002000000000000000",
"loan-amount": "0.100000000000000000",
"accrued-at": 1511169724531,
"interest-amount": "0.000200000000000000",
"symbol": "ethbtc",
"currency": "btc",
"id": 394,
"state": "accrual",
"account-id": 17747,
"user-id": 119913,
"created-at": 1511169724531
}
]
}
GET /v1/margin/accounts/balance 借貸賬戶詳情
請求參數
參數名稱 | 是否必須 | 類型 | 描述 | 默認值 | 取值范圍 |
---|---|---|---|---|---|
symbol | false | string | 交易對,作為get參數 |
響應數據:
參數名稱 | 是否必須 | 數據類型 | 描述 | 取值范圍 |
---|---|---|---|---|
symbol | true | string | 交易對 | |
state | true | string | 賬戶狀態 | working,fl-sys,fl-mgt,fl-end |
risk-rate | true | object | 風險率 | |
fl-price | true | string | 爆倉價 | |
list | true | array | 子賬戶列表 |
請求響應例子:
/* GET /v1/margin/accounts/balance?symbol=btcusdt
*/
{
"status": "ok",
"data": [
{
"id": 18264,
"type": "margin",
"state": "working",
"symbol": "btcusdt",
"fl-price": "0",
"fl-type": "safe",
"risk-rate": "475.952571086994250554",
"list": [
{
"currency": "btc",
"type": "trade",
"balance": "1168.533000000000000000"
},
{
"currency": "btc",
"type": "frozen",
"balance": "0.000000000000000000"
},
{
"currency": "btc",
"type": "loan",
"balance": "-2.433000000000000000"
},
{
"currency": "btc",
"type": "interest",
"balance": "-0.000533000000000000"
},
{
"currency": "usdt",
"type": "trade",//借貸賬戶可用
"balance": "1313.534000000000000000"
},
{
"currency": "usdt",
"type": "frozen",//借貸賬戶凍結
"balance": "0.000000000000000000"
},
{
"currency": "usdt",
"type": "loan",//已借貸
"balance": "-140.234099999999999920"
},
{
"currency": "usdt",
"type": "interest",//usdt待還利息
"balance": "-0.931206660000000000"
},
{
"currency": "btc",
"type": "transfer-out-available",//可轉btc
"balance": "1163.872174670000000000"
},
{ "currency": "usdt",
"type": "transfer-out-available",//可轉usdt
"balance": "1313.534000000000000000"
},
{
"currency": "btc",
"type": "loan-available",//可借btc
"balance": "8161.876538350676000000"
},
{
"currency": "usdt",
"type": "loan-available",//可借usdt
"balance": "49859.765900000000000080"
}
]
}
]
}
虛擬幣提現API
僅支持提現到【Pro站提幣地址列表中的提幣地址】
POST /v1/dw/withdraw/api/create 申請提現虛擬幣
請求參數:
參數名稱 | 是否必須 | 類型 | 描述 | 默認值 | 取值范圍 |
---|---|---|---|---|---|
address | true | string | 提現地址 | 僅支持在官網上相應幣種可信地址列表 中的地址 | |
amount | true | string | 提幣數量 | ||
currency | true | string | 資產類型 | btc, ltc, bch, eth, etc ...(火幣Pro支持的幣種) | |
fee | false | string | 轉賬手續費 | ||
addr-tag | false | string | 虛擬幣共享地址tag,適用於xrp,xem,bts,steem,eos,xmr | 格式, "123"類的整數字符串 |
響應數據:
參數名稱 | 是否必須 | 數據類型 | 描述 | 取值范圍 |
---|---|---|---|---|
data | false | long | 提現ID |
請求響應例子:
/* POST /v1/dw/withdraw/api/create*/
{
"address": "0xde709f2102306220921060314715629080e2fb77",
"amount": "0.05",
"currency": "eth",
"fee": "0.01"
}
{
"status": "ok",
"data": 700
}
POST /v1/dw/withdraw-virtual/{withdraw-id}/cancel 申請取消提現虛擬幣
請求參數:
參數名稱 | 是否必須 | 類型 | 描述 | 默認值 | 取值范圍 |
---|---|---|---|---|---|
withdraw-id | true | long | 提現ID,填在path中 |
響應數據:
參數名稱 | 是否必須 | 數據類型 | 描述 | 取值范圍 |
---|---|---|---|---|
data | false | long | 提現 ID |
請求響應例子:
/* POST /v1/dw/withdraw-virtual/{withdraw-id}/cancel */
{
"status": "ok",
"data": 700
}
GET /v1/query/deposit-withdraw 查詢虛擬幣充提記錄
請求參數:
參數名稱 | 是否必須 | 類型 | 描述 | 默認值 | 取值范圍 |
---|---|---|---|---|---|
currency | true | string | 幣種 | ||
type | true | string | 'deposit' or 'withdraw' | ||
from | true | string | 查詢起始 ID | ||
size | true | string | 查詢記錄大小 |
響應數據:
參數名稱 | 是否必須 | 數據類型 | 描述 | 取值范圍 |
---|---|---|---|---|
id | true | long | ||
type | true | long | 類型 | 'deposit' 'withdraw' |
currency | true | string | 幣種 | |
tx-hash | true | string | 交易哈希 | |
amount | true | long | 個數 | |
address | true | string | 地址 | |
address-tag | true | string | 地址標簽 | |
fee | true | long | 手續費 | |
state | true | string | 狀態 | 狀態參見下表 |
created-at | true | long | 發起時間 | |
updated-at | true | long | 最后更新時間 |
虛擬幣提現狀態定義:
狀態 | 描述 |
---|---|
submitted | 已提交 |
reexamine | 審核中 |
canceled | 已撤銷 |
pass | 審批通過 |
reject | 審批拒絕 |
pre-transfer | 處理中 |
wallet-transfer | 已匯出 |
wallet-reject | 錢包拒絕 |
confirmed | 區塊已確認 |
confirm-error | 區塊確認錯誤 |
repealed | 已撤銷 |
虛擬幣充值狀態定義:
狀態 | 描述 |
---|---|
unknown | 狀態未知 |
confirming | 確認中 |
confirmed | 確認中 |
safe | 已完成 |
orphan | 待確認 |
請求響應例子:
/* GET /v1/query/deposit-withdraw?currency=xrp&type=deposit&from=5&size=12 */
{
"status": "ok",
"data": [
{
"id": 1171,
"type": "deposit",
"currency": "xrp",
"tx-hash": "ed03094b84eafbe4bc16e7ef766ee959885ee5bcb265872baaa9c64e1cf86c2b",
"amount": 7.457467,
"address": "rae93V8d2mdoUQHwBDBdM4NHCMehRJAsbm",
"address-tag": "100040",
"fee": 0,
"state": "safe",
"created-at": 1510912472199,
"updated-at": 1511145876575
},
...
]
}
新增ETF接口
變更背景
ETF 的市場價格和其成分資產的價值偏差為市場參與方提供了套利的機會。因此繼 HB10 ETF 的交易之后, ETF 的換入和換出也將開放。本次的變更主要是為用戶提供通過接口參與 ETF 換入和換出的能力。
變更內容
Method | API | Description |
---|---|---|
GET | /etf/swap/config | 新接口。用戶可以通過該接口取得關於 ETF 換入換出的 基本信息,包括一次換入最小量,一次換入最大量,一 次換出最小量,一次換出最大量,換入費率,換出費 率,最新 ETF 換入換出狀態,以及 ETF 的成分結構。 |
POST | /etf/swap/in | 新接口。用戶可以通過該接口換入一定數量的ETF. |
POST | /etf/swap/out | 新接口。用戶可以通過該接口換出一定數量的 ETF 對應 的成分幣。 |
GET | /etf/swap/list | 新接口。用戶可以通過該接口取得關於 ETF 換入換出操 作的明細記錄。最多返回 100 條記錄。 |
GET | /quotation/market/history/kline | 現有接口。當 symbol 為 hb10 時,用戶可獲得 hb10 ETF 凈值的 K 線,包括 open, high, low, close, amount, vol。由於是凈值信息,所以 the amount 和 vol 是 會返回 0。HB10 ETF 的凈值每 15 秒計算一次。 |
具體接口細節
GET /etf/swap/config
- 請求參數
參數 | 是否必填 | 數據類型 | 長度 | 說明 | 取值范圍 |
---|---|---|---|---|---|
etf_name | True | String | - | etf基金名稱 | hb10 |
- 響應結果
參數 | 是否必填 | 數據類型 | 長度 | 說明 | 取值范圍 |
---|---|---|---|---|---|
purchase_min_amount | True | Int | - | 最小單次換入數量 | |
purchase_max_amount | False | Int | - | 最大單次換入數量 | |
redemption_min_amount | True | Int | - | 最小單次換出數量 | |
redemption_max_amount | False | Int | - | 最大單次換出數量 | |
purchase_fee_rate | True | double | (5,4) | 換入費率 | |
redemption_fee_rate | True | double | (5,4) | 換出費率 | |
etf_status | True | Int | - | 換入換出狀態 | 狀態: 正常 – 1; 由調倉引起的換入換出暫停 - 2; 其他原因引起的換入換出暫停 -3; 換入暫停 - 4; 換出暫停– 5 |
unit_price | True | Array | - | ETF成分信息,包含成分幣代碼和對應的數量 | 調倉會引起成分信息發生變化 |
unit_price
參數 | 是否必填 | 數據類型 | 長度 | 說明 |
---|---|---|---|---|
currency | True | String | - | 成分幣幣種 |
amount | True | Double | - | 成分幣數量 |
響應示例
{
"code": 200,
"data": {
"purchase_min_amount": 10000,
"purchase_max_amount": 100000,
"redemption_min_amount": 10000,
"redemption_max_amount": 10000,
"purchase_fee_rate": 0.001,
"redemption_fee_rate": 0.002,
"etf_status":1
"unit_price": [
{
"currency": "eth",
"amount": 19.9
},
{
"currency": "btc",
"amount": 9.9
}
]
},
"message": null,
"success": true
}
POST /etf/swap/in
POST /etf/swap/out
- 請求參數
參數 | 是否必填 | 數據類型 | 長度 | 說明 | 取值范圍 |
---|---|---|---|---|---|
etf_name | True | String | - | etf基金名稱 | hb10 |
amount | True | Int | - | 換入數量 (POST /etf/swap/in) 或 換出數量 (POST /etf/swap/out) | 換入換出數量的范圍請參照接口GET /etf/swap/config 提供的相應范圍 |
*響應結果
參數 | 是否必填 | 數據類型 | 長度 | 說明 | 取值范圍 |
---|---|---|---|---|---|
code | True | Int | - | 結果返回碼 | 請參照返回碼解釋表 |
data | True | - | |||
message | True | - | |||
success | True | Boolean | - | 請求是否成功 | Ture or false |
*響應示例
{
"code": 200,
"data": null,
"message": null,
"success": true
}
*返回碼解釋表
返回碼 | 說明 |
---|---|
200 | 正常 |
10404 | 基金代碼不正確或不存在 |
13403 | 賬戶余額不足 |
13404 | 基金調整中,不能換入換出 |
13405 | 因配置項問題基金不可換入換出 |
13406 | 非API調用,請求被拒絕 |
13410 | API簽名錯誤 |
13500 | 系統錯誤 |
13601 | 調倉期:暫停換入換出 |
13603 | 其他原因,暫停換入和換出 |
13604 | 暫停換入 |
13605 | 暫停換出 |
13606 | 換入或換出的基金份額超過規定范圍 |
GET /etf/list
*請求數據
參數 | 是否必填 | 數據類型 | 長度 | 說明 | 取值范圍 |
---|---|---|---|---|---|
etf_name | True | String | - | etf基金名稱 | hb10 |
offset | True | Int | - | 開始位置 | >=0. 比如,當offset=0, 開始位置就 是最新的這一條記錄。 |
limit | True | Int | - | 最大返回記錄條數 | >0 and <=100 |
*響應結果
參數 | 是否必填 | 數據類型 | 長度 | 說明 | 取值范圍 |
---|---|---|---|---|---|
id | True | Long | - | 操作ID | |
gmt_created | True | Long | - | 操作時間(毫秒) | |
currency | True | String | - | 基金名稱 | |
amount | True | Double | - | 基金數量 | |
type | True | Int | - | 操作類型 | 換入-1;換出-2 |
status | True | Int | - | 操作結果狀態 | 成功-2 |
detail | True | Detail[] | - | 詳情 |
Detail
參數 | 是否必填 | 數據類型 | 長度 | 說明 |
---|---|---|---|---|
used_ currency_list | Ture | Currency[] | - | 換出的資產列表。如果是換入,該參數包括的是用於換入的成分幣詳情。如果是換出,該參數則是用於換出的基金詳情。 |
rate | Ture | double | - | 費率 |
fee | Ture | double | - | 實際收取的手續費 |
point_card_amount | Ture | double | - | 用點卡折扣的手續費 |
obtain_ currency_list | Ture | Currency[] | - | 換回的資產列表。如果是換入,該參數包括的是用 於換出的基金詳情。如果是換出,該參數則是用於 換入的成分幣詳情。 |
Currency
參數 | 是否必填 | 數據類型 | 長度 | 說明 |
---|---|---|---|---|
currency | True | String | - | 成分幣名稱或基金名稱 |
amount | True | Double | - | 數量 |
*響應示例
{
"code": 200,
"data": [
{
"id": 112222,
"gmt_created": 1528855872323,
"currency": "hb10",
"amount": 11.5,
"type": 1,
"status": 2,
"detail": {
"used_ currency_list": [
{
"currency": "btc",
"amount": 0.666
},
{
"currency": "eth",
"amount": 0.666
}
],
"rate": 0.002,
"fee": 100.11,
"point_card_amount":1.0,
"obtain_ currency_list": [
{
"currency": "hb10",
"amount": 1000
}
]
}
},
{
"id": 112223,
"gmt_created": 1528855872323,
"currency": "hb10",
"amount": 11.5,
"type": 2,
"status": 1,
"detail": {
"used_ currency_list": [
{
"currency": "btc",
"amount": 0.666
},
{
"currency": "eth",
"amount": 0.666
}
],
"rate": 0.002,
"fee": 100.11,
"point_card_amount":1.0,
"obtain_ currency_list": [
{
"currency": "hb10",
"amount": 1000
}
]
}
}
],
"message": null,
"success": true
}
GET /quotation/market/history/kline 獲取ETF凈值
請求參數:
參數名稱 | 是否必須 | 類型 | 描述 | 默認值 | 取值范圍 |
---|---|---|---|---|---|
symbol | true | string | ETF名稱 | hb10 | |
period | true | string | K線類型 | 1min, 5min, 15min, 30min, 60min, 1day, 1mon, 1week, 1year | |
limit | false | integer | 獲取數量 | [1,2000] |
響應數據:
參數名稱 | 是否必須 | 數據類型 | 描述 | 取值范圍 |
---|---|---|---|---|
status | true | string | 請求處理結果 | "ok" , "error" |
ts | true | number | 響應生成時間點,單位:毫秒 | |
tick | true | object | KLine 數據 | |
ch | true | string | 數據所屬的 channel,格式: market.$symbol.kline.$period |
data 說明:
"data": [
{
"id": K線id,
"amount": 成交量(凈值時=0),
"open": 開盤價,
"close": 收盤價,當K線為最晚的一根時,是最新成交價
"low": 最低價,
"high": 最高價,
"vol": 成交額(凈值時=0)
}
]
響應示例:
{
"code": 200, "success": "True", "data": [ { "id": 1499184000, "amount": 0, "open": 0.7694, "close": 0.769, "low": 0.769, "high": 0.7694, "vol": 0 }, ... ] }
新增母子賬戶接口
POST /v1/subuser/transfer 母賬戶執行母子賬戶之間的划轉
- 請求參數
參數 | 是否必填 | 數據類型 | 長度 | 說明 | 取值范圍 |
---|---|---|---|---|---|
sub-uid | True | Long | - | 子賬戶uid | - |
currency | True | String | - | 幣種 | - |
amount | True | Decimal | - | 划轉金額 | - |
type | True | String | - | 划轉類型 | master-transfer-in(子賬戶划轉給母賬戶虛擬幣)/ master-transfer-out (母賬戶划轉給子賬戶虛擬幣)/master-point-transfer-in (子賬戶划轉給母賬戶點卡)/master-point-transfer-out(母賬戶划轉給子賬戶點卡) |
- 響應結果
參數 | 是否必填 | 數據類型 | 長度 | 說明 | 取值范圍 |
---|---|---|---|---|---|
data | True | Int | - | 划轉訂單id | - |
status | True | - | 狀態 | "OK" or "Error" |
- 響應示例
{
“data”:123456,
“status”:”ok”
}
- 響應碼
error_code | 說明 | 類型 |
---|---|---|
account-transfer-balance-insufficient-error | 賬戶余額不足 | String |
base-operation-forbidden | 禁止操作(母子賬號關系錯誤時報) | String |
GET /v1/subuser/aggregate-balance
母賬戶查詢其下所有子賬戶的各幣種匯總余額
- 請求參數
參數 | 是否必填 | 數據類型 | 長度 | 說明 | 取值范圍 |
---|---|---|---|---|---|
無請求參數 |
- 響應結果
參數 | 是否必填 | 數據類型 | 長度 | 說明 | 取值范圍 |
---|---|---|---|---|---|
status | True | - | 狀態 | "OK" or "Error" | |
data | True | list | - | - |
data
參數 | 是否必填 | 數據類型 | 長度 | 說明 | 取值范圍 |
---|---|---|---|---|---|
currency | 是 | String | - | 子賬戶幣名 | - |
balance | 是 | String | - | 子賬戶下該幣種所有余額(可用余額和凍結余額的總和) | - |
- 響應示例
{
"status": "ok",
"data": [
{
"currency": "eos",
"balance": "1954559.809500000000000000"
},
{
"currency": "btc",
"balance": "0.000000000000000000"
},
{
"currency": "usdt",
"balance": "2925209.411300000000000000"
},
...
]
}
GET /v1/account/accounts/{sub-uid}
母賬戶查詢子賬戶各幣種賬戶余額
- 請求參數
參數 | 是否必填 | 數據類型 | 長度 | 說明 | 取值范圍 |
---|---|---|---|---|---|
sub-uid | True | Long | - | 子用戶的UID | - |
- 響應結果
參數 | 是否必填 | 數據類型 | 長度 | 說明 | 取值范圍 |
---|---|---|---|---|---|
id | - | Long | - | 子賬戶ID | - |
type | - | String | - | 賬戶類型 | Spot:現貨賬戶,point:點卡賬戶 |
list | - | Object | - | - | - |
list說明
參數 | 是否必填 | 數據類型 | 長度 | 說明 | 取值范圍 |
---|---|---|---|---|---|
currency | - | String | - | 幣種 | - |
type | - | String | - | 賬戶類型 | Trade:交易賬戶,frozen:凍結賬戶 |
balance | - | Decimal | - | 賬戶余額 | - |
- 響應示例
{ "status": "ok", "data": [ { "id": 9910049, "type": "spot", "list": [ { "currency": "btc", "type": "trade", "balance": "1.00" }, { "currency": "eth", "type": "trade", "balance": "1934.00" } ] }, { "id": 9910050, "type": "point", "list": [] } ] }