简介
API 简介
欢迎使用HotBit API!
此文档是HotBit API的唯一官方文档,HotBit API提供的能力会在此持续更新,请大家及时关注。
你可以通过点击上方菜单来切换获取不同业务的API,还可通过点击右上方的语言按钮来切换文档语言。
文档右侧是针对请求参数以及响应结果的示例。
做市商项目
欢迎有优秀 maker 策略且交易量大的用户参与长期做市商项目。如果您的HotBit现货账户或者合约账户中有折合大于10BTC资产(币币和合约账户分开统计),请提供以下信息发送邮件至:
- makerbusiness@hotbit.io HotBit Global(现货 / 杠杆)做市商申请;
- makerbusiness@hotbit.io HotbitContract(合约)做市商申请。
- 提供 UID (需不存在返佣关系的 UID);
- 提供其他交易平台 maker 交易量截图证明(比如30天内成交量,或者 VIP 等级等);
- 请简要阐述做市方法,不需要细节。
联系我们
使用过程中如有问题或者建议,您可选择以下任一方式联系我们:
- 加入官方Telegram群(HotBit网API交流群a https://t.me/Hotbit_Chinese ),入群申请请注明UID和编程语言,待群管理员审核通过后即可入群。
快速入门
接入准备
如需使用API ,请先登录网页端,完成API key的申请和权限配置,再据此文档详情进行开发和交易。
您可以点击 这里 创建 API Key。
每个用户可创建5组Api Key,每个Api Key可对应设置读取、交易两种权限。
权限说明如下:
- 读取权限:读取权限用于对数据的查询接口,例如:订单查询、成交查询等。
- 交易权限:交易权限用于下单、撤单、划转类接口。
* 提币权限:提币权限用于创建提币订单、取消提币订单操作。
创建成功后请务必记住以下信息:
API Key
API 访问密钥Secret Key
签名认证加密所使用的密钥(仅申请时可见)
SDK与代码示例
SDK(推荐)
其它代码示例
https://github.com/hotbitex?tab=repositories
接口 | 说明 |
---|---|
GET p1/server.time | 获取系统时间 |
POST p2/balance.query | 获取用户资产 |
GET p2/asset.list | 获取平台所有资产类型和精度,prec为精确到小数点后多少位 |
POST p2/order.put_limit | 限价交易 |
POST p2/order.cancel | 取消交易 |
POST p2/order.deals | 获取已成交的订单细节 |
POST p2/order.finished_detail | 根据订单号查询已完成订单 |
GET p2/order.book | 获取交易列表 |
GET p1/order.depth | 获取交易深度 |
POST p2/order.pending | 查询未实施订单 |
POST p2/order.finished | 查询用户的已完成订单 |
GET p1/market.list | 获取交易对列表 |
GET p1/market.last | 获取指定交易对的最新价格 |
GET p1/market.deals | 查询交易对交易记录 |
GET p2/market.user_deals | 查询用户交易记录 |
GET p1/market.kline | k线查询 |
GET p1/market.status | 获取过去指定时间段market当前最新涨跌幅,交易量,最高/最低价格等状态 |
GET p1/market.status_today | 获取今天market状态 |
GET p1/market.status24h | 获取过去24小时内的market涨跌幅,交易量,最高/最低价格等状态 |
GET p1/market.summary | market概要 |
GET p1/allticker | 获取全市场交易对的最新成交信息 |
接口类型
hotbit为用户提供两种接口,您可根据自己的使用场景和偏好来选择适合的方式进行查询行情、交易或提币。
REST API
REST,即Representational State Transfer的缩写,是目前较为流行的基于HTTP的一种通信机制,每一个URL代表一种资源。
交易或资产提币等一次性操作,建议开发者使用REST API进行操作。
WebSocket API
WebSocket是HTML5一种新的协议(Protocol)。它实现了客户端与服务器全双工通信,通过一次简单的握手就可以建立客户端和服务器连接,服务器可以根据业务规则主动推送信息给客户端。
市场行情和买卖深度等信息,建议开发者使用WebSocket API进行获取。
接口鉴权
以上两种接口均包含公共接口和私有接口两种类型。
公共接口可用于获取基础信息和行情数据。公共接口无需认证即可调用。
私有接口可用于交易管理和账户管理。每个私有请求必须使用您的API Key进行签名验证。
接入URLs
您可以自行比较使用api.hotbit.io/v2和ws.hotbit.io/v2两个域名的延迟情况,选择延迟低的进行使用。
REST API
https://api.hotbit.io/v2/p1/
https://api.hotbit.io/v2/p2/
Websocket Feed
wss://ws.hotbit.io/v2/
参数签名
用户提交的参数除sign外,都要参与签名。
首先,将待签名字符串要求按照参数名进行排序(首先比较所有参数名的第一个字母,按abcd顺序排列,若遇到相同首字母,则看第二个字母,以此类推)。
例如:资产查询接口balance.query(参见HTTP接口说明)的请求参数
参数名 | 参数类型 | 描述 | 示例 |
---|---|---|---|
api_key | string | 用户申请的API KEY | 6b97d781-5ffd-958f-576d96d0bbebc8c6 |
sign | string | 请求字符串的签名值 | C88F04701D3349D0A93A0164DC5A4CD9 |
assets | json array | 代币符号数组,空数组表示获取全部代币资产 | ["BTC","ETH"] |
上述请求生成签名的过程如下
- 生成待签名的字符串
api_key=6b97d781-5ffd-958f-576d96d0bbebc8c6&assets=["BTC","ETH"]
- 将待签名字符串添加私钥参数生成最终待签名字符串。例如:
api_key=6b97d781-5ffd-958f-576d96d0bbebc8c6&assets=["BTC","ETH"]&secret_key=de8063ea6e99bc967ba6395d06fabf50
- 计算MD5值
MD5("api_key=6b97d781-5ffd-958f-576d96d0bbebc8c6&assets=["BTC","ETH"]&secret_key=de8063ea6e99bc967ba6395d06fabf50")
算出的MD5值是:c88f04701d3349d0a93a0164dc5a4cd9
- 将MD5值转为大写
to_upper(c88f04701d3349d0a93a0164dc5a4cd9)
得到最终的签名值是:C88F04701D3349D0A93A0164DC5A4CD9
上述过程完成后,balance.query发送的请求参数是:
api_key=6b97d781-5ffd-958f-576d96d0bbebc8c6&assets=["BTC","ETH"]&sign=C88F04701D3349D0A93A0164DC5A4CD9
说明:上述API Key和Secret Key仅为示例,在使用的时候替换为用户自己申请的API Key。
接入说明
接口概览
接口分类 | 分类链接 | 概述 |
---|---|---|
系统类 | /v2/p1/server.time | 基础类接口 |
订单类 | /v2/p2/order.* | 订单类接口,包括下单、撤单、订单查询、成交查询等 |
行情类 | /v2/p1/market.* | 公共行情类接口,包括成交、深度、行情等 |
资产类 | /v2/p2/balance.* | 资产接口,包含资金变更流水,用户资产 |
该分类为大类整理,部分接口未遵循此规则,请根据需求查看有关接口文档。 <!--
限频规则
- 每个API Key 在1秒之内限制10次
- 若接口不需要API Key,则每个IP在1秒内限制10次
比如:
- 资产订单类接口调用根据API Key进行限频:1秒10次
- 行情类接口调用根据IP进行限频:1秒10次 -->
请求格式
所有的API请求都是restful,目前只有两种方法:GET和POST
- GET请求:所有的参数都在路径参数里
- POST请求,所有参数以JSON格式发送在请求主体(body)里
返回格式
所有的接口都是JSON格式。在JSON最上层有三个字段:error, result, id。一个字段表示返回状态,实际的业务数据在result字段里。
以下是一个返回格式的样例:
参数名称 | 数据类型 | 描述 |
---|---|---|
error | Object | API返回错误内容,正确时为null |
result | Object | 接口返回数据主体,结果出错时为null |
id | int | Request id |
错误信息
API 错误信息
错误码 | 描述 |
---|---|
invalid argument | 参数错误 |
使用建议
1、行情类数据信息,建议使用WebSocket方式实时接收数据,并对接收数据进行缓存操作。
2、获取最新成交价,推荐使用market.deals接口或使用WebSocket订阅 deals.subscribe,获取实时成交价格。
常见问题
API信息通知
关于API新增、更新、下线等信息Hotbit会提前发布公告进行通知,建议您关注我们的公告,及时获取相关信息。
公告订阅流程:点击“API公告"。
接入、验签相关
Q1:为什么经常出现断线、超时的情况?
A:请检查是否属于以下情况:
客户端服务器如在中国大陆境内,连接的稳定性很难保证,建议使用新加坡AWS云服务器进行访问。
域名建议使用 api.hotbit.io/v2,ws.hotbit.io/v2 其他不建议使用。
Q2:为什么WebSocket总是断开连接?
A:常见原因有:
未回复Pong,WebSocket连接需在接收到服务端发送的Ping信息后回复Pong,保证连接的稳定。
网络原因造成客户端发送了Pong消息,但服务端并未接收到。
网络原因造成连接断开。
议用户做好WebSocket连接断连重连机制,在确保心跳(Ping/Pong)消息正确回复后若连接意外断开,程序能够自动进行重新连接。
Q3:为什么签名认证总返回失败?
A:请对比使用Secret Key签名前的字符串与以下字符串的区别
POST\n
api.hotbit.io\n
/p2/balance.query\n
api_key=6b97d781-5ffd-958f-576d6d0bbebc8c6&assets=["BTC","ETH"]
对比时请注意一下几点:
1、签名参数应该按照ASCII码排序。比如下面是原始的参数:
api_key=6b97d781-5ffd-958f-576d6d0bbebc8c6
assets=["BTC","ETH"]
排序之后应该为:
api_key=6b97d781-5ffd-958f-576d6d0bbebc8c6
assets=["BTC","ETH"]
2、签名需进行 MD5计算后转换大写
3、POST请求参数需在签名串中
4、检查本机时间与标准时间是否存在偏差(偏差应小于1分钟)
5、WebSocket发送验签认证消息时,消息体不需要URL编码
6、签名时所带Host应与请求接口时Host相同
7、Api Key 与 Secret Key中是否存在隐藏特殊字符,影响签名
行情相关
Q1:当前盘口数据多久更新一次?
A:当前盘口数据数据一秒更新一次,无论是RESTful查询或是Websocket推送都是一秒一次。若需要实时的买一卖一价格数据,可使用WebSocket订阅market.$symbol.bbo主题,该主题会实时推送最新的买一卖一价格数据。
Q2:24小时行情接口(/market.status24h)数据接口的成交量会出现负增长吗?
A:/market.status24h接口中的成交量、成交金额为24小时滚动数据(平移窗口大小24小时),有可能会出现后一个窗口内的累计成交量、累计成交额小于前一窗口的情况。
Q3:如何获取最新成交价格?
A:推荐使用REST API GET /allticker 接口请求最新成交,或使用WebSocket订阅deals.update主题,根据返回数据中的price获取。
Q4:K线是按照什么时间开始计算的?
A: K线周期以新加坡时间为基准开始计算,例如日K线的起始周期为新加坡时间0时-新加坡时间次日0时。
交易相关
Q1:如何获取下单数量、金额、小数限制、精度的信息?
A: 可使用 Rest API GET /p2/asset.list 获取相关币对信息, 下单时注意最小下单数量和最小下单金额的区别。
账户重提相关
Q1:为什么创建提币时返回api-not-support-temp-addr错误?
Q2:为什么USDT提币时返回Invaild-Address错误?
A:USDT币种为典型的一币多链币种, 创建提币订单时应填写chain参数对应地址类型。以下表格展示了链和chain参数的对应关系:
链 | chain 参数 |
---|---|
ERC20 | (默认) |
OMNI | usdt |
TRX | trc20usdt |
如果chain参数为空,则默认的链为ERC20,或者也可以显示将参数赋值为usdterc20。
Q3:创建提币时fee字段应该怎么填?
Q4:如何查看我的提币额度?
技术支持
账户资产相关
获取用户资产
API Key 权限:读取
查询指定账户的余额,支持以下账户:
HTTP 请求
- GET /p2/balance.query
请求参数
参数名称 | 是否必须 | 类型 | 描述 | 取值范围 |
---|---|---|---|---|
api_key | true | string | 用户申请的API KEY | - |
sign | true | string | 请求字符串的签名值 | - |
assets | true | json array | 代币符号数组,空数组表示获取全部代币资产 | ["BTC","ETH",....] |
curl "https://api.hotbit.io/v2/p2/balance.query?api_key=yourkey=["BTC","ETH"]&sign=yoursign"
Response
{
"error": null,
"id": 1585283976,
"result": {
"0xBTC":
{
"available": "0",
"freeze": "0"
},
"ETH":
{
"available": "0",
"freeze": "0"
}
}
}
响应数据
参数名称 | 是否必须 | 数据类型 | 描述 | 取值范围 |
---|---|---|---|---|
available | 是 | string | 可用数量 | - |
freeze | 是 | string | 冻结数量 | - |
基础信息
资产类型和精度
此接口返回所有资产类型和精度
HTTP 请求
- GET /p2/asset.list
curl "https://api.hotbit.io/v2/p1/asset.list"
请求参数
此接口不接受任何参数。
Response
{
"result":[
{
"name": "BTC",
"prec": 8
},
{
"name": "ETH",
"prec": 8
},
{
"name": "USDT",
"prec": 8
},
],
"error": null,
"id": 1585283976
}
返回字段
字段名称 | 数据类型 | 描述 |
---|---|---|
name | string | 币种 |
prec | int | 精确到小数点后多少位 |
获取当前系统时间戳
此接口返回当前的系统时间戳。
HTTP 请求
- GET /p1/server.time
curl "https://api.hotbit.io/v2/p1/server.time"
请求参数
此接口不接受任何参数。
Response
{
"error": null,
"id": 0,
"result": 1585282798
}
返回字段
字段名称 | 数据类型 | 描述 |
---|---|---|
result | int | 当前服务器时间 |
最新成交信息
此接口返回获取全市场交易对的最新成交信息
HTTP 请求
- GET /p1/allticker
curl "https://api.hotbit.io/v2/p1/allticker"
请求参数
此接口不接受任何参数。
Response
{
"date": 1585282798,
"ticker": [
{
"buy": "6711.35",
"close": "6709.14",
"high": "6837.32",
"last": "6709.14",
"low": "6523.3",
"open": "6679.74",
"sell": "6714.73",
"symbol": "BTC_USDT",
"vol": "155414.70091"
},
{
"buy": "137.9",
"close": "138.09",
"high": "140.91",
"last": "138.09",
"low": "133.53",
"open": "136.76",
"sell": "138.01",
"symbol": "ETH_USDT",
"vol": "2919662.76839"
}
]
}
返回字段
字段名称 | 数据类型 | 描述 |
---|---|---|
symbol | string | 交易对名称 |
buy | string | 买一价 |
sell | string | 卖一价 |
open | string | 开盘价 |
close | string | 收盘价 |
high | string | 最高价 |
low | string | 最低价 |
last | string | 最新价 |
vol | string | 成交量 |
行情数据
获取交易对列表
HTTP 请求
GET /p1/market.list
curl "https://api.hotbit.io/v2/p1/market.list"
请求参数
此接口不接受任何参数。
Response:
{
"error": null,
"result": [
{
"name": "QASHBTC",
"stock": "QASH",
"money": "BTC",
"fee_prec": 4,
"stock_prec": 2,
"money_prec": 8,
"min_amount": "0.1"
},
{
"name": "QASHETH",
"stock": "QASH",
"money": "ETH",
"fee_prec": 4,
"stock_prec": 2,
"money_prec": 8,
"min_amount": "0.0001"
}
],
"id": 1521169333
}
请求参数 无
响应数据
参数名称 | 是否必须 | 类型 | 描述 | 取值范围 |
---|---|---|---|---|
name | 是 | string | 交易对 | - |
stock | 是 | string | 交易的币种 | - |
money | 是 | string | 使用的币种 | - |
fee_prec | 是 | Integer | 税率精度4位小数 | - |
stock_prec | 是 | Integer | stock精度 | - |
money_prec | 是 | Integer | money精度 | - |
min_amount | 是 | double | 下单最小值 | - |
获取指定交易对的最新价格
HTTP 请求
GET /p1/market.last
curl "https://api.hotbit.io/v2/p1/market.last?market=ETH/BTC"
请求参数
参数名称 | 是否必须 | 类型 | 描述 | 取值范围 |
---|---|---|---|---|
market | 是 | string | market名称 | "BTC/USDT","BCC/USDT"... |
Response:
{
"error": null,
"result": "0.07413600",
"id": 1521169525
}
响应数据
参数名称 | 是否必须 | 类型 | 描述 | 取值范围 |
---|---|---|---|---|
result | 是 | double | 最新价格 | - |
查询交易对交易记录
HTTP 请求
GET /p1/market.deals
curl "https://api.hotbit.io/v2/p1/market.deals?market=ETH/BTC&limit=1&last_id=1"
请求参数
参数名称 | 是否必须 | 类型 | 描述 | 取值范围 |
---|---|---|---|---|
market | 是 | string | 交易对 | "BTC/USDT","BCC/USDT"... |
limit | 是 | Integer | 查询个数限制 | limit <= 1000) |
last_id | 是 | Integer(无符号64位) | 返回大于order_id > last_id的交易数据 | - |
Response:
{
"error": null,
"result": [
{
"id": 304861006,
"time": 1607310479,
"price": "0.030876",
"amount": "0.071",
"type": "sell"
}
],
"id": 1521169562
}
响应数据
参数名称 | 是否必须 | 类型 | 描述 | 取值范围 |
---|---|---|---|---|
id | 是 | int | id | - |
time | 是 | int | 成交时间 | - |
price | 是 | int | 成交价格 | - |
amount | 是 | int | 成交数量 | - |
type | 是 | int | 成交类型 | - |
查询用户交易记录
HTTP 请求
POST /p2/market.user_deals
请求参数
参数名称 | 是否必须 | 类型 |描述 | 取值范围 --------| --------| ---- ----------------|-------------|------------ api_key |是 | string |用户API KEY | - sign |是 | Integer |用户签名值 | - market |是 | Integer(无符号64位) |返market名称, | -如:"BTC/USDT","BCC/USDT" offset |是 | Integer(无符号64位) |偏移位置 | - limit |是 | Integer(无符号64位) |查询个数限制 | 0,1,2,3,4....1000
Response:
{
}
响应数据
参数名称 | 是否必须 | 类型 | 描述 | 取值范围 |
---|---|---|---|---|
id | 是 | int | id | - |
time | 是 | int | 成交时间 | - |
price | 是 | int | 成交价格 | - |
amount | 是 | int | 成交数量 | - |
type | 是 | int | 成交类型 | - |
k线查询
HTTP 请求
GET /p1/market.kline
请求参数
参数名称 | 是否必须 | 类型 | 描述 | 取值范围 |
---|---|---|---|---|
market | 是 | string | market名称 | "BTC/USDT","BCC/USDT" |
start_time | 是 | Integer(无符号64位) | 起始时间戳(秒) | 1563724800 时间戳(秒) |
end_time | 是 | Integer(无符号64位) | 结束时间戳(秒) | 1563726800 时间戳(秒) |
interval | 是 | Integer(32位) | 周期间隔,单位秒,(起始时间到结束时间,总周期数) |
Response:
{
"error": null,
"result": [
[1525067600, "11714.04", "11710.01", "11778.69", "11697.18", "13.604065", "159329.23062211", "BTCUSDT"],
[1565067660, "11703.47", "11716.65", "11720.55", "11703.47", "14.401973", "168649.82127032", "BTCUSDT"],
[1565067720, "11714.24", "11715.09", "11724.5", "11707.78", "12.287975", "143952.77384769", "BTCUSDT"]
],
"id": 1521169586
}
响应数据
参数名称 | 是否必须 | 类型 | 描述 | 取值范围 |
---|---|---|---|---|
数组0 | 是 | Integer(无符号64位) | 时间戳 | 1525067600 时间戳 |
数组1 | 是 | double | 开盘价 | - |
数组2 | 是 | double | 收盘价 | - |
数组3 | 是 | double | 最高价 | - |
数组4 | 是 | double | 最低价 | - |
数组5 | 是 | double | 涨幅 | - |
数组6 | 是 | double | 成交量 | - |
数组7 | 是 | string | 成交对 | - |
获取过去指定时间段market当前最新涨跌幅,交易量,最高/最低价格等状态
HTTP 请求
GET /p1/market.status
请求参数
参数名称 | 是否必须 | 类型 | 描述 | 取值范围 |
---|---|---|---|---|
market | 是 | string | market名称 | "BTC/USDT","BCC/USDT" |
period | 是 | Integer(32位) | 查询周期,以秒为单位。即从现在开始往前推的时间, | 例如:86400,是过去24小时。 |
Response:
{
"error": null,
"result": {
"period": 10,
"last": "0.0743",
"open": "0.074162",
"close": "0.0743",
"high": "0.0743",
"low": "0.074162",
"volume": "0.314",
"deal": "0.023315531"
},
"id": 1521169247
}
响应数据
参数名称 | 是否必须 | 类型 | 描述 | 取值范围 |
---|---|---|---|---|
period | 是 | Integer | 查询周期 | 例如:86400,是过去24小时。 |
last | 是 | double | 最新价 | - |
open | 是 | double | 开盘价 | - |
close | 是 | double | 收盘价 | - |
high | 是 | double | 最高价 | - |
low | 是 | double | 最低价 | - |
volume | 是 | double | 成交量 | - |
deal | 是 | double | 交易量 | - |
获取当日market状态
HTTP 请求
GET /p1/market.status_today
请求参数
参数名称 | 是否必须 | 类型 | 描述 | 取值范围 |
---|---|---|---|---|
market | 是 | string | market名称, | 如:"BTC/USDT","BCC/USDT" |
Response:
{
"error": null,
"result": {
"open": "0.074015",
"last": "0.074287",
"high": "0.074485",
"low": "0.073",
"volume": "1141.63",
"deal": "83.11985574"
},
"id": 1521169293
}
响应数据
参数名称 | 是否必须 | 类型 | 描述 | 取值范围 |
---|---|---|---|---|
last | 是 | double | 最新价 | - |
open | 是 | Integer | 开盘价 | - |
close | 是 | Integer | 收盘价 | - |
high | 是 | Integer | 最高价 | - |
low | 是 | Integer | 最低价 | - |
volume | 是 | Integer | 成交量 | - |
deal | 是 | Integer | 交易量 | - |
获取当日market状态
HTTP 请求
GET /p1/market.status24h
请求参数
此接口不接受任何参数。
Response:
{
"TRXETH": {
"period": 86400,
"last": "0.00013199",
"open": "0.00013523",
"close": "0.00013199",
"high": "0.00013723",
"low": "0.00013199",
"volume": "887054.18",
"deal": "119.2565600483",
},
"error": null,
"result": {
"open": "0.074015",
"last": "0.074287",
"high": "0.074485",
"low": "0.073",
"volume": "1141.63",
"deal": "83.11985574"
},
"id": 1521169293
}
响应数据
参数名称 | 是否必须 | 类型 | 描述 | 取值范围 |
---|---|---|---|---|
period | 是 | Integer32 | 周期 | 86400 |
last | 是 | double | 最新价 | - |
open | 是 | double | 开盘价 | - |
close | 是 | double | 收盘价 | - |
high | 是 | double | 最高价 | - |
low | 是 | double | 最低价 | - |
volume | 是 | double | 成交量 | - |
deal | 是 | double | 交易量 | - |
market概要
HTTP 请求
GET /p1/market.summary
请求参数
参数名称 | 是否必须 | 类型 | 描述 |
---|---|---|---|
markets | 是 | json array | market名称json array,如:["BTCUSD","BCCUSD"],如为空数组:[],返回所有market。 |
Response:
{
"error": null,
"result": [
{
"name": "ETHBTC",
"ask_count": 0,
"ask_amount": "0",
"bid_count": 0,
"bid_amount": "0"
},
{
"name": "QUNBTC",
"ask_count": 2,
"ask_amount": "28",
"bid_count": 2,
"bid_amount": "23"
}
],
"id": 1521169429
}
响应数据
参数名称 | 是否必须 | 类型 | 描述 |
---|---|---|---|
name | 是 | string | 交易对 |
ask_count | 是 | double | 交易对 |
ask_amount | 是 | double | 交易对 |
bid_count | 是 | double | 交易对 |
bid_amount | 是 | double | 交易对 |
交易数据
限价交易
HTTP 请求
POST /p2/order.put_limit
请求参数
参数名称 | 是否必须 | 类型 | 描述 | 取值范围 |
---|---|---|---|---|
api_key | 是 | string | 用户申请的API KEY | - |
sign | 是 | string | 请求字符串的签名值。 | - |
market | 是 | string | market名称 | ,如:"BTC/USDT","ETH/USDT" |
side | 是 | Integer | 1 = "sell",2="buy" | 0,1 |
amount | 是 | double | 数量 | - |
price | 是 | double | 交易价格。 | - |
isfee | 是 | Integer | 是否使用折扣币抵扣0 = "否(no)",1="是(yes)" | 0,1 |
Response:
{
"error": null,
"result":
{
"id":8688803,
"market":"ETHBTC",
"source":"web",
"type":1,
"side":2,
"user":15731,
"ctime":1526971722.164765,
"mtime":1526971722.164765,
"price":"0.080003",
"amount":"0.4",
"taker_fee":"0.0025",
"maker_fee":"0",
"left":"0.4",
"deal_stock":"0",
"deal_money":"0",
"deal_fee":"0",
"status":0 ,
"fee_stock":"HTB",
"alt_fee":"0.5",
"deal_fee_alt":"0.123"
},
"id": 1521169460
}
响应数据
参数名称 | 是否必须 | 类型 | 描述 |
---|---|---|---|
id | 是 | Integer(无符号64位) | order-ID |
market | 是 | string | 交易对 |
source | 是 | string | 数据请求来源标识 |
type | 是 | string | 下单类型 1-限价单 |
side | 是 | Integer | 买卖方标识 1-卖方,2-买方 |
user | 是 | Integer | 买卖方标识 1-卖方,2-买方 |
ctime | 是 | double | #订单创建时间(秒) |
mtime | 是 | double | #订单更新时间(秒) |
price | 是 | double | |
amount | 是 | double | |
taker_fee | 是 | double | |
maker_fee | 是 | double | |
left | 是 | double | |
deal_stock | 是 | double | |
deal_money | 是 | double | |
deal_fee | 是 | string | |
status | 是 | string | #订单状态标志 当与0x8为真的时候表示当前订单是取消的,当与0x80为真的时候表示当前订单是使用抵扣折扣的 |
fee_stock | 是 | string | #抵扣币名 |
alt_fee | 是 | double | #抵扣币的折扣 |
deal_fee_alt | 是 | double | #折扣抵扣的数量 |
取消交易
HTTP 请求
POST /p2/order.cancel
请求参数
参数名称 | 是否必须 | 类型 | 描述 | 取值范围 |
---|---|---|---|---|
api_key | 是 | string | 用户API KEY | - |
sign | 是 | string | 用户签名值. | - |
market | 是 | string | market名称, | "BTC/USDT","ETH/USDT".. |
order_id | 是 | Integer(无符号64位) | 要取消交易的id. | - |
Response:
{
"error": null,
"result":
{
"id":8688803,
"market":"ETHBTC",
"source":"web",
"type":1,
"side":2,
"user":15731,
"ctime":1526971722.164765,
"mtime":1526971722.164765,
"price":"0.080003",
"amount":"0.4",
"taker_fee":"0.0025",
"maker_fee":"0",
"left":"0.4",
"deal_stock":"0",
"deal_money":"0",
"deal_fee":"0",
"status":0 ,
"fee_stock":"HTB",
"alt_fee":"0.5",
"deal_fee_alt":"0.123"
},
"id": 1521169460
}
响应数据
参数名称 | 是否必须 | 类型 | 描述 |
---|---|---|---|
id | 是 | Integer(无符号64位) | order-ID |
market | 是 | string | 交易对 |
source | 是 | string | 数据请求来源标识 |
type | 是 | string | 下单类型 1-限价单 |
side | 是 | Integer | 买卖方标识 1-卖方,2-买方 |
user | 是 | Integer | 买卖方标识 1-卖方,2-买方 |
ctime | 是 | double | #订单创建时间(秒) |
mtime | 是 | double | #订单更新时间(秒) |
price | 是 | double | |
amount | 是 | double | |
taker_fee | 是 | double | |
maker_fee | 是 | double | |
left | 是 | double | |
deal_stock | 是 | double | |
deal_money | 是 | double | |
deal_fee | 是 | string | |
status | 是 | string | #订单状态标志 当与0x8为真的时候表示当前订单是取消的,当与0x80为真的时候表示当前订单是使用抵扣折扣的 |
fee_stock | 是 | string | #抵扣币名 |
alt_fee | 是 | double | #抵扣币的折扣 |
deal_fee_alt | 是 | double | #折扣抵扣的数量 |
获取已成交的订单细节
HTTP 请求
POST /p2/order.deals
请求参数
参数名称 | 是否必须 | 类型 | 描述 |
---|---|---|---|
api_key | 是 | string | 用户API KEY |
sign | 是 | string | 用户签名值 |
offset | 是 | Integer(32位) | 等于0,表示从最近一次交易往之前查找 |
order_id | 是 | Integer(无符号64位) | 交易ID,参看 "order.put_limit"方法的返回结果 |
limit | 是 | Integer(32位) | 最多返回 "records"的数量 |
Response:
{
"error": null,
"result":
[
{
"id":8688803,
"market":"ETHBTC",
"source":"web",
"type":1,
"side":2,
"user":15731,
"ctime":1526971722.164765,
"mtime":1526971722.164765,
"price":"0.080003",
"amount":"0.4",
"taker_fee":"0.0025",
"maker_fee":"0",
"left":"0.4",
"deal_stock":"0",
"deal_money":"0",
"deal_fee":"0",
"status":0 ,
"fee_stock":"HTB",
"alt_fee":"0.5",
"deal_fee_alt":"0.123"
}
],
"id": 1521169460
}
响应数据
参数名称 | 是否必须 | 类型 | 描述 |
---|---|---|---|
id | 是 | Integer(无符号64位) | order-ID |
market | 是 | string | 交易对 |
source | 是 | string | 数据请求来源标识 |
type | 是 | string | 下单类型 1-限价单 |
side | 是 | Integer | 买卖方标识 1-卖方,2-买方 |
user | 是 | Integer | 买卖方标识 1-卖方,2-买方 |
ctime | 是 | double | #订单创建时间(秒) |
mtime | 是 | double | #订单更新时间(秒) |
price | 是 | double | |
amount | 是 | double | |
taker_fee | 是 | double | |
maker_fee | 是 | double | |
left | 是 | double | |
deal_stock | 是 | double | |
deal_money | 是 | double | |
deal_fee | 是 | string | |
status | 是 | string | #订单状态标志 当与0x8为真的时候表示当前订单是取消的,当与0x80为真的时候表示当前订单是使用抵扣折扣的 |
fee_stock | 是 | string | #抵扣币名 |
alt_fee | 是 | double | #抵扣币的折扣 |
deal_fee_alt | 是 | double | #折扣抵扣的数量 |
根据订单号查询已完成订单
HTTP 请求
POST /p2/order.finished_detail
请求参数
参数名称 | 是否必须 | 类型 | 描述 |
---|---|---|---|
api_key | 是 | string | 用户API KEY |
sign | 是 | string | 用户签名值 |
offset | 是 | Integer(32位) | 等于0,表示从最近一次交易往之前查找 |
order_id | 是 | Integer(无符号64位) | 交易ID |
Response:
{
"error": null,
"result":
[
{
"id":8688803,
"market":"ETHBTC",
"source":"web",
"type":1,
"side":2,
"user":15731,
"ctime":1526971722.164765,
"mtime":1526971722.164765,
"price":"0.080003",
"amount":"0.4",
"taker_fee":"0.0025",
"maker_fee":"0",
"left":"0.4",
"deal_stock":"0",
"deal_money":"0",
"deal_fee":"0",
"status":0 ,
"fee_stock":"HTB",
"alt_fee":"0.5",
"deal_fee_alt":"0.123"
}
],
"id": 1521169460
}
响应数据
参数名称 | 是否必须 | 类型 | 描述 |
---|---|---|---|
id | 是 | Integer(无符号64位) | order-ID |
market | 是 | string | 交易对 |
source | 是 | string | 数据请求来源标识 |
type | 是 | string | 下单类型 1-限价单 |
side | 是 | Integer | 买卖方标识 1-卖方,2-买方 |
user | 是 | Integer | 买卖方标识 1-卖方,2-买方 |
ctime | 是 | double | #订单创建时间(秒) |
mtime | 是 | double | #订单更新时间(秒) |
price | 是 | double | |
amount | 是 | double | |
taker_fee | 是 | double | |
maker_fee | 是 | double | |
left | 是 | double | |
deal_stock | 是 | double | |
deal_money | 是 | double | |
deal_fee | 是 | string | |
status | 是 | string | #订单状态标志 当与0x8为真的时候表示当前订单是取消的,当与0x80为真的时候表示当前订单是使用抵扣折扣的 |
fee_stock | 是 | string | #抵扣币名 |
alt_fee | 是 | double | #抵扣币的折扣 |
deal_fee_alt | 是 | double | #折扣抵扣的数量 |
获取交易列表
HTTP 请求
POST /p2/order.book
请求参数
参数名称 | 是否必须 | 类型 | 描述 |
---|---|---|---|
market | 是 | string | market名称,如:"BTC/USDT","BCC/USDT" |
side | 是 | string | 1 = "sell",2="buy" |
offset | 是 | Integer(32位) | 偏移位置 |
limit | 是 | Integer(无符号64位) | 最多返回 "records"的数量 |
Response:
{
"error": null,
"result": {
"offset": 0,
"limit": 10,
"total": 0,
"orders": []
},
"id": 1521169117
}
响应数据
参数名称 | 是否必须 | 类型 | 描述 |
---|---|---|---|
offset | 是 | Integer(无符号64位) | |
limit | 是 | Integer | |
offset | 是 | Integer | |
total | 是 | Integer(无符号64位) | |
orders | 是 | array |
获取交易深度
HTTP 请求
POST /p1/order.depth
请求参数
参数名称 | 是否必须 | 类型 | 描述 |
---|---|---|---|
market | 是 | string | market名称,如:"BTC/USDT","BCC/USDT" |
interval | 是 | string | 价格精度 |
limit | 是 | Integer(无符号64位) | 最多返回 "records"的数量 |
Response:
{
"error": null,
"result":
{
"asks": [["0.0733858", "0.319"], ["0.0741178", "0.252"], ["0.0742609", "0.03"], ... ["0.1250465", "0.272"]],
"bids": [["0.0730197", "0.275"], ["0.0723", "1.052"], ["0.0722876", "0.302"], ... ["2.0e-7", "1"]]},
"id": 1527559250
}
响应数据
查询未实施订单
HTTP 请求
POST /p2/order.pending
请求参数
参数名称 | 是否必须 | 类型 | 描述 |
---|---|---|---|
api_key | 是 | string | 用户API KEY |
sign | 是 | string | 用户签名值 |
market | 是 | string | market名称,如:"BTC/USDT","BCC/USDT" |
offset | 是 | Integer(32位) | 偏移位置 |
limit | 是 | Integer(无符号64位) | 最多返回 "records"的数量 |
Response:
{
"error":null,
"result":{
"ETHBTC":{
"limit":50,
"offset":0,
"total":1,
"records":[
{
"id":8688803,
"market":"ETHBTC",
"source":"web",
"type":1,
"side":2,
"user":15731,
"ctime":1526971722.164765,
"mtime":1526971722.164765,
"price":"0.080003",
"amount":"0.4",
"taker_fee":"0.0025",
"maker_fee":"0",
"left":"0.4",
"deal_stock":"0",
"deal_money":"0",
"deal_fee":"0",
"status":0 ,
"fee_stock":"HTB",
"alt_fee":"0.5",
"deal_fee_alt":"0.123"
}
]
}
},
"id":1526971756
}
响应数据
参数名称 | 是否必须 | 类型 | 描述 |
---|---|---|---|
limit | 是 | Integer(无符号64位) | |
offset | 是 | Integer | |
total | 是 | Integer(无符号64位) | |
records | 是 | array | 参考order.put_limit |
查询用户的已完成订单
HTTP 请求
POST /p2/order.finished
请求参数
参数名称 | 是否必须 | 类型 | 描述 | 取值范围 |
---|---|---|---|---|
api_key | 是 | string | 用户API KEY | - |
sign | 是 | string | 用户签名值 | - |
market | 是 | string | market名称, | "BTC/USDT","BCC/USDT"... |
start_time | 是 | 开始时间(秒) | 开始时间(秒). | 1525067600 时间戳 |
end_time | 是 | 截止时间(秒) | 结束时间(秒)。 | 1525067600 时间戳 |
offset | 是 | Integer(无符号64位) | 偏移位置,如果设置为0,表示从最新近一笔业务开始算起,往之前时间的所有交易记录,总笔数不能大于limit;。如果设置为1,表示从次新一笔业务开始算起,往之前时间的所有交易记录总笔数不能大于limit;以此类推 | 0,1,2,3 |
limit | 是 | Integer(无符号64位) | 最多返回 "records"的数量 | - |
side | 是 | Integer | 1 = "sell",2="buy" | 1,2 |
Response:
"response": {
"error": null,
"id": 1393490,
"result": []
}
响应数据
参数名称 | 是否必须 | 类型 | 描述 |
---|---|---|---|
records | 是 | array | 参考order.put_limit |
<!--
系统接口
发送心跳
WEBSOCKET
请求:
{
"method":"server.ping",
"params":[],
"id":100
}
响应:
{
"error":null,
"result":"pong",
"id":100
}
- method: server.ping
- params: []
请求参数
无
响应数据
result pong 证明可以连上
获取系统时间
WEBSOCKET
请求:
{
"method":"server.time",
"params":[],
"id":100
}
响应:
{
"error":null,
"result":1511941406,
"id":100
}
- method: server.time
- params: []
请求参数
无
响应数据
result 返回服务时间
查询接口
线数据查询
WEBSOCKET
请求:
{
"method":"kline.query",
"params":["EOSETH",145231637,145232657,5],
"id":100
}
响应:
{
"error": null,
"result": [
[
1525798800, # 时间戳
"0.00001790", # 开盘价
"0.00001881", # 收盘价
"0.00001886", # 最高价
"0.00001790", # 最低价
"169033000", # 成交量
"3025.69", # 成交额
"ACATETH" # 交易对市场名称
],
...],
"id": 123
}
- method: kline.query
- params:
请求
参数名 | 参数类型 | 必填 | 描述 |
---|---|---|---|
market | String | 是 | 市场名 |
start | Integer | 是 | 开始时间 |
end | Integer | 是 | 结束时间 |
interval | Integer | 是 | 数据获取周期 |
响应数据
参照 /p1/market.kline`
最新价格查询
WEBSOCKET
请求:
{
"method":"price.query",
"params":["BTCBCC"],
"id":100
}
响应:
{
"error": null,
"result": "8000.00000000",
"id": 100
}
- method: price.query
- params: ["market_name"]
请求
参数名 | 参数类型 | 必填 | 描述 |
---|---|---|---|
market | String | 是 | 市场名 |
响应数据
参数名 | 参数类型 | 必填 | 描述 |
---|---|---|---|
result | double | 是 | 价格 |
当前市场状态查询
WEBSOCKET
请求:
{
"method":"state.query",
"params":["BTCBCC",86400],
"id":100
}
响应:
{
"period": 86400, # 周期,单位秒
"last": "8000", # 最新价
"open": "0", # 开盘价
"close": "0", # 收盘价
"high": "0", # 最高价
"low": "0", # 最低价
"volume": "0", # 成交量
"deal": "0" # 成交额
},
- method: state.query
- params:
请求
参数名 | 参数类型 | 必填 | 描述 |
---|---|---|---|
market list | json array | 是 | 交易对市场名称列表 |
interval | Integer | 是 | 周期,单位:秒,例如:86400表示24小时 |
响应数据
参数名称 | 是否必须 | 类型 | 描述 |
---|---|---|---|
period | 是 | Integer | 周期 |
last | 是 | double | 最新价 |
open | 是 | double | 开盘价 |
close | 是 | double | 收盘价 |
high | 是 | double | 最高价 |
low | 是 | double | 最低价 |
volume | 是 | double | 成交量 |
deal | 是 | double | 交易量 |
当天的市场状态查询
WEBSOCKET
请求:
{
"method":"today.query",
"params":["BTCBCC"],
"id":100
}
响应:
{
"last": "8000", # 最新价
"open": "0", # 开盘价
"close": "0", # 收盘价
"high": "0", # 最高价
"low": "0", # 最低价
"volume": "0", # 成交量
"deal": "0" # 成交额
},
- method: today.query
- params:
请求
参数名 | 参数类型 | 必填 | 描述 |
---|---|---|---|
market | String | 是 | 市场名 |
响应数据
参数名称 | 是否必须 | 类型 | 描述 |
---|---|---|---|
last | 是 | double | 最新价 |
open | 是 | double | 开盘价 |
close | 是 | double | 收盘价 |
high | 是 | double | 最高价 |
low | 是 | double | 最低价 |
volume | 是 | double | 成交量 |
deal | 是 | double | 交易量 |
用户成交查询
WEBSOCKET
请求:
{
"method":"deals.query",
"params":["BTCBCC",5,1],
"id":100
}
响应:
{
"error": null,
"result": [
{ "id": 26, "time": 1512454847.188796, "price": "8000", "amount": "1", "type": "buy" },
{ "id": 25, "time": 1512445625.751971, "price": "8000", "amount": "0.125", "type": "buy" },
{ "id": 24, "time": 1512442938.956193, "price": "8000", "amount": "0.125", "type": "buy" },
{ "id": 23, "time": 1512442929.0405071, "price": "8000", "amount": "0.125", "type": "buy" },
{ "id": 22, "time": 1512442927.2021289, "price": "8000", "amount": "0.125", "type": "buy" } ],
"id": 100
}
- method: deals.query
- params:
请求
参数名 | 参数类型 | 必填 | 描述 | 取值范围 |
---|---|---|---|---|
market | String | 是 | 市场名 | |
limit | Integer | 是 | 最大返回数量 | |
last_id | integer | 是 | 从最近一个订单id开始往前(id从大到小)最后一个id | 例如一共有1,2,3,4,5,一共5个id,last_id设为3,limit即使设为5也只返回id为4,5两组数据。 |
响应数据
参数名称 | 是否必须 | 类型 | 描述 |
---|---|---|---|
id | 是 | double | deal_id |
time | 是 | Integer(无符32位) | 交易时间 |
price | 是 | double | 交易价格 |
amount | 是 | double | 成交数量 |
type | 是 | Integer | 成交类型 |
定单深度查询
WEBSOCKET
请求:
{
"method":"depth.query",
"params":["EOSUSDT",100,"1"],
"id":100
}
响应:
{
"error": null,
"result": { "asks": [[ "8000", "20"] ], "bids": [[ "800", "4"] ] },
"id": 100
}
- method: depth.query
- params:
请求
参数名 | 参数类型 | 必填 | 描述 |
---|---|---|---|
market | String | 是 | 市场名 |
limit | Integer | 是 | 最大返回数量 |
interval | String | 是 | 精度,比如"0.001",获取的数据就是:12.975这样的数字。再比如"5",就会得到"15" "20" "10" 这样的数字。 |
响应数据
参数名称 | 是否必须 | 类型 | 描述 |
---|
用户未完成定单查询
WEBSOCKET
请求:
{
"method":"order.query",
"params":[["BTCBCC","BTCETH"],0,50],
"id":100
}
或
{
"method":"order.query",
"params":[[],0,50],
"id":100
}
响应:
{
"error": null,
"result": {
"ACATETH": {
"limit": 100,
"offset": 0,
"total": 3,
"records": [
{
"id": 8675864, # 定单ID
"market": "ACATETH", # 市场名称
"type": 1, # 定单类型 1-限价单 2-市价单
"side": 1, # 买卖方向 1-ASK 2-Bid
"user": 15731, # 用户ID
"ctime": 1524482296.075341, # 定单创建时间
"mtime": 1524482296.075341, # 定单修改时间
"price": "0.00001899", # 价格
"amount": "1", # 数量
"taker_fee": "0", # taker的费率
"maker_fee": "0", # maker的费率
"left": "1", # 剩余未成交量
"deal_stock": "0e-8", # 成交量
"deal_money": "0e-16", # 成交金额
"deal_fee": "0e-12" # 成交费用
},
...
]
},
……,
"SPHTXBTC":{……}
}
"id": 13
}
- method: order.query
- params:
请求
参数名 | 参数类型 | 必填 | 描述 |
---|---|---|---|
market list | list | 是 | 市场名列表,如果为空的话,返回所有市场的数据 |
offset | Integer | 是 | offset |
limit | Integer | 是 | 最大返回数量,小于101 |
响应数据
参数名称 | 类型 | 描述 |
---|---|---|
id | double | 定单ID |
market | string | 市场名称 |
type | double | 定单类型 1-限价单 2-市价单 |
side | double | 买卖方向 1-ASK 2-Bid |
user | Integer(无符号32位) | 用户ID |
ctime | Integer(无符号32位) | 定单创建时间 |
mtime | Integer(无符号32位) | 定单修改时间 |
price | Integer(无符号32位) | 价格 |
amount | Integer(无符号32位) | 数量 |
taker_fee | Integer(无符号32位) | taker的费率 |
maker_fee | Integer(无符号32位) | maker的费率 |
left | Integer(无符号32位) | 剩余未成交量 |
deal_stock | Integer(无符号32位) | 成交量 |
deal_money | Integer(无符号32位) | 成交金额 |
deal_fee | Integer(无符号32位) | 成交费用 |
用户已完成定单查询
WEBSOCKET
请求:
{
"method":"order.history",
"params":["BTCBCC",1511941006,1511941406,0,50],
"id":100}
响应:
{
"error": null,
"result": { "limit": 50, "offset": 0, "total": 0, "records": [] },
"id": 100
}
- method: order.history
- param
请求
参数类型 | 必填 | 描述 |
---|---|---|
market | String | 是 |
start_time | Integer | 是 |
end_time | Integer | 是 |
offset | Integer | 是 |
limit | Integer | 是 |
响应数据
参数名称 | 类型 | 描述 |
---|---|---|
limit | double | |
offset | string | |
total | string | |
records | string |
用户资产查询
WEBSOCKET
请求:
{
"method":"asset.query",
"params":["ETH","BTC"],
"id":100
}
响应:
{
"error": null,
"result": {
"ETH": {
"available": "0", # 可用资金
"freeze": "0" # 冻结资金
},
"BTC": { "available": "0", "freeze": "0" }
},
"id": 100
}
- method: asset.query
- params: []
请求 返回值:参考上面示例。
响应数据
参数名称 | 类型 | 描述 |
---|---|---|
available | double | 可用资金 |
freeze | string | 冻结资金 |
用户资产变动历史查询
WEBSOCKET
请求:
{
"method":"asset.history",
"params":["BTC","deposit",1501940406,1513328112,0,100],
"id":100
}
响应:
{
"error": null,
"result": {
"offset": 0,
"limit": 100,
"records": [
{
"time": 1511856143.3754101, # 时间戳
"asset": "USD", # 资产类型
"business":"deposit", # 业务标识 deposit-充值,freeze-冻结/解冻,withdraw-提币
"change": "100000", # 变动金额
"balance": "300000", # 变动后用户资金余额
"detail": { "id": 10003 } # 其他详情
},
...
]
},
"id": 100
}
- method: asset.history
- params:
请求
参数名 | 参数类型 | 必填 | 描述 |
---|---|---|---|
asset | String | 是 | asset name, which can not be null |
business | String | 是 | 业务名 |
start_time | Integer | 是 | 开始时间 |
end_time | Integer | 是 | 结束时间 |
offset | Integer | 是 | offset |
limit | Integer | 是 | 最大返回数量,小于101 |
响应数据
参数名称 | 类型 | 描述 |
---|---|---|
time | double | 时间戳 |
asset | string | 资产类型 |
business | string | 业务标识 deposit-充值,freeze-冻结/解冻,withdraw-提币 |
change | string | 变动金额 |
balance | string | 变动后用户资金余额 |
detail | string | 冻结资金 |
订阅/取消订阅接口
行情订阅
WEBSOCKET
请求:
{
"method":"kline.subscribe",
"params":[ "BTCBCC", 60 ],
"id":100
}
响应:
{
"error": null,
"result": { "status": "success" },
"id": 100
}
- method: kline.subscribe
- params:
请求参数:
参数名 | 参数类型 | 必填 | 描述 |
---|---|---|---|
market | String | 是 | 市场名 |
interval | Integer | 是 | 数据获取周期 |
订阅成功后,订阅数据将会被推送到客户端。内容如 [行情推送] 所述。
行情推送
WEBSOCKET
请求:
{
"method": "kline.update",
"params": [[1513135140, "8000", "8000", "8000", "8000", "0", "0", "BTCBCC"]],
"id": null
}
请求参数: "params": [ [ 1492358400, # 时间戳 "7000.00", # 开盘价 "8000.0", # 收盘价 "8100.00", # 最高价 "6800.00", # 最低价 "1000.00" # 成交量 "123456.00", # 成交金额 "BTCBCC" # 交易币对市场名称 ] ]
取消行情订阅
WEBSOCKET
请求:
{
"method":"kline.unsubscribe",
"params":[],
"id":100
}
响应:
{
"error": null,
"result": {"status": "success"},
"id": 100
}
- method: kline.unsubscribe
- params: []
请求
响应数据
最新价订阅
WEBSOCKET
请求:
{
"method":"price.subscribe",
"params":["BTCBCC"],
"id":100
}
响应:
{
"error": null,
"result": { "status": "success" },
"id": 100
}
- method: price.subscribe
- params: [market]
请求: | 参数名 | 参数类型 | 必填 | 描述 | | -------- | -------- | ---- | ------------ | | market | String | 是 | 市场名 |
响应数据
参数名称 | 描述 --------- | status | 是否成功
最新价推送
WEBSOCKET
请求:
{
"method": "price.update",
"params": ["BTCBCC", "8000.00000000"],
"id": null
}
- method: price.update
- params: [market,price]
请求 参数名称 | 类型 |描述 --------- | ---- |------ market | string |市场名称 price | string |最新价格
取消最新价订阅
- method: price.unsubscribe
- params: []
WEBSOCKET
请求:
{
"method":"price.unsubscribe",
"params":[],
"id":100
}
响应:
{
"error": null,
"result": { "status": "success" },
"id": 100
}
请求
响应数据
市场状态订阅
- method: state.subscribe
- params: market
WEBSOCKET
请求:
{
"method":"state.subscribe",
"params":["BTCBCC","BTCUSD"],
"id":100
}
响应:
{
"error": null,
"result": { "status": "success" },
"id": 100
}
请求 参数名称 |描述 --------- |------ market | 交易币对市场名称列表
响应数据
参数名称 | 描述 |
---|---|
status | 是否成功 |
市场状态推送
- method: state.update
- params: []
响应:
{
"method": "state.update",
"params": [
"BTCBCC", {
"period": 86400,
"last": "8000",
"open": "0",
"close": "0",
"high": "0",
"low": "0",
"volume": "0",
"deal": "0"
}
],
"id": null
}
请求 无
响应数据
返回值参考state.query方法。
取消市场状态推送
WEBSOCKET
请求:
{
"method":"state.unsubscribe",
"params":[],
"id":100
}
响应:
{
"error": null,
"result": { "status": "success" },
"id": 100
}
- method: state.unsubscribe
- params: []
当日市场状态订阅
WEBSOCKET
请求:
{
"method":"today.subscribe",
"params":["BTCUSD","BTCBCC"],
"id":100
}
响应:
{
"error": null,
"result": { "status": "success" },
"id": 100
}
- method: today.subscribe
- params:
请求: | 参数名 | 参数类型 | 必填 | 描述 | | ----------- | -------- | ---- | ---------- | | market list | String | 是 | 市场名列表 |
当日市场状态推送
订阅成功后,服务器主动向客户端推送数据。
响应:
{
"method": "today.update",
"params": [
"BTCBCC", {
"open": "8000",
"last": "8000",
"high": "8000",
"low": "8000",
"volume": "0",
"deal": "0"
}
],
"id": null
}
- method: today.update
- params: []
请求 无
响应数据
参数名称 | 是否必须 | 类型 | 描述 |
---|---|---|---|
period | 是 | double | 周期 |
last | 是 | double | 最新价 |
open | 是 | Integer | 开盘价 |
close | 是 | Integer | 收盘价 |
high | 是 | Integer | 最高价 |
low | 是 | Integer | 最低价 |
volume | 是 | double | 成交量 |
deal | 是 | Integer | 交易量 |
取消当日市场状态订阅
WEBSOCKET
请求:
{
"method":"today.unsubscribe",
"params":[],
"id":100
}
响应:
{
"error": null,
"result": { "status": "success" },
"id": 100
}
- method: today.unsubscribe
- params: []
请求 无
响应数据
status 是否成功
成交订阅
WEBSOCKET
请求:
{
"method":"deals.subscribe",
"params":["BTCBCC","BTCUSD"],
"id":100
}
响应:
{
"error": null,
"result": { "status": "success" },
"id": 100
}
- method: deals.subscribe
- params: [maket]
请求 | market | 交易币对市场名称列表
响应数据
status 是否成功
成交推送
WEBSOCKET
请求:
{
"method": "deals.update",
"params": [
"BTCBCC", [
{"id": 26, "time": 1512454847.188796, "price": "8000", "amount": "1", "type": "buy"},
{"id": 25, "time": 1512445625.751971, "price": "8000", "amount": "0.125", "type": "buy"},
{"id": 24, "time": 1512442938.956193, "price": "8000", "amount": "0.125", "type": "buy"},
...
{"id": 22, "time": 1512442927.2021289, "price": "8000", "amount": "0.125", "type": "buy"},
{"id": 3, "time": 1512442109.0283101, "price": "8000", "amount": "0.125", "type": "buy"},
{"id": 2, "time": 1512441964.500567, "price": "8000", "amount": "0.125", "type": "buy"},
{"id": 1, "time": 1512441751.9356339, "price": "8000", "amount": "0.125", "type": "buy"}
]
],
"id": null
}
参考deals.query的返回结果。
取消成交订阅
WEBSOCKET
请求:
{
"method":"deals.unsubscribe",
"params":[],
"id":100
}
响应:
{
"error": null,
"result": { "status": "success" },
"id": 100
}
- method: deals.unsubscribe
- params: []
请求 无
响应数据
status 是否成功
定单深度订阅
WEBSOCKET
请求:
{
"method":"depth.subscribe",
"params":["EOSUSDT",100,"0.1"],
"id":100
}
响应:
{
"error": null,
"result": { "status": "success" },
"id": 100
}
- method: depth.subscribe
- "params":[ "BTCBCC", # 市场名 100, # 定单价格,取值:1, 5, 10, 20, 30, 50, 100 "0.0001" # 价格区间精度, 取值:"0","0.00000001","0.0000001","0.000001","0.00001", "0.0001", "0.001", "0.01", "0.1" ]
请求
参数名 | 描述 |
---|---|
market | 市场名 |
price | 定单价格 |
precision | 价格区间精度 |
响应数据
status 是否成功
定单批量深度订阅
WEBSOCKET
请求:
{
"method":"depths.subscribe",
"params":[["ETCUSDT",100,"0.1"]],
"id":100
}
响应:
{
"error": null,
"result": { "status": "success" },
"id": 100
}
- method: depths.subscribe
- params: [[ market. , # 市场名 price, # 定单价格,取值:1, 5, 10, 20, 30, 50, 100 precision # 价格区间精度, 取值:"0","0.00000001","0.0000001","0.000001","0.00001", "0.0001", "0.001", "0.01", "0.1" ]]
请求
参数名 | 描述 |
---|---|
market | 市场名 |
price | 定单价格 |
precision | 价格区间精度 |
响应数据
status 是否成功
定单深度数据推送
WEBSOCKET
请求:
{
"method": "depth.update",
"params": [true, {"asks": [["8000", "20"]], "bids": [["800", "4"]]}, "BTCBCC"],
"id": null
}
- method: depth.update
- params: [
true, #clean: Boolean, true: complete result,false: last returned updated result
{
"asks": [
[
"8000", # 价格
"20" # 数量
],
[ "8000.1", # 价格 "20" # 价格≥8000,小于8000.1的所有定单数量和之和 ] ], "bids": [ [ "800", "4" ], [ "800.1", "5" ] ] }, "BTCBCC" # 交易币对的市场名称 ]
返回结果说明: 以价格区间精度为0.1为例。
取消定单深度订阅
WEBSOCKET
请求:
{
"method":"depth.unsubscribe",
"params":[],
"id":100
}
响应:
{
"error": null,
"result": { "status": "success" },
"id": 100
}
- method: depth.unsubscribe
- params: []
用户定单状态订阅
WEBSOCKET
请求:
{
"method":"order.subscribe",
"params":["BTCBCC","BTCETH"],
"id":100
}
响应:
{
"error": null,
"result": { "status": "success" },
"id": 100
}
- method: order.subscribe
- params: 市场名称列表
用户定单变化推送
响应:
{
"method": "order.update",
"params": [
1, # 定单状态变化事件类型,整数值 1-新定单, 2-更新定单, 3-完全成交和撤单
{
"id": 422458,
"market": "BTCBCC",
"source": "",
"type": 1, # 1-limit order 2 -market order
"side": 1, # 1-Ask 2-Bid
"user": 5,
"ctime": 1513819599.987308, # create_time
"mtime": 1513819599.987308, # update_time
"price": "8000",
"amount": "10",
"taker_fee": "0.002",
"maker_fee": "0.001",
"left": "10",
"deal_stock": "0",
"deal_money": "0",
"deal_fee": "0" }
],
"id": 102
}
- method: order.update
- params: []
取消定单状态变化订阅
- method: order.unsubscribe
- params: []
WEBSOCKET
请求:
{ "method":"order.unsubscribe",
"params":[],
"id":100
}
响应:
{
"error": null,
"result": { "status": "success" },
"id": 100
}
用户资产信息订阅
WEBSOCKET
请求:
{
"method":"asset.subscribe",
"params":["BTC","ETH","BCC"],
"id":100
}
响应:
{
"error": null,
"result": { "status": "success" },
"id": 100
}
- method: asset.subscribe
- params: 资产名称列表
用户资产变化信息推送
响应:
{
"method": "asset.update",
"params": {
"ETH": { "available": "0", "freeze": "0" },
"BTC": { "available": "0", "freeze": "0" }
},
"id": 100
}
- method: asset.update
- params: []
取消用户资产信息订阅
WEBSOCKET
请求:
{
"method":"asset.unsubscribe",
"params":[],
"id":100
}
响应:
{
"error": null,
"result": { "status": "success" },
"id": 100
}
- method: asset.unsubscribe
- params: []
Errors
The Kittn API uses the following error codes:
Error Code | Meaning |
---|---|
400 | Bad Request -- Your request is invalid. |
401 | Unauthorized -- Your API key is wrong. |
403 | Forbidden -- The kitten requested is hidden for administrators only. |
404 | Not Found -- The specified kitten could not be found. |
405 | Method Not Allowed -- You tried to access a kitten with an invalid method. |
406 | Not Acceptable -- You requested a format that isn't json. |
410 | Gone -- The kitten requested has been removed from our servers. |
418 | I'm a teapot. |
429 | Too Many Requests -- You're requesting too many kittens! Slow down! |
500 | Internal Server Error -- We had a problem with our server. Try again later. |
503 | Service Unavailable -- We're temporarily offline for maintenance. Please try again later. |