XT API接入说明
REST API
https://api.xt.com
鉴于延迟高和稳定性差等原因,不建议通过代理的方式访问API。
请求头信息请设置为:Content-Type=application/x-www-form-urlencoded
限频规则
获取资产每秒3次,其他方法单个用户每秒10次,单个IP每分钟1000次,超出锁定账户10分钟。
签名说明
使用API请求在通过 internet 传输的过程中极有可能被篡改,为了确保请求未被更改,除公共接口(基础信息,行情数据)外的私有接口均必须使用您的 API Key 做签名认证,以校验参数或参数值在传输途中是否发生了更改。每一个API Key需要有适当的权限才能访问相应的接口。每个新创建的API Key都需要分配权限。权限类型分为:读取,交易,提币。在使用接口前,请查看每个接口的权限类型,并确认你的API Key有相应的权限。
一个合法的请求由以下几部分组成:
方法请求地址:即访问服务器地址 api.xt.com
,比如 api.xt.com/trade/api/v1/order
。
API 访问密钥(accesskey):您申请的 API Key 中的 Access Key。
时间戳(nonce):您应用程序发出请求的时间戳,13位毫秒数,将根据这个时间戳检验您API请求的有效性。
签名(signature):签名计算得出的值,用于确保签名有效和未被篡改,使用 HmacSHA256
。
签名步骤
规范要计算签名的请求 因为使用 HMAC 进行签名计算时,使用不同内容计算得到的结果会完全不同。所以在进行签名计算前,请先对请求进行规范化处理。下面以查询某订单详情请求为例进行说明:
https://api.xt.com/trade/api/v1/getOrder?accesskey={AccessKey}&market={Market}&nonce={Timestamp}&id={OrderId}&signature={Signature}
按照ASCII码的顺序对参数名进行排序,将各参数使用字符 “&” 连接,例如下面就是排序之后结果:
accesskey=myAccessKey&id=123&market=btc_usdt&nonce=1562919832183
需要注意的是nonce的值为13位毫秒数时间戳
使用网站申请得到的Secret Key对上面生成的参数串进行 HmacSHA256
签名。例如上述参数进行签名的结果:
97b7b71741ca0aec6e0404a5b1c7cb2a78e7bd6c2a8088dbd84a20129dee4fe7
最后把签名赋值到参数名signature并提交到服务器。
返回格式
所有的接口返回都是JSON格式。
错误代码
状态码 | 错误信息 |
---|---|
101 | 委托失败,未知的委托类型 |
102 | 委托失败,参数错误 |
103 | 委托失败,没有足够的资金 |
104 | 委托失败,未知异常请稍后再试 |
105 | 委托失败,委托数量不能低于系统设置最小委托数量 |
106 | 委托失败,委托频繁 |
107 | 操作失败,暂未开放交易 |
108 | 委托失败,触发价格不正确 |
109 | 委托失败,不支持市价单委托 |
110 | 委托失败,不支持止盈止损单委托 |
111 | 委托失败,超出系统保护价格 |
121 | 撤单失败,订单不存在或已取消 |
122 | 撤单失败,订单已取消或已完成 |
123 | 撤单失败,未知异常请稍后再试 |
124 | 撤单失败,操过频繁 |
404 | 其他错误提示 |
行情数据
交易市场配置
GET /data/api/v1/getMarketConfig
请求参数
None
响应数据
{
"ltc_usdt": {
"minAmount": 0.00010, // 最小下单数量
"pricePoint": 2, // 价格小数点
"coinPoint": 4, // 数量小数点
"maker": 0.00100000, // 主动单交易手续费
"taker": 0.00100000 // 被动单交易手续费
}
"eth_usdt": {
"minAmount": 0.00010,
"pricePoint": 2,
"coinPoint": 4,
"maker": 0.00100000,
"taker": 0.00100000
},
"btc_usdt": {
"minAmount": 0.0000010,
"pricePoint": 2,
"coinPoint": 6,
"maker": 0.00100000,
"taker": 0.00100000
}
}
K线数据
GET /data/api/v1/getKLine
请求参数
参数 | 数据类型 | 是否必须 | 默认值 | 描述 | 取值范围 |
---|---|---|---|---|---|
market | string | true | N/A | 交易市场 | btc_usdt, eth_usdt… |
type | string | true | N/A | K线类型 | 1min,5min,15min,30min,1hour,6hour,1day,7day,30day |
since | integer | true | 0 | 时间条件,控制增量 | 第一次为0,之后为响应的since的值即可 |
响应数据
// [时间戳,开盘价,最高价,最低价,收盘价,成交量,成交额]
{
"datas": [
[
1562923200,
11634.64,
11637.22,
11627.58,
11631.43,
1.144578,
13314.16264138
]
],
"since": 1562923200
}
聚合行情(Ticker)
GET /data/api/v1/getTicker
请求参数
参数 | 数据类型 | 是否必须 | 默认值 | 描述 | 取值范围 |
---|---|---|---|---|---|
market | string | true | N/A | 交易市场 | btc_usdt, eth_usdt… |
响应数据
{
"high": 11776.93,
"moneyVol": 33765013.61761934, //成交额
"rate": 1.3900, //24涨跌幅
"low": 11012.17,
"price": 11609.92,
"ask": 11618.25,
"bid": 11604.08,
"coinVol": 2944.208780 //成交量
}
所有市场的最新 Ticker
GET /data/api/v1/getTickers
请求参数
None
响应数据
{
"ltc_usdt": {
"high": 106.99,
"moneyVol": 1589953.528784,
"rate": 4.3400,
"low": 97.51,
"price": 105.52,
"ask": 105.61,
"bid": 105.46,
"coinVol": 15507.7052
},
"btc_usdt": {
"high": 11776.93,
"moneyVol": 33765013.61761934,
"rate": 1.3900,
"low": 11012.17,
"price": 11609.92,
"ask": 11618.25,
"bid": 11604.08,
"coinVol": 2944.208780
}
}
市场深度数据
GET /data/api/v1/getDepth
请求参数
参数 | 数据类型 | 是否必须 | 默认值 | 描述 | 取值范围 |
---|---|---|---|---|---|
market | string | true | N/A | 交易市场 | btc_usdt, eth_usdt… |
响应数据
{
"last": 11591.26, //最新成交价
"asks": [
[
1