https://api.qb.com
使用标准的HTTP协议参数格式,URLEncode字符编码为UTF-8;注:URLEncode为http参数传输的标准,大部分的httpclient已经自动处理。 为了数据安全,平台加入签名认证机制。 用户首先需要在QB平台申请accessKey及对应的secretKey。客户端要保证secretKey不被泄露。
调用API时使用签名,sign=XXXX。
生成签名的步骤及规则:
- 1) 将请求中所有参数(
值为空字符串除外
)以参数名按字典序排序;
- 2) 将排序好的参数键值对用"&"拼接(
value用urlencode编码
),例如:k1=v1&k2=v2&k3=v3;
- 3) 用Hmac SHA256算法对步骤2)中生成的进行hash h=hmacsha256("secret",'k1=v1&k2=v2&k3=v3')
-
- 对上述hash值进行base64编码,并转小写 sign=lower(base64(h))
参数名 |
类型 |
说明 |
是否必须 |
默认值 |
备注 |
accessKey |
string |
平台分配的accessKey |
Y |
|
|
signV |
string |
签名版本,固定为1 |
Y |
1 |
|
ts |
string |
客户端当前时间戳(精确到秒) |
Y |
|
客户端必须校对本地时间,服务器时间差不能大于30秒 |
sign |
string |
签名 |
Y |
|
|
{
"status":"ok",
"result":{} //成功时返回的业务数据,下列api中返回数据是指这一项
}
{
"status":"error",
"errorCode":"100000" //失败时错误码,详细说明见错误码列表
}
下列api文档中的返回数据只展示了这里的result项
GET /api/v1/market/tickers
- 参数: 无
- 返回:
{
"data":[
{
"open":0.044297, // 开盘价
"close":0.042178, // 收盘价
"low":0.040110, // 最低价
"high":0.045255, // 最高价
"symbol":"btc_usdt", // 交易对(coinName_marketName)
"amount":2286, //24小时交易量
"volume":8553680.092248 //24小时成交额
},
......
]
}
GET /api/v1/market/trade
- 参数:
参数名 |
类型 |
说明 |
是否必须 |
默认值 |
备注 |
symbol |
string |
交易对 |
Y |
|
|
{
"data":[
{
"id": 成交id,
"price": 成交价钱,
"amount": 成交量,
"type": "buy|sell",
"ts": 成交时间戳
},
...
]
}
GET /api/v1/market/depth
- 参数:
参数名 |
类型 |
说明 |
是否必须 |
默认值 |
备注 |
symbol |
string |
交易对 |
Y |
|
|
type |
int |
合并类型0表示不合并,目前仅支持0 |
|
0 |
|
{
"ts" : 1422222222, //当前时间戳
"bids": [ // 买入
[7964, 0.0678], // [price, amount]
[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],
[7995, 0.88],
...
]
}
GET /api/v1/market/summary
- 参数:
参数名 |
类型 |
说明 |
是否必须 |
默认值 |
备注 |
symbol |
string |
交易对 |
Y |
|
|
{
"amount": 4316.4346,//24小时成交量,
"high": 8119.00,//近24小时最高价,
"ts": 1489464451,//统计时间时间戳
"low": 7875.00,//近24小时最低价,
"vol": 34497276.905760//
}
POST /api/v1/order/place
- 参数:
参数名 |
类型 |
说明 |
是否必须 |
默认值 |
备注 |
symbol |
string |
交易对 |
Y |
|
|
price |
float |
价格 |
Y |
0.0 |
市价单不用传参 |
amount |
float |
数量 |
Y |
0.0 |
大于最小下单量限制 |
type |
string |
下单类型 |
Y |
|
market-市价,limit-限价 |
side |
string |
买卖类型 |
Y |
|
sell-卖,buy-买 |
POST /api/v1/order/cancel
- 参数:
参数名 |
类型 |
说明 |
是否必须 |
默认值 |
备注 |
symbol |
string |
交易对 |
Y |
|
|
orderId |
string |
订单id |
Y |
|
|
{
"orderId":"1234567",
"result":1 // 撤销状态,1-撤单申请已提交
}
POST /api/v1/order/cancelallbuy
- 参数:
参数名 |
类型 |
说明 |
是否必须 |
默认值 |
备注 |
symbol |
string |
交易对 |
Y |
|
|
{
"result":1 // 撤销状态,1-撤销成功
}
POST /api/v1/order/cancelallsell
- 参数:
参数名 |
类型 |
说明 |
是否必须 |
默认值 |
备注 |
symbol |
string |
交易对 |
Y |
|
|
{
"result":1 // 撤销状态,1-撤销成功
}
GET /api/v1/order/detail
- 参数:
参数名 |
类型 |
说明 |
是否必须 |
默认值 |
备注 |
symbol |
string |
交易对 |
Y |
|
|
orderId |
string |
订单id |
Y |
|
|
{
"id": "59378",
"symbol": "eth_usdt",
"amount": 10.1000000000,
"price": 100.1000000000,
"createdAt": 1494901162595, //下单时间
"type": "market|limit",
"side": "buy|sell",
"dealedAmount": 10.1000000000, //成交量
"dealedAvgPrice":1.25555, //平均成交价
"fee": 0.0202000000, // 交易费
"finishedAt": 1494901400468, //成交时间
"state": 0 // 当前状态 0:未成交 1:部分成交 2:全部成交 3:已撤单 4:撤单中 5:市价单已结束 6:市价单部分成交 7:撤单部分成交',
}
GET /api/v1/order/matchdetail
- 参数:
参数名 |
类型 |
说明 |
是否必须 |
默认值 |
备注 |
symbol |
string |
交易对 |
Y |
|
|
orderId |
string |
订单id |
Y |
|
|
{
"data":[
{
"id": 29553, // 交易id
"symbol": "eth_usdt",
"side":"sell|buy",
"price": 100.1000000000,
"amount": 9.1155000000,
"fee": 0.0182310000,
"dealAt": 1494901400 //成交时间
},
...
]
}
GET /api/v1/order/openOrders
- 参数:
参数名 |
类型 |
说明 |
是否必须 |
默认值 |
备注 |
symbol |
string |
交易对 |
Y |
|
|
side |
string |
卖单或买单:buy,sell,all |
F |
all |
|
size |
int |
返回的数量,最大支持500 |
F |
30 |
|
{
"data":[
{
"id": "59378",
"symbol": "eth_usdt",
"amount": 10.1000000000,
"price": 100.1000000000,
"createdAt": 1494901162595, //下单时间
"type": "market|limit",
"side": "buy|sell",
"dealedAmount": 10.1000000000, //成交量
"dealedAvgPrice":1.25555, //平均成交价
"fee": 0.0202000000, // 交易费
"finishedAt": 1494901400468, //成交时间
"state": 0 // 当前状态 0:未成交 1:部分成交 2:全部成交 3:已撤单 4:撤单中 5:市价单已结束 6:市价单部分成交 7:撤单部分成交',
},
...
]
}
GET /api/v1/order/historyTrades
- 参数:
参数名 |
类型 |
说明 |
是否必须 |
默认值 |
备注 |
symbol |
string |
交易对 |
Y |
|
|
side |
string |
卖单或买单:buy,sell,all |
F |
all |
|
startTime |
string |
成交开始时间戳 |
|
|
|
endTime |
string |
成交结束时间戳 |
|
|
|
{
"data":[
{
"id": 29553, // 交易id
"orderId":354678
"symbol": "eth_usdt",
"side":"sell|buy",
"price": 100.1000000000,
"amount": 9.1155000000,
"fee": 0.0182310000,
"dealAt": 1494901400 //成交时间
},
...
]
}
GET /api/v1/account/assets
- 参数: 无
- 返回:
{
"data": [
{
"currency": "usdt",
"frozen": 234.0047, //冻结数量
"avail": 328048.119992 // 可用数量
},
....
]
}
{
"data": [
{
"symbol":"btc_usdt"
"coin": "btc",
"market": "usdt",
"pricePrecision": 2, //价格精度
"amountPrecision": 4, // 数量精度
"partition": "main|innovation" //交易对所在分区,主区|创新区
},
...
]
}
错误码 |
错误说明 |
|
-1 |
未知错误 |
|
1000 |
错误请求 |
|
1001 |
参数错误 |
|
1002 |
签名错误 |
|
1003 |
系统忙 |
|
1004 |
客户端时间错误 |
|
|
|
|
2000 |
订单不存在 |
|
2001 |
交易对不存在 |
|
2002 |
余额不足 |
|
2003 |
下单价格超限 |
|
2004 |
下单数量超限 |
|
2005 |
价格精度超限 |
|
2006 |
数量精度超限 |
|
2007 |
订单side无效,只允许buy和sell |
|
2008 |
订单状态无效 |
|
2009 |
订单类型无效 |
|
2010 |
拒绝下单 |
|
2011 |
拒绝撤单 |
|
|
|
|
3001 |
用户未登录 |
|
3002 |
用户无权限 |
|
3003 |
资金密码错误 |
|