Navbar
English

title: 火币新加坡 API 文档

language_tabs: # must be one of https://git.io/vQNgJ

toc_footers:

search: true

更新日志

生效时间
(UTC +8)
接口 变化 摘要
2021.8.24 market.$symbol.ticker 新增 增加聚合行情(Ticker)数据

简介

欢迎使用火币新加坡 API!

此文档是火币新加坡API的唯一官方文档,火币新加坡API提供的功能和服务会在此文档持续更新,并会发布公告进行通知,建议您关注和订阅我们的公告,及时获取相关信息。

您可以点击 这里 查看公告。如果想订阅公告,请在“API公告”页右上角点击“关注”按钮,会弹出登录窗口,用账号登录成功后,再次点击“关注”按钮,并选择需要关注的内容类型,按钮变为“正在关注”,即表示订阅成功。若无账号,可以点击登录窗口中的“注册”按钮,进行注册。

如何阅读本文档

文档上方导航栏是不同业务的API;右上方的语言按钮可以切换文档语言,目前支持中文和英文。 文档下方是某个业务的API文档,其中左侧是目录,中间是正文,右侧是请求参数和响应结果的示例。

以下是现货API文档各章节主要内容

第一部分是概要介绍:

第二部分是每个接口类的详细介绍,每个接口类一个章节,每个章节分为如下内容:

快速入门

接入准备

如需使用API ,请先登录网页端,完成API key的申请和权限配置,再据此文档详情进行开发和交易。

您可以点击 这里 创建 API Key。

每个母用户可创建20组Api Key,每个Api Key可对应设置读取、交易、提币三种权限。

权限说明如下:

创建成功后请务必记住以下信息:

SDK与代码示例

SDK(推荐)

Java | Python3 | C++ | C# | Go

其它代码示例

https://github.com/huobiapi?tab=repositories

测试环境(已停止)

测试环境运行了一段时间后,因用户访问量很少,而维护成本很高,我们慎重决定后将其停止。

线上环境更稳定,流动性更好,建议您直接使用线上环境。

接口类型

火币新加坡为用户提供两种接口,您可根据自己的使用场景和偏好来选择适合的方式进行查询行情、交易或提币。

REST API

REST,即Representational State Transfer的缩写,是目前较为流行的基于HTTP的一种通信机制,每一个URL代表一种资源。

交易或资产提币等一次性操作,建议开发者使用REST API进行操作。

WebSocket API

WebSocket是HTML5一种新的协议(Protocol)。它实现了客户端与服务器全双工通信,通过一次简单的握手就可以建立客户端和服务器连接,服务器可以根据业务规则主动推送信息给客户端。

市场行情和买卖深度等信息,建议开发者使用WebSocket API进行获取。

接口鉴权

以上两种接口均包含公共接口和私有接口两种类型。

公共接口可用于获取基础信息和行情数据。公共接口无需认证即可调用。

私有接口可用于交易管理和账户管理。每个私有请求必须使用您的API Key进行签名验证。

接入URLs

您可以自行比较使用api.huobi.sg和api-aws.huobi.sg两个域名的延迟情况,选择延迟低的进行使用。

其中,api-aws.huobi.sg域名对使用aws云服务的用户做了一定的链路延迟优化。 (永庆确认是否删除)

REST API

https://api.huobi.sg

Websocket Feed(行情,不包含MBP增量行情)

wss://api.huobi.sg/ws

Websocket Feed(资产和订单)

wss://api.huobi.sg/ws/v

签名认证

签名说明

API 请求在通过 internet 传输的过程中极有可能被篡改,为了确保请求未被更改,除公共接口(基础信息,行情数据)外的私有接口均必须使用您的 API Key 做签名认证,以校验参数或参数值在传输途中是否发生了更改。
每一个API Key需要有适当的权限才能访问相应的接口,每个新创建的API Key都需要分配权限。在使用接口前,请查看每个接口的权限类型,并确认你的API Key有相应的权限。

一个合法的请求由以下几部分组成:

签名步骤

规范要计算签名的请求 因为使用 HMAC 进行签名计算时,使用不同内容计算得到的结果会完全不同。所以在进行签名计算前,请先对请求进行规范化处理。下面以查询某订单详情请求为例进行说明:

查询某订单详情时完整的请求URL

https://api.huobi.sg/v1/order/orders?

AccessKeyId=e2xxxxxx-99xxxxxx-84xxxxxx-7xxxx

&SignatureMethod=HmacSHA256

&SignatureVersion=2

&Timestamp=2017-05-11T15:19:30

&order-id=1234567890

1. 请求方法(GET 或 POST,WebSocket用GET),后面添加换行符 “\n”

例如: GET\n

2. 添加小写的访问域名,后面添加换行符 “\n”

例如: api.huobi.sg\n

3. 访问方法的路径,后面添加换行符 “\n”

例如查询订单:
/v1/order/orders\n

例如WebSocket v2
/ws/v2

4. 对参数进行URL编码,并且按照ASCII码顺序进行排序

例如,下面是请求参数的原始顺序,且进行URL编码后

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

5. 按照以上顺序,将各参数使用字符 “&” 连接

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

6. 组成最终的要进行签名计算的字符串如下

GET\n

api.huobi.sg\n

/v1/order/orders\n

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

7. 用上一步里生成的 “请求字符串” 和你的密钥 (Secret Key) 生成一个数字签名

  1. 将上一步得到的请求字符串和 API 私钥作为两个参数,调用HmacSHA256哈希函数来获得哈希值。
  2. 将此哈希值用base-64编码,得到的值作为此次接口调用的数字签名。

4F65x5A2bLyMWVQj3Aqp+B4w+ivaA7n5Oi2SuYtCJ9o=

8. 将生成的数字签名加入到请求里

对于Rest接口:

  1. 把所有必须的认证参数添加到接口调用的路径参数里
  2. 把数字签名在URL编码后加入到路径参数里,参数名为“Signature”。

最终,发送到服务器的 API 请求应该为

https://api.huobi.sg/v1/order/orders?AccessKeyId=e2xxxxxx-99xxxxxx-84xxxxxx-7xxxx&order-id=1234567890&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2017-05-11T15%3A19%3A30&Signature=4F65x5A2bLyMWVQj3Aqp%2BB4w%2BivaA7n5Oi2SuYtCJ9o%3D

对于WebSocket接口:

  1. 按照要求的JSON格式,填入参数和签名。
  2. JSON请求中的参数不需要URL编码

例如:

{ "action": "req", "ch": "auth", "params": { "authType":"api", "accessKey": "e2xxxxxx-99xxxxxx-84xxxxxx-7xxxx", "signatureMethod": "HmacSHA256", "signatureVersion": "2.1", "timestamp": "2019-09-01T18:16:16", "signature": "4F65x5A2bLyMWVQj3Aqp+B4w+ivaA7n5Oi2SuYtCJ9o=" } }

业务字典

交易对

交易对由基础币种和报价币种组成。以交易对 ETH/BTC 为例,ETH 为基础币种,BTC 为报价币种。

基础币种对应字段为 base-currency 。

报价币种对应字段为 quote-currency 。

账户

不同业务对应需要不同的账户,account-id为不同业务账户的唯一标识ID。

account-id可通过/v1/account/accounts接口获取,并根据account-type区分具体账户。

账户类型包括:

接入说明

接口概览

接口分类 分类链接 概述
基础类 /v1/common/* 基础类接口,包括币种、币种对、时间戳等接口
行情类 /market/* 公共行情类接口,包括成交、深度、行情等
账户类 /v1/account/* /v1/subuser/* 账户类接口,包括账户信息,子用户等
订单类 /v1/order/* 订单类接口,包括下单、撤单、订单查询、成交查询等

该分类为大类整理,部分接口未遵循此规则,请根据需求查看有关接口文档。

新限频规则

限频规则

除已单独标注限频值为NEW的接口外 -

比如:

请求格式

所有的API请求都是restful,目前只有两种方法:GET和POST

返回格式

所有的接口都是JSON格式。其中v1和v2接口的JSON定义略有区别。

v1接口返回格式:最上层有四个字段:status, ch, tsdata。前三个字段表示请求状态和属性,实际的业务数据在data字段里。

以下是一个返回格式的样例:

{
  "status": "ok",
  "ch": "market.ethbtc.kline.1day",
  "ts": 1499223904680,
  "data": // per API response data in nested JSON object
}
参数名称 数据类型 描述
status string API接口返回状态
ch string 接口数据对应的数据流。部分接口没有对应数据流因此不返回此字段
ts long 接口返回的UTC时间的时间戳,单位毫秒
data object 接口返回数据主体

v2接口返回格式:最上层有三个字段:code, messagedata。前两个字段表示返回码和错误消息,实际的业务数据在data字段里。

以下是一个返回格式的样例:

{
  "code": 200,
  "message": "",
  "data": // per API response data in nested JSON object
}
参数名称 数据类型 描述
code int API接口返回码
message string 错误消息(如果有)
data object 接口返回数据主体

数据类型

本文档对JSON格式中数据类型的描述做如下约定:

最佳实践

安全类

公共类

API访问建议

新限频规则

行情类

行情类数据的获取

最新成交价格的获取

盘口深度的获取

最新成交的获取

订单类

下单接口(/v1/order/orders/place)

搜索历史订单(/v1/order/orders)

订单状态变化的通知

账户类

资产变更

联系我们

做市商项目

欢迎有优秀 maker 策略且交易量大的用户参与长期做市商项目。如果您的火币新加坡现货账户有折合大于10BTC资产,请提供以下信息发送邮件至:

  1. 提供 UID (需不存在返佣关系的 UID);
  2. 提供其他交易平台 maker 交易量截图证明(比如30天内成交量,或者 VIP 等级等);
  3. 请简要阐述做市方法,不需要细节。

联系

技术支持

使用过程中如有问题或者建议,您可选择以下任一方式联系我们:

如您遇到API错误,请按照如下模板向我们反馈问题。

1. 问题描述
2. 问题发生的用户Id(UID),账户Id和订单Id(如果和账户、订单有关系)
3. 完整的URL请求
4. 完整的JSON格式的请求参数(如果有)
5. 完整的JSON格式的返回结果
6. 问题出现时间和频率(如何时开始出现,是否可以重现)
7. 签名前字符串(如果是签名认证错误)

下方是一个应用了模版的例子:

1. 问题简要说明:签名错误
2. UID:123456
3. 完整的URL请求:GET https://api.huobi.sg/v1/account/accounts?&SignatureVersion=2&SignatureMethod=HmacSHA256&Timestamp=2019-11-06T03%3A25%3A39&AccessKeyId=rfhxxxxx-950000847-boooooo3-432c0&Signature=HhJwApXKpaLPewiYLczwfLkoTPnFPHgyF61iq0iTFF8%3D
4. 完整的JSON格式的参数:无
5. 完整的JSON格式的返回:{"status":"error","err-code":"api-signature-not-valid","err-msg":"Signature not valid: Incorrect Access key [Access key错误]","data":null}
6. 问题出现频率:每次都会出现
7. 签名前字符串
GET\n
api.huobi.sg\n
/v1/account/accounts\n
AccessKeyId=rfhxxxxx-950000847-boooooo3-432c0&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2019-11-06T03%3A26%3A13

注意:Access Key仅能证明您的身份,不会影响您账户的安全。切记要将Secret Key信息分享给任何人,若您不小心将Secret Key暴露,请尽快删除其对应的API Key,以免造成您的账户损失。

行情数据

简介

行情数据接口提供了多种K线、深度以及最新成交记录等行情数据。

行情接口提供的数据每1分钟更新一次

K 线数据(蜡烛图)

此接口返回历史K线数据。K线周期以新加坡时间为基准开始计算,例如日K线的起始周期为新加坡时间0时至新加坡时间次日0时。

curl "https://api.huobi.sg/market/history/kline?period=1day&size=200&symbol=ethbtc"

HTTP 请求

请求参数

参数 数据类型 是否必须 默认值 描述 取值范围
symbol string true NA 交易对 ethbtc
period string true NA 返回数据时间粒度,也就是每根蜡烛的时间区间 1min, 5min, 15min, 30min, 60min, 4hour, 1day, 1mon, 1week, 1year
size integer false 150 返回 K 线数据条数 [1, 2000]

Response:

[  {    "id": 1499184000,    "amount": 37593.0266,    "count": 0,    "open": 1935.2000,    "close": 1879.0000,    "low": 1856.0000,    "high": 1940.0000,    "vol": 71031537.97866500  }]

响应数据

字段名称 数据类型 描述
id long 调整为新加坡时间的时间戳,单位秒,并以此作为此K线柱的id
amount float 以基础币种计量的交易量
count integer 交易次数
open float 本阶段开盘价
close float 本阶段收盘价
low float 本阶段最低价
high float 本阶段最高价
vol float 以报价币种计量的交易量

聚合行情(Ticker)

此接口获取ticker信息同时提供最近24小时的交易聚合信息。

curl "https://api.huobi.sg/market/detail/merged?symbol=ethbtc"

HTTP 请求

请求参数

参数 数据类型 是否必须 默认值 描述 取值范围
symbol string true NA 交易对 ltcbtc, ethbtc...(取值参考GET /v1/common/symbols

Response:

{  "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]}

响应数据

字段名称 数据类型 描述
id long NA
amount float 以基础币种计量的交易量(以滚动24小时计)
count integer 交易次数(以滚动24小时计)
open float 本阶段开盘价(以滚动24小时计)
close float 本阶段最新价(以滚动24小时计)
low float 本阶段最低价(以滚动24小时计)
high float 本阶段最高价(以滚动24小时计)
vol float 以报价币种计量的交易量(以滚动24小时计)
bid object 当前的最高买价 [price, size]
ask object 当前的最低卖价 [price, size]

所有交易对的最新 Tickers

获得所有交易对的 tickers。

curl "https://api.huobi.sg/market/tickers"

HTTP 请求

请求参数

此接口不接受任何参数。

Response:

[      {          "open":0.044297,      // 开盘价        "close":0.042178,     // 收盘价        "low":0.040110,       // 最低价        "high":0.045255,      // 最高价        "amount":12880.8510,          "count":12838,        "vol":563.0388715740,        "symbol":"ethbtc",        "bid":0.007545,        "bidSize":0.008,        "ask":0.008088,        "askSize":0.009    },    {          "open":0.008545,        "close":0.008656,        "low":0.008088,        "high":0.009388,        "amount":88056.1860,        "count":16077,        "vol":771.7975953754,        "symbol":"ltcbtc",        "bid":0.007545,        "bidSize":0.008,        "ask":0.008088,        "askSize":0.009    }]

响应数据

核心响应数据为一个对象列,每个对象包含下面的字段

字段名称 数据类型 描述
amount float 以基础币种计量的交易量(以滚动24小时计)
count integer 交易笔数(以滚动24小时计)
open float 开盘价(以新加坡时间自然日计)
close float 最新价(以新加坡时间自然日计)
low float 最低价(以新加坡时间自然日计)
high float 最高价(以新加坡时间自然日计)
vol float 以报价币种计量的交易量(以滚动24小时计)
symbol string 交易对,例如ltcbtc, ethbtc
bid float 买一价
bidSize float 买一量
ask float 卖一价
askSize float 卖一量

市场深度数据

此接口返回指定交易对的当前市场深度数据。

curl "https://api.huobi.sg/market/depth?symbol=ethbtc&type=step2"

HTTP 请求

请求参数

参数 数据类型 必须 默认值 描述 取值范围
symbol string true NA 交易对 Ltcbtc, ethbtc...(取值参考GET /v1/common/symbols
depth integer false 20 返回深度的数量 5,10,20
type string true step0 深度的价格聚合度,具体说明见下方 step0,step1,step2,step3,step4,step5

参数type的各值说明

取值 说明
step0 无聚合
step1 聚合度为报价精度*10
step2 聚合度为报价精度*100
step3 聚合度为报价精度*1000
step4 聚合度为报价精度*10000
step5 聚合度为报价精度*100000

Response:

{    "version": 31615842081,    "ts": 1489464585407,    "bids": [      [7964, 0.0678], // [price, size]      [7963, 0.9162],      [7961, 0.1],      [7960, 12.8898],      [7958, 1.2],      ...    ],    "asks": [      [7979, 0.0736],      [7980, 1.0292],      [7981, 5.5652],      [7986, 0.2416],      [7990, 1.9970],      ...    ]  }

响应数据

字段名称 数据类型 描述
ts integer 调整为新加坡时间的时间戳,单位毫秒
version integer 内部字段
bids object 当前的所有买单 [price, size]
asks object 当前的所有卖单 [price, size]

最近市场成交记录

此接口返回指定交易对最新的一个交易记录。

curl "https://api.huobi.sg/market/trade?symbol=ethbtc"

HTTP 请求

请求参数

参数 数据类型 是否必须 默认值 描述
symbol string true NA ltcbtc, ethbtc...(取值参考GET /v1/common/symbols

Response:

{    "id": 600848670,    "ts": 1489464451000,    "data": [      {        "id": 600848670,        "trade-id": 102043494568,        "price": 7962.62,        "amount": 0.0122,        "direction": "buy",        "ts": 1489464451000      }    ]}

响应数据

字段名称 数据类型 描述
id integer 唯一交易id(将被废弃)
trade-id integer 唯一成交ID(NEW)
amount float 以基础币种为单位的交易量
price float 以报价币种为单位的成交价格
ts integer 调整为新加坡时间的时间戳,单位毫秒
direction string 交易方向:“buy” 或 “sell”, “buy” 即买,“sell” 即卖

获得近期交易记录

此接口返回指定交易对近期的所有交易记录。

curl "https://api.huobi.sg/market/history/trade?symbol=ethbtc&size=2"

HTTP 请求

请求参数

参数 数据类型 是否必须 默认值 描述
symbol string true NA ltcbtc, ethbtc...(取值参考GET /v1/common/symbols
size integer false 1 返回的交易记录数量,最大值2000

Response:

[     {        "id":31618787514,      "ts":1544390317905,      "data":[           {              "amount":9.000000000000000000,            "ts":1544390317905,            "trade-id": 102043483472,            "id":3161878751418918529341,            "price":94.690000000000000000,            "direction":"sell"         },         {              "amount":73.771000000000000000,            "ts":1544390317905,            "trade-id": 102043483473            "id":3161878751418918532514,            "price":94.660000000000000000,            "direction":"sell"         }      ]   },   {        "id":31618776989,      "ts":1544390311353,      "data":[           {              "amount":1.000000000000000000,            "ts":1544390311353,            "trade-id": 102043494568,            "id":3161877698918918522622,            "price":94.710000000000000000,            "direction":"buy"         }      ]   }]

响应数据

参数 数据类型 描述
id integer 唯一交易id(将被废弃)
trade-id integer 唯一成交ID(NEW)
amount float 以基础币种为单位的交易量
price float 以报价币种为单位的成交价格
ts integer 调整为新加坡时间的时间戳,单位毫秒
direction string 交易方向:“buy” 或 “sell”, “buy” 即买,“sell” 即卖

最近24小时行情数据

此接口返回最近24小时的行情数据汇总。

curl "https://api.huobi.sg/market/detail?symbol=ethbtc"

HTTP 请求

请求参数

参数 数据类型 是否必须 默认值 描述
symbol string true NA ltcbtc, ethbtc...(取值参考GET /v1/common/symbols

Response:

{     "amount":613071.438479561,   "open":86.21,   "close":94.35,   "high":98.7,   "id":31619471534,   "count":138909,   "low":84.63,   "version":31619471534,   "vol":5.6617373443873316E7}

响应数据

字段名称 数据类型 描述
id integer 响应id
amount float 以基础币种计量的交易量(以滚动24小时计)
count integer 交易次数(以滚动24小时计)
open float 本阶段开盘价(以滚动24小时计)
close float 本阶段收盘价(以滚动24小时计)
low float 本阶段最低价(以滚动24小时计)
high float 本阶段最高价(以滚动24小时计)
vol float 以报价币种计量的交易量(以滚动24小时计)
version integer 内部数据

HTTP 请求

常见错误码

以下是行情数据接口返回的错误码、错误消息以及说明。

错误码 错误消息 说明
invalid-parameter invalid symbol 无效的交易对
invalid-parameter invalid period 请求K线,period参数错误
invalid-parameter invalid depth 深度depth参数错误
invalid-parameter invalid type 深度type 参数错误
invalid-parameter invalid size size参数错误
invalid-parameter invalid size,valid range: [1, 2000] size参数错误
invalid-parameter request timeout 请求超时

账户相关

简介

账户相关接口提供了账户、余额、历史、点卡等查询以及资产划转等功能。

账户信息

API Key 权限:读取
限频值(NEW):100次/2s

查询当前用户的所有账户 ID account-id 及其相关信息

HTTP 请求

请求参数

Response:

{  "data": [    {      "id": 100001,      "type": "spot",      "subtype": "",      "state": "working"    }  ]}

响应数据

参数名称 是否必须 数据类型 描述 取值范围
id true long account-id
state true string 账户状态 working:正常, lock:账户被锁定
type true string 账户类型 spot:现货账户

账户余额

API Key 权限:读取
限频值(NEW):100次/2s

查询指定账户的余额,支持以下账户:

spot:现货账户

HTTP 请求

请求参数

参数名称 是否必须 类型 描述 默认值 取值范围
account-id true string account-id,填在 path 中,取值参考 GET /v1/account/accounts

Response:

{  "data": {    "id": 100009,    "type": "spot",    "state": "working",    "list": [      {        "currency": "btc",        "type": "trade",        "balance": "5007.4362872650"      },      {        "currency": "btc",        "type": "frozen",        "balance": "348.1199920000"      }    ]  }}

响应数据

参数名称 是否必须 数据类型 描述 取值范围
id true long 账户 ID
state true string 账户状态 working:正常 lock:账户被锁定
type true string 账户类型 spot:现货账户
list false Array

list字段说明

参数名称 是否必须 数据类型 描述 取值范围
balance true string 余额
currency true string 币种
type true string 类型 trade: 交易余额,frozen: 冻结余额, lock: 锁仓

获取平台资产总估值

API Key 权限:读取

限频值(NEW):100次/2s

按照BTC或法币计价单位,获取平台账户的总资产估值。

HTTP 请求

请求参数

参数 是否必填 数据类型 描述 默认值 取值范围
accountType false string 账户类型,详见账户类型数据字典
valuationCurrency false string 不填默认为btc估值(目前暂只支持BTC估值,参数值需大写)

Responds:

{    "message": null,    "success": true,    "code":200,    "data":"{        "todayProfit": null,        "updated": null,        "totalBalance": "68232.925885978428351309",        "todayProfitRate": null,        "profitAccountBalanceList": [            {                "distributionType": "1",                "success": true,                "accountBalance": "68232.925885978428351309"            },            {                "distributionType": "2",                "success": true,                "accountBalance": "0"            },            {                "distributionType": "3",                "success": true,                "accountBalance": "0"            },            {                "distributionType": "4",                "success": true,                "accountBalance": "0"            },            {                "distributionType": "5",                "success": true,                "accountBalance": "0"            },            {                "distributionType": "6",                "success": true,                "accountBalance": "0"            },            {                "distributionType": "7",                "success": true,                "accountBalance": "0"            },            {                "distributionType": "8",                "success": true,                "accountBalance": "0"            },            {                "distributionType": "9",                "success": true,                "accountBalance": "0"            },            {                "distributionType": "10",                "success": true,                "accountBalance": "0"            },            {                "distributionType": "11",                "success": true,                "accountBalance": "0"            },            {                "distributionType": "12",                "success": true,                "accountBalance": "0"            },            {                "distributionType": "13",                "success": true,                "accountBalance": "0"            },            {                "distributionType": "14",                "success": true,                "accountBalance": "0"            },            {                "distributionType": "15",                "success": true,                "accountBalance": "0"            },            {                "distributionType": "16",                "success": false,                "accountBalance": "0"            }        ]        }"}

响应数据

参数名称 数据类型 描述
accountList List 账户资产列表
{accountType String 账户类型
accountBalance String 账户资产
success} Boolean 账户资产是否成功获取,为false时accountBalance返回0
timestamp long 数据返回时间,为unix time in millisecond

账户类型数据字典

code 说明
1 币币账户

获取指定账户资产估值(现货)

API Key 权限:读取

限频值(NEW):100次/2s

按照BTC或法币计价单位,获取指定账户的总资产估值。

HTTP 请求

请求参数

参数 是否必填 数据类型 描述 默认值 取值范围
accountType true string 账户类型 NA spot:现货账户
valuationCurrency false string 资产估值法币,即资产按哪个法币为单位进行估值。 BTC 可选法币有:USD、SGD (大小写敏感)

Responds:

{    "code": 200,    "data": {        "balance": "34.75",        "timestamp": 1594901254363    },    "ok": true}

返回字段

参数 是否必须 数据类型 说明
balance true string 按照某一个法币为单位的总资产估值
timestamp true long 数据返回时间,为unix time in millisecond

资产划转

API Key 权限:交易

其他划转功能将逐步上线,敬请期待。

HTTP 请求

请求参数

参数 是否必填 数据类型 说明 取值范围
from-account true long 转出账户id
to-account true long 转入账户id
currency true string 币种,即btc, ltc, bch, eth, etc ... 取值参考GET /v1/common/currencys
amount true string 划转金额

Response:

{    "status": "ok",    "data": {        "transact-id": 220521190,        "transact-time": 1590662591832    }}

响应数据

参数 是否必须 数据类型 说明 取值范围
status true string 状态 "ok" or "error"
data true list
{ transact-id true int 交易流水号
transact-time } true long 交易时间

账户流水

API Key 权限:读取
限频值(NEW):5次/2s

该节点基于用户账户ID返回账户流水。

HTTP Request

请求参数

参数名称 是否必需 数据类型 描述 缺省值 取值范围
account-id true string 账户编号,取值参考 GET /v1/account/accounts
currency false string 币种,即btc, ltc, bch, eth, etc ...(取值参考GET /v1/common/currencys)
transact-types false string 变动类型,可多选,以逗号分隔,包含动账类型列表详见注3 all trade (交易), transact-fee(交易手续费), transfer(划转), deposit(充币),withdraw(提币), withdraw-fee(提币手续费), exchange(兑换), other-types(其他)
start-time false long 远点时间 unix time in millisecond. 以transact-time为key进行检索. 查询窗口最大为1小时. 窗口平移范围为最近30天. ((end-time) – 1hour) [((end-time) – 1hour), (end-time)]
end-time false long 近点时间unix time in millisecond. 以transact-time为key进行检索. 查询窗口最大为1小时. 窗口平移范围为最近30天. current-time [(current-time) – 29days,(current-time)]
sort false string 检索方向 asc asc or desc
size false int 最大条目数量 100 [1,500]
from-id false long 起始编号(仅在下页查询时有效,见注2)

Response:

{    "status": "ok",    "data": [        {            "account-id": 5260185,            "currency": "btc",            "transact-amt": "0.002393000000000000",            "transact-type": "transfer",            "record-id": 89373333576,            "avail-balance": "0.002393000000000000",            "acct-balance": "0.002393000000000000",            "transact-time": 1571393524526        },        {            "account-id": 5260185,            "currency": "btc",            "transact-amt": "-0.002393000000000000",            "transact-type": "transfer",            "record-id": 89373382631,            "avail-balance": "0E-18",            "acct-balance": "0E-18",            "transact-time": 1571393578496        }    ]}

响应数据

字段名称 数据类型 描述 取值范围
status string 状态码 "ok","error"
data object
{ account-id long 账户编号
currency string 币种
transact-amt string 变动金额(入账为正 or 出账为负)
transact-type string 变动类型
avail-balance string 可用余额
acct-balance string 账户余额
transact-time long 交易时间(数据库记录时间)
record-id } long 数据库记录编号(全局唯一)
next-id long 下页起始编号(仅在查询结果需要分页返回时包含此字段,见注2)

注1:
账户流水中返回的交易返佣为到账金额,多笔成交产生的多笔返佣可能会合并到帐,成为一笔流水。

注2:
仅当用户请求查询的时间范围内的数据条目超出单页限制(由“size“字段设定)时,服务器才返回”next-id“字段。用户收到服务器返 回的”next-id“后 –
1) 须知晓后续仍有数据未能在本页返回;
2) 如需继续查询下页数据,应再次请求查询并将服务器返回的“next-id”作为“from-id“,其它请求参数不变。
3) 作为数据库记录ID,“next-id”和“from-id”除了用来翻页查询外,无其它业务含义。

注3:
变动类型包含动账类型明细列表:

变动类型 动账类型 描述
trade match-income 撮合成交收入
transfer spot-generic-transfer-in 币币账户 通用划转划入
transfer{ account-id spot-generic-transfer-outlong 币币账户 通用划转转出
deposit user-account-deposit 用户账户充值转账
withdraw user-account-withdraw 用户账户提现转账

财务流水

API Key 权限:读取

该节点基于用户账户ID返回财务流水。
一期上线暂时仅支持划转流水的查询(“transactType” = “transfer”)。
通过“startTime”/“endTime”框定的查询窗口最大为10天,意即,通过单次查询可检索的范围最大为10天。
该查询窗口可在最近180天范围内平移,意即,通过多次平移窗口查询,最多可检索到过往180天的记录。

HTTP Request

请求参数

参数名称 数据类型 是否必需 描述
accountId string TRUE 账户编号
currency string FALSE 币种 (缺省值所有币种)
transactTypes string FALSE 变动类型,可多填 (缺省值all) 枚举值: transfer
startTime long FALSE 远点时间(取值范围及缺省值见注1)
endTime long FALSE 近点时间(取值范围及缺省值见注2)
sort string FALSE 检索方向(asc 由远及近, desc 由近及远,缺省值desc)
limit int FALSE 单页最大返回条目数量 [1,500] (缺省值100)
fromId long FALSE 起始编号(仅在下页查询时有效,见注3)

注1:
startTime取值范围:[(endTime - 10天), endTime], unix time in millisecond
startTime缺省值:(endTime - 10天)

注2:
endTime取值范围:[(当前时间 - 180天), 当前时间], unix time in millisecond
endTime缺省值:当前时间

Response:

{"code": 200,"message": "success","data": [    {        "accountId": 5260185,        "currency": "btc",        "transactAmt": 1.000000000000000000,        "transactType": "transfer",        "transferType": "margin-transfer-out",        "transactId": 0,        "transactTime": 1585573286913,        "transferer": 5463409,        "transferee": 5260185    },    {        "accountId": 5260185,        "currency": "btc",        "transactAmt": -1.000000000000000000,        "transactType": "transfer",        "transferType": "margin-transfer-in",        "transactId": 0,        "transactTime": 1585573281160,        "transferer": 5260185,        "transferee": 5463409    }]}

响应数据

字段名称 数据类型 是否必需 描述 取值范围
code integer TRUE 状态码
message string FALSE 错误描述(如有)
data object TRUE 按用户请求参数sort中定义的顺序排列
{ accountId integer TRUE 账户编号
currency string TRUE 币种
transactAmt number TRUE 变动金额(入账为正 or 出账为负)
transactType string TRUE 变动类型 transfer(划转)
transferType string FALSE 划转类型(仅对transactType=transfer有效)
transactId integer TRUE 交易流水号
transactTime integer TRUE 交易时间
transferer integer FALSE 付款方账户ID
transferee } integer FALSE 收款方账户ID
nextId integer FALSE 下页起始编号(仅在查询结果需要分页返回时包含此字段,见注3。)

注3:
仅当用户请求查询的时间范围内的数据条目超出单页限制(由“limit“字段设定)时,服务器才返回”nextId“字段。用户收到服务器返回的”nextId“后 –
1) 须知晓后续仍有数据未能在本页返回;
2) 如需继续查询下页数据,应再次请求查询并将服务器返回的“nextId”作为“fromId“,其它请求参数不变。
3) 作为数据库记录ID,“nextId”和“fromId”除了用来翻页查询外,无其它业务含义。

钱包(充提相关)

简介

充提相关接口提供了充提记录等查询功能。

充提记录

此节点用于查询充提记录

API Key 权限:读取
限频值(NEW):20次/2s

HTTP 请求

请求参数

参数名称 是否必须 类型 描述 默认值 取值范围
currency false string 币种 btc, ltc, bch, eth, etc ...(取值参考GET /v1/common/currencys)
type true string 充值或提币 deposit 或 withdraw,子用户仅可用deposit
from false string 查询起始 ID 缺省时,默认值direct相关。当direct为‘prev’时,from 为1 ,从旧到新升序返回;当direct为’next‘时,from为最新的一条记录的ID,从新到旧降序返回
size false string 查询记录大小 100 1-500
direct false string 返回记录排序方向 缺省时,默认为“prev” (升序) “prev” (升序)or “next” (降序)

Response:

{  "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      },      ...    ]}

响应数据

参数名称 是否必须 数据类型 描述 取值范围
id true long 充币或者提币订单id,翻页查询时from参数取自此值
type true string 类型 'deposit', 'withdraw', 子用户仅有deposit
currency true string 币种
tx-hash true string 交易哈希。
chain true string 链名称
amount true float 个数
address true string 目的地址
address-tag true string 地址标签
fee true float 手续费
state true string 状态 状态参见下表
error-code false string 提币失败错误码,仅type为”withdraw“,且state为”reject“、”wallet-reject“和”failed“时有。
error-msg false string 提币失败错误描述,仅type为”withdraw“,且state为”reject“、”wallet-reject“和”failed“时有。
created-at true long 发起时间
updated-at true long 最后更新时间
状态 描述
unknown 状态未知
confirming 区块确认中
confirmed 区块已完成,已经上账,可以划转和交易
safe 区块已确认,可以提币
orphan 区块已被孤立
状态 描述
verifying 待验证
failed 验证失败
submitted 已提交
reexamine 审核中
canceled 已撤销
pass 审批通过
reject 审批拒绝
pre-transfer 处理中
wallet-transfer 已汇出
wallet-reject 钱包拒绝
confirmed 区块已确认
confirm-error 区块确认错误
repealed 已撤销

常见错误码

以下是充提相关接口返回的返回码、返回消息以及说明。

返回码 返回消息 说明
200 success 请求成功
500 error 系统错误
1002 unauthorized 未授权
1003 invalid signature 验签失败
2002 invalid field value in "field name" 非法字段取值
2003 missing mandatory field "field name" 强制字段缺失

现货

简介

现货交易接口提供了下单、撤单、订单查询、成交明细查询、手续费率查询等功能。

以下是订单业务相关的字段说明

订单类型 (type):订单类型由方向和行为类型组合而成,[方向]-[行为类型]

方向:

行为类型:

订单来源 (source)

订单状态 (state):

相关ID

client-order-id 时效:对于已完结状态订单,2小时内有效。(其他状态订单有效时间仍为8小时有效)即订单创建超过2h,将无法使用clientOrderId查询已完结状态订单,建议用户通过orderid进行查询。其中,已完结订单状态包括部分成交已撤销、已撤销和完全成交。

下单

API Key 权限:交易 限频值;100次/2s

发送一个新订单到火币新加坡以进行撮合。

HTTP 请求

Request:

{  "account-id": "100009",  "amount": "10.1",  "price": "100.1",  "source": "api",  "symbol": "ethbtc",  "type": "buy-limit",  "client-order-id": "a0001"}

请求参数

参数名称 数据类型 是否必需 默认值 描述
account-id string true NA 账户 ID,取值参考 GET /v1/account/accounts。现货交易使用 ‘spot’ 账户的 account-id
symbol string true NA 交易对,即ltcbtc, ethbtc...(取值参考GET /v1/common/symbols
type string true NA 订单类型,包括buy-market, sell-market, buy-limit, sell-limit,(说明见下文)
amount string true NA 订单交易量(市价买单为订单交易额)
price string false NA 订单价格(对市价单无效)
source string false spot-api 现货交易填写“spot-api”
client-order-id string false NA 用户自编订单号(最大长度64个字符,须在8小时内保持唯一性)

buy-limit-maker

当“下单价格”>=“市场最低卖出价”,订单提交后,系统将拒绝接受此订单;

当“下单价格”<“市场最低卖出价”,提交成功后,此订单将被系统接受。

sell-limit-maker

当“下单价格”<=“市场最高买入价”,订单提交后,系统将拒绝接受此订单;

当“下单价格”>“市场最高买入价”,提交成功后,此订单将被系统接受。

Response:

{    "data": "59378"}

响应数据

返回的主数据对象是一个对应下单单号的字符串。

如client order ID(在8小时内)被复用,节点将返回错误消息invalid.client.order.id。

批量下单

API Key 权限:交易
限频值(NEW):50次/2s

一个批量最多10张订单

HTTP 请求

Request:

[   {    "account-id": "123456",    "price": "7801",    "amount": "0.001",    "symbol": "ethbtc",    "type": "sell-limit",    "client-order-id": "c1"   },  {    "account-id": "123456",    "price": "7802",    "amount": "0.001",    "symbol": "ethbtc",    "type": "sell-limit",    "client-order-id": "d2"   }]

请求参数

参数名称 数据类型 是否必需 默认值 描述
[{ account-id string true NA 账户 ID,取值参考 GET /v1/account/accounts。现货交易使用 ‘spot’ 账户的 account-id
symbol string true NA 交易对,即ltcbtc, ethbtc...(取值参考GET /v1/common/symbols
type string true NA 订单类型,包括buy-market, sell-market, buy-limit, sell-limit(说明见下文)
amount string true NA 订单交易量(市价买单为订单交易额)
price string false NA 订单价格(对市价单无效)
source string false spot-api 现货交易填写“spot-api”
client-order-id string false NA 用户自编订单号(最大长度64个字符,须在8小时内保持唯一性)

buy-limit-maker

当“下单价格”>=“市场最低卖出价”,订单提交后,系统将拒绝接受此订单;

当“下单价格”<“市场最低卖出价”,提交成功后,此订单将被系统接受。

sell-limit-maker

当“下单价格”<=“市场最高买入价”,订单提交后,系统将拒绝接受此订单;

当“下单价格”>“市场最高买入价”,提交成功后,此订单将被系统接受。

Response:

{    "status": "ok",    "data": [        {            "order-id": 61713400772,            "client-order-id": "c1"        },        {            "order-id": 61713400940,            "client-order-id": "d2"        }    ]}

响应数据

字段名称 数据类型 描述
[{ order-id integer 订单编号
client-order-id string 用户自编订单号(如有)
err-code string 订单被拒错误码(仅对被拒订单有效)
err-msg }] string 订单被拒错误信息(仅对被拒订单有效)

如client order ID(在8小时内)被复用,节点返回先前订单的order ID及client order ID。

撤销订单

API Key 权限:交易
限频值(NEW):100次/2s

此接口发送一个撤销订单的请求。

HTTP 请求

请求参数

参数名称 是否必须 类型 描述 默认值 取值范围
order-id true string 订单ID,填在path中
symbol false string 交易对,填在URL请求参数中

Success response:

{    "data": "59378"}

响应数据

返回的主数据对象是一个对应下单单号的字符串。

错误码

Failure response:

{  "status": "error",  "err-code": "order-orderstate-error",  "err-msg": "订单状态错误",  "order-state":-1 // 当前订单状态}

返回字段列表中,order-state的可能取值包括 -

order-state Description
-1 order was already closed in the long past (order state = canceled, partial-canceled, filled, partial-filled)
1 created
3 submitted
4 partial-filled
5 partial-canceled
6 filled
7 canceled
10 cancelling

撤销订单(基于client order ID)

API Key 权限:交易
限频值(NEW):100次/2s

此接口基于client-order-id(8小时内有效)发送一个撤销订单的请求。

HTTP 请求

Request:

{  "client-order-id": "a0001"}

请求参数

参数名称 是否必须 类型 描述 默认值 取值范围
client-order-id true string 用户自编订单号,必须8小时内已有该订单存在,否则下次下单时不允许用此值

Response:

{    "data": "10"}

响应数据

字段名称 数据类型 描述
data integer 撤单状态码
Status Code Description
-1 order was already closed in the long past (order state = canceled, partial-canceled, filled, partial-filled)
0 client-order-id not found
1 created
3 submitted
4 partial-filled
5 partial-canceled
6 filled
7 canceled
10 cancelling

自动撤销订单

API Key 权限:交易

为了防止API用户在发生网络故障或用户端系统故障与火币新加坡系统失去联系时,给用户造成意外损失,火币新加坡新增自动撤单接口,当用户与火币新加坡发生意外断连时,能自动帮用户取消全部委托单,以避免损失,即提供Dead man's switch功能。若开启,在设定的时间数完前,接口没有被再次调用,则用户所有现货委托单将被取消(最大支持撤500单)。

HTTP 请求

Request:

{  "timeout": "10"}

请求参数

参数名称 是否必须 类型 描述 默认值 取值范围
timeout true int 超时时间(单位:秒),设置建议见附注 NA 0或者大于等于5秒

响应示例-开启成功 Response:

{"code": 200,"data": [    {       "currentTime":"1587971400",       "triggerTime":"1587971460"  }]}

响应示例-关闭成功 Response:

{"code": 200,"data": [    {       "currentTime":"1587971400",       "triggerTime":"0"  }]}

响应示例-开启/关闭失败 Response:

{"code": 2003,"message": "missing mandatory field"}

响应数据

参数名称 是否必须 数据类型 描述
code true int 状态码
message false string 错误描述(如有)
data true object
{ currentTime true long 当前时间
triggerTime } true long 触发时间

查询当前未成交订单

API Key 权限:读取
限频值(NEW):50次/2s

查询已提交但是仍未完全成交或未被撤销的订单。

HTTP 请求

Request:

{   "account-id": "100009",   "symbol": "ethbtc",   "side": "buy"}

请求参数

参数名称 数据类型 是否必需 默认值 描述
account-id string true NA 账户 ID,取值参考 GET /v1/account/accounts
symbol string ture NA 交易对,即ltcbtc, ethbtc...(取值参考GET /v1/common/symbols
side string false both 指定只返回某一个方向的订单,可能的值有: buy, sell. 默认两个方向都返回。
types string false 查询的订单类型组合,使用逗号分割
from string false 查询起始 ID,如果是向后查询,则赋值为上一次查询结果中得到的最后一条id ;如果是向前查询,则赋值为上一次查询结果中得到的第一条id
direct string false (如字段'from'已设定,此字段'direct'为必填) 查询方向,prev 向前;next 向后
size int false 100 返回订单的数量,最大值500。

Response:

{    "data": [    {      "id": 5454937,      "symbol": "ethbtc",      "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"    }  ]}

响应数据

字段名称 数据类型 描述
id integer 订单id,无大小顺序,可作为下一次翻页查询请求的from字段
client-order-id string 用户自编订单号(所有open订单可返回client-order-id)
symbol string 交易对, 例如ltcbtc, ethbtc
price string limit order的交易价格
created-at int 订单创建的调整为新加坡时间的时间戳,单位毫秒
type string 订单类型
filled-amount string 订单中已成交部分的数量
filled-cash-amount string 订单中已成交部分的总价格
filled-fees string 已交交易手续费总额(准确数值请参考matchresults接口)
source string 订单来源
state string 订单状态,包括created, submitted, partial-filled

批量撤销所有订单

API Key 权限:交易
限频值(NEW):50次/2s

此接口发送批量撤销所有(单次最大100个)订单的请求。

HTTP 请求

请求参数

参数名称 是否必须 类型 描述 默认值 取值范围
account-id false string 账户ID,取值参考 GET /v1/account/accounts
symbol false string 交易代码列表(最多10 个symbols,多个交易代码间以逗号分隔),ltcbtc, ethbtc...(取值参考/v1/common/symbols all
types false string 订单类型组合,使用逗号分割 所有可能的订单类型(见本章节简介)
side false string 主动交易方向 “buy”或“sell”,缺省将返回所有符合条件尚未成交订单
size false int 撤销订单的数量 100 [0,100]

Response:

{  "status": "ok",  "data": {    "success-count": 2,    "failed-count": 0,    "next-id": 5454600  }}

响应数据

参数名称 是否必须 数据类型 描述
success-count true int 成功取消的订单数
failed-count true int 取消失败的订单数
next-id true long 下一个可以撤销的订单号,返回-1表示没有可以撤销的订单

批量撤销指定订单

API Key 权限:交易
限频值(NEW):50次/2s

此接口同时为多个订单(基于id)发送取消请求,建议通过order-ids来撤单,比client-order-ids更快更稳定。

HTTP 请求

Request:

{  "client-order-ids": [   "5983466", "5722939", "5721027", "5719487"  ]}

请求参数

参数名称 是否必须 类型 描述 默认值 取值范围
order-ids false string[] 订单编号列表(order-ids和client-order-ids必须且只能选一个填写,不超过50张订单),建议通过order-ids来撤单,比client-order-ids更快更稳定 单次不超过50个订单
client-order-ids false string[] 用户自编订单号列表(order-ids和client-order-ids必须且只能选一个填写,不超过50张订单),必须已有该订单存在,否则下次下单时不允许用此值 单次不超过50个订单

Response:

{    "status": "ok",    "data": {        "success": [            "5983466"                    ],        "failed": [            {              "err-msg": "Incorrect order state",              "order-state": 7,              "order-id": "",              "err-code": "order-orderstate-error",              "client-order-id": "first"            },            {              "err-msg": "Incorrect order state",              "order-state": 7,              "order-id": "",              "err-code": "order-orderstate-error",              "client-order-id": "second"            },            {              "err-msg": "The record is not found.",              "order-id": "",              "err-code": "base-not-found",              "client-order-id": "third"            }          ]    }}

响应数据

字段名称 数据类型 描述
{ success string[] 撤单成功订单列表(可为order-id列表或client-order-id列表,以用户请求为准)
failed } string[] 撤单失败订单列表(可为order-id列表或client-order-id列表,以用户请求为准)

撤单失败订单列表 -

字段名称 数据类型 描述
[{ order-id string 订单编号(如用户创建订单时包含order-id,返回中也须包含此字段)
client-order-id string 用户自编订单号(如用户创建订单时包含client-order-id,返回中也须包含此字段)
err-code string 订单被拒错误码(仅对被拒订单有效)
err-msg string 订单被拒错误信息(仅对被拒订单有效)
order-state }] string 当前订单状态(若有)

返回字段列表中,order-state的可能取值包括 -

order-state Description
-1 order was already closed in the long past (order state = canceled, partial-canceled, filled, partial-filled)
1 created
3 submitted
4 partial-filled
5 partial-canceled
6 filled
7 canceled
10 cancelling

查询订单详情

API Key 权限:读取
限频值(NEW):50次/2s

此接口返回指定订单的最新状态和详情。通过API创建的订单,撤销超过2小时后无法查询。通过API创建的订单返回order-id,按此order-id查询订单还是返回base-record-invalid是因为系统内部处理有延迟,但是不影响成交。建议您后续重试查询或者通过订阅订单推送WebSocket消息查询。

HTTP 请求

请求参数

参数名称 是否必须 类型 描述 默认值 取值范围
order-id true string 订单ID,填在path中

Response:

{    "data":   {    "id": 59378,    "symbol": "ethbtc",    "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  }}

响应数据

字段名称 是否必须 数据类型 描述 取值范围
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 已成交手续费(准确数值请参考matchresults接口)
finished-at false long 订单变为终结态的时间,不是成交时间,包含“已撤单”状态
id true long 订单ID
client-order-id false string 用户自编订单号(所有open订单可返回client-order-id(如有);仅7天内(基于订单创建时间)的closed订单(state <> canceled)可返回client-order-id(如有);仅8小时内(基于订单创建时间)的closed订单(state = canceled)可返回client-order-id(如有))
price true string 订单价格
source true string 订单来源 api
state true string 订单状态 所有可能的订单状态(见本章节简介)
symbol true string 交易对 ltcbtc, ethbtc ...
type true string 订单类型 所有可能的订单类型(见本章节简介)

查询订单详情(基于client order ID)

API Key 权限:读取
限频值(NEW):50次/2s

此接口返回指定用户自编订单号(8小时内)的订单最新状态和详情。通过API创建的订单,撤销超过2小时后无法查询。建议通过GET /v1/order/orders/{order-id}来撤单,比使用clientOrderId更快更稳定

HTTP 请求

请求参数

参数名称 是否必须 类型 描述 默认值 取值范围
clientOrderId true string 用户自编订单号

Response:

{    "data":   {    "id": 59378,    "symbol": "ethbtc",    "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  }}

响应数据

字段名称 是否必须 数据类型 描述 取值范围
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 已成交手续费(准确数值请参考matchresults接口)
finished-at false long 订单变为终结态的时间,不是成交时间,包含“已撤单”状态
id true long 订单ID
client-order-id false string 用户自编订单号(仅8小时内(基于订单创建时间)的订单可被查询,订单状态是终态的2小时内可查询)
price true string 订单价格
source true string 订单来源 api
state true string 订单状态 所有可能的订单状态(见本章节简介)
symbol true string 交易对 ltcbtc, ethbtc...
type true string 订单类型 所有可能的订单类型(见本章节简介)

如client order ID不存在,返回如下错误信息 { "status": "error", "err-code": "base-record-invalid", "err-msg": "record invalid", "data": null }

成交明细

API Key 权限:读取
限频值(NEW):50次/2s

此接口返回指定订单的成交明细。

HTTP 请求

请求参数

参数名称 是否必须 类型 描述 默认值 取值范围
order-id true string 订单ID,填在path中

Response:

{    "status": "ok",    "data": [        {            "symbol": "polyusdt",            "fee-currency": "poly",            "source": "spot-web",            "order-id": 345487249132375,            "price": "0.338",            "created-at": 1629443051839,            "role": "taker",            "match-id": 5014,            "filled-amount": "147.928994082840236",            "filled-fees": "0",            "filled-points": "0.1",            "fee-deduct-currency": "hbpoint",            "fee-deduct-state": "done",            "trade-id": 1085,            "id": 313288753120940,            "type": "buy-market"        }    ]}

响应数据

字段名称 是否必须 数据类型 描述 取值范围
status true string 状态
true object
created-at true long 该成交记录创建的时间戳(略晚于成交时间)
filled-amount true string 成交数量
filled-fees true string 交易手续费(正值)或交易返佣金(负值)
fee-currency true string 交易手续费或交易返佣币种(买单的交易手续费币种为基础币种,卖单的交易手续费币种为计价币种;买单的交易返佣币种为计价币种,卖单的交易返佣币种为基础币种)
id true long 订单成交记录ID
match-id true long 撮合ID,订单在撮合中执行的顺序ID
order-id true long 订单ID,成交所属订单的ID
trade-id false integer Unique trade ID (NEW)唯一成交编号,成交时产生的唯一编号ID
price true string 成交价格
source true string 订单来源 api
symbol true string 交易对 btcusdt, ethbtc, rcneth ...
type true string 订单类型 所有可能的订单类型(见本章节简介)
role true string 成交角色 maker,taker

注:

搜索历史订单

API Key 权限:读取
限频值(NEW):50次/2s

此接口基于搜索条件查询历史订单。通过API创建的订单,撤销超过2小时后无法查询。

用户可选择以“时间范围”查询历史订单,以替代原先的以“日期范围“查询方式。

火币新加坡建议用户以“时间范围“查询历史订单。未来,火币新加坡将下线以”日期范围“查询历史订单的方式,并另行通知。

HTTP 请求

Request:

{   "account-id": "100009",   "amount": "10.1",   "price": "100.1",   "source": "api",   "symbol": "ethbtc",   "type": "buy-limit"}

请求参数

参数名称 是否必须 类型 描述 默认值 取值范围
symbol true string 交易对 ltcbtc, ethbtc...(取值参考GET /v1/common/symbols
types false string 查询的订单类型组合,使用逗号分割 所有可能的订单类型(见本章节简介)
start-time false long 查询开始时间, 时间格式UTC time in millisecond。 以订单生成时间进行查询 -48h 查询结束时间的前48小时 取值范围 [((end-time) – 48h), (end-time)] ,查询窗口最大为48小时,窗口平移范围为最近180天,已完全撤销的历史订单的查询窗口平移范围只有最近2小时(state="canceled")
end-time false long 查询结束时间, 时间格式UTC time in millisecond。 以订单生成时间进行查询 present 取值范围 [(present-179d), present] ,查询窗口最大为48小时,窗口平移范围为最近180天,已完全撤销的历史订单的查询窗口平移范围只有最近2小时(state="canceled")
states true string 查询的订单状态组合,使用','分割 所有可能的订单状态(见本章节简介)
from false string 查询起始 ID 如果是向后查询,则赋值为上一次查询结果中得到的最后一条id ;如果是向前查询,则赋值为上一次查询结果中得到的第一条id
direct false string 查询方向 prev 向前;next 向后
size false string 查询记录大小 100 [1, 100]

Response:

  "data": [    {      "id": 59378,      "symbol": "ethbtc",      "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    }  ]

响应数据

参数名称 是否必须 数据类型 描述 取值范围
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 已成交手续费(准确数值请参考matchresults接口)
finished-at false long 最后成交时间
id true long 订单ID,无大小顺序,可作为下一次翻页查询请求的from字段
client-order-id false string 用户自编订单号(所有open订单可返回client-order-id(如有);仅7天内(基于订单创建时间)的closed订单(state <> canceled)可返回client-order-id(如有);仅8小时内(基于订单创建时间)的closed订单(state = canceled)可被查询)
price true string 订单价格
source true string 订单来源 所有可能的订单来源(见本章节简介)
state true string 订单状态 所有可能的订单状态(见本章节简介)
symbol true string 交易对 ltcbtc, ethbtc ...
type true string 订单类型 所有可能的订单类型(见本章节简介)

start-date, end-date相关错误码

错误码 对应错误场景
invalid_interval start date小于end date; 或者 start date 与end date之间的时间间隔大于2天
invalid_start_date start date是一个180天之前的日期;或者start date是一个未来的日期
invalid_end_date end date 是一个180天之前的日期;或者end date是一个未来的日期

搜索最近48小时内历史订单

API Key 权限:读取
限频值(NEW):20次/2s

此接口基于搜索条件查询最近48小时内历史订单。通过API创建的订单,撤销超过2小时后无法查询。

HTTP 请求

Request:

{   "symbol": "ethbtc",   "start-time": "1556417645419",   "end-time": "1556533539282",   "direct": "prev",   "size": "10"}

请求参数

参数名称 是否必须 类型 描述 默认值 取值范围
symbol false string 交易对 all ltcbtc, ethbtc...(取值参考GET /v1/common/symbols
start-time false long 查询起始时间(含) 48小时前的时刻 UTC time in millisecond
end-time false long 查询结束时间(含) 查询时刻 UTC time in millisecond
direct false string 订单查询方向(注:仅在检索出的总条目数量超出size字段限定时起作用;如果检索出的总条目数量在size 字段限定内,direct 字段不起作用。) next prev 向前, next 向后
size false int 每次返回条目数量 100 [10,1000]

Response:

{    "status": "ok",    "data": [        {            "id": 31215214553,            "symbol": "ethbtc",            "account-id": 4717043,            "amount": "1.000000000000000000",            "price": "1.000000000000000000",            "created-at": 1556533539282,            "type": "buy-limit",            "field-amount": "0.0",            "field-cash-amount": "0.0",            "field-fees": "0.0",            "finished-at": 1556533568953,            "source": "web",            "state": "canceled",            "canceled-at": 1556533568911        }    ]}

响应数据

参数名称 是否必须 数据类型 描述 取值范围
{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 已成交手续费(准确数值请参考matchresults接口)
finished-at false long 最后成交时间
id true long 订单ID,无大小顺序
client-order-id false string 用户自编订单号(仅48小时内(基于订单创建时间)的closed订单(state <> canceled)可返回client-order-id(如有);仅8小时内(基于订单创建时间)的closed订单(state = canceled)可被查询)
price true string 订单价格
source true string 订单来源 所有可能的订单来源(见本章节简介)
state true string 订单状态 partial-canceled 部分成交撤销, filled 完全成交, canceled 已撤销
symbol true string 交易对 ltcbtc, ethbtc ...
type} true string 订单类型 所有可能的订单类型(见本章节简介)
next-time false long 下一查询起始时间(当请求字段”direct”为”prev”时有效), 下一查询结束时间(当请求字段”direct”为”next”时有效)。注:仅在检索出的总条目数量超出size字段限定时,此返回字段存在。 UTC time in millisecond

当前和历史成交

API Key 权限:读取
限频值(NEW):20次/2s

此接口基于搜索条件查询当前和历史成交记录。

HTTP 请求

请求参数

参数名称 是否必须 类型 描述 默认值 取值范围
symbol true string 交易对 N/A ltcbtc, ethbtc...(取值参考GET /v1/common/symbols
types false string 查询的订单类型组合,使用','分割 all 所有可能的订单类型(见本章节简介)
start-time false long 查询开始时间, 时间格式UTC time in millisecond。 以订单生成时间进行查询 -48h 查询结束时间的前48小时 取值范围 [((end-time) – 48h), (end-time)] ,查询窗口最大为48小时,窗口平移范围为最近120天。
end-time false long 查询结束时间, 时间格式UTC time in millisecond。 以订单生成时间进行查询 present 取值范围 [(present-120d), present] ,查询窗口最大为48小时,窗口平移范围为最近120天。
from false string 查询起始 ID N/A 如果是向后查询,则赋值为上一次查询结果中得到的最后一条id(不是trade-id) ;如果是向前查询,则赋值为上一次查询结果中得到的第一条id(不是trade-id)
direct false string 查询方向 next prev 向前;next 向后
size false string 查询记录大小 100 [1,500]

Response:

{    "status": "ok",    "data": [        {            "symbol": "polyusdt",            "fee-currency": "poly",            "source": "spot-web",            "price": "0.338",            "created-at": 1629443051839,            "role": "taker",            "order-id": 345487249132375,            "match-id": 5014,            "trade-id": 1085,            "filled-amount": "147.928994082840236",            "filled-fees": "0",            "filled-points": "0.1",            "fee-deduct-currency": "hbpoint",            "fee-deduct-state": "done",            "id": 313288753120940,            "type": "buy-market"        }    ]}

响应数据

参数名称 是否必须 数据类型 描述 取值范围
status true string 状态
true object
created-at true long 该成交记录创建的时间戳(略晚于成交时间)
filled-amount true string 成交数量
filled-fees true string 交易手续费(正值)或交易返佣(负值)
fee-currency true string 交易手续费或交易返佣币种(买单的交易手续费币种为基础币种,卖单的交易手续费币种为计价币种;买单的交易返佣币种为计价币种,卖单的交易返佣币种为基础币种)
id true long 订单成交记录 ID,无大小顺序,可作为下一次翻页查询请求的from字段
match-id true long 撮合 ID
order-id true long 订单 ID
trade-id false integer 唯一成交编号
price true string 成交价格
source true string 订单来源 api
symbol true string 交易对 btcusdt, ethbtc, rcneth ...
type true string 订单类型 所有可能的订单类型(见本章节简介)
role true string 成交角色 maker,taker

注:

start-date, end-date相关错误码

错误码 对应错误场景
invalid_interval start date小于end date; 或者 start date 与end date之间的时间间隔大于2天
invalid_start_date start date是一个61天之前的日期;或者start date是一个未来的日期
invalid_end_date end date 是一个61天之前的日期;或者end date是一个未来的日期

获取用户当前手续费率

Api用户查询交易对费率,一次限制最多查10个交易对,子用户的费率和母用户保持一致

API Key 权限:读取

curl "https://api.huobi.sg/v2/reference/transact-fee-rate?symbols=,ethbtc,ltcbtc"

HTTP 请求

请求参数

参数 数据类型 是否必须 默认值 描述 取值范围
symbols string true NA 交易对,可多填,逗号分隔 ltcbtc, ethbtc...(取值参考GET /v1/common/symbols)>

Response:

{  "code": "200",  "data": [     {        "symbol": "ethbtc",        "makerFeeRate":"0.002",        "takerFeeRate":"0.002",        "actualMakerRate": "0.002",        "actualTakerRate":"0.002     },     {        "symbol": "ethbtc",        "makerFeeRate":"0.002",        "takerFeeRate":"0.002",        "actualMakerRate": "0.002",        "actualTakerRate":"0.002    },     {        "symbol": "ltcbtc",        "makerFeeRate":"0.002",        "takerFeeRate":"0.002",        "actualMakerRate": "0.002",        "actualTakerRate":"0.002    }  ]}

响应数据

字段名称 数据类型 描述
code integer 状态码
message string 错误描述(如有)
data object
{ symbol string 交易代码
makerFeeRate string 基础费率 - 被动方,如适用交易手续费返佣,返回返佣费率(负值)
takerFeeRate string 基础费率 - 主动方
actualMakerRate string 抵扣后费率 - 被动方,如不适用抵扣或未启用抵扣,返回基础费率;如适用交易手续费返佣,返回返佣费率(负值)
actualTakerRate } string 抵扣后费率 – 主动方,如不适用抵扣或未启用抵扣,返回基础费率

注:

常见错误码

以下是交易相关接口返回的返回码以及说明。

返回码 说明
base-argument-unsupported 某参数不支持,请检查参数
base-system-error 系统错误,如果是撤单:缓存中查不到订单状态,该订单无法撤单;如果是下单:订单入缓存失败,请再次尝试
login-required url中没有Signature参数或找不到此用户(key与账户id不对应等情况)
base-record-invalid 暂时未找到数据,请稍后重试
order-amount-over-limit 订单数量超出限额
base-symbol-trade-disabled 该交易对被禁止交易
base-operation-forbidden 用户不在白名单内或该币种不允许OTC交易等禁止行为
account-get-accounts-inexistent-error 该账户在该用户下不存在
account-account-id-inexistent 该账户不存在
order-disabled 交易对暂停,无法下单
cancel-disabled 交易对暂停,无法撤单
order-invalid-price 下单价格非法(如市价单不能有价格,或限价单价格超过市场价10%)
order-accountbalance-error 账户余额不足
order-limitorder-price-min-error 卖出价格不能低于指定价格
order-limitorder-price-max-error 买入价格不能高于指定价格
order-limitorder-amount-min-error 下单数量不能低于指定数量
order-limitorder-amount-max-error 下单数量不能高于指定数量
order-etp-nav-price-min-error 下单价格不能低于净值的指定比率
order-etp-nav-price-max-error 下单价格不能高于净值等指定比率
order-orderprice-precision-error 交易价格精度错误
order-orderamount-precision-error 交易数额精度错误
order-value-min-error 订单交易额不能低于指定额度
order-marketorder-amount-min-error 卖出数量不能低于指定数量
order-marketorder-amount-buy-max-error 市价单买入额度不能高于指定额度
order-marketorder-amount-sell-max-error 市价单卖出数量不能高于指定数量
order-holding-limit-failed 下单超出该币种的持仓限额
order-type-invalid 订单类型非法
order-orderstate-error 订单状态错误
order-date-limit-error 查询时间不能超过系统限制
order-source-invalid 订单来源非法
order-update-error 更新数据错误
order-user-cancel-forbidden 订单类型为IOC或FOK 不允许撤单
order-price-greater-than-limit 下单价格高于开盘前下单限制价格,请重新下单
order-price-less-than-limit 下单价格低于开盘前下单限制价格,请重新下单
market-orders-not-support-during-limit-price-trading 限时下单不支持市价单
price-exceeds-the-protective-price-during-limit-price-trading 限价时间内价格超出保护价
invalid-client-order-id client order id 在最近的下单或撤单参数中已被使用
invalid-interval 查询起止窗口设置错误
invalid-start-date 查询起始日期含非法取值
invalid-end-date 查询起始日期含非法取值
invalid-start-time 查询起始时间含非法取值
invalid-end-time 查询起始时间含非法取值
validation-constraints-required 指定的必填参数缺失
symbol-not-support 交易对不支持,全仓杠杆或c2c
not-found 撤单时订单不存在
base-not-found 未找到记录
base_record_invalid 订单不存在 (传错订单ID)
dw_cancel_withdraw_failed 取消失败,订单状态错误
base_update_error 内部系统错误

常见问题

Q1:client-order-id是什么?

A: client-order-id作为下单请求标识的一个参数,类型为字符串,长度为64。 此id为用户自己生成,8小时内有效。如果是终态订单仅2小时有效。

Q2:如何获取下单数量、金额、小数限制、精度的信息?

A: 可使用 Rest API GET /v1/common/symbols 获取相关币对信息, 下单时注意最小下单数量和最小下单金额的区别。

常见返回错误如下:

Q3: 为什么收到订单成功成交的消息后再次进行下单,返回余额不足?

A:为保证订单的及时送达以及低延时, 订单推送的结果是在撮合后直接推送,此时订单可能并未完成资产的清算。

建议使用以下方式保证资金可以正确下单:

  1. 结合资产推送主题accounts同步接收资产变更的消息,确保资金已经完成清算。

  2. 收到订单推送消息时,使用Rest接口调用账户余额,验证账户资金是否足够。

  3. 账户中保留相对充足的资金余额。

Q4: 成交明细里的filled-fees和filled-points有什么区别?

A: 成交中的成交手续费分为普通手续费以及抵扣手续费两种类型,两种类型不会同时存在。

  1. 普通手续费表示,在成交时,使用原币进行手续费扣除。例如:在ETHBTC币种对下购买ETH,filled-fees字段不为空,表示扣除了普通手续费,单位是ETH。

Q5: 成交明细中match-id和trade-id有什么区别?

A: match-id表示订单在撮合中的顺序号,trade-id表示成交时的序号, 一个match-id可能有多个trade-id(成交时),也可能没有trade-id(创建订单、撤销订单)

Q6: 为什么基于当前盘口买一或者卖一价格进行下单触发了下单限价错误?

A: 当前火币新加坡有基于最新成交价上下一定幅度的限价保护,对流动性不好的币,基于盘口数据下单可能会触发限价保护。建议基于ws推送的成交价+盘口数据信息进行下单

Websocket行情数据

简介

接入URL

Global站行情请求地址(除MBP增量推送及MBP全量REQ以外Websocket行情频道)

wss://api.huobi.sg/ws

wss://api-aws.huobi.sg/ws

MBP增量推送及MBP全量REQ请求地址

wss://api.huobi.sg/feed

wss://api-aws.huobi.sg/feed

数据压缩

WebSocket 行情接口返回的所有数据都进行了 GZIP 压缩,需要 client 在收到数据之后解压。

心跳消息

{"ping": 1492420473027} 

当用户的Websocket客户端连接到火币新加坡Websocket服务器后,服务器会定期(当前设为5秒)向其发送ping消息并包含一整数值。

{"pong": 1492420473027} 

当用户的Websocket客户端接收到此心跳消息后,应返回pong消息并包含同一整数值。

订阅主题

Sub request:

{  "sub": "market.ethbtc.kline.1min",  "id": "id1"}

成功建立与Websocket服务器的连接后,Websocket客户端发送请求以订阅特定主题:

{ "sub": "topic to sub", "id": "id generate by client" }

Sub response:

{  "id": "id1",  "status": "ok",  "subbed": "market.ethbtc.kline.1min",  "ts": 1489474081631}

成功订阅后,Websocket客户端将收到确认。

之后, 一旦所订阅的主题有更新,Websocket客户端将收到服务器推送的更新消息(push)。

取消订阅

UnSub request:

{  "unsub": "market.ethbtc.trade.detail",  "id": "id4"}

取消订阅的格式如下:

{ "unsub": "topic to unsub", "id": "id generate by client" }

UnSub response:

{  "id": "id4",  "status": "ok",  "unsubbed": "market.ethbtc.trade.detail",  "ts": 1494326028889}

取消订阅成功确认。

请求数据

Websocket服务器同时支持一次性请求数据(pull)。

一次性请求的格式如下:

{ "req": "topic to req", "id": "id generate by client" }

一次性返回数据的具体格式参见各个主题。

限频

数据请求(req)限频规则

单个连接每两次请求不能小于100ms。

K线数据

主题订阅

一旦K线数据产生,Websocket服务器将通过此订阅主题接口推送至客户端:

market.$symbol$.kline.$period$

订阅请求

{  "sub": "market.ethbtc.kline.1min",  "id": "id1"}

参数

参数 数据类型 是否必需 描述 取值范围
symbol string true 交易代码 ltcbtc, ethbtc...
period string true K线周期 1min, 5min, 15min, 30min, 60min, 4hour, 1day, 1mon, 1week, 1year

Response

{  "id": "id1",  "status": "ok",  "subbed": "market.ethbtc.kline.1min",  "ts": 1489474081631 //system response time}

Update example

{  "ch": "market.ethbtc.kline.1min",  "ts": 1489474082831, //system update time  "tick": {    "id": 1489464480,    "amount": 0.0,    "count": 0,    "open": 7962.62,    "close": 7962.62,    "low": 7962.62,    "high": 7962.62,    "vol": 0.0  }}

数据更新字段列表

字段 数据类型 描述
id integer unix时间,同时作为K线ID
amount float 成交量
count integer 成交笔数
open float 开盘价
close float 收盘价(当K线为最晚的一根时,是最新成交价)
low float 最低价
high float 最高价
vol float 成交额, 即 sum(每一笔成交价 * 该笔的成交量)

数据请求

用请求方式一次性获取K线数据需要额外提供以下参数: (每次最多返回300条)

{  "req": "market.$symbol.kline.$period",  "id": "id generated by client",  "from": "from time in epoch seconds",  "to": "to time in epoch seconds"}
参数 数据类型 是否必需 缺省值 描述 取值范围
from integer false 1501174800(2017-07-28T00:00:00+08:00) 起始时间 (epoch time in second) [1501174800, 2556115200]
to integer false 2556115200(2050-01-01T00:00:00+08:00) 结束时间 (epoch time in second) [1501174800, 2556115200] or ($from, 2556115200] if "from" is set

聚合行情(Ticker)数据

主题订阅

获取市场聚合行情数据,每100ms推送一次。

market.$symbol.ticker

订阅请求

{  "sub": "market.ethbtc.ticker"}

请求参数

参数 数据类型 是否必须 默认值 描述 取值范围
symbol string true NA 交易对 ltcbtc, ethbtc...(取值参考GET /v1/common/symbols

Response:

{"ch": "market.ethbtc.ticker", "ts": 1628587397308, "tick": {"open": 44718.5, "high": 46711, "low": 44480.81, "close": 45868.99, "amount": 22527.427922989766, "vol": 1030630905.0136755, "count": 676424, "bid": 45868.98, "bidSize": 0.016782, "ask": 45868.99, "askSize": 3.1279664455029423, "lastPrice": 45868.99, "lastSize": 0.007444}}

响应数据

字段名称 数据类型 描述
id long NA
amount float 以基础币种计量的交易量(以滚动24小时计)
count integer 交易次数(以滚动24小时计)
open float 本阶段开盘价(以滚动24小时计)
close float 本阶段最新价(以滚动24小时计)
low float 本阶段最低价(以滚动24小时计)
high float 本阶段最高价(以滚动24小时计)
vol float 以报价币种计量的交易量(以滚动24小时计)
bid float 当前的最高买价
bidSize float 最高买价对应的量
ask float 当前的最低卖价
askSize float 最低卖价对应的量
lastPrice float 最新成交价
lastSize float 最新成交价对应的量

市场深度行情数据

此主题发送最新市场深度快照。快照频率为每秒1次。

主题订阅

market.$symbol.depth.$type

Subscribe request

{  "sub": "market.ethbtc.depth.step0",  "id": "id1"}

参数

参数 数据类型 是否必需 缺省值 描述 取值范围
symbol string true NA 交易代码 ltcbtc, ethbtc...(取值参考GET /v1/common/symbols
type string true step0 合并深度类型 step0, step1, step2, step3, step4, step5

"type" 合并深度类型

Value Description
step0 不合并深度
step1 Aggregation level = precision*10
step2 Aggregation level = precision*100
step3 Aggregation level = precision*1000
step4 Aggregation level = precision*10000
step5 Aggregation level = precision*100000

当type值为‘step0’时,默认深度为150档; 当type值为‘step1’,‘step2’,‘step3’,‘step4’,‘step5’时,默认深度为20档。

Response

{  "id": "id1",  "status": "ok",  "subbed": "market.ethbtc.depth.step0",  "ts": 1489474081631 //system response time}

Update example

{  "ch": "market.htbtc.depth.step0",  "ts": 1572362902027, //system update time  "tick": {    "bids": [      [3.7721, 344.86],// [price, size]      [3.7709, 46.66]     ],    "asks": [      [3.7745, 15.44],      [3.7746, 70.52]    ],    "version": 100434317651,    "ts": 1572362902012 //quote time  }}

数据更新字段列表

字段 数据类型 描述
bids object 当前的所有买单 [price, size]
asks object 当前的所有卖单 [price, size]
version integer 内部字段
ts integer 新加坡时间的时间戳,单位毫秒

数据请求

支持数据请求方式一次性获取市场深度数据:

{  "req": "market.ethbtc.depth.step0",  "id": "id10"}

市场深度MBP行情数据(增量推送)

用户可订阅此频道以接收最新深度行情Market By Price (MBP) 的增量数据推送;同时,该频道支持用户以req方式请求获取全量数据。

MBP增量推送及MBP全量REQ请求地址

wss://api.huobi.sg/feed

wss://api-aws.huobi.sg/feed

建议下游数据处理方式:
1) 订阅增量数据并开始缓存;
2) 请求全量数据(同等档位数)并根据该全量消息的seqNum与缓存增量数据中的prevSeqNum对齐;
3) 开始连续增量数据接收与计算,构建并持续更新MBP订单簿;
4) 每条增量数据的prevSeqNum须与前一条增量数据的seqNum一致,否则意味着存在增量数据丢失,须重新获取全量数据并对齐;
5) 如果收到增量数据包含新增price档位,须将该price档位插入MBP订单簿中适当位置;
6) 如果收到增量数据包含已有price档位,但size不同,须替换MBP订单簿中该price档位的size;
7) 如果收到增量数据某price档位的size为0值,须将该price档位从MBP订单簿中删除;
8) 如果收到单条增量数据中包含两个及以上price档位的更新,这些price档位须在MBP订单簿中被同时更新。

当前仅支持5档/20档MBP逐笔增量以及150档MBP快照增量的推送,二者的区别为 -
1) 深度不同;
2) 5档/20档为逐笔增量MBP行情,150档为100毫秒定时快照增量MBP行情;
3) 当5档/20档订单簿仅发生单边行情变化时,增量推送仅包含单边行情更新,比如,推送消息中包含数组asks,但不含数组bids;

{    "ch": "market.ethbtc.mbp.5",    "ts": 1573199608679,    "tick": {        "seqNum": 100020146795,        "prevSeqNum": 100020146794,        "asks": [            [645.140000000000000000, 26.755973959140651643]        ]    }}

当150档订单簿仅发生单边行情变化时,增量推送包含双边行情更新,但其中一边行情为空,比如,推送消息中包含数组asks更新的同时,也包含bids空数组;

{    "ch":"market.ethbtc.mbp.150",    "ts":1573199608679,    "tick":{        "seqNum":100020146795,        "prevSeqNum":100020146794,        "bids":[ ],        "asks":[            [645.14,26.75597395914065]        ]    }}

未来,150档增量推送的数据行为将与5档/20档增量保持一致,即,单边深度行情变更时,推送消息中将不包含另一边行情深度行情;
4) 当150档订单簿在100毫秒时间间隔内未发生变化时,增量推送包含bids和asks空数组;

{    "ch":"market.ethbtc.mbp.150",    "ts":1585074391470,    "tick":{        "seqNum":100772868478,        "prevSeqNum":100772868476,        "bids":[  ],        "asks":[  ]    }}

而5档/20档MBP逐笔增量,在订单簿未发生变化时,不推送数据;
未来,150档增量推送的数据行为将与5档增量保持一致,即,在订单簿未发生变化时,不再推送空消息;
5)5档/20档逐笔增量行情仅支持部分交易对(ethbtc,ltcbtc,bchbtc),150档快照增量支持全部交易对。

REQ频道支持5档/20档/150档全量数据的获取。

订阅增量推送

market.$symbol.mbp.$levels

Sub request

{  "sub": "market.ethbtc.mbp.5",  "id": "id1"}

请求全量数据

market.$symbol.mbp.$levels

Req request

{  "req": "market.ethbtc.mbp.5",  "id": "id2"}

参数

参数 数据类型 是否必需 缺省值 描述 取值范围
symbol string true NA 交易代码(不支持通配符)
levels integer true NA 深度档位(取值:5, 20, 150,400) 当前仅支持5档,20档,150或400档深度

Response (增量订阅)

{  "id": "id1",  "status": "ok",  "subbed": "market.ethbtc.mbp.5",  "ts": 1489474081631 //system response time}

Incremental Update (增量订阅)

{   "ch": "market.ethbtc.mbp.5",    "ts": 1573199608679, //system update time  "tick": {           "seqNum": 100020146795,            "prevSeqNum": 100020146794,           "asks": [                 [645.140000000000000000, 26.755973959140651643] // [price, size]           ]      }}

Response (全量请求)

{   "id": "id2",    "rep": "market.ethbtc.mbp.150", "status": "ok", "data": {       "seqNum": 100020142010,     "bids": [           [618.37, 71.594], // [price, size]          [423.33, 77.726],           [223.18, 47.997],           [219.34, 24.82],            [210.34, 94.463]    ],      "asks": [           [650.59, 14.909733438479636],           [650.63, 97.996],           [650.77, 97.465],           [651.23, 83.973],           [651.42, 34.465]        ]   }}

数据更新字段列表

字段 数据类型 描述
seqNum integer 消息序列号
prevSeqNum integer 上一消息序列号
bids object 买盘,按price降序排列,["price","size"]
asks object 卖盘,按price升序排列,["price","size"]

市场深度MBP行情数据(全量推送)

用户可订阅此频道以接收最新深度行情Market By Price (MBP) 的全量数据推送。推送频率为大约100毫秒一次。

订阅增量推送

market.$symbol.mbp.refresh.$levels

Sub request

{"sub": "market.ltcbtc.mbp.refresh.20","id": "id1"}

参数

参数 数据类型 是否必需 缺省值 描述 取值范围
symbol string true NA 交易代码(不支持通配符)
levels integer true NA 深度档位 5,10,20

Response

{"id": "id1","status": "ok","subbed": "market.ethbtc.mbp.refresh.20","ts": 1489474081631 //system response time}

Refresh Update

{"ch": "market.ethbtc.mbp.refresh.20","ts": 1573199608679, //system update time"tick": {        "seqNum": 100020142010,     "bids": [           [618.37, 71.594], // [price, size]          [423.33, 77.726],           [223.18, 47.997],           [219.34, 24.82],            [210.34, 94.463], ... // 省略余下15          ],      "asks": [           [650.59, 14.909733438479636],           [650.63, 97.996],           [650.77, 97.465],           [651.23, 83.973],           [651.42, 34.465], ... // 省略余下15      ]}}

数据更新字段列表

字段 数据类型 描述
seqNum integer 消息序列号
bids object 买盘,按price降序排列,["price","size"]
asks object 卖盘,按price升序排列,["price","size"]

买一卖一逐笔行情

当买一价、买一量、卖一价、卖一量,其中任一数据发生变化时,此主题推送逐笔更新。

主题订阅

market.$symbol.bbo

Subscribe request

{  "sub": "market.ethbtc.bbo",  "id": "id1"}

参数

参数 数据类型 是否必需 缺省值 描述 取值范围
symbol string true NA 交易代码 ltcbtc, ethbtc...(取值参考GET /v1/common/symbols

Response

{  "id": "id1",  "status": "ok",  "subbed": "market.ethbtc.bbo",  "ts": 1489474081631 //system response time}

Update example

{  "ch": "market.ethbtc.bbo",  "ts": 1489474082831, //system update time  "tick": {    "symbol": "ltcbtc",    "quoteTime": "1489474082811",    "bid": "10008.31",    "bidSize": "0.01",    "ask": "10009.54",    "askSize": "0.3",    "seqId":"10242474683"  }}

数据更新字段列表

字段 数据类型 描述
symbol string 交易代码
quoteTime long 盘口更新时间
bid float 买一价
bidSize float 买一量
ask float 卖一价
askSize float 卖一量
seqId int 消息序号

成交明细

主题订阅

此主题提供市场最新成交逐笔明细。

market.$symbol.trade.detail

Subscribe request

{  "sub": "market.ethbtc.trade.detail",  "id": "id1"}

参数

参数 数据类型 是否必需 缺省值 描述 取值范围
symbol string true NA 交易代码 ltcbtc, ethbtc...(取值参考GET /v1/common/symbols

Response

{  "id": "id1",  "status": "ok",  "subbed": "market.ethbtc.trade.detail",  "ts": 1489474081631 //system response time}

Update example

{  "ch": "market.ethbtc.trade.detail",  "ts": 1489474082831, //system update time  "tick": {        "id": 14650745135,        "ts": 1533265950234, //trade time        "data": [            {                "amount": 0.0099,                "ts": 1533265950234, //trade time                "id": 146507451359183894799,                "tradeId": 102043494568,                "price": 401.74,                "direction": "buy"            }            // more Trade Detail data here        ]  }}

数据更新字段列表

字段 数据类型 描述
id integer 唯一成交ID(将被废弃)
tradeId integer 唯一成交ID(NEW)
amount float 成交量(买或卖一方)
price float 成交价
ts integer 成交时间 (UNIX epoch time in millisecond)
direction string 成交主动方 (taker的订单方向) : 'buy' or 'sell'

数据请求

支持数据请求方式一次性获取成交明细数据(仅能获取最多最近300个成交记录):

{  "req": "market.ethbtc.trade.detail",  "id": "id11"}

市场概要

主题订阅

此主题提供24小时内最新市场概要快照。快照频率不超过每秒10次。

market.$symbol.detail

Subscribe request

{  "sub": "market.ethbtc.detail",  "id": "id1"}

参数

参数 数据类型 是否必需 缺省值 描述 取值范围
symbol string true NA 交易代码 ltcbtc, ethbtc...等

Response

{  "id": "id1",  "status": "ok",  "subbed": "market.ethbtc.detail",  "ts": 1489474081631 //system response time}

Update example

{  "ch": "market.ethbtc.detail",  "ts": 1494496390001, //system update time  "tick": {    "amount": 12224.2922,    "open":   9790.52,    "close":  10195.00,    "high":   10300.00,    "id":     1494496390,    "count":  15195,    "low":    9657.00,    "vol":    121906001.754751  }}

数据更新字段列表

字段 数据类型 描述
id integer unix时间,同时作为消息ID
amount float 24小时成交量
count integer 24小时成交笔数
open float 24小时开盘价
close float 最新价
low float 24小时最低价
high float 24小时最高价
vol float 24小时成交额

数据请求

支持数据请求方式一次性获取市场概要数据:

{  "req": "market.ethbtc.detail",  "id": "id11"}

Websocket资产及订单

简介

接入URL

Websocket资产及订单

wss://api.huobi.sg/ws/v2

wss://api-aws.huobi.sg/ws/v2

注:api-aws.huobi.sg域名对使用aws云服务的用户做了一定的链路延迟优化。

请使用中国大陆以外的服务器访问火币新加坡 API。

数据压缩

与行情WebSocket不同,资产和订单返回的数据未进行 GZIP 压缩。

心跳消息

当用户的Websocket客户端连接到火币新加坡WebSocket服务器后,服务器会定期(当前设为20秒)向其发送Ping消息并包含一整数值如下:

{   "action": "ping",   "data": {       "ts": 1575537778295 }}

当用户的Websocket客户端接收到此心跳信息后,应返回Pong消息并包含同一整数值:

{    "action": "pong",    "data": {          "ts": 1575537778295 // 使用Ping消息中的ts值    }}

action的有效取值

有效取值 取值说明
sub 订阅数据
req 数据请求
ping、pong 心跳数据
push 推送数据,服务端发送至客户端数据类型

限频

此版本对用户采取了多维度的限频策略,具体策略如下:

鉴权

鉴权请求格式如下:

{    "action": "req",     "ch": "auth",    "params": {         "authType":"api",        "accessKey": "e2xxxxxx-99xxxxxx-84xxxxxx-7xxxx",        "signatureMethod": "HmacSHA256",        "signatureVersion": "2.1",        "timestamp": "2019-09-01T18:16:16",        "signature": "4F65x5A2bLyMWVQj3Aqp+B4w+ivaA7n5Oi2SuYtCJ9o="    }}

鉴权成功后返回数据格式如下:

{   "action": "req",    "code": 200,    "ch": "auth",   "data": {}}

参数说明

字段 是否必需 数据类型 描述
action true string Websocket数据操作类型,鉴权固定值为req
ch true string 请求主题,鉴权固定值为auth
authType true string 鉴权类型,鉴权固定值为api。注意,该参数不在签名计算中。
accessKey true string 您申请的API Key中的AccessKey
signatureMethod true string 签名方法,用户计算签名寄语哈希的协议,固定值为HmacSHA256
signatureVersion true string 签名协议版本,固定值为2.1
timestamp true string 时间戳,您发出请求的时间(UTC时间)在查询请求中包含此值有助于防止第三方截取您的请求。如:2017-05-11T16:22:06。再次强调是 (UTC 时区)
signature true string 签名, 计算得出的值,用于确保签名有效和未被篡改

签名步骤

资产和订单WebSocket签名与Rest接口签名步骤相似,具体区别如下:

  1. 生成参与签名的字符串时,请求方法固定使用GET,请求地址固定为/ws/v2

  2. 生成参与签名的固定参数名替换为:accessKey,signatureMethod,signatureVersion,timestamp

  3. signatureVersion版本升级为2.1

Rest接口签名步骤,您可以点击 这里 获取。

签名前最后生成的字符串如下:

GET\napi.huobi.sg\n/ws/v2\naccessKey=0664b695-rfhfg2mkl3-abbf6c5d-49810&signatureMethod=HmacSHA256&signatureVersion=2.1&timestamp=2019-12-05T11%3A53%3A03

注:JSON请求中的数据不需要URL编码。

订阅主题

成功建立与Websocket服务器的连接后,Websocket客户端发送如下请求以订阅特定主题:

{   "action": "sub",    "ch": "accounts.update"}

订阅成功Websocket客户端会接收到如下消息:

{   "action": "sub",    "code": 200,    "ch": "accounts.update#0",  "data": {}}

请求数据

成功建立Websocket服务器的连接后,Websocket客户端发送如下请求用以获取一次性数据:

{    "action": "req",     "ch": "topic",}

请求成功后Websocket客户端会收到如下消息:

{    "action": "req",    "ch": "topic",    "code": 200,    "data": {} // 请求数据体}

订阅订单更新

API Key 权限:读取

订单的更新推送由任一以下事件触发:

不同事件类型所推送的消息中,字段列表略有不同。开发者可以采取以下两种方式设计返回的数据结构:

订阅主题

orders#${symbol}

订阅参数

Subscribe request

{   "action": "sub",    "ch": "orders#ethbtc"}

Response

{   "action": "sub",    "code": 200,    "ch": "orders#ethbtc",  "data": {}}
参数 数据类型 描述
symbol string 交易代码(支持通配符 * )

数据更新字段列表

Update example

{   "action":"push",    "ch":"orders#ethbtc",   "data": {       "orderSide":"buy",      "lastActTime":1583853365586,        "clientOrderId":"abc123",       "orderStatus":"rejected",       "symbol":"ltcbtc",      "eventType":"trigger",      "errCode": 2002,        "errMessage":"invalid.client.order.id (NT)" }}

当计划委托/追踪委托触发失败后 –

字段 数据类型 描述
eventType string 事件类型,有效值:trigger(本事件仅对计划委托/追踪委托有效)
symbol string 交易代码
clientOrderId string 用户自编订单号
orderSide string 订单方向,有效值:buy,sell
orderStatus string 订单状态,有效值:rejected
errCode int 订单触发失败错误码
errMessage string 订单触发失败错误消息
lastActTime long 订单触发失败时间

Update example

{   "action":"push",    "ch":"orders#ethbtc",   "data": {       "orderSide":"buy",      "lastActTime":1583853365586,        "clientOrderId":"abc123",       "orderStatus":"canceled",       "symbol":"ltcbtc",      "eventType":"deletion"  }}

当计划委托/追踪委托在触发前被撤销后 –

字段 数据类型 描述
eventType string 事件类型,有效值:deletion(本事件仅对计划委托/追踪委托有效)
symbol string 交易代码
clientOrderId string 用户自编订单号
orderSide string 订单方向,有效值:buy,sell
orderStatus string 订单状态,有效值:canceled
lastActTime long 订单撤销时间

Update example

{   "action":"push",    "ch":"orders#ethbtc",   "data": {       "orderSize":"2.000000000000000000",     "orderCreateTime":1583853365586,        "accountId":992701,     "orderPrice":"77.000000000000000000",       "type":"sell-limit",        "orderId":27163533,     "clientOrderId":"abc123",       "orderSource":"spot-api",       "orderStatus":"submitted",      "symbol":"ethbtc",      "eventType":"creation"  }}

当订单挂单后 –

字段 数据类型 描述
eventType string 事件类型,有效值:creation
symbol string 交易代码
accountId long 账户ID
orderId long 订单ID
clientOrderId string 用户自编订单号(如有)
orderSource string 订单来源
orderPrice string 订单价格
orderSize string 订单数量(对市价买单无效)
orderValue string 订单金额(仅对市价买单有效)
type string 订单类型,有效值:buy-market, sell-market, buy-limit, sell-limit,
orderStatus string 订单状态,有效值:submitted
orderCreateTime long 订单创建时间

注:

Update example

{   "action":"push",    "ch":"orders#ethbtc",   "data": {       "tradePrice":"76.000000000000000000",       "tradeVolume":"1.013157894736842100",       "tradeId":301,      "tradeTime":1583854188883,      "aggressor":true,       "remainAmt":"0.000000000000000400000000000000000000",       "execAmt":"2",      "orderId":27163536,     "type":"sell-limit",        "clientOrderId":"abc123",       "orderSource":"spot-api",       "orderPrice":"15000",       "orderSize":"0.01",     "orderStatus":"filled",     "symbol":"ethbtc",      "eventType":"trade" }}

当订单成交后 –

字段 数据类型 描述
eventType string 事件类型,有效值:trade
symbol string 交易代码
tradePrice string 成交价
tradeVolume string 成交量
orderId long 订单ID
type string 订单类型,有效值:buy-market, sell-market, buy-limit, sell-limit
clientOrderId string 用户自编订单号(如有)
orderSource string 订单来源
orderPrice string 原始订单价(市价单无效)
orderSize string 原始订单数量(市价买单无效)
orderValue string 原始订单金额(仅对市价买单有效)
tradeId long 成交ID
tradeTime long 成交时间
aggressor bool 是否交易主动方,有效值: true (taker), false (maker)
orderStatus string 订单状态,有效值:partial-filled, filled
remainAmt string 该订单未成交数量(市价买单为未成交金额)
execAmt string 该订单累计成交量(市价买单为成交金额)

注:

Update example

{   "action":"push",    "ch":"orders#ethbtc",   "data": {       "lastActTime":1583853475406,        "remainAmt":"2.000000000000000000",     "execAmt":"2",      "orderId":27163533,     "type":"sell-limit",        "clientOrderId":"abc123",       "orderSource":"spot-api",       "orderPrice":"15000",       "orderSize":"0.01",     "orderStatus":"canceled",       "symbol":"ethbtc",      "eventType":"cancellation"  }}

当订单被撤销后 –

字段 数据类型 描述
eventType string 事件类型,有效值:cancellation
symbol string 交易代码
orderId long 订单ID
type string 订单类型,有效值:buy-market, sell-market, buy-limit, sell-limit
clientOrderId string 用户自编订单号(如有)
orderSource string 订单来源
orderPrice string 原始订单价(市价单无效)
orderSize string 原始订单数量(市价买单无效)
orderValue string 原始订单金额(仅对市价买单有效)
orderStatus string 订单状态,有效值:partial-canceled, canceled
remainAmt string 该订单未成交数量(市价买单为未成交金额)
execAmt string 该订单累计成交量(市价买单为成交金额)
lastActTime long 订单最近更新时间
注:

订阅清算后成交及撤单更新

API Key 权限:读取

仅当用户订单成交或撤销时推送。其中,订单成交为逐笔推送,如一张 taker 订单同时与多张 maker 订单成交,该接口将推送逐笔更新。但用户收到的这几笔成交消息的次序,有可能与实际的成交次序不完全一致。另外,如果一张订单的成交及撤销几乎同时发生,例如 IOC 订单成交后剩余部分被自动撤销,用户可能会先收到撤单推送,再收到成交推送。

如用户需要获取依次更新的订单推送,建议订阅另一频道 orders#${symbol}。

订阅主题

trade.clearing#${symbol}#${mode}

订阅参数

参数 数据类型 是否必需 描述
symbol string TRUE 交易代码(支持通配符 * )
mode int FALSE 推送模式(0 - 仅在订单成交时推送;1 - 在订单成交、撤销时均推送;缺省值:0)

注:
可选订阅参数 mode,如不填或填0,仅推送成交事件;如填1,推送成交及撤销事件。

Subscribe request

{   "action": "sub",    "ch": "trade.clearing#ltcbtc#0"}

Response

{   "action": "sub",    "code": 200,    "ch": "trade.clearing#ltcbtc#0",    "data": {}}

Update example

{    "ch": "trade.clearing#ltcbtc#0",    "data": {         "eventType": "trade",         "symbol": "ethbtc",         "orderId": 99998888,         "tradePrice": "9999.99",         "tradeVolume": "0.96",         "orderSide": "buy",         "aggressor": true,         "tradeId": 919219323232,         "tradeTime": 998787897878,         "transactFee": "19.88",         "feeDeduct ": "0",         "feeDeductType": "",         "feeCurrency": "btc",         "accountId": 9912791,         "source": "spot-api",         "orderPrice": "10000",         "orderSize": "1",         "clientOrderId": "a001",         "orderCreateTime": 998787897878,         "orderStatus": "partial-filled"    }}

数据更新字段列表(当订单成交后)

字段 数据类型 描述
eventType string 事件类型(trade)
symbol string 交易代码
orderId long 订单ID
tradePrice string 成交价
tradeVolume string 成交量
orderSide string 订单方向,有效值: buy, sell
orderType string 订单类型,有效值: buy-market, sell-market,buy-limit
aggressor bool 是否交易主动方,有效值: true, false
tradeId long 交易ID
tradeTime long 成交时间,unix time in millisecond
transactFee string 交易手续费(正值)或交易手续费返佣(负值)
feeCurrency string 交易手续费或交易手续费返佣币种(买单的交易手续费币种为基础币种,卖单的交易手续费币种为计价币种;买单的交易手续费返佣币种为计价币种,卖单的交易手续费返佣币种为基础币种)
feeDeduct string 交易手续费抵扣
feeDeductType string 交易手续费抵扣类型,有效值: ht, point
accountId long 账户编号
source string 订单来源
orderPrice string 订单价格 (市价单无此字段)
orderSize string 订单数量(市价买单无此字段)
orderValue string 订单金额(仅市价买单有此字段)
clientOrderId string 用户自编订单号
orderCreateTime long 订单创建时间
orderStatus string 订单状态,有效值:filled, partial-filled

注:

数据更新字段列表(当订单撤销后)

字段 数据类型 描述
eventType string 事件类型(cancellation)
symbol string 交易代码
orderId long 订单ID
orderSide string 订单方向,有效值: buy, sell
orderType string 订单类型,有效值: buy-market, sell-market,buy-limit,sell-limit
accountId long 账户编号
source string 订单来源
orderPrice string 订单价格 (市价单无此字段)
orderSize string 订单数量(市价买单无此字段)
orderValue string 订单金额(仅市价买单有此字段)
clientOrderId string 用户自编订单号
orderCreateTime long 订单创建时间
remainAmt string 未成交量(对于市价买单,该字段定义为未成交额)
orderStatus string 订单状态,有效值:canceled, partial-canceled

订阅账户变更

API Key 权限:读取

订阅账户的余额更新。

订阅主题

accounts.update#${mode}

用户可选择以下任一账户变更推送的触发方式

1、仅在账户余额发生变动时推送;

2、在账户余额发生变动或可用余额发生变动时均推送,且分别推送。

3、在账户余额发生变动或可用余额发生变动时均推送,且一起推送。

注意:现货和合约之间的账户划转引起的账户余额变动,暂时没有消息推送。

订阅参数

参数 数据类型 描述
mode integer 推送方式,有效值:0,1,2 默认值:0

订阅示例

1、不填mode:

accounts.update

仅当账户余额变动时推送;

2、填写mode=0:

accounts.update#0

仅当账户余额变动时推送;

3、填写mode=1:

accounts.update#1

在账户余额发生变动或可用余额发生变动时均推送且分别推送。

4、填写mode=2:

accounts.update#2

在账户余额发生变动或可用余额发生变动时均推送且一起推送。

注:无论用户采用哪种模式订阅,在订阅成功后,服务器将首先推送当前各账户的账户余额与可用余额,然后再推送后续的账户更新。在首推各账户初始值时,消息中的changeType和changeTime的值为null。

Subscribe request

{   "action": "sub",    "ch": "accounts.update"}

Response

{   "action": "sub",    "code": 200,    "ch": "accounts.update#0",  "data": {}}

Update example

accounts.update#0{   "action": "push",   "ch": "accounts.update#0",  "data": {       "currency": "btc",      "accountId": 123456,        "balance": "23.111",        "changeType": "transfer",               "accountType":"trade",      "changeTime": 1568601800000 }}accounts.update#1{ "action": "push",   "ch": "accounts.update#1",  "data": {       "currency": "btc",      "accountId": 33385,     "available": "2028.699426619837209087",     "changeType": "order.match",                "accountType":"trade",      "changeTime": 1574393385167 }}{ "action": "push",   "ch": "accounts.update#1",  "data": {       "currency": "btc",      "accountId": 33385,     "balance": "2065.100267619837209301",       "changeType": "order.match",            "accountType":"trade",      "changeTime": 1574393385122 }}

数据更新字段列表

字段 数据类型 描述
currency string 币种
accountId long 账户ID
balance string 账户余额(仅当账户余额发生变动时推送)
available string 可用余额(仅当可用余额发生变动时推送)
changeType string 余额变动类型,有效值:order-place(订单创建),order-match(订单成交),order-refund(订单成交退款),order-cancel(订单撤销),deposit (充币), withdraw (提币),other(其他资产变化)
accountType string 账户类型,有效值:trade, loan, interest
changeTime long 余额变动时间,unix time in millisecond

注:
账户更新推送的是到账金额,多笔成交产生的多笔交易返佣可能会合并到帐。

常见错误码

以下是WebSocket资产和订单接口的错误码、错误消息和说明。

错误码 错误消息 说明
200 正确 正确返回
100 超时关闭 超时关闭
400 Bad Request 请求错误
404 Not Found 找不到服务
429 Too Many Requests 超过单机服务最大连接数或者超过单IP最大连接数
500 系统异常 系统错误
2000 invalid.ip 无效的ip
2001 nvalid.json 无效的请求json
2001 invalid.authType 验签方式错误
2001 invalid.action 无效的订阅事件
2001 invalid.symbol 无效的交易对
2001 invalid.ch 无效的订阅
2001 invalid.exchange 无效的交易所code
2001 missing.param.auth 缺少验签参数
2002 invalid.auth.state 认证未通过
2002 auth.fail 验签失败,包括API Key绑定的IP错误
2003 query.account.list.error 查询账户列表失败
4000 too.many.request 客户端上行请求限频(单个实例50次/秒)
4000 too.many.connection 同一个API Key的建联数量超过服务器单个实例限制(单个实例最多连接10个)