入门指引
我们欢迎交易机器人、订单跟踪平台、策略软件供应商和其他组织利用BitMart平台丰富的交易货币对和流动性,以及API经纪商本身的易用性,通过他们提供的交易工具吸引投资者在我们的市场上交易。我们将给那些带来订单量的API经纪商提供交易费的返佣。
如果你需要其他方面的建议,请联系
Telegram: BM Institution/VIP
Email: [email protected]
对接流程
Steps | Description |
---|---|
1、开设API经纪商机构账户 | 1.API经纪商需要在BitMart进行机构注册并通过审核 2.平台机构分配BrokerID,并设置返佣时长、返佣比例、新用户返佣额外激励等参数 3.所有返佣结算后都会打入APIw经纪商在BitMart的现货钱包中 |
2、用户注册BitMart账户 | 1.用户需要注册BitMart账户并至少通过个人LV1KYC 2.在API页面生成具有现货交易权限、只读权限的API Key(具体权限以交易机器人文档里要求的为准) |
3、用户绑定部署API至API经纪商提供的工具平台 | 用户根据API经纪商的具体要求,绑定BitMart的API至API经纪商提供的工具内,连接BitMart市场并通过API经纪商提供的工具进行市场信息查询、交易下单、订单查询等操作 |
4、API经纪商发送订单至BitMart | API经纪商代替用户发送下单请求时,订单需要带有用户APIKey+BrokerID,以标识是通过特定API经纪商下的订单 |
5、BitMart返佣至API经纪商在BitMart开设的账号 | 1.收到订单并成交时,BitMart需要对交易费进行拆解(包含BMX抵扣等)并返佣至API经纪商现货钱包账户中 2.需要判断下单的用户是否有邀请人,如果存在affiliate返佣,则不返佣给API经纪商 |
6、API经纪商通过专用API查询返佣明细和对账单 | 1.根据提供的API经纪商专用接口查询返佣明细和客户订单 2.根据管理站的对账单查询返佣明细和客户订单 |
现货接口
查询返佣记录 (KEYED)
适用于API经纪商查询一定时间范围内的返佣记录
请求接口
GET https://api-cloud.bitmart.com/spot/v1/broker/rebate
请求限制
参见 速率限制详细
请求参数
请求
curl -H 'X-BM-KEY:{{AccessKey}}'
https://api-cloud.bitmart.com/spot/v1/broker/rebate?start_time=16833656781&end_time=1683367993
字段 | 类型 | 是否必填 | 描述 |
---|---|---|---|
start_time | long | 否 | 查询开始开始戳,如果都没有填写,则返回最近180天的记录 |
end_time | long | 否 | 查询结束时间戳,如果都没有填写,则返回最近180天的记录 |
响应详情
响应
{
"message":"OK",
"code":1000,
"trace":"f7f74924-14da-42a6-b7f2-d3799dd9a612",
"data":{
"rebates":{
"2022-10-22":[
{
"currency":"USDT",
"rebate_amount":"10.238"
},
{
"currency":"BMX",
"rebate_amount":"5.68"
}
],
"2022-10-23":[
{
"currency":"USDT",
"rebate_amount":"21.9895"
}
]
}
}
}
字段 | 类型 | 描述 |
---|---|---|
rebates | string | 每日返佣列表 |
currency | string | 返佣币种 |
rebate_amount | string | 返佣数量 |
错误代码
Restful错误码
全局 HTTP 返回代码列表
HTTP | 解释 |
---|---|
404 | Not Found - 找不到请求的接口 |
403 | Forbidden - 无权限访问该资源(可能是KEY没有权限,也有可能是IP限制) |
401 | Unauthorized - 鉴权没通过(3个头部参数中有问题,没通过) |
500 | Internal Server Error - 服务器异常,BitMart服务出现问题 |
鉴权 返回错误码
如:httpStatus:200, body:{"code": 1000, "message": "OK", "trace": "12323-3243242-34334534-4353","data":{}}
message 错误信息 | code 错误码 | http状态码 |
---|---|---|
找不到请求的接口 | 30000 | 404 |
请求头 X-BM-KEY 不能为空 | 30001 | 401 |
请求头 X-BM-KEY 无效 | 30002 | 401 |
请求头 X-BM-KEY 关联的账号已经被冻结,请联系客服处理 | 30003 | 401 |
请求头 X-BM-SIGN 不能为空 | 30004 | 401 |
请求头 X-BM-SIGN 无效的签名 | 30005 | 401 |
请求头 X-BM-TIMESTAMP 不能为空 | 30006 | 401 |
请求头 X-BM-TIMESTAMP 过期(超过1分钟过期) | 30007 | 401 |
请求头 X-BM-TIMESTAMP 错误的格式 | 30008 | 401 |
无效的ip | 30010 | 403 |
请求头 X-BM-KEY 过期 | 30011 | 403 |
请求头 X-BM-KEY 没有访问权限 | 30012 | 403 |
请求过于频繁 | 30013 | 429 |
服务不可用 | 30014 | 503 |
API经纪商 返回错误码
如:httpStatus:200, body:{"code": 1000,"trace":"886fb6ae-456b-4654-b4e0-d681ac05cea1","message": "OK","data": {}}
message 错误信息 | code 错误码 | http状态码 |
---|---|---|
请求成功 | 1000 | 200 |
无效请求(可能body为空,或者int参数传了string数据) | 50000 | 400 |
超出查询时间限制 | 50041 | 400 |
您没有请求该接口的权限(如当前账号非API经纪商) | 53005 | 403 |
不支持此 Http Method | 57001 | 405 |
不支持此 Media Type | 58001 | 415 |
服务内部错误 | 59002 | 500 |
问题答疑
以下是收集到的经常遇到的问题以及解答。如果找不到您对应的问题,请加入我们的Telegram群. Telegram API Group
APIKey问题
1.如何申请API KEY?
申请API网址 https://www.bitmart.com/open-api-guide/zh-CN
在网页上申请成功后,请自己保留 access key, secret key 和 memo。
2.API KEY的secret key忘记了可以找回吗?
无法找回,只能在页面重新申请 API KEY。
3.API KEY授权第三方有风险吗?
API KEY 授权第三方有一定的风险,为了账户资产安全建议自己保存。
4.没有绑定手机或者谷歌,能申请APIKEY吗?
不可以,申请 API KEY必须绑定2项安全项以上。
5.创建API KEY的时候,必须绑定IP地址才可以创建吗?
不是必须,申请API KEY时绑定IP这个选项是非必填的,但为了增加用户账户安全性,建议绑定ip地址。
6.同一个账户里的不同的API KEY,返回的账户信息数据,会不同吗?
同一个账户下不同API KEY数据是相同的。
7.一个账户可以申请多少个API KEY?
每个账户可创建5组Api Key,每个Api Key可对应设置提现,现货交易,合约交易等多种组合权限。
8.申请APIKEY时如何填写?
根据网页端提示填写,备注可根据用户需求随意填写;secret key要记住,调用API接口会用到;绑定ip为非必填项,为了账户安全建议填写;API权限可根据用户需求勾选。
9.memo是什么?
memo是用户自己提供的。会参与到接口的加签之中。
验签问题
1.请求接口的timestamp参数和到达服务器时间最大差值是多少?
时间戳和API服务器时间前后相差1分钟以上的请求将被系统视为过期并拒绝。如果用户服务器和API服务器之间存在较大的时间偏差,建议用户使用"获取服务器时间"的接口来查询API服务器时间。
2.请求头"X-BM-TIMESTAMP"不能为空 如何解决?时不时产生这个错误?
首先建议用户打印一下请求头部参数X-BM-TIMESTAMP是否有值,另外建议用户代码优化,每次请求前先判断X-BM-TIMESTAMP是否为空。
3.API使用的时间戳是哪里的时间?
UTC 0时时间格式。
4.为什么签名认证总返回无效签名?
签名不正确导致的:
可以使用下面的SDK,签名部分已经封装好了,可以直接调试调用:
如果是自己编写签名函数,请务必一步步地参照如下描述:
X-BM-SIGN的请求头是对timestamp + "#" + memo + "#" + queryString,以及Secret Key,使用HMAC SHA256方法加密得到的。
检查时,可以打印出请求头信息和签名前字符串,重点有以下几点:
是否在程序中正确地配置了APIKey
假设:您的 KEY 如下:
API_KEY = "80618e45710812162b04892c7ee5ead4a3cc3e56";
API_SECRET = "6c6c98544461bbe71db2bca4c6d7fd0021e0ba9efc215f9c6ad41852df9d9df9";
API_MEMO = "test001";
请您确认下KEY设置正确:
Content-Type: application/json
X-BM-KEY: 80618e45710812162b04892c7ee5ead4a3cc3e56
签名前字符串是否符合标准格式,所有要素的顺序要保持一致,可以复制如下示例跟您的签名前字符串进行比对:
GET
X-BM-SIGN=
echo -n '1589267764859#test001#contract_id=1&category=1' | openssl dgst -sha256 -hmac "6c6c98544461bbe71db2bca4c6d7fd0021e0ba9efc215f9c6ad41852df9d9df9"
(stdin)= 6d5e774446448073f68e99c28ace86503451bed1fd44e43f80b9b518937c4ef1
请求:
Host: {{host}}/v1
Content-Type: application/json
X-BM-KEY: 80618e45710812162b04892c7ee5ead4a3cc3e56
X-BM-SIGN: 6d5e774446448073f68e99c28ace86503451bed1fd44e43f80b9b518937c4ef1
X-BM-TIMESTAMP: 1589267764859
GET示例:请求地址是{{host}}/v1?contract_id=1&category=1,假设当前时间戳是1589267764859, 则queryString=1589267764859#test001#contract_id=1&category=1
POST
X-BM-SIGN=
echo -n '1589267764859#test001#{"contract_id":1,"category":1,"way":1,"open_type":1,"leverage":10,"custom_id":1,"price":5000,"vol":10,"nonce":1589267764}' | openssl dgst -sha256 -hmac "6c6c98544461bbe71db2bca4c6d7fd0021e0ba9efc215f9c6ad41852df9d9df9"
(stdin)= 595a00aa2ecbd2f7e857909497e3aa8b222da6b6055411c7f4dfce0e7dc6c6ae
请求:
HOST: {{host}}/v1
Body: {"contract_id":1,"category":1,"way":1,"open_type":1,"leverage":10,"custom_id":1,"price":5000,"vol":10,"nonce":1589267764}
Content-Type: application/json
X-BM-KEY: 80618e45710812162b04892c7ee5ead4a3cc3e56
X-BM-SIGN: 595a00aa2ecbd2f7e857909497e3aa8b222da6b6055411c7f4dfce0e7dc6c6ae
X-BM-TIMESTAMP: 1589267764859
POST示例: 请求地址是{{host}}/v1?contract_id=1&category=1,假设当前时间戳是1589267764859,则 queryString=1589267764859#test001#{"contract_id":1,"category":1,"way":1,"open_type":1,"leverage":10,"custom_id":1,"price":5000,"vol":10,"nonce":1589267764}
限速问题
1.API每秒调用频率有限制吗?
有限制,具体可以看下菜单栏限流限次
中每个接口的访问频率限制。
2.为什么浏览器访问的时候返回人机认证?
这次被拦截的原因是该IP从不同的环境访问过多,被系统认为是攻击访问。建议您不要共享IP,让应用程序用单独的IP访问。其次,使用浏览器调用接口,按照页面提示 选择 'i am human' 提交解除限制。
3.HTTP状态码429是怎样造成的?
请求接口超过访问频率限制,建议降低访问频率。
4.API调用接口报超过访问频率会被封IP吗?封多久?
不会的,降低访问频率就可以。
5.访问接口报错超频,怎么解决?
降低访问频率,文档的每个接口下方都有频率说明,需要将请求频率降低到频率说明之下。