火币Huobi API

本文介绍火币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 除外),来校验参数或参数值在传输途中是否发生了更改。

计算签名所需的步骤:

  1. 规范要计算签名的请求 因为使用 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
  1. 请求方法(GET 或 POST),后面添加换行符 。
GET

  1. 添加小写的访问地址,后面添加换行符 。
api.huobi.pro

  1. 访问方法的路径,后面添加换行符 。
/v1/order/orders

  1. 按照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

api.huobi.pro

/v1/order/orders

AccessKeyId=e2xxxxxx-99xxxxxx-84xxxxxx-7xxxx&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2017-05-11T15%3A19%3A30&order-id=1234567890

计算签名,将以下两个参数传入加密哈希函数: 要进行签名计算的字符串

GET

api.huobi.pro

/v1/order/orders

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


请求说明

  1. 访问地址
  1. POST请求头信息中必须声明 Content-Type:application/json;GET请求头信息中必须声明 Content-Type:application/x-www-form-urlencoded。(汉语用户建议设置 Accept-Language:zh-cn)
  2. 所有请求参数请按照 API 说明进行参数封装。
  3. 将封装好参数的 API 请求通过 POST 或 GET 的方式提交到服务器。
  4. 火币网处理请求,并返回相应的 JSON 格式结果。
  5. 请使用 https 请求。
  6. 限制频率为10秒100次(单个APIKEY维度限制,建议行情API访问也要加上签名,否则限频会更严格)。
  7. 查询资产详情方法调用顺序:查询当前用户的所有账户->查询指定账户的余额
  8. 支持所有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 换入和换出的能力。

变更内容

MethodAPIDescription
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": []
	}
	]
}



原文地址:https://www.cnblogs.com/bitquant/p/huobi-api.html