API 开发者接口

接口URI前缀: /api/v2
返回结果格式: JSON

Public/Private API

开发者接口包含两类 API: Public API 是不需要任何验证就可以使用的接口,而 Private API 是需要进行签名验证的接口。

PUBLIC APIPRIVATE API
验证无需验证需要验证
使用频率无限制每 5 分钟每个用户 600 个请求
准备工作无需准备立即可用登录后通过 API密钥 页面获取

如何签名 (验证)

在给一个 Private API 请求签名之前, 你必须准备好你的 access/secret_key,注册并认证通过之后,只需访问 API 密钥管理 页面就可以得到此信息。

所有的 Private API 都需要这3个用于身份验证的参数:

access_key
access_key 请通过 API 密钥管理 获得。
tonce
tonce 是一个用正整数表示的时间戳,代表了从 Unix epoch 到当前时间所经过的毫秒数。tonce与服务器时间误差为正负30秒,且每个 tonce 数值只能使用一次。
signature
signature 通过 API 密钥管理 获得 secret_key 后所生成的签名。

签名步骤

签名的生成很简单,先把将要发起的请求表示为一个字符串,然后对这个字符串做 HMAC-SHA256 运算:

hash = HMAC-SHA256(payload, secret_key).to_hex

其中 payload 就是代表这个请求的字符串, 通过组合 HTTP方法、请求地址和请求参数将会得到:

假设 secret_keyyyy,那么使用 HMAC-SHA256 算法对上面例子中的 payload 计算的结果是 (以hex表示):

现在我们就可以这样来使用这个签名请求(以curl为例):

返回结果

如果API调用失败,返回的请求会使用对应的HTTP status code, 同时返回包含了详细错误信息的JSON数据, 比如:

{"error": {"code": CODE, "message": MESSAGE}}

所有错误都遵循上面例子的格式,只是 CODEMESSAGE 不同。CODE 是自定义的错误,代码表明此错误的类别,MESSAGE 是具体的出错信息。

对于成功的 API 请求,则会返回 200 作为 HTTP 状态码,同时返回请求的结果数据。

数据结构

Market
Market 包含了某一个市场的所有信息,例如 BTCUSD。

Member
Member 包含了用户的所有信息。

Account
Account 包含了用户单个币种账户的信息。

Order
Order 包含了单个订单的所有信息。

Trade
Trade 包含订单撮合后形成的一笔交易。

OrderBook
OrderBook 包含了当前市场的挂单信息。

注意事项

取消挂单

取消挂单取消全部挂单 是一个异步操作,API 成功返回仅代表取消请求已经成功提交,服务器正在处理,并不代表订单已经完成取消。当你的挂单有尚未处理的成交事务或者取消请求队列繁忙时,该挂单会被延迟取消。API 返回被取消的挂单,返回结果中的挂单不一定处于取消状态,你的代码不应该依赖 API 返回结果,而应该通过 挂单查询接口 来得到该订单的最新状态。

库/工具 列表