NAV
代码示例

入门指引

我们欢迎交易机器人、订单跟踪平台、策略软件供应商和其他组织利用BitMart平台丰富的交易货币对和流动性,以及API经纪商本身的易用性,通过他们提供的交易工具吸引投资者在我们的市场上交易。我们将给那些带来订单量的API经纪商提供交易费的返佣。

申请成为API经纪商

如果你需要其他方面的建议,请联系

Telegram: BM Institution/VIP

Email: [email protected]

对接流程

PNG

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' 提交解除限制。

PNG

3.HTTP状态码429是怎样造成的?

请求接口超过访问频率限制,建议降低访问频率。

4.API调用接口报超过访问频率会被封IP吗?封多久?

不会的,降低访问频率就可以。

5.访问接口报错超频,怎么解决?

降低访问频率,文档的每个接口下方都有频率说明,需要将请求频率降低到频率说明之下。