NAV
代码示例

介绍

入门指引

欢迎使用开发者文档。

接口调用方式说明

开发者可根据自己的使用场景和偏好选择适合自己的方式来查询行情、进行交易或提现。

联系我们

加入我们的 Telegram API Group

业务字典

交易

字段 说明 解释
currency 币种 币种是指能够转入转出的基本单位,如BTC,ETH,EOS等
symbol_id 交易对id 交易对的唯一编号,如BTC_USDT的编号是53, 主要在Websocket接口使用
symbol 交易对名称 由交易货币和计价货币组成。以BTC_USDT 为例,BTC 为交易货币,USDT 为计价货币,交易对主要在现货交易使用

合约

字段 说明 解释
contract_id 合约ID 合约ID是合约交易的基本单位,其中包括标的货币、保证金类型。以BTC-USDT为例,BTC为标的货币,USDT为保证金类型。根据保证金类型的不同,可分USD保证金和USDT保证金。

订单、成交相关ID说明

字段 说明
order_id 订单编号,每个业务线的同一币对下的订单ID是唯一的
trade_id 成交的唯一编号

时间

系统返回的时间全部都是时间戳形式。

字段 说明
s_t 精确到秒的时间戳 (timestamp in seconds)
ms_t 精确到毫秒的时间戳 (timestamp in milliseconds)

标准规范

本章节主要为标准规范的细节分以下三个方面:

数字 ID

数字

为了保持跨平台时精度的完整性,十进制数字作为字符串返回。建议您在发起请求时也将数字转换为字符串以避免截断和精度错误。

整数(如交易编号和顺序)不加引号。

ID

除非另有说明,大多数标识符是UUID。当提出一个需要UUID的请求时,以下两个形式(有和没有破折号)都被接受。

132fb6ae-456b-4654-b4e0-d681ac05cea1或者132fb6ae456b4654b4e0d681ac05cea1

更新计划

2022-06-30

更新日志

2022-07-07

2022-05-24

2022-04-19

2022-03-29

2022-03-08

2022-03-01

2022-02-15

2022-01-20

2022-01-18

2021-11-24

2021-11-06

2021-01-19

2020-07-15

2020-06-29

2020-05-14

基本信息

API基本信息

  1. 接口可能需要用户的 API Key,如何创建API-KEY请参考这里 API KEY 接口认证
  2. 本篇列出接口的rest baseurl: https://api-cloud.bitmart.com
  3. 所有接口的响应都是 JSON 格式。

HTTP 返回代码

API 返回代码

使用接口时, HTTP 200 表示客户端通过网关已经向业务核心提交了请求并且已经返回了信息,但是不代表业务请求成功,很可能已经得到了执行,也有可能执行失败,需要做进一步确认,这时候请注意返回内容里code字段。

详细参见参见 错误码列表

认证及加签

为了方便接入,我们提供了一些语言的SDK供参考
* bitmart-go-sdk-api
* bitmart-python-sdk-api
* bitmart-java-sdk-api
* bitmart-php-sdk-api

本章节主要为验证的细节分以下四个方面:

1.生成API Key

在对任何请求进行签名之前,您必须通过BitMart网站创建一个API Key。创建API Key后,您将获得3个必须记住的信息:

Access Key和Secret Key将由BitMart随机生成和提供,Memo将由您提供以确保API访问的安全性。BitMart将存储Secret Key加密后的哈希值进行验证,但如果您忘记Secret Key,则无法恢复,请您通过BitMart网站重新生成新的API Key。

示例

登录 Bitmart网站, 进入账户页面

PNG

点击 API 设置 按钮,进入创建API 页面

PNG

2.发起请求

请求包含两个部分,一个是header,一个是queryString

接口头部参数

所有REST请求头都必须包含以下内容:

接口内容参数

GET/DELETE

curl {{host}}/v1/goto?symbol=BMXBTC&side=BUY

# queryString: symbol=BMXBTC&side=BUY

POST/PUT

curl -X POST {{host}}/v1/goto -H "Content-type: application/json" -d '{"symbol":"BMX","side":"BUY"}'

# queryString: {"symbol":"BMX","side":"BUY"}

3.签名

SIGN

sign=CryptoJS.HmacSHA256(timestamp + "#" + memo + "#" + queryString, SecretKey)

X-BM-SIGN的请求头是对timestamp + "#" + memo + "#" + queryString,以及Secret Key,使用HMAC SHA256方法加密得到的。

其中,timestamp的值与 X-BM-TIMESTAMP 请求头相同。

4.时间戳

发起请求的时间戳。(UTC0时区Unix时间戳精确到毫秒) 如果当前时间: 2020-04-28 09:21:30.000,那么 timestamp=1588065690000

示例

申请后获取到的key如下:注意,下面2个接口是部署在生产环境的,用户替换成自己的KEY后可以直接测试调用。

Key Value
accessKey 80618e45710812162b04892c7ee5ead4a3cc3e56
secretKey 6c6c98544461bbe71db2bca4c6d7fd0021e0ba9efc215f9c6ad41852df9d9df9
memo test001

Example: /spot/v1/test-get

echo -n "1589793795969#test001#symbol=BTC_USDT" | openssl dgst -sha256 -hmac "6c6c98544461bbe71db2bca4c6d7fd0021e0ba9efc215f9c6ad41852df9d9df9"
    (stdin)= 118eb558afa7d84e8710004f8416ddb771f50718c85f60a45069d0ccbe6ee1e0

curl --location --request GET 'localhost:8080/spot/v1/test-get?symbol=BTC_USDT'
--header 'Content-Type: application/json'
--header 'X-BM-KEY: 80618e45710812162b04892c7ee5ead4a3cc3e56'
--header 'X-BM-SIGN: 118eb558afa7d84e8710004f8416ddb771f50718c85f60a45069d0ccbe6ee1e0'
--header 'X-BM-TIMESTAMP: 1589793795969'
{"message":"OK","code":1000,"trace":"17105b32-cc5b-406a-ab6e-6d9ed0fa4fd8","data":{}}

请求目标接口: /spot/v1/test-get

请求方式: GET

假设当前时间戳:timestamp=1589793795969

参数 取值
symbol BTC_USDT

返回: 返回内容里code == 1000 表示调用成功

Example: /spot/v1/test-post

echo -n '1589793796145#test001#{"symbol":"BTC_USDT","price":"8600","count":"100"}' | openssl dgst -sha256 -hmac "6c6c98544461bbe71db2bca4c6d7fd0021e0ba9efc215f9c6ad41852df9d9df9"
    (stdin)= c31dc326bf87f38bfb49a3f8494961abfa291bd549d0d98d9578e87516cee46d

    curl --location --request POST 'localhost:8080/spot/v1/test-post'
    --header 'Content-Type: application/json'
    --header 'X-BM-KEY: 80618e45710812162b04892c7ee5ead4a3cc3e56'
    --header 'X-BM-SIGN: c31dc326bf87f38bfb49a3f8494961abfa291bd549d0d98d9578e87516cee46d'
    --header 'X-BM-TIMESTAMP: 1589793796145'
    --d '{"symbol":"BTC_USDT","price":"8600","count":"100"}'

{"message":"OK","code":1000,"trace":"17105b32-cc5b-406a-ab6e-6d9ed0fa4fd8","data":{}}

请求目标接口: /spot/v1/test-post

请求方式: POST

假设当前时间戳:timestamp=1589793796145

参数 取值
symbol BTC_USDT
price 8600
count 100

返回: 返回内容里code == 1000 表示调用成功

请求格式

本文主要从一下2个方面讲述接口的一些规范。 * 请求标准 * 鉴权类型

请求标准

1.Rest 接口

1.1 请求参数和格式

GET/DELETE

curl https://api-cloud.bitmart.com/contract/v1/ifcontract/contracts?contractID=1

GET, DELETE 方法的接口, 参数必须在 query string中发送。

POST/PUT

curl https://api-cloud.bitmart.com/contract/v1/ifcontract/submitOrder
body: {"contract_id":1,"category":1,"way":1,"open_type":1,"leverage":10,"custom_id":1,"price":5000,"vol":10,"nonce":1589266686}

POST, PUT 方法的接口, 参数必须在 application/json 的 request body 中发送。

1.2 响应

Response:

{
  "code": 1000,
  "trace":"886fb6ae-456b-4654-b4e0-d681ac05cea1",
  "message": "OK",
  "data": [
    {
      "low": "130",
      "high": "130",
      "open": "130",
      "close": "130",
      "last_price": "130",
      "avg_price": "130",
      "volume": "0",
      "timestamp": 1532610000,
      "rise_fall_rate": "0",
      "rise_fall_value": "0"
    }
  ]
}

服务端响应格式都是JSON。

字段 描述
code 错误码,详细查看
message 错误描述
trace 每次请求事件跟踪ID,服务端对每次请求都会返回
data 服务端返回的数据

2.WebSocket 接口

暂无描述。

鉴权类型

本章节主要为接口类型的细节分以下两个方面:

1.公共接口

公共接口可用于获取配置信息和行情数据。公共请求无需认证即可调用。

2.私有接口

私有接口可用于订单管理和账户管理。每个私有请求必须使用规范的验证形式进行签名。 私有接口需要使用您的API key进行验证。

接口权限

是否有权限调用接口需要注意下面两个地方:
* 接口鉴权
* API权限

接口鉴权

是指用户调用的时候,需要按照接口指定的方式传递APIKEY和验签参数。每个接口第一行都会有接口需要什么样的鉴权的说明。

简单说,接口分为以下3种情况来鉴权:

接口类型 鉴权类型 说明
公用接口 NONE 不需要X-BM-KEY,不需要X-BM-SIGN
私有接口 KEYED 需要X-BM-KEY,不需要X-BM-SIGN
私有接口 SIGNED 需要X-BM-KEY,需要X-BM-SIGN

API KEY 权限

是指用户在申请API的时候给API指定授权。即用户在BitMart网站页面申请API KEY的时候,可以勾选API 权限, 如:交易权限(包括合约交易和现货交易)。(默认:只读权限)。

详细如下:

接口 说明 鉴权类型 权限
/contract/v1/tickers 获取合约最新行情 NONE 不需要权限
/spot/v1/currencies 获取平台所有的加密货币列表 NONE 不需要权限
/spot/v1/symbols 获取平台所有的交易对列表 NONE 不需要权限
/spot/v1/symbols/details 获取平台所有交易对的详情列表 NONE 不需要权限
/spot/v1/ticker 查询交易对最新成交价、买一价、卖一价和 24 小时交易量的快照信息 NONE 不需要权限
/spot/v1/steps 获取平台支持的全部 k 线周期,用分钟表示 NONE 不需要权限
/spot/v1/symbols/kline 获取指定交易对的指定时间范围内的 k 线数据 NONE 不需要权限
/spot/v1/symbols/book 获取交易对完整的深度 NONE 不需要权限
/spot/v1/symbols/trades 获取指定交易对的最近成交记录 NONE 不需要权限
/spot/v1/wallet 获取用户所有币种钱包余额 KEYED 只读权限
/spot/v1/submit_order 委托下单 SIGNED 交易权限
/spot/v1/cancel_order 取消一个未完成的订单 SIGNED 交易权限
/spot/v1/cancel_orders 取消指定交易对指定方向的所有未完成的订单 SIGNED 交易权限
/spot/v1/order_detail 获取订单详情 KEYED 只读权限
/spot/v1/orders 查询用户最近订单 KEYED 只读权限
/spot/v1/trades 用户成交历史 KEYED 只读权限

频率限制

当访问超过频率限制时,将返回429状态:请求太频繁。

REST API

如果传入有效的API key 用user id限速;如果没有则拿公网IP限速。

限速规则:各个接口上有单独的说明,如果没有一般接口限速为 25次/5秒。

每次调用接口都会返回带有限制标记的 3 个 Response Header,如下所示:

Example:

X-BM-RateLimit-Remaining: 10
X-BM-RateLimit-Limit: 600
X-BM-RateLimit-Reset: 60
上面的设置,意思是 60 秒内可调用 600 次,当前已调用 10 
Response Header 说明
X-BM-RateLimit-Remaining 当前时间窗口内使用的次数
X-BM-RateLimit-Limit 当前时间窗口内最大可调用次数
X-BM-RateLimit-Reset 当前时间窗口,秒为单位

具体接口限制详细如下:

系统接口 接口名称 限制目标 速率
/system/time 获取系统时间 IP 10次/秒
/system/service 获取系统服务状态 IP 10次/秒
资金账户接口 接口名称 限制目标 速率 特别备注
/account/v1/currencies 获取资产币种 IP 5次/5秒
/account/v1/wallet 查询账户资产 X-BM-KEY 30次/5秒
/account/v1/deposit/address 查询充币地址 X-BM-KEY 5次/5秒
/account/v1/withdraw/charge 查询提币额度 X-BM-KEY 5次/5秒
/account/v1/withdraw/apply 提币 X-BM-KEY 20次/5秒
/account/v2/deposit-withdraw/history 查询充提历史记录V2 X-BM-KEY 20次/5秒
/account/v1/deposit-withdraw/detail 查询单个充提记录 X-BM-KEY 20次/5秒
/account/v1/margin/isolated/account 查询逐仓账户信息 X-BM-KEY 30次/5秒
/account/v1/margin/isolated/transfer 杠杆资金划转 X-BM-KEY 5次/5秒
合约接口 接口名称 限制目标 速率 特别备注
/contract/v1/tickers 获取合约最新行情 IP 10次/5秒
现货接口 接口名称 限制目标 速率 特别备注
/spot/v1/currencies 获取平台所有的加密货币列表 IP 20次/5秒
/spot/v1/symbols 获取平台所有的交易对列表 IP 20次/5秒
/spot/v1/symbols/details 获取平台所有交易对的详情列表 IP 30次/5秒
/spot/v1/ticker Ticker 是交易对市场状态的概览,包含最新成交价、买一价、卖一价和 24 小时交易量的快照信息 IP 30次/5秒
/spot/v1/steps 获取平台支持的全部 k 线周期,用分钟表示,最小 1 分钟。 IP 5次/5秒
/spot/v1/symbols/kline 获取指定交易对的指定时间范围内的 k 线数据。 IP 30次/5秒
/spot/v1/symbols/book 获取交易对完整的深度。 IP 30次/5秒
/spot/v1/symbols/trades 获取指定交易对的最近成交记录 IP 30次/5秒
/spot/v1/wallet 获取用户所有币种钱包余额 X-BM-KEY 30次/5秒
/spot/v1/submit_order 现货下单 X-BM-KEY 150次/5秒
/spot/v1/margin/submit_order 杠杆下单 X-BM-KEY 150次/5秒
/spot/v2/cancel_order 取消一个未完成的订单 X-BM-KEY 150次/5秒
/spot/v1/cancel_orders 取消指定交易对指定方向的所有未完成的订单 X-BM-KEY 10次/5秒
/spot/v1/order_detail 获取订单详情 X-BM-KEY 150次/5秒
/spot/v2/orders 查询用户最近订单V2 X-BM-KEY 30次/5秒
/spot/v1/trades 用户成交记录 X-BM-KEY 30次/5秒
/spot/v1/batch_orders 批量下单 X-BM-KEY 150次/5秒
子母账户接口 接口名称 限制目标 速率 特别备注
/account/sub-account/main/v1/sub-to-main 子账户向主账户划转(主账户适用) X-BM-KEY 5次/5秒
/account/sub-account/sub/v1/sub-to-main 子账户向主账户划转(子账户适用) X-BM-KEY 5次/5秒
/account/sub-account/main/v1/main-to-sub 主账户向子账户划转(主账户适用) X-BM-KEY 5次/5秒
/account/sub-account/sub/v1/sub-to-sub 子账户向统一体系下的子账户划转(子账户适用) X-BM-KEY 5次/5秒
/account/sub-account/main/v1/sub-to-sub 子账户向子账户划转(主账户适用) X-BM-KEY 5次/5秒
/account/sub-account/main/v1/transfer-list 查询子账户划转历史(主账户适用) X-BM-KEY 20次/5秒
/account/sub-account/v1/transfer-history 查询账户划转历史 X-BM-KEY 20次/5秒
/account/sub-account/main/v1/wallet 获取子账户现货钱包余额(主账户适用) X-BM-KEY 30次/5秒
/account/sub-account/main/v1/subaccount-list 查询子账户列表(主账户适用) X-BM-KEY 20次/5秒
杠杆借还款接口 接口名称 限制目标 速率 特别备注
/margin/v1/isolated/borrow 逐仓借款 X-BM-KEY 5次/5秒
/margin/v1/isolated/repay 逐仓还款 X-BM-KEY 5次/5秒
/margin/v1/isolated/borrow_record 查询逐仓借款订单 X-BM-KEY 150次/5秒
/margin/v1/isolated/repay_record 查询逐仓还款订单 X-BM-KEY 150次/5秒
/margin/v1/isolated/pairs 查询交易对借款利率与额度 X-BM-KEY 5次/5秒

系统状态

获取系统时间

获取系统时间 (鉴权类型:NONE, 参见接口权限)

请求格式

GET https://api-cloud.bitmart.com/system/time

请求限制

参见 速率限制详细

请求参数

请求

curl https://api-cloud.bitmart.com/system/time

响应详情

响应

{
  "code": 1000,
  "trace":"886fb6ae-456b-4654-b4e0-d681ac05cea1",
  "message": "OK",
  "data": {
    "server_time": 1527777538000
  }
}
字段 类型 描述
server_time long 当前系统时间(时间戳,精确到毫秒)

获取系统服务状态

获取系统服务状态 (鉴权类型:NONE, 参见接口权限)

请求格式

GET https://api-cloud.bitmart.com/system/service

请求限制

参见 速率限制详细

请求参数

请求

curl https://api-cloud.bitmart.com/system/service

响应详情

响应

{
  "code": 1000,
  "trace":"886fb6ae-456b-4654-b4e0-d681ac05cea1",
  "message": "OK",
  "data": {
    "serivce":[
      {
         "title": "Spot API Stop",
         "service_type": "spot",
         "status": "2",
         "start_time": 1527777538000,
         "end_time": 1527777538000
     },
     {
        "title": "Contract API Stop",
        "service_type": "contract",
        "status": "2",
        "start_time": 1527777538000,
        "end_time": 1527777538000
    }
   ]
  }
}
字段 类型 描述
title string 系统维护说明的标题
status long 系统维护的状态
0:等待中
1:进行中
2:已完成
service_type string 服务类型
spot=现货API服务
contract=合约API服务
start_time long 系统维护的开始时间,UTC-0,时间戳精确到毫秒
end_time long 系统维护的结束时间,UTC-0,时间戳精确到毫秒

Restful公共行情

获取币种列表

获取平台所有的加密货币列表 (鉴权类型:NONE, 参见接口权限)

请求格式

GET https://api-cloud.bitmart.com/spot/v1/currencies

请求限制

参见 速率限制详细

请求参数

请求

curl https://api-cloud.bitmart.com/spot/v1/currencies

响应详情

响应

{
  "code": 1000,
  "trace":"886fb6ae-456b-4654-b4e0-d681ac05cea1",
  "message": "OK",
  "data": {
    "currencies": [
      {
        "id": "BTC",
        "name": "Bitcoin",
        "withdraw_enabled": true,
        "deposit_enabled": true
      },
      {
        "id": "ETH",
        "name": "Ethereum",
        "withdraw_enabled": true,
        "deposit_enabled": true
      }
    ]
  }
}
字段 类型 描述
id String 币种简称,如 BTC
name String 币种全称,如 Bitcoin
withdraw_enabled Boolean 此币种是否可在平台上提现,true-可;false-不可以
deposit_enabled Boolean 此币种是否可在平台上充值,true-可;false-不可以

获取交易对列表

获取平台所有的交易对列表 (接口类型:NONE, 参见接口权限)

请求格式

GET https://api-cloud.bitmart.com/spot/v1/symbols

请求限制

参见 速率限制详细

请求参数

请求

curl https://api-cloud.bitmart.com/spot/v1/symbols

响应详情

响应

{
  "code": 1000,
  "trace":"886fb6ae-456b-4654-b4e0-d681ac05cea1",
  "message": "OK",
  "data": {
    "symbols": [
       "BMX_ETH",
       "XLM_ETH",
       "MOBI_ETH",
       ...
    ]
  }
}
字段 类型 描述
symbols List 交易对名数组

获取所有交易对详情

获取平台所有交易对的详情列表 (鉴权类型:NONE, 参见接口权限)

请求格式

GET https://api-cloud.bitmart.com/spot/v1/symbols/details

请求限制

参见 速率限制详细

请求参数

请求

curl https://api-cloud.bitmart.com/spot/v1/symbols/details

响应详情

响应

{
  "code": 1000,
  "trace":"886fb6ae-456b-4654-b4e0-d681ac05cea1",
  "message": "OK",
  "data": {
    "symbols": [
        {
            "symbol":"GXC_BTC",
             "symbol_id":1024,
             "base_currency":"GXC",
             "quote_currency":"BTC",
             "quote_increment":"1.00000000",
             "base_min_size":"1.00000000",
             "base_max_size":"10000000.00000000",
             "price_min_precision":6,
             "price_max_precision":8,
             "expiration":"NA",
             "min_buy_amount":"0.00010000",
             "min_sell_amount":"0.00010000",
             "trade_status":"trading"
        },
        ...
    ]
  }
}
字段 类型 描述
symbols List 交易对详情数组

解释说明

交易对详情字段描述:

交易对详情 类型 描述
symbols List 交易对详情数组
symbol string 交易对名称
symbol_id int 交易对 id
base_currency string 交易货币币种
quote_currency string 计价货币币种
quote_increment string 最小下单量,也是最小下单量增量
base_min_size string 最小下单数量
base_max_size string 最大下单数量
price_min_precision number 最小价格精度(小数位) 用来查询 k 线和深度
price_max_precision number 最大价格精度(小数位) 用来查询 k 线和深度
expiration string 交易对的过期时间
min_buy_amount string 最小下单金额
min_sell_amount string 最大下单金额
trade_status string ’trading’,交易中;’pre-trade’,预开盘

获取指定交易对行情

Ticker 是交易对市场状态的概览,包含最新成交价、买一价、卖一价和 24 小时交易量的快照信息。 (鉴权类型:NONE, 参见接口权限)

请求格式

GET https://api-cloud.bitmart.com/spot/v1/ticker

请求限制

参见 速率限制详细

请求参数

请求

curl https://api-cloud.bitmart.com/spot/v1/ticker?symbol=BTC_USDT
参数 类型 是否必填 描述
symbol String 可选 交易对 symbol (可选, 默认返回所有交易对的 tiker 信息)

响应详情

响应

{
    "message":"OK",
    "code":1000,
    "trace":"6e42c7c9-fdc5-461b-8fd1-b4e2e1b9ed57",
    "data":{
        "tickers":[
            {
                "symbol":"BTC_USDT",
                "last_price":"1.00",
                "quote_volume_24h":"201477650.88000",
                "base_volume_24h":"25186.48000",
                "high_24h":"8800.00",
                "low_24h":"1.00",
                "open_24h":"8800.00",
                "close_24h":"1.00",
                "best_ask":"0.00",
                "best_ask_size":"0.00000",
                "best_bid":"0.00",
                "best_bid_size":"0.00000",
                "fluctuation":"-0.9999",
                "url":"https://www.bitmart.com/trade?symbol=BTC_USDT"
            }
        ]
    }
}
字段 类型 描述
symbol string 交易对
last_price string 最新成交价
base_volume_24h string 24小时成交量,按交易货币统计
quote_volume_24h string 24小时成交量,按计价货币统计
high_24h string 24小时最高价
open_24h string 24小时开盘价
low_24h string 24小时最低价
close_24h string 24小时收盘价
fluctuation string 24小时涨幅
best_ask string 卖一价
best_ask_size string 卖一价对应的量
best_bid string 买一价
best_bid_size string 买 1 数量
url string BitMart网站上的交易页链接

获取支持的 K 线周期

获取平台支持的全部 k 线周期,用分钟表示,最小 1 分钟。 (鉴权类型:NONE, 参见接口权限)

请求格式

GET https://api-cloud.bitmart.com/spot/v1/steps

请求限制

参见 速率限制详细

请求参数

请求

curl https://api-cloud.bitmart.com/spot/v1/steps

响应详情

响应

{
  "code": 1000,
  "trace":"886fb6ae-456b-4654-b4e0-d681ac05cea1",
  "message": "OK",
  "data": {
    "steps": [1, 3, 5, 15, 30, 45, 60, 120, 180, 240, 1440, 10080, 43200]
  }
}
字段 类型 描述
steps List K线周期数组,以分钟为单位

获取 K 线

获取指定交易对的指定时间范围内的 k 线数据。 (鉴权类型:NONE, 参见接口权限)

请求格式

GET https://api-cloud.bitmart.com/spot/v1/symbols/kline

请求限制

参见 速率限制详细

请求参数

请求

curl https://api-cloud.bitmart.com/spot/v1/symbols/kline?symbol=BMX_ETH&step=15&from=1525760116&to=1525769116
参数 类型 是否必填 描述
symbol string 必填 交易对 symbol
from long 必填 开始时间 (UTC+0, 精确到秒)
to long 必填 结束时间 (UTC+0, 精确到秒)
step long 可选(默认 1 分钟) k 线步长Steps (用分钟表示, 默认 1 分钟)

响应详情

响应

{
    "message":"OK",
    "code":1000,
    "trace":"ae7ede4c-04a3-4004-bd8b-022a12d17e45",
    "data":{
        "klines":[
            {
                "timestamp":1590969600,
                "open":"1.2400000000",
                "high":"1.2400000000",
                "low":"1.2000000000",
                "close":"1.2000000000",
                "last_price":"1.2000000000",
                "volume":"4.9000000000",
                "quote_volume":"0.000000"
            }
        ]
    }
}
字段 类型 描述
kline List k 线列表

k线详情字段描述:

字段 类型 描述
last_price string 当前价格
timestamp long 时间戳 (UTC+0, 精确到秒)
volume string 交易总量
quote_volume string 成交额
open string 开盘价
high string 最高价
low string 最低价
close string 收盘价

获取深度

获取交易对完整的深度。 (鉴权类型:NONE, 参见接口权限)

请求格式

GET https://api-cloud.bitmart.com/spot/v1/symbols/book

请求限制

参见 速率限制详细

请求参数

请求

curl https://api-cloud.bitmart.com/spot/v1/symbols/book?symbol=BMX_ETH&precision=6
参数 类型 是否必填 描述
symbol String 必填 交易对 symbol
precision String 可选 价格精度, 精度范围在交易对详情里定义
size Int 可选 返回深度数量,值可传[1-200],即买卖深度共[2-400]条

解释说明

  1. precision 是可选的。 如果未传, 默认使用 symbols details 返回的price_max_precision

  2. 当size不传时,返回50条;size传大于200的数时,返回错误提示。

响应详情

响应

{
  "code": 1000,
  "trace":"886fb6ae-456b-4654-b4e0-d681ac05cea1",
  "message": "OK",
  "data": {
       "timestamp": 1527777538000,
       "buys":[
          {
             "amount":"4800.00",
             "total":"4800.00",
             "price":"0.000767",
             "count":"1"
          },
          {
             "amount":"99996475.79",
             "total":"100001275.79",
             "price":"0.000201",
             "count":"1"
          },
          ...
       ],
       "sells":[
          {
             "amount":"100.00",
             "total":"100.00",
             "price":"0.007000",
             "count":"1"
          },
          {
             "amount":"6997.00",
             "total":"7097.00",
             "price":"1.000000",
             "count":"1"
          },
          ...
       ]
  }
}
字段 类型 描述
timestamp long 当前系统时间(时间戳,精确到毫秒)
buys List 买单深度列表
sells List 卖单深度列表

深度详情描述:

字段 类型 描述
amount string 当前价格深度的总量
total string 当前价格深度之上(包含当前)的总量累加
price string 当前深度的价格
count string 当前价格深度的总订单数

获取最近成交记录

获取指定交易对的最近成交记录。 (鉴权类型:NONE, 参见接口权限)

请求格式

GET https://api-cloud.bitmart.com/spot/v1/symbols/trades

请求限制

参见 速率限制详细

请求参数

请求

curl https://api-cloud.bitmart.com/spot/v1/symbols/trades?symbol=BMX_ETH
参数 类型 是否必填 描述
symbol string 必填 交易对 symbol, 如:BMX_ETH
N string 可选 返回条数,默认最大50条

响应详情

响应

{
  "code": 1000,
  "trace":"886fb6ae-456b-4654-b4e0-d681ac05cea1",
  "message": "OK",
  "data": {
    "trades": [
       {
          "amount":"0.05768509",
          "order_time":1527057452000,
          "price":"0.004811",
          "count":"11.99",
          "type":"buy"
       },
       ...
    ]
  }
}
字段 类型 描述
trades List 深度数据数组

深度数据详情字段描述:

字段 类型 描述
amount string 当前交易成交的总额
order_time long 成交时间 (毫秒表示)
price string 成交价格
count string 成交数量
type String maker 下单类型 (buy or sell)

子母账户接口

子账户向主账户划转(主账户适用)

子账户向主账户划转(主账户适用) (鉴权类型:SIGNED, 参见接口权限)

请求格式

POST https://api-cloud.bitmart.com/account/sub-account/main/v1/sub-to-main

请求限制

参见 速率限制详细

请求参数

请求

curl https://api-cloud.bitmart.com/account/sub-account/main/v1/sub-to-main
{
    "requestNo":"4e2adcff-2122-1ce7-2557-4f65d2ce1ca2",
    "amount":"1",
    "currency":"BTC",
    "subAccount":"[email protected]"
}
字段 类型 是否必填 描述
requestNo string uuid或其他通用唯一标识符
amount string 划转数量
currency string 币种
subAccount string 子账户用户名

响应详情

响应

{
  "code": 1000,
  "trace":"886fb6ae-456b-4654-b4e0-d681ac05cea1",
  "message": "OK",
  "data": {
  }
}

code 返回 1000 表示划转成功。

子账户向主账户划转(子账户适用)

子账户向主账户划转(子账户适用) (鉴权类型:SIGNED, 参见接口权限)

请求格式

POST https://api-cloud.bitmart.com/account/sub-account/sub/v1/sub-to-main

请求限制

参见 速率限制详细

请求参数

请求

curl https://api-cloud.bitmart.com/account/sub-account/sub/v1/sub-to-main
{
    "requestNo":"4e2adcff-2122-1ce7-2557-4f65d2ce1ca2",
    "amount":"1",
    "currency":"BTC"
}
字段 类型 是否必填 描述
requestNo string uuid或其他通用唯一标识符
amount string 划转数量
currency string 币种

响应详情

响应

{
  "code": 1000,
  "trace":"886fb6ae-456b-4654-b4e0-d681ac05cea1",
  "message": "OK",
  "data": {
  }
}

code 返回 1000 表示划转成功。

主账户向子账户划转(主账户适用)

主账户向子账户划转(主账户适用) (鉴权类型:SIGNED, 参见接口权限)

请求格式

POST https://api-cloud.bitmart.com/account/sub-account/main/v1/main-to-sub

请求限制

参见 速率限制详细

请求参数

请求

curl https://api-cloud.bitmart.com/account/sub-account/main/v1/main-to-sub
{
    "requestNo":"4e2adcff-2122-1ce7-2557-4f65d2ce1ca2",
    "amount":"1",
    "currency":"BTC",
    "subAccount":"[email protected]"
}
字段 类型 是否必填 描述
requestNo string uuid或其他通用唯一标识符
amount string 划转数量
currency string 币种
subAccount string 子账户用户名

响应详情

响应

{
  "code": 1000,
  "trace":"886fb6ae-456b-4654-b4e0-d681ac05cea1",
  "message": "OK",
  "data": {
  }
}

code 返回 1000 表示划转成功。

子账户向统一体系下的子账户划转(子账户适用)

子账户向统一体系下的子账户划转(子账户适用) (鉴权类型:SIGNED, 参见接口权限)

请求格式

POST https://api-cloud.bitmart.com/account/sub-account/sub/v1/sub-to-sub

请求限制

参见 速率限制详细

请求参数

请求

curl https://api-cloud.bitmart.com/account/sub-account/sub/v1/sub-to-sub
{
    "requestNo":"4e2adcff-2122-1ce7-2557-4f65d2ce1ca2",
    "amount":"1",
    "currency":"BTC",
    "subAccount":"[email protected]"
}
字段 类型 是否必填 描述
requestNo string uuid或其他通用唯一标识符
amount string 划转数量
currency string 币种
subAccount string 子账户用户名

响应详情

响应

{
  "code": 1000,
  "trace":"886fb6ae-456b-4654-b4e0-d681ac05cea1",
  "message": "OK",
  "data": {
  }
}

code 返回 1000 表示划转成功。

子账户向子账户划转(主账户适用)

子账户向子账户划转(主账户适用) (鉴权类型:SIGNED, 参见接口权限)

请求格式

POST https://api-cloud.bitmart.com/account/sub-account/main/v1/sub-to-sub

请求限制

参见 速率限制详细

请求参数

请求

curl https://api-cloud.bitmart.com/account/sub-account/main/v1/sub-to-sub
{
    "requestNo":"4e2adcff-2122-1ce7-2557-4f65d2ce1ca2",
    "amount":"1",
    "currency":"BTC",
    "fromAccount":"[email protected]",
    "toAccount":"[email protected]"
}
字段 类型 是否必填 描述
requestNo string uuid或其他通用唯一标识符
amount string 划转数量
currency string 币种
fromAccount string 划出子账户用户名
toAccount string 划入子账户用户名

响应详情

响应

{
  "code": 1000,
  "trace":"886fb6ae-456b-4654-b4e0-d681ac05cea1",
  "message": "OK",
  "data": {
  }
}

code 返回 1000 表示划转成功。

查询子账户划转历史(主账户适用)

查询子账户划转历史(主账户适用) (鉴权类型:KEYED, 参见接口权限)

请求格式

GET https://api-cloud.bitmart.com/account/sub-account/main/v1/transfer-list

请求限制

参见 速率限制详细

请求参数

请求

curl https://api-cloud.bitmart.com/account/sub-account/main/v1/transfer-list?moveType=spot to spot
字段 类型 是否必填 描述
moveType string 划转类型
spot to spot=现货到现货
accountName string 子账户用户名
N int 最近N条记录(取值范围1-100)

响应详情

响应

{
  "message": "OK",
  "code": 1000,
  "trace": "282fd16e-73ee-464f-adb7-7241345929f6",
  "data": {
    "total": 2,
    "historyList": [
      {
        "fromAccount": "[email protected]",
        "fromWalletType": "spot",
        "toAccount": "[email protected]",
        "toWalletType": "spot",
        "currency": "BTC",
        "amount": "1",
        "submissionTime": 1648471522
      },
      {
        "fromAccount": "[email protected]",
        "fromWalletType": "spot",
        "toAccount": "[email protected]",
        "toWalletType": "spot",
        "currency": "BTC",
        "amount": "30",
        "submissionTime": 1648466178
      }
    ]
  }
}
字段 类型 描述
fromAccount string 转出账户
fromWalletType string 转出钱包类型
spot=现货
toAccount string 转入账户
toWalletType string 转入钱包类型
spot=现货
currency string 币种
amount string 金额
submissionTime long 请求时间戳精确到秒

查询账户划转历史

查询账户划转历史 (鉴权类型:KEYED, 参见接口权限)

请求格式

GET https://api-cloud.bitmart.com/account/sub-account/v1/transfer-history

请求限制

参见 速率限制详细

请求参数

请求

curl https://api-cloud.bitmart.com/account/sub-account/v1/transfer-history?moveType=spot to spot
字段 类型 是否必填 描述
moveType string 划转类型
spot to spot=现货到现货
N int 最近N条记录(取值范围1-100)

响应详情

响应

{
  "message": "OK",
  "code": 1000,
  "trace": "282fd16e-73ee-464f-adb7-7241345929f6",
  "data": {
    "total": 2,
    "historyList": [
      {
        "fromAccount": "[email protected]",
        "fromWalletType": "spot",
        "toAccount": "[email protected]",
        "toWalletType": "spot",
        "currency": "BTC",
        "amount": "1",
        "submissionTime": 1648471522
      },
      {
        "fromAccount": "[email protected]",
        "fromWalletType": "spot",
        "toAccount": "[email protected]",
        "toWalletType": "spot",
        "currency": "BTC",
        "amount": "30",
        "submissionTime": 1648466178
      }
    ]
  }
}
字段 类型 描述
fromAccount string 转出账户
fromWalletType string 转出钱包类型
spot=现货
toAccount string 转入账户
toWalletType string 转入钱包类型
spot=现货
currency string 币种
amount string 金额
submissionTime long 请求时间戳精确到秒

获取子账户现货钱包余额(主账户适用)

获取子账户现货钱包余额(主账户适用) (鉴权类型:KEYED, 参见接口权限)

请求格式

GET https://api-cloud.bitmart.com/account/sub-account/main/v1/wallet

请求限制

参见 速率限制详细

请求参数

请求

curl https://api-cloud.bitmart.com/account/sub-account/main/v1/wallet?subAccount=[email protected]
字段 类型 是否必填 描述
subAccount string 子账户用户名
currency string 币种

响应详情

响应

{
    "message":"OK",
    "code":1000,
    "trace":"ef834248-51d3-4223-9481-f862aa9dd39f",
    "data":{
        "wallet":[
            {
                "currency":"USDT",
                "name":"Tether USD",
                "available":"1000.00000000",
                "frozen":"0.00000000"
            },
            {
                "currency":"BTC",
                "name":"Bitcoin",
                "available":"10000.00000000",
                "frozen":"10.00000000"
            }
        ]
    }
}
字段 类型 描述
currency string 币种
name string 加密货币全称
available string 可用余额
frozen string 冻结额

查询子账户列表(主账户适用)

查询子账户列表(主账户适用) (鉴权类型:KEYED, 参见接口权限)

请求格式

GET https://api-cloud.bitmart.com/account/sub-account/main/v1/subaccount-list

请求限制

参见 速率限制详细

请求参数

请求

curl https://api-cloud.bitmart.com/account/sub-account/main/v1/subaccount-list

响应详情

响应

{
  "message": "OK",
  "code": 1000,
  "trace": "c03c22c3-75db-4aaa-9500-6dcd63dd9ccf",
  "data": {
    "subAccountList": [
      {
        "accountName": "[email protected]",
        "status": 1
      },
      {
        "accountName": "[email protected]",
        "status": 1
      }
    ]
  }
}
字段 类型 描述
accountName string 子账户账户名
status int 账户状态
'1' = 正常
'0' = 被后台禁用
'2' = 被主账号冻结

资金账户

查询总账户资金

查询账户资产 (鉴权类型:KEYED, 参见接口权限)

请求格式

GET https://api-cloud.bitmart.com/account/v1/wallet

请求限制

参见 速率限制详细

请求参数

请求

curl https://api-cloud.bitmart.com/account/v1/wallet
字段 类型 是否必填 描述
currency string 币种

响应详情

响应

{
    "message":"OK",
    "code":1000,
    "trace":"ef834248-51d3-4223-9481-f862aa9dd39f",
    "data":{
        "wallet":[
            {
                "currency":"USDT",
                "name":"Tether USD",
                "available":"1000.00000000",
                "frozen":"0.00000000"
            },
            {
                "currency":"BTC",
                "name":"Bitcoin",
                "available":"10000.00000000",
                "frozen":"10.00000000"
            }
        ]
    }
}
字段 类型 描述
currency string 币种
name string 加密货币全称
available string 可用余额
frozen string 冻结额

获取资产币种详情

获取资产币种,用于充提 (鉴权类型:NONE, 参见接口权限)

请求格式

GET https://api-cloud.bitmart.com/account/v1/currencies

请求限制

参见 速率限制详细

请求参数

请求

curl https://api-cloud.bitmart.com/account/v1/currencies

响应详情

响应

{
  "code": 1000,
  "trace":"886fb6ae-456b-4654-b4e0-d681ac05cea1",
  "message": "OK",
  "data": {
    "currencies": [
      {
        "currency": "USDT",
        "name": "Tether USD",
        "network": "OMNI",
        "withdraw_enabled": false,
        "deposit_enabled": false
      },
      {
        "currency": "USDT-TRC20",
        "name": "USDT-TRC20",
        "network": "TRC20",
        "withdraw_enabled": true,
        "deposit_enabled": true
      },
      {
        "currency": "USDT-ERC20",
        "name": "USDT-ERC20",
        "network": "ERC20",
        "withdraw_enabled": true,
        "deposit_enabled": true
      },
      {
        "currency": "USDT-BSC",
        "name": "USDT-BSC",
        "network": "BEP20(BSC)",
        "withdraw_enabled": true,
        "deposit_enabled": true
      }
    ]
  }
}
字段 类型 描述
currency string 币种,如 BTC
name string 币种全称,如 Bitcoin
network string 提币网络,如 ERC20
withdraw_enabled boolean 此币种是否可在平台上提现,true-可;false-不可以
deposit_enabled boolean 此币种是否可在平台上充值,true-可;false-不可以

获取现货账户余额

获取用户所有币种钱包余额 (鉴权类型:KEYED, 参见接口权限)

请求格式

GET https://api-cloud.bitmart.com/spot/v1/wallet

请求限制

参见 速率限制详细

请求参数

请求

curl https://api-cloud.bitmart.com/spot/v1/wallet

响应详情

响应

{
  "code": 1000,
  "trace":"886fb6ae-456b-4654-b4e0-d681ac05cea1",
  "message": "OK",
  "data": {
    "wallet": [
         {
              "id": "BTC",
              "available": "10.000000",
              "name": "Bitcoin",
              "frozen": "10.000000",
          },
          ...
    ]
  }
}
字段 类型 描述
id string 加密货币缩写
name string 加密货币全称
available string 可用余额
frozen string 冻结额

查询充值地址

查询各个币种的充值地址 (鉴权类型:KEYED, 参见接口权限)

请求格式

GET https://api-cloud.bitmart.com/account/v1/deposit/address

请求限制

参见 速率限制详细

请求参数

请求

curl https://api-cloud.bitmart.com/account/v1/deposit/address?currency=USDT-TRC20
字段 类型 是否必填 描述
currency string 必填 币种,如 BTC

解释说明

PNG

响应详情

响应

{
    "message":"OK",
    "code":1000,
    "trace":"0e6edd79-f77f-4251-abe5-83ba75d06c1a",
    "data":{
        "currency":"USDT-TRC20",
        "chain":"USDT-TRC20",
        "address":"TGR3ghy2b5VLbyAYrmiE15jasR6aPHTvC5",
        "address_memo":""
    }
}
字段 类型 描述
currency string 币种
chain string 链名称
address string 充值地址
address_memo string 标签(tag/payment_id/memo); 部分币种提币需要则返回数据,若不需要则返回空字符串;

充值忘记填写memo或者填错怎么办?

提币额度查询

查询提币额度 (鉴权类型:KEYED, 参见接口权限)

请求格式

GET https://api-cloud.bitmart.com/account/v1/withdraw/charge

请求限制

参见 速率限制详细

请求参数

请求

curl https://api-cloud.bitmart.com/account/v1/withdraw/charge?currency=BTC
字段 类型 是否必填 描述
currency string 必填 币种,如BTC

响应详情

响应

{
    "message":"OK",
    "code":1000,
    "trace":"62a80bde-0cb4-4bf1-b8e5-5ad2c71463e7",
    "data":{
        "today_available_withdraw_BTC":"100.0000",
        "min_withdraw":"0.00000000",
        "withdraw_precision":8,
        "withdraw_fee":"0.00000000"
    }
}
字段 类型 描述
today_available_withdraw_BTC String 今日可提现额度,单位: BTC
min_withdraw string 最小可提币数量
withdraw_precision int 提现精度,精确到小数点后几位
withdraw_fee string 提币手续费

提币

提币 (鉴权类型:SIGNED, 参见接口权限)

请求格式

POST https://api-cloud.bitmart.com/account/v1/withdraw/apply

请求限制

参见 速率限制详细

请求参数

请求

curl https://api-cloud.bitmart.com/account/v1/withdraw/apply
{
    "currency": "USDT",
    "amount": "100.000",
    "destination": "To Digital Address",
    "address": "0x1EE6FA5A3803608fc22a1f3F76ea9447D2E8b335",
    "address_memo": ""
}
字段 类型 是否必填 描述
currency string 必填 币种,如BTC
amount string 必填 申请金额
destination string 必填 提币到
To Digital Address=提币到数字货币地址
address string 必填 地址(仅支持在官网上添加过的地址)
address_memo string 标签(tag/payment_id/memo统一填这里)

响应详情

响应

{
  "code": 1000,
  "trace":"886fb6ae-456b-4654-b4e0-d681ac05cea1",
  "message": "OK",
  "data": {
    "withdraw_id": "121212"
  }
}
字段 类型 描述
withdraw_id string 提币ID

查询充提记录

原 /account/v1/deposit-withdraw/history 接口,老接口将不再进行支持,请尽快切换至新接口

查询充提记录 (鉴权类型:KEYED, 参见接口权限)

请求格式

GET https://api-cloud.bitmart.com/account/v2/deposit-withdraw/history

请求限制

参见 速率限制详细

请求参数

请求

curl https://api-cloud.bitmart.com/account/v2/deposit-withdraw/history?N=100&operation_type=withdraw
字段 类型 是否必填 描述
currency string 可选 币种,如 BTC
operation_type string 必填 类型
deposit=充值
withdraw=提现
N int 必填 最近N条记录(取值范围1-100)

响应详情

响应

{
  "message":"OK",
  "code":1000,
  "trace":"142bf92a-fc50-4689-92b6-590886f90b97",
  "data":{
    "records":[
      {
        "withdraw_id":"1679952",
        "deposit_id":"",
        "operation_type":"withdraw",
        "currency":"BMX",
        "apply_time":1588867374000,
        "arrival_amount":"59.000000000000",
        "fee":"1.000000000000",
        "status":0,
        "address":"0xe57b69a8776b37860407965B73cdFFBDFe668Bb5",
        "address_memo":"",
        "tx_id":""
      },
      ...
    ]
  }
}
字段 类型 描述
withdraw_id string 提现ID
deposit_id string 充值ID
operation_type string 类型
deposit=充值
withdraw=提现
currency string 币种,如 BTC
apply_time long 请求时间戳精确到毫秒(UTC-0)
arrival_amount string 实际到账金额
fee string 手续费
status int 状态
0-创建
1-已提交,等待提现
2-处理中
3-处理成功
4-已撤销
5-处理失败
address string 地址
address_memo string 地址标签
tx_id string 提币哈希记录

查询单个充提记录

查询单个充提记录 (鉴权类型:KEYED, 参见接口权限)

请求格式

GET https://api-cloud.bitmart.com/account/v1/deposit-withdraw/detail

请求限制

参见 速率限制详细

请求参数

请求

curl https://api-cloud.bitmart.com/account/v1/deposit-withdraw/detail?id=1679952
字段 类型 是否必填 描述
id string 必填 提现ID或者是充值ID, withdraw_id 或者 deposit_id

响应详情

响应

{
    "message":"OK",
    "code":1000,
    "trace":"f7f74924-14da-42a6-b7f2-d3799dd9a612",
    "data":{
        "record":{
            "withdraw_id":"1679952",
            "deposit_id":"",
            "operation_type":"withdraw",
            "currency":"BMX",
            "apply_time":1588867374000,
            "arrival_amount":"59.000000000000",
            "fee":"1.000000000000",
            "status":0,
            "address":"0xe57b69a8776b37860407965B73cdFFBDFe668Bb5",
            "address_memo":"",
            "tx_id":""
        }
    }
}
字段 类型 描述
withdraw_id string 提现ID
deposit_id string 充值ID
operation_type string 类型
deposit=充值
withdraw=提现
currency string 币种简称,如 BTC
apply_time long 请求时间戳精确到秒(UTC-0)
arrival_amount string 实际到账金额
fee string 手续费
status int 状态
0-创建
1-已提交,等待提现
2-处理中
3-处理成功
4-已撤销
5-处理失败
address string 地址
address_memo string 地址标签
tx_id string 提币哈希记录

查询逐仓账户信息

适用于查询逐仓杠杆账户信息 (鉴权类型:KEYED, 参见接口权限)

请求格式

GET https://api-cloud.bitmart.com/spot/v1/margin/isolated/account

请求限制

参见 速率限制详细

请求参数

请求

curl https://api-cloud.bitmart.com/spot/v1/margin/isolated/account
字段 类型 是否必填 描述
symbol string 交易对,如(BTC_USDT),不传symbol则返回所有杠杆逐仓资产

响应详情

响应

{
    "message":"OK",
    "code":1000,
    "trace":"f7f74924-14da-42a6-b7f2-d3799dd9a612",
    "data":{
      "symbols":[
        {
          "symbol": "BTC_USDT",
          "risk_rate": "18.77",
          "risk_level": "1",
          "buy_enabled": true,
          "sell_enabled": true,
          "liquidate_price": "-0.09408905",
          "liquidate_rate": "1.1",
          "base": {
            "currency": "BTC",
            "borrow_enabled": false,
            "borrowed": "2.00000000",
            "borrow_unpaid": "0.84478234",
            "interest_unpaid": "0.01385763",
            "available": "112.89603334",
            "frozen": "0.00000000",
            "net_asset": "110.89603334",
            "net_assetBTC": "0.00000000",
            "total_asset": "112.89603334"
          },
          "quote": {
            "currency": "USDT",
            "borrow_enabled": true,
            "borrowed": "0.00000000",
            "borrow_unpaid": "0.84478234",
            "interest_unpaid": "0.01385763",
            "available": "10.00000000",
            "frozen": "0.00000000",
            "net_asset": "10.00000000",
            "net_assetBTC": "0.00000000",
            "total_asset": "10.00000000"
          }
        },
        ...
      ]
    }
}
字段 类型 描述
symbol string 交易对
risk_rate string 当前风险率
risk_level string 风险等级
buy_enabled Boolean 是否可以买入
sell_enabled Boolean 是否可以卖出
liquidate_price string 平仓价格(精度:8位小数)
liquidate_rate string 平仓风险率
currency string 币种
borrow_enabled Boolean 能否借出
borrowed string 已借资产(精度:8位小数)
borrow_unpaid string 未还本金金额(精度:8位小数)
interest_unpaid string 未还利息(精度:8位小数)
available string 可用资产(精度:8位小数)
frozen string 交易冻结资产(精度:8位小数)
net_asset string 净资产(精度:8位小数)
net_assetBTC string 折合BTC净资产(精度:8位小数)
total_asset string 总资产(精度:8位小数)

杠杆资金划转

适用于杠杆账户和现货账户之间的资金划转 (鉴权类型:SIGNED, 参见接口权限)

请求格式

POST https://api-cloud.bitmart.com/spot/v1/margin/isolated/transfer

请求限制

参见 速率限制详细

请求参数

请求

curl https://api-cloud.bitmart.com/spot/v1/margin/isolated/transfer
{
    "symbol":"BTC_USDT",
    "currency":"BTC",
    "amount":"1",
    "side":"in"
}
字段 类型 是否必填 描述
symbol string 交易对(如:BTC_USDT)
currency string 币种
amount string 划转数量(精度:8位小数)
side string 转账方向
in=转入
out=转出

响应详情

响应

{
    "message":"OK",
    "code":1000,
    "trace":"f7f74924-14da-42a6-b7f2-d3799dd9a612",
    "data":{
        "transfer_id":"124532"
    }
}
字段 类型 描述
transfer_id string 划转id(只有划转成功才会返回)

现货 / 杠杆交易

现货下单

委托下单 (鉴权类型:SIGNED, 参见接口权限)

请求格式

POST https://api-cloud.bitmart.com/spot/v1/submit_order

请求限制

参见 速率限制详细

请求参数

请求

curl https://api-cloud.bitmart.com/spot/v1/submit_order
{
    "symbol":"BTC_USDT",
    "side":"buy",
    "type":"limit",
    "size":"10",
    "price":"7000"
}
字段 类型 是否必填 描述
symbol string 交易对(如:BTC_USDT)
side string 类型
buy=买入
sell=卖出
type string 订单类型
limit=限价单
market=市价单
limit_maker=只做maker单
ioc=IOC单
clientOrderId string 用户自定义ID(支持小于32位数字+子母的组合)

限价单/只做maker单/IOC单特殊参数 (type=limit/limit_maker/ioc)

字段 类型 是否必填 描述
size string 买入或卖出的数量
price string 价格

市价单特殊参数 (type=market)

字段 类型 是否必填 描述
size string 卖出数量,市价卖出时必填 size
notional string 买入金额,市价买入时必填 notional

解释说明

Buy-limit-maker

Sell-limit-maker

Buy-ioc,Sell-ioc

响应详情

响应

{
  "code": 1000,
  "trace":"886fb6ae-456b-4654-b4e0-d681ac05cea1",
  "message": "OK",
  "data": {
    "order_id":1223181
  }
}
字段 类型 描述
order_id long 订单ID

杠杆下单

杠杆账户的下单操作 (鉴权类型:SIGNED, 参见接口权限)

请求格式

POST https://api-cloud.bitmart.com/spot/v1/margin/submit_order

请求限制

参见 速率限制详细

请求参数

请求

curl https://api-cloud.bitmart.com/spot/v1/margin/submit_order
{
    "symbol":"BTC_USDT",
    "side":"buy",
    "type":"limit",
    "size":"10",
    "price":"7000"
}
字段 类型 是否必填 描述
symbol string 交易对(如:BTC_USDT)
side string 类型
buy=买入
sell=卖出
type string 订单类型
limit=限价单
market=市价单
limit_maker=只做maker单
ioc=IOC单
clientOrderId string 用户自定义ID(支持小于32位数字+子母的组合)

限价单/只做maker单/IOC单特殊参数 (type=limit/limit_maker/ioc)

字段 类型 是否必填 描述
size string 买入或卖出的数量
price string 价格

市价单特殊参数 (type=market)

字段 类型 是否必填 描述
size string 卖出数量,市价卖出时必填 size
notional string 买入金额,市价买入时必填 notional

解释说明

Buy-limit-maker

Sell-limit-maker

Buy-ioc,Sell-ioc

响应详情

响应

{
    "message":"OK",
    "code":1000,
    "trace":"f7f74924-14da-42a6-b7f2-d3799dd9a612",
    "data":{
      "order_id":1223181
    }
}
字段 类型 描述
order_id long 订单ID

批量下单

批量下单 (鉴权类型:SIGNED, 参见接口权限)

请求格式

POST https://api-cloud.bitmart.com/spot/v1/batch_orders

请求限制

参见 速率限制详细

请求参数

请求

curl https://api-cloud.bitmart.com/spot/v1/batch_orders
{
    "orderParams":[
        {
        "symbol":"BTC_USDT",
        "size":"0.1",
        "price":"8800",
        "side":"buy",
        "type":"limit"
        },
        {
        "symbol":"BTC_USDT",
        "size":"0.1",
        "price":"8800",
        "side":"sell",
        "type":"limit"
        }
    ]
}
字段 类型 是否必填 描述
orderParams List 下单参数,笔数不能超过10笔

orderParam

字段 类型 是否必填 描述
symbol string 交易对(如:BTC_USDT)
side string 类型
buy=买入
sell=卖出
type string 订单类型
limit=限价单
market=市价单
limit_maker=只做maker单
ioc=IOC单
clientOrderId string 用户自定义ID(支持小于32位数字+子母的组合)

限价单/只做maker单/IOC单特殊参数 (type=limit/limit_maker/ioc)

字段 类型 是否必填 描述
size string 买入或卖出的数量
price string 价格

市价单特殊参数 (type=market)

字段 类型 是否必填 描述
size string 卖出数量,市价卖出时必填 size
notional string 买入金额,市价买入时必填 notional

解释说明

Buy-limit-maker

Sell-limit-maker

Buy-ioc,Sell-ioc

响应详情

响应

{
  "code": 1000,
  "trace":"886fb6ae-456b-4654-b4e0-d681ac05cea1",
  "message": "OK",
  "data": {
    "orderResponses": [
      {
        "code": 11402,
        "msg": "Balance not enough"
      },
      {
        "code": 0,
        "msg": "SUCCESS",
        "data": {
          "orderId": 145771
        }
      }
    ]
  }
}
字段 类型 描述
order_id long 订单ID

撤销指定订单

取消一个未完成的订单 (鉴权类型:SIGNED, 参见接口权限)

请求格式

POST https://api-cloud.bitmart.com/spot/v2/cancel_order

请求限制

参见 速率限制详细

请求参数

请求

curl https://api-cloud.bitmart.com/spot/v2/cancel_order
{
    "order_id":112121212
}
字段 类型 是否必填 描述
order_id long 订单 id
clientOrderId string 用户自定义ID

响应详情

响应

{
  "code": 1000,
  "trace":"886fb6ae-456b-4654-b4e0-d681ac05cea1",
  "message": "OK",
  "data": {
    "result": true
  }
}
字段 类型 描述
result bool 撤单成功=true;撤单失败=false

撤销所有订单

取消指定交易对指定方向的所有未完成的订单 (鉴权类型:SIGNED, 参见接口权限)

请求格式

POST https://api-cloud.bitmart.com/spot/v1/cancel_orders

请求限制

参见 速率限制详细

请求参数

请求

curl https://api-cloud.bitmart.com/spot/v1/cancel_orders
{
  "symbol":"BTC_USDT",
  "side":"buy"
}
字段 类型 描述
symbol string 交易对(如:BTC_USDT)
side string buysell

响应详情

响应

{
  "code": 1000,
  "trace":"886fb6ae-456b-4654-b4e0-d681ac05cea1",
  "message": "OK",
  "data": {
  }
}

code 返回 1000 表示撤销成功。

获取订单详情

获取订单详情 (鉴权类型:KEYED, 参见接口权限)

请求格式

GET https://api-cloud.bitmart.com/spot/v1/order_detail

请求限制

参见 速率限制详细

请求参数

请求

curl https://api-cloud.bitmart.com/spot/v1/order_detail?order_id=1736871726781
字段 类型 是否必填 描述
order_id long 订单 id
clientOrderId string 用户自定义ID

响应详情

响应

{
    "message":"OK",
    "code":1000,
    "trace":"a27c2cb5-ead4-471d-8455-1cfeda054ea6",
    "data":{
        "order_id":1736871726781,
        "symbol":"BTC_USDT",
        "create_time":1591096004000,
        "side":"sell",
        "order_mode":"spot",
        "type":"market",
        "price":"0.00",
        "price_avg":"0.00",
        "size":"0.02000",
        "notional":"0.00000000",
        "filled_notional":"0.00000000",
        "filled_size":"0.00000",
        "unfilled_volume":"0.02000",
        "status":"8",
        "clientOrderId":"d9850c05-9091-4740-ae07-43e62153e9bd"
    }
}
字段 类型 描述
order_id long 订单ID
symbol string 交易对(如:BMX_USDT)
create_time long 时间戳,精确到毫秒
side string 类型
buy=买入
sell=卖出
order_mode string 交易模式
spot=现货
iso_margin=逐仓杠杆
type string 订单类型
limit=限价单
market=市价单
price string 委托价格
price_avg string 成交均价
size string 委托数量(交易货币)
notional string 买入金额,单位计价币种(特例:市价单卖的时候为交易币种)
filled_notional string 已成交金额
filled_size string 已成交数量
unfilled_volume string 未成交数量
status string 状态
4=下单成功,等待成交
5=部分成交
6=完全成交
8=撤销成功
clientOrderId string 用户自定义ID(如果该字段未定义,则返回随机字符串)

获取最近委托记录

原 /spot/v1/orders 接口,老接口将不再进行支持,请尽快切换至新接口

获取用户订单列表 (鉴权类型:KEYED, 参见接口权限)

请求格式

GET https://api-cloud.bitmart.com/spot/v2/orders

请求限制

参见 速率限制详细

请求参数

请求

curl https://api-cloud.bitmart.com/spot/v2/orders?symbol=BTC_USDT&status=4&N=100
字段 类型 是否必填 描述
symbol string 交易对(如:BTC_USDT)
order_mode string 交易模式,默认返回现货委托
spot=现货
iso_margin=逐仓杠杆
all=全部类型委托
N int 最近N条(取值范围1-100)
status string 状态
4=下单成功,等待成交
5=部分成交
6=完全成交
8=撤销成功
9=当前委托(4冻结成功+5部分成交)
10=6完全成交+8撤销成功

响应详情

响应

{
  "message":"OK",
  "code":1000,
  "trace":"70e7d427-7436-4fb8-8cdd-97e1f5eadbe9",
  "data":{
    "current_page":1,
    "orders":[
      {
        "order_id":2147601241,
        "symbol":"BTC_USDT",
        "create_time":1591099963000,
        "side":"sell",
        "order_mode":"spot",
        "type":"limit",
        "price":"9000.00",
        "price_avg":"0.00",
        "size":"1.00000",
        "notional":"9000.00000000",
        "filled_notional":"0.00000000",
        "filled_size":"0.00000",
        "status":"4",
        "clientOrderId":"d9850c05-9091-4740-ae07-43e62153e9bd"
      }
    ]
  }
}
字段 类型 描述
orders List 订单列表
order_id long 订单ID
symbol string 交易对(如:BTC_USDT)
create_time long 时间戳,精确到毫秒
side string 类型
buy=买入
sell=卖出
order_mode string 交易模式
spot=现货
iso_margin=逐仓杠杆
type string 订单类型
limit=限价单
market=市价单
price string 委托价格
price_avg string 成交均价
size string 委托数量(交易货币)
notional string 买入金额,单位计价币种(特例:市价单卖的时候为交易币种)
filled_notional string 已成交金额
filled_size string 已成交数量
status string 状态
4=下单成功,等待成交
5=部分成交
6=完全成交
8=撤销成功
clientOrderId string 用户自定义ID(如果该字段未定义,则返回随机字符串)

获取历史成交记录

获取用户成交历史 (鉴权类型:KEYED, 参见接口权限)

请求格式

GET https://api-cloud.bitmart.com/spot/v1/trades

请求限制

参见 速率限制详细

请求参数

请求

curl https://api-cloud.bitmart.com/spot/v1/trades?symbol=BTC_USDT&limit=10&offset=1
字段 类型 是否必填 描述
symbol string 必填 交易对(如:BTC_USDT)
order_mode string 交易模式,默认返回现货记录
spot=现货
iso_margin=逐仓杠杆
all=全部类型成交记录

查询单个订单的成交记录的特殊参数

字段 类型 是否必填 描述
order_id long 选填 订单 id

查询所有订单的成交记录的特殊参数

字段 类型 是否必填 描述
offset int 选填 当前页 从 1 开始
limit int 选填 每页返回数量(取值范围1-100)

响应详情

响应

{
    "message":"OK",
    "code":1000,
    "trace":"a06a5c53-8e6f-42d6-8082-2ff4718d221c",
    "data":{
        "current_page":1,
        "trades":[
            {
                "detail_id":256348632,
                "order_id":2147484350,
                "symbol":"BTC_USDT",
                "create_time":1590462303000,
                "side":"buy",
                "order_mode":"spot",
                "fees":"0.00001350",
                "fee_coin_name":"BTC",
                "notional":"88.00000000",
                "price_avg":"8800.00",
                "size":"0.01000",
                "exec_type":"M",
                "clientOrderId":"d9850c05-9091-4740-ae07-43e62153e9bd"
            },
            ...
        ]
    }
}
字段 类型 描述
trades List 订单列表
detail_id long 成交 id
order_id long 订单 id
symbol string 交易对 symbol
create_time long 成交时间 (毫秒表示)
side string 订单方向
buy=买入
sell=卖出
order_mode string 交易模式
spot=现货
iso_margin=逐仓杠杆
price_avg string 成交均价
notional string 成交价格
size string 成交数量
fees string 手续费
fee_coin_name string 手续费计价币名称
exec_type string 该账单是maker还是taker产生的。M表示Maker,T表示Taker
clientOrderId string 用户自定义ID(如果该字段未定义,则返回随机字符串)

杠杆借还款接口

逐仓借款

适用于逐仓杠杆账户的借款操作 (鉴权类型:SIGNED, 参见接口权限)

请求格式

POST https://api-cloud.bitmart.com/spot/v1/margin/isolated/borrow

请求限制

参见 速率限制详细

请求参数

请求

curl https://api-cloud.bitmart.com/spot/v1/margin/isolated/borrow
{
    "symbol":"BTC_USDT",
    "currency":"BTC",
    "amount":"1"
}
字段 类型 是否必填 描述
symbol string 借入交易对(如BTC_USDT)
currency string 借入币种,根据借入交易对选择(如BTC或USDT)
amount string 借币数量(精度:8位小数)

响应详情

响应

{
    "message":"OK",
    "code":1000,
    "trace":"f7f74924-14da-42a6-b7f2-d3799dd9a612",
    "data":{
      "borrow_id":"113896"
    }
}
字段 类型 描述
borrow_id string 借款订单ID,只有成功会返回

逐仓还款

适用于逐仓杠杆账户的还款操作 (鉴权类型:SIGNED, 参见接口权限)

请求格式

POST https://api-cloud.bitmart.com/spot/v1/margin/isolated/repay

请求限制

参见 速率限制详细

请求参数

请求

curl https://api-cloud.bitmart.com/spot/v1/margin/isolated/repay
{
    "symbol":"BTC_USDT",
    "currency":"BTC",
    "amount":"1"
}
字段 类型 是否必填 描述
symbol string 还款交易对(如BTC_USDT)
currency string 还款币种,根据还款交易对选择(如BTC或USDT)
amount string 还款数量(精度:8位小数)

响应详情

响应

{
    "message":"OK",
    "code":1000,
    "trace":"f7f74924-14da-42a6-b7f2-d3799dd9a612",
    "data":{
        "repay_id":"123165"
    }
}
字段 类型 描述
repay_id string 还款ID,只有成功会返回

查询逐仓借款订单

适用于查询逐仓杠杆账户的借款记录 (鉴权类型:KEYED, 参见接口权限)

请求格式

GET https://api-cloud.bitmart.com/spot/v1/margin/isolated/borrow_record

请求限制

参见 速率限制详细

请求参数

请求

curl https://api-cloud.bitmart.com/spot/v1/margin/isolated/borrow_record?symbol=BTC_USDT
字段 类型 是否必填 描述
symbol string 交易对(如BTC_USDT)
borrow_id string 借款订单id
start_time long 查询开始日期:时间戳
end_time long 查询结束日期:时间戳
N int 查询记录大小(1-100),默认为50

响应详情

响应

{
    "message":"OK",
    "code":1000,
    "trace":"f7f74924-14da-42a6-b7f2-d3799dd9a612",
    "data": {
      "records":[
        {
          "borrow_id": "133425",
          "symbol": "BTC_USDT",
          "currency": "BTC",
          "borrow_amount": "1.23854339",
          "daily_interest": "0.05",
          "hourly_interest": "0.00208334",
          "interest_amount": "0.02398474",
          "create_time": 1655345808
        },
        ...
      ]
    }
}
字段 类型 描述
borrow_id string 借款订单号
symbol string 交易对
currency string 币种
borrow_amount string 借款本金总额(精度:8位小数)
daily_interest string 日利率
hourly_interest string 时利率
interest_amount string 利息总额(精度:8位小数)
create_time long 订单创建时间

查询逐仓还款订单

适用于查询逐仓杠杆账户的还款记录 (鉴权类型:KEYED, 参见接口权限)

请求格式

GET https://api-cloud.bitmart.com/spot/v1/margin/isolated/repay_record

请求限制

参见 速率限制详细

请求参数

请求

curl https://api-cloud.bitmart.com/spot/v1/margin/isolated/repay_record?symbol=BTC_USDT
字段 类型 是否必填 描述
symbol string 交易对(如BTC_USDT)
repay_id string 还款订单id
currency string 币种
start_time long 查询开始日期:时间戳
end_time long 查询结束日期:时间戳
N int 查询记录大小(1-100),默认为50

响应详情

响应

{
    "message":"OK",
    "code":1000,
    "trace":"f7f74924-14da-42a6-b7f2-d3799dd9a612",
    "data":{
      "records":[
      {
        "repay_id":"118723",
        "repay_time":1655345808,
        "symbol":"BTC_USDT",
        "currency":"BTC",
        "repaid_amount":"1.1",
        "repaid_principal":"1",
        "repaid_interest":"0.1"
      },
      ...
      ]
    }
}
字段 类型 描述
repay_id string 还款ID
repay_time long 还款时间戳
symbol string 还款交易对(如BTC_USDT)
currency string 还款币种
repaid_amount string 还款金额
repaid_principal string 该笔还款归还的本金
repaid_interest string 该笔还款归还的利息

查询交易对借款利率与额度

适用于查询逐仓杠杆交易对的借款利率和借款额度 (鉴权类型:KEYED, 参见接口权限)

请求格式

GET https://api-cloud.bitmart.com/spot/v1/margin/isolated/pairs

请求限制

参见 速率限制详细

请求参数

请求

curl https://api-cloud.bitmart.com/spot/v1/margin/isolated/pairs
字段 类型 是否必填 描述
symbol string 可多选,不填则返回全部,如BTC_USDT,ETH_USDT

响应详情

响应

{
    "message":"OK",
    "code":1000,
    "trace":"f7f74924-14da-42a6-b7f2-d3799dd9a612",
    "data":{
      "symbols":[
        {
          "symbol": "BTC_USDT",
          "max_leverage": "10",
          "symbol_enabled": true,
          "base": {
            "currency": "BTC",
            "daily_interest": "0.05",
            "hourly_interest": "0.00208334",
            "max_borrow_amount": "1000.00000000",
            "min_borrow_amount": "1.00000000",
            "borrowable_amount": "955.90221219"
          },
          "quote": {
            "currency": "USDT",
            "daily_interest": "0.05",
            "hourly_interest": "0.00208334",
            "max_borrow_amount": "12000.00000000",
            "min_borrow_amount": "0.01000000",
            "borrowable_amount": "12000.00000000"
          }
        },
        ...
      ]
    }
}
字段 类型 描述
symbol string 交易对
max_leverage string 杠杆倍数
symbol_enabled Boolean 是否已开通该交易对
currency string 币种
daily_interest string 日利率
hourly_interest string 时利率
max_borrow_amount string 最大借出数量(精度:8位小数)
min_borrow_amount string 最小借出数量(精度:8位小数)
borrowable_amount string 当前可借数量(精度:8位小数)

WebSocket订阅

概述

访问地址

公共频道 wss://ws-manager-compress.bitmart.com/api?protocol=1.1

私人频道 wss://ws-manager-compress.bitmart.com/user?protocol=1.1

指令格式

请求格式

{"op":"<operation>", "args":["<topic1>","<topic2>"]}

名词说明

operation: 请求动作, 取值

订阅=subscribe取消订阅=unsubscribe登录=login

args: 请求参数,取值: 频道数组或者登录需要的参数

topic: 频道主题,由<channel>:<filter>组成

channel 是以 business/name组成

filter 是可筛选数据,具体参考每个频道说明

示例:spot/ticker:BTC_USDT, 表示BTC/USDT 现货交易对ticker数据

errorCode: 当发送订阅或者登陆事件产生错误时,会返回用户提示的错误码

errorMessage: 当发送订阅或者登陆事件产生错误时,会返回用户提示的错误信息

成功响应格式

成功响应格式

 op=login 时:
{"event":"<operation>"}

 op=unsubscribe 时:
{"event":"<operation>","topic":"<topic>"}

 op=subscribe 时:
{"table":"<topic1>","data":"[{"<value1>","<value2>"}]"}
{"table":"<topic2>","data":"[{"<value1>","<value2>"}]"}

返回不包含error_code字段则表示成功

失败响应格式

失败响应格式

{"event":"<operation>","errorMessage":"<error_message>","errorCode":"<error_code>"}

返回包含error_code字段则表示失败,失败原因,请参考:WebSocket 错误码

连接保持与限制

保持连接

使用Ping/Pong机制保持连接。一旦连接打开,每过N秒发送一个Ping帧,远程端点会返回一个Pong帧保持响应。这是一种保持活力的方法。它有助于保持连接的打开状态,特别是在非活动连接上存在有短超时代理的情况下。

连接上ws后如果一直没有数据返回,20s 后自动断开链接, 为了保持连接有效且稳定,建议您进行以下操作:

1.每次接收到消息后,用户设置一个定时器 ,定时N秒 (N<20)。

2.如果定时器被触发(N 秒内没有收到新消息),发送ping帧 或者发送字符串 'ping'。

3.等待一个文字字符串'pong'作为回应。如果在N秒内未收到,请发出错误或重新连接。

4.当双方有持续消息交互时,我们不会主动断开连接。

以下是发送的数据格式:

ws.send(new PingWebSocketFrame();

ws.send(new TextWebSocketFrame("ping");

连接限制

公共频道

频道 限制
连接数量.每个用户IP同时建立的连接数 10个
连接次数. 每分钟连接请求次数限制 30次
推送频率.消息推送最小间隔 0.5秒
上行消息条数.向服务器发送订阅指令条数限制 100条/10秒
单次最多批量订阅topic数量限制 20个
订阅topic数量.每个连接最大可订阅topic数量限制 100个

私人频道

频道 限制
连接数量.每个账户同时建立的连接数 10个
连接次数. 每分钟连接请求次数限制 30次
推送频率.消息推送最小间隔 0.5秒
上行消息条数.向服务器发送订阅指令条数限制 100条/10秒
单次最多批量订阅topic数量限制 20个
订阅topic数量.每个连接最大可订阅topic数量限制 100个

空连接

5分钟内没有发送任务订阅数据的链接,将被认为是空连接,服务器会关闭此连接。

数据压缩

只有当订阅后,返回市场数据时,远程服务会将数据压缩返回给客户端。远程服务返回数据有两个格式,Binary 格式 和 Text 格式,当返回了 Binary 格式 表示数据被远程服务压缩过,客户端此时需要解压。

压缩说明

zlib是提供资料压缩之用的库,由Jean-loup Gailly与Mark Adler所开发,初版0.9版在1995年5月1日发表。zlib使用抽象化的DEFLATE算法,最初是为libpng库所写的,后来普遍为许多软件所使用。此库为自由软件。官方链接 http://zlib.net/

解压示例

python

import zlib

message = b'abcd1234'
compressed = zlib.compress(message)
decompressed = zlib.decompress(compressed).decode('UTF-8')
print(decompressed) # abcd1234

java

import java.util.zip.*;
try {
     // Encode a String into bytes
     String inputString = "blahblahblah";
     byte[] input = inputString.getBytes("UTF-8");

     // Compress the bytes
     byte[] output = new byte[100];
     Deflater compresser = new Deflater(true);
     compresser.setInput(input);
     compresser.finish();
     int compressedDataLength = compresser.deflate(output);
     compresser.end();

     // Decompress the bytes
     Inflater decompresser = new Inflater(true);
     decompresser.setInput(output, 0, compressedDataLength);
     byte[] result = new byte[100];
     int resultLength = decompresser.inflate(result);
     decompresser.end();

     // Decode the bytes into a String
     String outputString = new String(result, 0, resultLength, "UTF-8");
 } catch(java.io.UnsupportedEncodingException ex) {
     // handle
 } catch (java.util.zip.DataFormatException ex) {
     // handle
 }

订阅

用户可以选择订阅一个或者多个频道,多个频道总长度不能超过4096个字节

订阅

{"op": "subscribe", "args": ["<topic>"]}

参数说明

示例

请求

{"op": "subscribe", "args": ["spot/ticker:BTC_USDT"]}

返回

{"table":"spot/ticker:BTC_USDT","data":[]}

取消订阅

可以取消一个或者多个频道

取消订阅

{"op": "unsubscribe", "args": ["<topic>"]}

参数说明

示例

请求

{"op": "unsubscribe", "args": ["spot/ticker:BTC_USDT", "spot/ticker:ETH_USDT"]}

返回

{"event":"unsubscribe","topic":"spot/ticker:BTC_USDT"}
{"event":"unsubscribe","topic":"spot/ticker:ETH_USDT"}

【公共】Ticker频道

获取现货交易对的最新成交价、买一价、卖一价和24交易量

推送规则

  1. 无需用户登录
  2. 订阅后会直接返回当前的数据,之后有变化才推送

示例

请求

{"op": "subscribe", "args": ["spot/ticker:BTC_USDT"]}

其中spot/ticker为频道名,BTC_USDT为交易对

返回

{
    "table":"spot/ticker",
    "data":[
        {
            "symbol":"BTC_USDT",
            "last_price":"146.24",
            "open_24h":"147.17",
            "high_24h":"147.48",
            "low_24h":"143.88",
            "base_volume_24h":"117387.58",
            "s_t": 1610936002
        }
    ]
}

注意:此数据是解压后的展示, 详情查看数据压缩

返回参数说明:

字段 类型 描述
symbol string 交易对名称, BTC_USDT
last_price string 最新成交价
high_24h string 24小时最高价
low_24h string 24小时最低价
open_24h string 24小时开盘价
base_volume_24h string 24小时成交量,按交易货币统计
s_t long 时间戳, 精确到秒

【公共】K线频道

获取现货的K线数据

推送规则

  1. 无需用户登录
  2. 订阅后会直接返回当前的数据,之后有变化才推送

示例

请求

{"op": "subscribe", "args": ["spot/kline1m:BTC_USDT"]}

其中spot/kline1m为频道名,BTC_USDT为交易对

频道列表

频道名 频道描述
spot/kline1m 1分钟K线数据频道
spot/kline3m 3分钟K线数据频道
spot/kline5m 5分钟K线数据频道
spot/kline15m 15分钟K线数据频道
spot/kline30m 30分钟K线数据频道
spot/kline1H 1小时K线数据频道
spot/kline2H 2小时K线数据频道
spot/kline4H 4小时K线数据频道
spot/kline1D 1天K线数据频道
spot/kline1W 1周K线数据频道
spot/kline1M 1月K线数据频道

返回

{
    "table":"spot/kline1m",
    "data":[
        {
            "candle":[
                1534141852,
                "162.03",
                "162.04",
                "161.96",
                "161.98",
                "336.452694"
            ],
            "symbol":"ETH_USDT"
        }
    ]
}

注意:此数据是解压后的展示, 详情参看数据压缩

返回参数说明:

字段 类型 描述
symbol string 交易对名称, BTC_USDT
candle List k线数据

【公共】深度频道

返回深度数据

推送规则

  1. 无需用户登录
  2. 订阅后会直接返回当前的数据,之后有变化才推送

示例

请求

{"op": "subscribe", "args": ["spot/depth5:BTC_USDT"]}

其中spot/depth5为频道名,BTC_USDT为交易对

频道列表

频道名 频道描述
spot/depth5 5档深度频道 (返回前五档的深度数据)
spot/depth20 20档深度频道 (返回前二十档的深度数据)
spot/depth50 50档深度频道 (返回前五十档的深度数据)

返回

{
    "table":"spot/depth5",
    "data":[
        {
            "asks":[
                [
                    "161.96",
                    "7.37567"
                ]
            ],
            "bids":[
                [
                    "161.94",
                    "4.552355"
                ]
            ],
            "symbol":"ETH_USDT",
            "ms_t": 1542337219120
        }
    ]
}

注意:此数据是解压后的展示, 详情参看数据压缩

返回参数说明:

字段 类型 描述
symbol string 交易对名称, BTC_USDT
asks List 卖方深度
bids List 买方深度
ms_t long 时间戳 (精确到毫秒)

【公共】交易频道

获取最近的成交数据

推送规则

  1. 无需用户登录
  2. 订阅后会直接返回当前的数据,之后有变化才推送

示例

请求

{"op": "subscribe", "args": ["spot/trade:BTC_USDT"]}

其中spot/trade为频道名,BTC_USDT为交易对

返回

{
    "table": "spot/trade",
    "data": [{
        "symbol": "ETH_USDT",
        "price": "162.12",
        "side": "buy",
        "size": "11.085",
        "s_t": 1542337219
    }]
}

注意:此数据是解压后的展示, 详情参看数据压缩

返回参数说明:

字段 类型 描述
symbol string 交易对名称, BTC_USDT
side string 成交方向(buysell
price string 成交价格
size string 成交数量
s_t long 成交时间(精确到秒)

【私人】登录

登录订阅格式

请求

{"op":"login","args":["<API_KEY>", "<timestamp>", "<sign>"]}

API_KEY: 为用户申请的APIKey

timestamp: 为时间戳, 单位是毫秒, 超过 60 秒后会过期

sign: 为签名, sign=CryptoJS.HmacSHA256(timestamp + "#" + api_memo + "#" + "bitmart.WebSocket", secret)

示例

sign

sign=
   echo -n '1589267764859#test001#bitmart.WebSocket' | openssl dgst -sha256 -hmac "6c6c98544461bbe71db2bca4c6d7fd0021e0ba9efc215f9c6ad41852df9d9df9"
 (stdin)= 3ceeb7e1b8cb165a975e28a2e2dfaca4d30b358873c0351c1a071d8c83314556

示例

{"op": "login", "args": ["80618e45710812162b04892c7ee5ead4a3cc3e56", "1589267764859", "3ceeb7e1b8cb165a975e28a2e2dfaca4d30b358873c0351c1a071d8c83314556"]}

返回

{"event":"login"}

假设用户申请的API的值如下所示:

当前时间:timestamp=1589267764859

申请的API_KEY = "80618e45710812162b04892c7ee5ead4a3cc3e56"

申请的API_SECRET = "6c6c98544461bbe71db2bca4c6d7fd0021e0ba9efc215f9c6ad41852df9d9df9"

申请的API_MEMO = "test001";

返回不包含error_code字段则表示成功

【私人】订单成交进度

获取用户交易数据

推送规则

  1. 需用户登录
  2. 符合条件的订单会被推送(下单成功,撤单成功,完全成交,部分成交)

示例

请求

{"op": "subscribe", "args": ["spot/user/order:BTC_USDT"]}

其中spot/user/order为频道名,BTC_USDT为交易对

返回

{
    "data":[
        {
            "symbol":"BTC_USDT",
            "side":"buy",
            "type":"market",
            "notional":"",
            "size":"1.0000000000",
            "ms_t":"1609926028000",
            "price":"46100.0000000000",
            "filled_notional":"46100.0000000000",
            "filled_size":"1.0000000000",
            "margin_trading":"0",
            "state":"4",
            "order_id":"2147857398",
            "order_type":"0",
            "last_fill_time":"1609926039226",
            "last_fill_price":"46100.00000",
            "last_fill_count":"1.00000",
            "exec_type":"M",
            "detail_id":"256348632",
            "client_order_id":"order4872191"
        }
    ],
    "table":"spot/user/order"
}

注意:此数据是解压后的展示, 详情参看数据压缩

返回参数说明:

字段 类型 描述
symbol string 交易对名称, BTC_USDT
order_id string 订单ID
price string 委托价格, 单位:定价币
size string 委托数量, 单位:基础币
notional string 买入金额,市价买入时返回;否则返回空字符串
side string buysell
type string limitmarket
ms_t string 订单状态更新时间(精确到毫秒)
filled_size string 已成交数量, 单位:基础币
filled_notional string 已成交金额, 单位:定价币
margin_trading string 0=币币交易订单
order_type string 订单委托方式 0-普通委托 1-只做Maker(Post only) 2-全部成交或者立即取消(FOK) 3-立即成交并取消剩余(IOC)
state string 推送订单状态
4=下单成功,等待成交
5=部分成交
6=完全成交
8=撤销成功
last_fill_price string 此订单最新成交价格(如果没有,推0)
last_fill_count string 此订单最新成交数量(如果没有,推0)
last_fill_time string 此订单最新成交时间(如果没有,推0) 毫秒
exec_type string 该账单是maker还是taker产生的。M表示Maker,T表示Taker
detail_id string 成交 id
client_order_id string 用户自定义ID

错误代码

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数据) 60000 400
资产账户类型account_type错误 60001 400
币种currency不存在 60002 400
该币种的充值通道已经关闭,详情请咨询客服 60003 400
该币种的提现通道已经关闭,详情请咨询客服 60004 400
小于允许提现的最小金额 60005 400
提现最大精确到小数点%d位 60006 400
此提现地址不在您的地址列表中 60007 400
提现余额不足 60008 400
今日可提现额度不足 60009 400
充提id不存在 60010 400
提现地址格式不正确 60011 400
该币种不支持次操作(如禁止IOTA,HLX的充值和提现调用) 60012 400
找不到子账号 61003 400
重复的请求(如使用已存在的requestNo) 61004 400
此账户已被禁止充值 60020 403
此账户已被禁止提现 60021 403
修改了安全项,此账户24小时内禁止提现 60022 403
子账号没有操作权限 60026 403
仅支持子账户调用 60027 403
账户因安全原因被禁用,请联系客服 60028 403
账户被母账户冻结,请联系母账户解冻 60029 403
账户间资产划转不可用 61005 403
子母账户API仅支持机构用户 61006 403
无效的method请求 60030 405
不支持的content-type请求 60031 415
账户不存在 60050 500
内部服务错误,详情查看message 60051 500

现货&杠杆 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
交易对参数Symbol错误,找不到交易对 50001 400
参数From 或者 参数To 格式错误 50002 400
参数Step 格式错误 50003 400
K线数据最大返回500条 50004 400
订单id找不到对应数据 50005 400
数量size 不能小于 %s 50006 400
数量size 不能大于 %s 50007 400
价格 price 不能小于 %s 50008 400
count*price 不能小于 %s 50009 400
参数 size 不能为空 50010 400
参数 price 不能为空 50011 400
参数 notional 不能为空 50012 400
limit*offset 不能大于 %s 50013 400
参数 limit 不能为空 50014 400
参数 limit 不能小于1 50015 400
参数 limit 不能大于 %d 50016 400
参数 offset 不能为空 50017 400
参数 offset 不能小于1 50018 400
错误的状态 status. 有效的状态有 [1=下单失败, 2=下单成功, 3=冻结失败, 4=冻结成功, 5=部分成交, 6=完全成交, 7=撤销中, 8=撤销成功 50019 400
余额不足 50020 400
请求参数格式错误 50021 400
服务不可用 50022 400
该交易对不能使用API进行下单 50023 400
订单深度最多返回200条 50024 400
价格 price 不能大于 %s 50025 400
买单价格不能高于开盘价 50026 400
卖单价格不能低于开盘价 50027 400
缺少必要参数 50028 400
参数不匹配 50029 400
订单已经取消 50030 400
订单已经完成 50031 400
订单不存在 50032 400
订单数量应该大于0小于等于10 50033 400
订单价格过高,没有匹配的深度 50034 400
订单价格过低,没有匹配的深度 50035 400
ioc类型的订单不允许撤单 50036 400
用户自定义订单ID位数不能超过32 50037 400
用户自定义订单ID只允许数字和字母的组合 50038 400
Order_id 和 clientOrderId 不能同时为空 50039 400
该交易币对暂不可用 50040 400
币种参数currency错误,找不到对应币种 51000 400
杠杆未开户 51001 400
杠杆账户不可用,请联系客服 51002 400
账户受限制,请联系客服 51003 400
输入的值超过最大可借数量 51004 400
输入的值小于最小可借数量 51005 400
输入的数量超过应还数量 51006 400
orderMode下单类型不存在 51007 400
操作受限,请稍后再试 51008 400
您的账户已被冻结,请联系客服 53000 403
您的kyc认证国家被限制,请联系客服 53001 403
您的账户还未完成kyc高级认证,请先在网站上完成认证 53002 403
账户权限被主账户关闭 53003 403
您所在的国家或地区不支持此交易对的交易 53004 403
不支持此 Http Method 57001 405
不支持此 Media Type 58001 415
账号不存在 59001 500
服务内部错误 59002 500
现货钱包服务错误 59003 500
杠杆钱包服务超时 59004 500
杠杆钱包服务被拒绝 59005 500
划转失败 59006 500
交易对风险率数据获取失败 59007 500

WebSocket错误码

错误码格式

{"event":"<operation>", "errorMessage":"", "errorCode":""}

错误码

errorMessage 错误信息 errorCode 错误码
无效的文本内容 90001
无效的 op 参数 90002
无效的 args 参数 90003
无效的 channel 参数 90004
API KEY 是空的 91001
API KEY 找不到,请确认输入的是正确 91002
API KEY 已经被冻结 91003
API KEY 过期,请重新申请 91004
已经登录过了 91005
您还未登录,请先登录 91006
签名 sign 是空的 91010
签名 sign 错误的 91011
参数 timestamp 是空的 91021
参数 timestamp 限制1分钟内 91022
参数 timestamp 错误的格式 91023
无效的 symbol 参数 92001
请求频繁 94001
系统内部错误 95000

问题答疑

以下是收集到的经常遇到的问题以及解答。如果找不到您对应的问题,请加入我们的Telegram群. Telegram API Group

APIKey问题

1.如何申请APIKEY?

申请API网址 https://www.bitmart.com/api

在网页上申请成功后,请自己保留 access key, secret key 和 memo。

2.APIKEY的secret key忘记了可以找回吗?

无法找回,只能在页面重新申请APIKEY。

3.APIKEY授权第三方有风险吗?

apikey授权第三方有一定的风险,为了账户资产安全建议自己保存。

4.没有绑定手机或者谷歌,能申请APIKEY吗?

不可以,申请APIKEY必须绑定2项安全项以上。

5.创建APIKEY的时候,必须绑定IP地址才可以创建吗?

不是必须,申请APIKEY时绑定IP这个选项是非必填的,但为了增加用户账户安全性,建议绑定ip地址。

6.同一个账户里的不同的APIKEY,返回的账户信息数据,会不同吗?

同一个账户下不同APIKEY数据是相同的。

7.一个账户可以申请多少个Api Key?

每个账户可创建5组Api Key,每个Api Key可对应设置只读,交易,提现 3种权限。

3种权限的说明:

1)只读权限:读取用户自己的交易信息,订单信息,账户资金信息等。

2)交易权限:用户可以在现货和合约里下单,撤单。

3)提现权限:用户可以将钱包余额提现到交易所外的数字货币地址。

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.访问接口报错超频,怎么解决?

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

接口问题

1.K线是按照什么时间开始计算的?

K线接口的开始时间,是该根K线的开始时间,因为用的是 UTC 时间,所以会与北京时间相差8小时。

现货问题

1.为什么取消现货订单会返回失败?

因为请求取消的时候,这笔订单有可能已经撮合成功了。

2.最高价、最低价和成交量怎么计算的?

最高价、最低价和成交量都是按最近24小时为维度统计的。

24小时开盘价取值来自24小时前那一分钟的K线的开盘价。即 2019年7月23日11:23:45,此时的涨跌幅依靠的是开盘价是2019年7月22日11:23:00时的价格。

合约问题

1.请求返回的字段errno是什么意思?

这个是遗留字段,请大家忽略,以返回字段code为准。

问题反馈

如果您有任何api相关问题,意见或者建议,加入我们Telegram API Group:(请标明是合约接口还是现货接口), 我们会及时处理您的问题。