介绍
入门指引
欢迎使用开发者文档。
接口调用方式说明
开发者可根据自己的使用场景和偏好选择适合自己的方式来查询行情、进行交易或提现。
联系我们
加入我们的 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
- 即将上线:
- WebSocket - 账户余额变动频道
更新日志
2022-07-07
- 新增杠杆借贷还款相关接口
/spot/v1/margin/isolated/borrow
/spot/v1/margin/isolated/repay
/spot/v1/margin/isolated/borrow_record
/spot/v1/margin/isolated/repay_record
/spot/v1/margin/isolated/pairs
- 新增杠杆交易下单接口
/spot/v1/margin/submit_order
- 新增杠杆账户相关接口
/spot/v1/margin/isolated/account
/spot/v1/margin/isolated/transfer
- 更新现货 / 杠杆交易接口
- 以下接口新增了“order_mode”字段用于区分订单来源是现货订单还是杠杆交易订单
/spot/v1/order_detail
/spot/v2/orders
/spot/v1/trades
2022-05-24
- 更新现货接口
/spot/v2/orders
新增返回字段clientOrderId/spot/v1/trades
新增返回字段clientOrderId/spot/v1/order_detail
新增返回字段clientOrderId
2022-04-19
- 新增子账户接口
/sub-account/main/v1/sub-to-main
/sub-account/sub/v1/sub-to-main
/sub-account/main/v1/main-to-sub
/sub-account/sub/v1/sub-to-sub
/sub-account/main/v1/sub-to-sub
/sub-account/main/v1/transfer-list
/sub-account/v1/transfer-history
/sub-account/main/v1/wallet
/sub-account/main/v1/subaccount-list
- 更新WebSocket成交进度频道
- 新增返回字段client_order_id
- 新增返回字段detail_id
2022-03-29
- WebSocket订阅,【私人】订单频道更名为【私人】订单成交进度
- 【私人】订单成交进度频道新增返回参数exec_type,表示流动性类型
2022-03-08
- Websocket连接保持机制完善
- 目录层级修缮,增强可读性
2022-03-01
- 支持用户通过自定义OrderId下单、查单、撤单
2022-02-15
- 根据用户反馈提高了限流频率上限制
- 文档UI优化调整
2022-01-20
- 更新现货接口
/spot/v1/symbols/details
增加返回字段trade_status,用来区分交易对状态
2022-01-18
- websocket公共频道访问地址
wss://ws-manager-compress.bitmart.com?protocol=1.1
将于UTC时间 2022-02-28 日下架,新地址为wss://ws-manager-compress.bitmart.com/api?protocol=1.1
2021-11-24
- 新增现货接口
/spot/v2/orders
获取用户最近订单记录V2/spot/v1/batch_orders
批量下单
- 更新现货接口
/spot/v1/symbols/kline
新增返回字段 quote_volume 成交额/spot/v1/symbols/trades
新增可选参数 N 返回条数,默认最大50条/spot/v1/order_detail
返回字段增加未成交数量/spot/v1/submit_order
请求参数type新增limit_maker和ioc订单类型
- 新增资金账户接口
/account/v2/deposit-withdraw/history
查询冲提记录v2
- 更新资金账户接口
/account/v1/wallet
去掉账户类型,只响应币币账户;可以带币种参数(可选)
2021-11-06
- 更新现货WebSocket接口
- 深度频道:
- spot/depth50 50档深度频道 (返回前五十档的深度数据)
- spot/depth100 100档深度频道 (返回前一百档的深度数据)
- 用户-交易频道:
- 符合条件的推送新增下单成功
2021-01-19
- 新增现货WebSocket接口
- 公共-Ticket频道
- 公共-K线频道
- 公共-交易频道
- 公共-深度频道
- 登录
- 用户-交易频道
2020-07-15
- 新增现货接口
/spot/v2/cancel_order
现货取消订单接口,第2版
2020-06-29
- 新增资金账户接口
/account/v1/currencies
获取资产币种/account/v1/wallet
查询账户资产/account/v1/deposit/address
查询充币地址/account/v1/withdraw/charge
查询提币额度/account/v1/withdraw/apply
提币/account/v1/recharge-withdraw/history
查询充提历史记录/account/v1/recharge-withdraw/detail
查询单条充提记录
2020-05-14
- 新增现货接口
/spot/v1/currencies
获取平台所有的加密货币列表/spot/v1/symbols
获取平台所有的交易对列表/spot/v1/symbols/details
获取平台所有交易对的详情列表/spot/v1/ticker
Ticker 是交易对市场状态的概览,包含最新成交价、买一价、卖一价和 24 小时交易量的快照信息/spot/v1/steps
获取平台支持的全部 k 线周期,用分钟表示,最小 1 分钟/spot/v1/symbols/kline
获取指定交易对的指定时间范围内的 k 线数据/spot/v1/symbols/book
获取交易对完整的深度/spot/v1/symbols/trades
获取指定交易对的最近成交记录/spot/v1/wallet
获取用户所有币种钱包余额/spot/v1/submit_order
委托下单/spot/v1/cancel_order
取消一个未完成的订单/spot/v1/cancel_orders
取消指定交易对指定方向的所有未完成的订单/spot/v1/order_detail
获取订单详情/spot/v1/orders
查询用户最近订单/spot/v1/trades
用户成交历史
基本信息
API基本信息
- 接口可能需要用户的 API Key,如何创建API-KEY请参考这里 API KEY 接口认证
- 本篇列出接口的rest baseurl: https://api-cloud.bitmart.com
- 所有接口的响应都是 JSON 格式。
HTTP 返回代码
- HTTP 4XX 错误码用于指示错误的请求内容、行为、格式。问题在于请求者。
- HTTP 403 错误码表示违反限制(被禁止调用)。
- HTTP 429 错误码表示警告访问频次超限,即将被封IP。
- HTTP 418 表示收到429后继续访问,于是被封了。
- HTTP 5XX 错误码用于指示BitMart服务出现的问题。
API 返回代码
使用接口时, HTTP 200 表示客户端通过网关已经向业务核心提交了请求并且已经返回了信息,但是不代表业务请求成功,很可能已经得到了执行,也有可能执行失败,需要做进一步确认,这时候请注意返回内容里code字段。
详细参见参见 错误码列表
认证及加签
为了方便接入,我们提供了一些语言的SDK供参考
* bitmart-go-sdk-api
* bitmart-python-sdk-api
* bitmart-java-sdk-api
* bitmart-php-sdk-api
本章节主要为验证的细节分以下四个方面:
- 生成API Key
- 发起请求
- 签名
- 时间戳
1.生成API Key
在对任何请求进行签名之前,您必须通过BitMart网站创建一个API Key。创建API Key后,您将获得3个必须记住的信息:
- Access Key
- Secret Key
- Memo
Access Key和Secret Key将由BitMart随机生成和提供,Memo将由您提供以确保API访问的安全性。BitMart将存储Secret Key加密后的哈希值进行验证,但如果您忘记Secret Key,则无法恢复,请您通过BitMart网站重新生成新的API Key。
示例
登录 Bitmart网站, 进入账户页面
点击 API 设置 按钮,进入创建API 页面
2.发起请求
请求包含两个部分,一个是header,一个是queryString
接口头部参数
所有REST请求头都必须包含以下内容:
X-BM-KEY字符串类型的Access Key。
X-BM-SIGN使用Sha-256签名(请参阅签名)。
X-BM-TIMESTAMP发起请求的时间戳。(UTC0时区时间戳精确到毫秒)
接口内容参数
GET/DELETE
curl {{host}}/v1/goto?symbol=BMXBTC&side=BUY
# queryString: symbol=BMXBTC&side=BUY
- GET 和 DELETE 方法的接口, 内容形式可以是application/json, 也可以是application/x-www-form-urlencoded, 参数必须在 query string中发送。(对参数的顺序不做要求。)
POST/PUT
curl -X POST {{host}}/v1/goto -H "Content-type: application/json" -d '{"symbol":"BMX","side":"BUY"}'
# queryString: {"symbol":"BMX","side":"BUY"}
- POST, PUT 方法的接口, 参数可以在内容形式为application/json 的 query string 中发送。 (对参数的顺序不做要求。)
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]条 |
解释说明
precision 是可选的。 如果未传, 默认使用 symbols details 返回的
price_max_precision
。当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 |
解释说明
响应详情
响应
{
"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); 部分币种提币需要则返回数据,若不需要则返回空字符串; |
提币额度查询
查询提币额度
(鉴权类型: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 | buy 或 sell |
响应详情
响应
{
"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.当双方有持续消息交互时,我们不会主动断开连接。
以下是发送的数据格式:
- 标准的Ping帧
ws.send(new PingWebSocketFrame();
- 文本的 Ping Text
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 数组内容为订阅的主题名称topic
- topic 由
<channel>:<filter>
组成- 其中channel 是以 business/name组成
- filter 是可筛选数据,具体参考每个频道说明
示例
请求
{"op": "subscribe", "args": ["spot/ticker:BTC_USDT"]}
返回
{"table":"spot/ticker:BTC_USDT","data":[]}
取消订阅
可以取消一个或者多个频道
取消订阅
{"op": "unsubscribe", "args": ["<topic>"]}
参数说明
- op 的取值是 unsubscribe
- args 数组内容为订阅的主题名称topic
- topic 由
<channel>:<filter>
组成- 其中channel 是以 business/name组成
- filter 是可筛选数据,具体参考每个频道说明
示例
请求
{"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交易量
推送规则
- 无需用户登录
- 订阅后会直接返回当前的数据,之后有变化才推送
示例
请求
{"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线数据
推送规则
- 无需用户登录
- 订阅后会直接返回当前的数据,之后有变化才推送
示例
请求
{"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线数据 |
【公共】深度频道
返回深度数据
推送规则
- 无需用户登录
- 订阅后会直接返回当前的数据,之后有变化才推送
示例
请求
{"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 | 时间戳 (精确到毫秒) |
【公共】交易频道
获取最近的成交数据
推送规则
- 无需用户登录
- 订阅后会直接返回当前的数据,之后有变化才推送
示例
请求
{"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 | 成交方向(buy 或 sell ) |
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字段则表示成功
【私人】订单成交进度
获取用户交易数据
推送规则
- 需用户登录
- 符合条件的订单会被推送(下单成功,撤单成功,完全成交,部分成交)
示例
请求
{"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 | buy 或 sell |
type | string | limit 或 market |
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' 提交解除限制。
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:(请标明是合约接口还是现货接口), 我们会及时处理您的问题。