zbg行情api
-
- HTTPAPI
- API地址域名地址
- 使用说明
- 1配置及基础功能API
- 2获取用户信息接口
- 3交易API
- 4 财务资金API
- 5 签名规则
- 6市场行情类接口
- 7 接口结果外部和错误码
- 8错误码列表:
HTTPAPI
zbg为用户提供了一个简单的而又强大的API,旨在帮助用户快速高效的将zbg交易功能整合到自己应用当中。如果在使用过程中有任何问题,请联系我们技术讨论QQ群:829230107 ,我们将会为您做出最权威的解答
Java 示例: https://github.com/zbg-user-api-demo/user_api_demo_java.git
Python 示例: https://github.com/zbg-user-api-demo/user_api_demo_py.git
API地址域名地址
域名地址: https://www.zbg.com
使用说明
使用这些API之前首先要获取两项参数,在网站登录后,进入API功能开启然后获取Api Id和Api Secret两项参数。通过这两个参数拥有交易下单、提币等高级权限,请用户注意保密。所有http接口都需要进行签名,签名规则在后面说明。
1配置及基础功能API
1.1获取市场列表
path:https://www.zbg.com/exchange/config/controller/website/marketcontroller/getByWebId
请求方式:post
请求报文:无
返回成功报文
{
{ “datas”: [
{
“amountDecimal”: 8,//数量精度
“minAmount”: “0.0001000000”,//最小数量
“buyerCurrencyId”: “2”,//买方币种
“priceDecimal”: 8,//价格精度
“serverId”: “entrust-server-001”,//服务ID
“marketId”: “70”,//市场ID
“webId”: “100”, //站点ID
“modifyTime”: 0,
“sellerCurrencyId”: “19”,//卖方币种
“createTime”: 1522400906009,
“defaultFee”: “0.00050000”,//默认费率
“name”: “zt_btc”,//市场名称
“leverType”: “1”,//杠杆类型: 1现货 2杠杆
“state”: 1,//状态: 1 运行, 0 停止 -1 删除
“openTime”: 1,//开盘时间
},
…
],
“resMsg”: {
“code”: “1”,
“method”: null,
“message”: “success !”
}
}
1.2获取币种详情列表
path:https://www.zbg.com/exchange/config/controller/website/currencycontroller/getCurrencyList
请求方式 :post
请求报文
无
返回成功报文
{
“datas”: [
{
“totalNumber”: “230000000.00000000”,//总量
“tradeSearchUrl”: null,//交易查询地址
“tokenCoinsId”: 0,//如果大于0是另一种币的token,否则等于0
“minCash”: null,
“tokenName”: null,//
“description”: “比特币”,//描述
“arithmetic”: null, //共识算法
“dailyDrawLimit”: 10000,
“remark”: null, //
“isLegalCoin”: 0, //是否是法币,比如美金 1是,0不是
“outConfigTimes”: 0,//
“timesFreetrial”: “0”,//
“hourFreetrial”: “0”,//
“inConfigTimes”: 6,//
“alias”: “b”,//别名
“logo”: “market-btc.png”,//图标
“needBlockUrl”: 0,//是否需要block地址,0不需要 1需要
“currencyId”: “2”,//币种id
“drawFlag”: 1,
“rechargeFlag”: 1,
“onceDrawLimit”: 100,
“founder”: null,
“drawFee”: “0.00100000”,
“blockChainUrl”: “https://blockchain.info/tx/”, //blockChain查询地址(区块查询地址)
“dayFreetrial”: “0”,
“marketValue”: null,//总市值
“minFee”: null,
“teamAddress”: null,
“defaultDecimal”: 2,//币种小数位(精度)-优先级低于 market中的配置
“publishNumber”: “14500000.00000000”,//已发行
“isMining”: “0”,//是否可挖矿
“name”: “btc”,//名称
“limitAmount”: null,
“websiteCurrencyId”: “223f4d23232”,
“descriptionEnglish”: “
The BTC is …
”,//英文描述
“mark”: null//符号
},
…
],
“resMsg”: {
“code”: “1”,
“method”: null,
“message”: “success !”
}
}
2获取用户信息接口
2.1获取用户信息接口
path:https://www.zbg.com/exchange/user/controller/website/usercontroller/getuserinfo
请求方式:post
请求报文
无
返回成功报文
{
“datas”:{
“loginMobileAuth”:0,//是否手机认证:0:否,1:是
“googleStatus”:0,//审核状态:0:没审核,1:修改审核中
“isAlipay”:"",//是否绑定支付宝1绑定0未绑定
“loginPwd”:“1”,//是否设置登录密码:0:否,1:是
“externalUidType”:null,//扩展的userid来源类型,比如:zb,exx
“isWechat”:"",//是否绑定微信1绑定0未绑定
“loginAuth”:3,//登录验证(1-登录密码 2-异地登录验证 4-谷歌验证,可以三者任意组合,默认 3
“merchantName”:"",//商户名字
“countryCode”:null,//国家代码
“loginName”:“13068859717”,//登录名
“loginGoogleAuth”:1,//是否谷歌认证:0:否,1:是
“email”:null,//用户邮箱
“nickName”:“13068859717”,//用户昵称
“isBank”:"",//是否绑定银行
“mobileAuth”:1,//是否手机认证:0:否,1:是,[2:修改失败,不通过,-1:修改审核中]
“mobile”:"+86 13068859717",//手机号码
“userId”:“test6”,//用户id
“recommendCode”:“dGVzdDY=\u000a”,//推荐码
“realName”:"",//用户实名
“withdrawAuth”:3,//提现验证(1-资金密码 2-短信/邮箱验证 4-谷歌验证码 默认资金密码+短信/邮箱 = 3)
“recommendCount”:null,//推荐人数
“externalUserId”:null,//扩展的userid,比如zb一键登陆保存的zb的userid
“mobileStatus”:0,//审核状态:0:没审核,1:修改审核中
“safePwdAuth”:1,//是否设置安全密码:0:否,1:是
“googleAuth”:1,//是否谷歌认证:0:否,1:是
“loginEmailAuth”:0,//是否邮箱认证:0:否,1:是
“tradeAuth”:1,//交易验证(1-永不输入资金密码 2-6小时内免输资金密码 3-每次交易均验证资金密码)
“status”:1//0(000-初始状态) 1(001-已实名认证) 2(010-已银行认证) 3(011已实名和银行认证)
},
“resMsg”:{
“code”:“1”,
“method”:null,
“message”:“success !”
}
}
3交易API
3.1新增委托:
path:https://www.zbg.com/exchange/entrust/controller/website/EntrustController/addEntrust
请求方式:post
请求报文:
json
{
“amount”: 0, //下单数量
“rangeType”: 0, //委托类型,目前仅支持现价委托 0:现价委托 1 区间委托
“type”: 0, //买卖类型:0 卖出 1 购买
“marketId”: “90”, //市场ID
“price”: 0 //价格
}
返回报文:
json
{
“datas”:{
“entrustId”:“E6419466484531482624” //委托ID
},
“resMsg”:{
“code”:“1”, //1代表成功,其他为错误码见说明
“method”:null,
“message”:“success !”
}
}
3.2取消委托
path:https://www.zbg.com/exchange/entrust/controller/website/EntrustController/cancelEntrust
请求方式:post
请求报文:
json
{
“entrustId”: “E6419466484531482624”, //要取消的委托ID
“marketId”: “90” //市场ID
}
返回报文:
json
{
“datas”:null,
“resMsg”:{
“code”:“1”, //1代表成功,其他为错误码见说明
“method”:null,
“message”:“success !”
}
}
3.3查询正在进行的委托
path: https://www.zbg.com/exchange/entrust/controller/website/EntrustController/getUserEntrustRecordFromCache
请求方式:get
请求报文:
marketId: 90 //市场ID
返回报文:
json
{
“datas”: [{
“amount”: “1.1”, //数量
“rangeType”: “0”, //区间类型 0 现价委托 1 区间委托
“rangeLowPrice”: “null”, //区间委托的最低价
“rangeHighPrice”: “null”, //区间委托的最高价
“totalMoney”: “5.555”, //总金额
“entrustId”: “E6437955999037923328”, //委托ID
“type”: “0”, //0 卖出 1 购买 -1 取消
“userId”: “test6”, //用户id
“completeAmount”: “0”, //已经成交的数量
“marketId”: “80”, //市场id
“dealTimes”: “0”, //交易处理次数
“createTime”: “1534928321609”, //下单时间
“price”: “5.05”, //单价
“completeTotalMoney”: “0”, //已完成的总金额
“entrustType”: “false”, //委托类型 0(false)普通委托单 1(true)杠杆委托单
“status”: “0”, //状态 : -2资金解冻失败 -1用户资金不足 0起始 1取消 2交易成功 3交易一部分
}],
“resMsg”: {
“code”: “1”, //1代表成功,其他为错误码见说明
“method”: null,
“message”: “success !”
}
}
3.4分页查询历史委托委托(只查询已经成交和已经取消的委托记录)
paht: https://www.zbg.com/exchange/entrust/controller/website/EntrustController/getUserEntrustList
请求方式:get
请求报文:
marketId: 90 //市场ID
pageIndex: 1 //页码
pageSize: 20 //每页展示条数
type: 1 //买卖类型:0 卖出 1 购买
status: 1 //状态 : -2资金解冻失败 -1用户资金不足 0起始 1取消 2交易成功 3交易一部分
返回报文:
json
{
“datas”: [{
“amount”: “1.1”, //数量
“rangeType”: “0”, //区间类型 0 现价委托 1 区间委托
“rangeLowPrice”: “null”, //区间委托的最低价
“rangeHighPrice”: “null”, //区间委托的最高价
“totalMoney”: “5.555”, //总金额
“entrustId”: “E6437955999037923328”, //委托ID
“type”: “0”, //0 卖出 1 购买 -1 取消
“userId”: “test6”, //用户id
“completeAmount”: “0”, //已经成交的数量
“marketId”: “80”, //市场id
“dealTimes”: “0”, //交易处理次数
“createTime”: “1534928321609”, //下单时间
“price”: “5.05”, //单价
“completeTotalMoney”: “0”, //已完成的总金额
“entrustType”: “false”, //委托类型 0(false)普通委托单 1(true)杠杆委托单
“status”: “0”, //状态 : -2资金解冻失败 -1用户资金不足 0起始 1取消 2交易成功 3交易一部分
}],
“totalPage”: “2”, //委托记录总条数
“currentPage”: “1”, //当前页数
“resMsg”: {
“code”: “1”, //1代表成功,其他为错误码见说明
“method”: null,
“message”: “success !”
}
}
3.5根据委托单id查询委托记录
path: https://www.zbg.com/exchange/entrust/controller/website/EntrustController/getEntrustById
请求方式:get
请求参数:
marketId: 90 //市场ID
entrustId: E6419443135315070976 // 要查询的委托ID
返回报文:
{
“datas”: [{
“amount”: “1.1”, //数量
“rangeType”: “0”, //区间类型 0 现价委托 1 区间委托
“rangeLowPrice”: “null”, //区间委托的最低价
“rangeHighPrice”: “null”, //区间委托的最高价
“totalMoney”: “5.555”, //总金额
“entrustId”: “E6437955999037923328”, //委托ID
“type”: “0”, //0 卖出 1 购买 -1 取消
“userId”: “test6”, //用户id
“completeAmount”: “0”, //已经成交的数量
“marketId”: “80”, //市场id
“dealTimes”: “0”, //交易处理次数
“createTime”: “1534928321609”, //下单时间
“price”: “5.05”, //单价
“completeTotalMoney”: “0”, //已完成的总金额
“entrustType”: “false”, //委托类型 0(false)普通委托单 1(true)杠杆委托单
“status”: “0”, //状态 : -2资金解冻失败 -1用户资金不足 0起始 1取消 2交易成功 3交易一部分
}],
“resMsg”: {
“code”: “1”, // 1代表成功,其他为错误码见说明
“method”: null,
“message”: “success !”
}
}
3.6分页查询正在进行的委托
path: https://www.zbg.com/exchange/entrust/controller/website/EntrustController/getUserEntrustRecordFromCacheWithPage
请求方式:get
请求参数:
marketId: 90 //市场ID
pageIndex: 1 //页码
pageSize: 20 //每页展示条数
返回报文:
{
“datas”: {
“entrustList”: [{
“entrustId”: “E6483888378201780224”, //委托ID
“sequeueId”: 6483888378201780224,
“webId”: “103”,
“customerOrderId”: null,
“userId”: “test6”, //用户id
“price”: “0.0581”, //单价
“rangeType”: 0, //区间类型 0 现价委托 1 区间委托
“rangeHighPrice”: null, //区间委托的最高价
“rangeLowPrice”: null, //区间委托的最低价
“amount”: “22.8249”, //数量
“totalMoney”: “1.32612669”, //总金额
“completeAmount”: “0”, //已经成交的数量
“completeTotalMoney”: “0”, //已完成的总金额
“dealTimes”: 0,
“type”: 0, //0 卖出 1 购买 -1 取消
“entrustType”: 0, //委托类型 0(false)普通委托单 1(true)杠杆委托单
“status”: 0, //状态 : -2资金解冻失败 -1用户资金不足 0起始 1取消 2交易成功 3交易一部分
“freezeId”: “Z6483888378244132864”,
“marketId”: “80”, //市场id
“createTime”: 1545879454184,
“originalWebId”: “103”,
“originalMarketId”: “336”,
“hedgingId”: null,
“tempDealTimes”: 0,
“availabelAmount”: “22.8249”
},
…
],
“totalRow”: 4,
“pageNum”: 1,
“pageSize”: 3,
“totalPage”: 2 //委托记录总条数
},
}
“resMsg”: {
“code”: “1”, // 1代表成功,其他为错误码见说明
“method”: null,
“message”: “success !”
}
}
4 财务资金API
4.1 获取充币地址
path:https://www.zbg.com/exchange/fund/controller/website/fundcontroller/getPayinAddress
请求方式:post
请求报文
{
“currencyTypeName”:“btc” // 货币类型名称(必传)
}
返回报文
{
“datas”: {
“address”: “19cdJwd3j6ArHNhiYoWpN8cJq9ash7WDDC”,// 充币地址
“wallet”: “merchants014”
},
“resMsg”: {
“code”: “1”,
“method”: null,
“message”: “success !”
}
}
4.2 查询充币记录
path:https://www.zbg.com/exchange/fund/controller/website/fundcontroller/getPayinCoinRecord
请求方式:post
请求报文
{
“currencyTypeName”:“qtum”, // 货币类型
“sort”:1 // 不传按充币时间倒序排,传了按升序排序
“pageNum”:1
“pageSize”:20
}
返回报文
{
“datas”: {
“totalRow”: 1, // 总行数
“totalPage”: 1, // 总页数
“pageSize”: 20, // 每页数量
“list”: [
{
“currencyTypeId”: 1,// 货币类型id
“depositId”: “f3342424”,// 充值主键
“amount”: “10.0”,// 充币数量
“confirmTimes”: “4”,// 确认次数
“createTime”: “2018-03-10 10:22:09.0”,// 充币时间
“depositAddress”: “1BKd2sSPYzxC2XHurR6oQWc2wzSx2rZzck”,// 充币地址
“txId”: “6378183001917882368”,// 交易id
“userId”: “1”,// 用户id
“status”: 1,//’ 0:未到账 1:已到账 ’
}],"pageNum": 1
},
"resMsg": {"code": "1","method": null,"message": "success !"
}
}
4.3 查询提币记录
path:https://www.zbg.com/exchange/fund/controller/website/fundwebsitecontroller/getpayoutcoinrecord
请求方式:get
请求报文
currencyId=1 // 币种id(必选)
tab=all // (必选) | all(所有), wait(已提交,未审核), success(审核通过), fail(审核失败), cancel(用户主动取消)
pageIndex=1 // 可选, 默认 1
pageSize=10 // 可选, 默认 10
返回报文
{
“datas”: {
“totalRow”: 34, // 总行数
“totalPage”: 4, // 总页数
“pageSize”: 10, // 每页数量
“list”: [
{
“modifyUid”: null, // 修改人id
“withdrawalId”: “W6419027628808093696”, // 提现id
“fees”: “0.001000000000000000”, // 手续费
“amount”: “10.000000000000000000”, // 提现数量
“userApplyWithdrawId”: “7eBDJ5PKbSK”, // 提现记录id
“verifyRemark”: null, // 审核意见
“remark”: null, // 备注
“verifyTime”: 0, // 审核时间
“userName”: "994709373@qq.com", // 用户名
“userId”: “7e9ioSoVXcW”, // 用户id
“actuallyAmount”: “10.000000000000000000”, // 实际到账数量
“modifyTime”: 0, // 修改时间
“verifyStatus”: 0, // 审核状态(0 待审核 , 1 审核通过 -1 审核不通过)
“createTime”: 1530415446577, // 提币时间
“state”: 1, // 状态(-1 删除, 1 正常)
“currencyId”: “2”, // 币种id
“withdrawalAddress”: “1JimMZks39eVqU6T3v6wvz1m4LtJ3tPjGL”, // 提币地址
“verifyUid”: null // 审核人id
}
],
“pageNum”: 1
},
“resMsg”: {
“code”: “1”,
“method”: null,
“message”: “success !”
}
}
4.4 获取用户所有资金信息
path:https://www.zbg.com/exchange/fund/controller/website/fundcontroller/findbypage
请求方式:post
请求报文
{
“pageSize”:30, # 每页行数(可选)
“pageNum”:1 # 页码(可选)
}
返回报文
{
“datas”: {
“totalRow”: null,
“totalPage”: null,
“pageSize”: 30,
“list”: [
{
“currencyTypeId”: 1, // 货币类型id
“amount”: “971.174000000000000000”, // 用户当前可用资金数量
“freeze”: “122.000000000000000000”, // 用户冻结资金数量
“createTime”: “2018-02-19 10:02:33”,
“depositAddress”: null,
“userId”: “1”
},
{
“currencyTypeId”: 2,
“amount”: “768.368000000000000000”,
“freeze”: “131.000000000000000000”,
“createTime”: “2018-02-19 10:02:33”,
“depositAddress”: null,
“userId”: “1”
}
],
“pageNum”: 1
},
“resMsg”: {
“code”: “1”,
“method”: null,
“message”: “success !”
}
}
4.5 查询提币地址
path:https://www.zbg.com/exchange/fund/controller/website/fundwebsitecontroller/getwithdrawaddress
请求方式:get
请求报文
currencyId=2 // (必传)
pageIndex=1 // (可选, 默认1)
pageSize=10 // (可选, 默认10)
返回报文
{
“datas”: {
“totalRow”: 2,
“totalPage”: 1,
“pageSize”: 10,
“list”: [
{
“address”: “1DkwrD4bMtjd6kcZw8CxM9r3z4AGVFfSRz”, // 地址
“modifyTime”: 1524217688882, // 修改时间
“currencyName”: “btc”, // 币种名称
“createTime”: 1523185357488, // 提币时间
“userFundAddressId”: “7bwK95B7jTk”, // 地址id
“remark”: “correct”, // 备注
“currencyId”: “2”, // 币种id
“type”: 1, // (1-提币地址, 2-打币地址)
“userName”: “Mr.牛”, // 用户名
“userId”: “7e8fMkzTlL6”, // 用户id
“status”: “1” // 状态(-1 删除, 1 正常)
}
],
“pageNum”: 1
},
“resMsg”: {
“code”: “1”,
“method”: null,
“message”: “success !”
}
}
5 签名规则
5.1 签名规则
签名串sign=md5(Apiid+Timestamp+参数内容拼串+签名秘钥),Timestamp是毫秒为单位的时间戳,签名秘钥为ApiSecret,和Apiid在网站打开Api功能时获取。参数拼串内容规则有三种,只有header参数的为空字符串"" ,body json格式的参数为body参数的json字符串格式,key-value以及get形式的参数内容拼串为所有参数按key值首字母排序后再按key1+value1+key2+value2…的形式拼串。签名后将Apiid、Timestamp、Sign放入到请求header中,注意首字母大写,后面全小写。
比如在网站打开API功能后拿到下面两个参数 Apiid=7eESLc0x69I7eESLc0x69J,Apisecret = 87ceba599b6d39a39deb01cf71eacd57,Timestamp=1526886847000,
a、Body json格式参数
参数内容json字符串为:{“userId”:“u111”,“name”:“zhangsan”}
参数内容拼串为:{“userId”:“u111”,“name”:“zhangsan”}
则 Sign = md5(7eESLc0x69I7eESLc0x69J1526886847000{“userId”:“u111”,“name”:“zhangsan”}87ceba599b6d39a39deb01cf71eacd57)
= 1429945054c993ea3e22a28227bf7b25
b、 没有任何body或get参数
参数内容拼串为空 则
Sign = md5(7eESLc0x69I7eESLc0x69J152688684700087ceba599b6d39a39deb01cf71eacd57)
= 735aeffac07c60ddeb2d6f18115c1946
c、formdata key-value, 或者get参数
参数内容为:userid=10,status=1,acount = 10
参数内容拼串为:account10status1userid10
则 Sign = md5(7eESLc0x69I7eESLc0x69J1526886847000account10status1userid1087ceba599b6d39a39deb01cf71eacd57)
= 1d83cb6bde160eff50fbb13a407e7804
提供Java版本的签名代码如下,其他语言请参考代码自行实现
import com.alibaba.fastjson.JSON;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.HashMap;
import java.util.Map;
/**
-
@Author: cai.zhenghao
-
@Description:
-
@Date: Created in 2018/6/26 下午3:48
-
@Modified By:
*/
public class SignUtils {/**
- 自行根据需要设置,一般认为一个服务里使用的只有一个
*/
public static String ID_NAME = “Apiid”;
/**
- 不为空、不为空字符串、不为双引号、不为空{}
- @param source
- @return
*/
public static boolean isEmpty(String source) {
return source == null || source.isEmpty() || source.equals("""") || source.trim().equals("{}");
}
/**
-
参数是formdata key value,或者get参数 形式的情况下获取签名header
-
@param parameters
-
@return
*/
public static Map getHeaderOfKeyValue(String id, String secret,Map<String, Object> parameters) {
long time = System.currentTimeMillis();
Map header = new HashMap();
StringBuffer contentSb = new StringBuffer();
if (parameters != null) {
parameters.entrySet().stream()
.filter(a -> a != null && (!isEmpty(a.getKey()) || !isEmpty((String) a.getValue()))).
sorted(Map.Entry.<String, Object>comparingByKey()).forEachOrdered(e -> contentSb.append(e.getKey() + e.getValue()));
}header.put(ID_NAME,id);
header.put(“Timestamp”, String.valueOf(time));
header.put(“Sign”, encryptMD5(id + time + contentSb.toString() + secret));
return header;
}
/**
- 参数为空情况下获取签名header
- @return
*/
public static Map getHeaderOfNoParams(String id, String secret) {
Map header = new HashMap();
long time = System.currentTimeMillis();
header.put(ID_NAME, id);
header.put(“Timestamp”, String.valueOf(time));
header.put(“Sign”, encryptMD5(id + time + secret));
return header;
}
/**
- 参数是body json形式的情况下获取签名header
- @param object
- @return
*/
public static Map getHeaderOfBodyJson(String id, String secret, Object object) {
Map header = new HashMap();
long time = System.currentTimeMillis();
String params = JSON.toJSONString(object);
header.put(ID_NAME, id);
header.put(“Timestamp”, String.valueOf(time));
header.put(“Sign”, encryptMD5(id + time + params + secret));
return header;
}
public static String encryptMD5(String str) {
return digest(“MD5”, str);
}public static String digest(String code, String str) {
try {
MessageDigest messageDigest = MessageDigest.getInstance(code);
messageDigest.reset();
messageDigest.update(str.getBytes());
byte[] byteArray = messageDigest.digest();
StringBuffer md5StrBuff = new StringBuffer();for(int i = 0; i < byteArray.length; ++i) {if (Integer.toHexString(255 & byteArray[i]).length() == 1) {md5StrBuff.append("0").append(Integer.toHexString(255 & byteArray[i]));} else {md5StrBuff.append(Integer.toHexString(255 & byteArray[i]));}}return md5StrBuff.toString();} catch (NoSuchAlgorithmException var6) {var6.printStackTrace();return null;}
}
} - 自行根据需要设置,一般认为一个服务里使用的只有一个
6市场行情类接口
注意,市场行情类接口的域名和前面几部分HTTP接口不同,不需要签名,header不需要传签名的几个参数。一个IP一分钟内最多只能访问1000次这部分接口,请注意频率控制。
6.1 所有市场24H市场行情
这个数据服务端更新速度为10秒一次,不必太过频繁获取
path:https://kline.zbg.com/api/data/v1/tickers
请求方式:get
请求报文
isUseMarketName=true //必传,选择true则返回的结果中用BTC_USDT这样的市场名替代掉marketId,false则使用marketId
返回报文分两种格式
isUseMarketName为fasle时格式如下
{
“resMsg”: {
“code”: “1”,
“method”: null,
“message”: “success !”
},
“datas”: [
[
99,
“0.0”,
“0”,
“0”,
“0”,
“0.0”,
“[]”,
“9.396”,
“9.08”,
“21469873.428”
],
[
90,
“8249994.968”,
“8257720.9458”,
“8207608.58”,
“1080294.9779”,
“0.51”,
“[[1, 8219706.597], [2, 8249994.998]]”,
“7418805.42381067”,
“7418805.425”,
“21469873.428”
]
]
}
isUseMarketName为true时格式如下
{
“resMsg”: {
“code”: “1”,
“method”: null,
“message”: “success !”
},
“datas”: {
“ETC_USDT”: [
99,
“0.0”,
“0”,
“0”,
“0”,
“0.0”,
“[]”,
“9.296”,
“9.708”,
“21469873.428”
],
“BTC_KRW”: [
90,
“8245004.195”,
“8257720.93”,
“8207608.57”,
“1187226.0187”,
“0.45”,
“[[1, 8219706.597], [2, 8245004.125]]”,
“7418805.413”,
“7418805.47”,
“21469873.408”
]
}
}
数据说明
[ 市场ID, 最新成交价, 最高价,最低价, 24小时成交量,24小时涨跌幅, 最近6H收盘价列表,买一价,卖一价,24小时成交额(单位是买方币种)]
最近6H收盘价列表按时间顺序排序,数据说明:
[[序号, 收盘价], [序号, 收盘价], [序号, 收盘价]]
6.2 单个市场24H市场行情
这个数据服务端更新速度为10秒一次,不必太过频繁获取
path:https://kline.zbg.com/api/data/v1/ticker
请求方式:get
请求报文
marketId=90 //市场id,和市场名传一个即可
marketName=ETC_USDT //市场名,和市场id传一个即可
返回报文格式
{
“datas”: [
90,
“8268227.40230003”,
“8268227.40230003”,
“8207608.58629997”,
“1725211.1401”,
“0.73”,
“[[1, 8219706.597], [2, 8266335.7998], [3, 8268227.4023]]”,
“7418805.4126”,
“7418805.4237”,
“21469873.408”
],
“resMsg”: {
“code”: “1”,
“method”: null,
“message”: “success !”
}
}
数据说明
[ 市场ID, 最新成交价, 最高价,最低价, 24小时成交量,24小时涨跌幅, 最近6H收盘价列表,买一价,卖一价,24小时成交额(单位是买方币种)]
最近6H收盘价列表按时间顺序排序,数据说明:
[[序号, 收盘价], [序号, 收盘价], [序号, 收盘价]]
6.3 K线
path:https://kline.zbg.com/api/data/v1/klines
请求方式:get
请求报文
marketId=90 //市场id,和市场名传一个即可
marketName=ETC_USDT //市场名,和市场id传一个即可
type=1M //K线类型,支持1M,5M,15M,30M,1H,1D,1W 七种类型,分别代表1-30分钟,1小时,1日,1周
dataSize=5 //数据量,最多为100
返回报文格式
{
“datas”: [
[
“K”,
“90”,
“btc_krw”,
“1532181600”,
“8266335.737”,
“8279949.6898”,
“8266003.6894”,
“8269418.0781”,
“492264.06”,
“0.04”,
“1”,
“1H”,
“false”
],
…
],
“resMsg”: {
“code”: “1”,
“method”: null,
“message”: “success !”
}
}
数据说明
[数据类型, 市场ID, 市场名字, 时间戳, 开盘数据, 最高价, 最低价, 收盘价, 成交量, 涨跌幅度, 美元汇率, K线周期, 是否经过转换]
6.4 交易记录
path:https://kline.zbg.com/api/data/v1/trades
请求方式:get
请求报文
marketId=90 //市场id,和市场名传一个即可
marketName=ETC_USDT //市场名,和市场id传一个即可
dataSize=10 //数据量,最多为20
返回报文格式
{
“datas”: [
[
“T”,
“90”,
“1532183063”,
“BTC_KRW”,
“bid”,
“8271173.90”,
“515.50”
],
…
],
“resMsg”: {
“code”: “1”,
“method”: null,
“message”: “success !”
}
}
数据说明
[数据类型, 市场ID, 币种信息, 时间戳, 买卖类型(asks卖bids买), 价格, 量]
6.5 盘口数据(市场深度)
本接口最多返回买卖50档的盘口数据
path:https://kline.zbg.com/api/data/v1/entrusts
请求方式:get
请求报文
marketId=90 //市场id,和市场名传一个即可
marketName=ETC_USDT //市场名,和市场id传一个即可
返回报文格式
{
“datas”: {
“asks”: [
[
“8247657.898”,
“5.95”
],
[
“7418805.435”,
“4.88”
],
[
“7418805.47”,
“0.01”
]
],
“bids”: [
[
“0.81945643”,
“24.32”
],
[
“0.847”,
“2.064”
],
[
“0.516”,
“17.043”
]
],
“timestamp”: “1532183394”
},
“resMsg”: {
“code”: “1”,
“method”: null,
“message”: “success !”
}
}
数据说明
asks:(卖盘)[[价格, 量]]
bids:(买盘)[[价格, 量]]
7 接口结果外部和错误码
失败时返回报文如下
{
“datas”: null,
“resMsg”: {
“code”: “1000”,
“method”: null,
“message”: “param invalid”
}
}
8错误码列表:
配置及基础功能API、获取用户信息接口、交易API、财务资金API
错误码 | 说明 | 英文说明 |
---|---|---|
1000 | 系统错误 | system error |
1003 | 无效的参数 | param invalid |
2000 | 参数错误 | parameter error |
2001 | 委托价格类型为空 | entrust price range type null |
2002 | 委托类型错误 | rangeType [ 0,1] error |
2003 | 委托价格异常 | entrust price abnormal |
2004 | 市场ID不能为空 | market id null |
2012 | 委托信息不存在或状态异常 | entrust not exists or status abnormal |
2014 | 缓存中无该该委托单 | entrust not exists in cache |
2015 | 委托单已取消或数据库中不存在 | entrust already canceled or not exists in database |
2016 | 分页index,pageSize参数有误 | paging:index or pageSize invalid |
2017 | 交易货币量为空 | entrust amount null |
2019 | 委托单ID不能为空 | entrustId null |
2020 | 委托类型不能为空 | entrustType null |
2022 | 交易货币量小于最小值 | entrust amount low min limit |
2999 | 内部错误 | system error |
6002 | 授权失效,需要重新登录 | Authorization invalid, please sign in again. |
6021 | 限制提币操作 | Limit the withdraw operation |
6076 | 安全密码错误,请重新输入 | Security password error, please enter again! |
6095 | 用户不存在 | User does not exist |
6096 | 无效的参数 | Invalid parameter |
6114 | 提币地址为空 | Please select a currency address! |
6124 | 审核失败 | Audit failure! |
6126 | 审核通过 | Audit Approve! |
6115 | 提交提币申请失败 | Submit a withdrawal application failure! |
6125 | 无效的货币类型 | An invalid currency type! |
6130 | 没有选取币种 | No selection of currency, Please try again! |
6894 | 时间过长,API签名已失效 | The time is too long,sign for api is invalid now! |
6895 | 校验API权限失败,接口不属于授权 | API Failed to verify the API permission. This interface is not a authorize API! |
6896 | 校验API权限失败,Userid和Apiid不匹配 | Failed to verify the API permission. The Userid is not matching with Apiid! |
6897 | 校验API权限失败,请确认是否开启Api权限 | Failed to verify the API permission. Please confirm whether to enable API permission! |
6898 | 多次校验API权限失败,请确认是否开启Api权限 | Failed to verify the API permission for multiple times. Please confirm whether to enable API permission! |
10012 | 未知异常 | unknown error |