/spot/v2/submit_order
New Order(v2) (SIGNED)/spot/v4/batch_orders
New Batch Order(v4) (SIGNED)/spot/v4/query/order
Query Order By Id (v4) (SIGNED)/spot/v4/query/client-order
Query Order By clientOrderId(v4) (SIGNED)/spot/v4/query/open-orders
Current Open Orders(v4) (SIGNED)/spot/v4/query/history-orders
Account Orders(v4) (SIGNED)/spot/v4/query/trades
Account Trade List(v4) (SIGNED)/spot/v4/query/order-trades
Order Trade List(v4) (SIGNED)[Private] Order Progress
channel/account/v1/wallet
Get Account Balance (KEYED)/spot/v4/query/order
Query Order By Id (v4) (SIGNED)/spot/v4/query/client-order
Query Order By clientOrderId(v4) (SIGNED)/spot/v4/query/history-orders
Account Orders(v4) (SIGNED)/account/v2/deposit-withdraw/history
Get Deposit And Withdraw History (KEYED)/account/v1/wallet
Get Account Balance (KEYED)/account/v1/currencies
Get Currencies/account/v1/withdraw/address/list
Query Withdraw Address List (KEYED)Remove Endpoint | Remove Endpoint Describe | Replace Endpoint |
---|---|---|
/spot/v1/submit_order | New Order(v1) | /spot/v2/submit_order |
/spot/v1/batch_orders /spot/v2/batch_orders | New Batch Order(v1) New Batch Order(v2) | /spot/v4/batch_orders |
/spot/v1/cancel_order /spot/v2/cancel_order | Cancel Order(v1) Cancel Order(v2) | /spot/v3/cancel_order |
/spot/v1/cancel_orders | Cancel Batch Order(v1) | /spot/v4/cancel_orders /spot/v4/cancel_all |
/spot/v2/order_detail | Query Order(v2) | /spot/v4/query/order |
/spot/v3/orders | Account Orders(v3) | /spot/v4/query/open-orders |
/spot/v2/trades | Account Trade List(v2) | /spot/v4/query/trades |
/spot/v1/ticker /spot/v2/ticker | Get Ticker of All Pairs (V1) Get Ticker of All Pairs (V2) | /spot/quotation/v3/tickers |
/spot/v1/ticker_detail | Get Ticker of a Trading Pair (V1) | /spot/quotation/v3/ticker |
/spot/v1/steps | Get K-Line Step (V1) | Fixed enumeration value, no need for endpoint query |
/spot/v1/symbols/kline | Get K-Line (V1) | /spot/quotation/v3/lite-klines /spot/quotation/v3/klines |
/spot/v1/symbols/book | Get Depth (V1) | /spot/quotation/v3/books |
/spot/v1/symbols/trades | Get Recent Trades (V1) | /spot/quotation/v3/trades |
/spot/v1/margin/submit_order
New Margin Order(v1) (SIGNED)/spot/v4/cancel_orders
Cancel Batch Order(v4) (SIGNED)/spot/v1/user_fee
Get Basic Fee Rate (KEYED)/spot/v4/cancel_all
Cancel All Order(v4) (SIGNED)Public Market Data (History Version)
document directory removedSpot / Margin Trading (History Version)
document directory remove[Private] Balance Change
channel[Private] Order Progress
channelThe specific restriction rules are as follows:
[Private] Order Progress
channel/spot/v4/batch_orders
New Batch Order(v4) (SIGNED)/spot/v4/cancel_orders
Cancel Batch Order(v4) (SIGNED)[Private] Balance Change
channel/account/v1/withdraw/charge
Withdraw Quota (KEYED)/spot/v4/query/order
Query Order By Id (v4) (SIGNED)/account/sub-account/sub/v1/sub-to-sub
Sub-Account to Sub-Account (For Sub-Account) (SIGNED)[Public] Ticker
channel[Public] KLine
channel[Public] Depth-All
channel[Public] Depth-Increase
channel[Public] Trade
channel[Private] Order Progress
channel[Private] Balance Change
channel/account/v1/withdraw/apply
Withdraw (SIGNED)spot/depth/increase100:<symbol>
【Private】Depth-Increase channelspot/user/balance:BALANCE_UPDATE
【Private】Balance Change/spot/quotation/v3/tickers
Get Ticker of All Pairs (V3)/spot/quotation/v3/ticker
Get Ticker of a Trading Pair(V3)/spot/quotation/v3/lite-klines
Get Latest K-Line (V3)/spot/quotation/v3/klines
Get History K-Line (V3)/spot/quotation/v3/books
Get Depth(V3)/spot/quotation/v3/trades
Get Recent Trades(V3)/spot/v4/query/order
Query order by id (v4)/spot/v4/query/client-order
Query order by client order id (v4)/spot/v4/query/open-orders
Current open orders (v4)/spot/v4/query/history-orders
Account orders (v4)/spot/v4/query/trades
Account trade list (v4)/spot/v4/query/order-trades
Order trade list(v4)/spot/v1/user_fee
Get user fee rate/spot/v3/orders
/spot/v2/trades
add start_time and end_time field for flexible querying/account/v1/currencies
Add new field contract_address,withdraw_minsize and withdraw_minfee/spot/v2/ticker
/spot/v1/ticker_detail
/spot/v2/submit_order
/spot/v2/batch_orders
/spot/v3/cancel_order
/spot/v2/order_detail
/spot/v3/orders
/spot/v2/trades
/spot/v1/trade_fee
/spot/v1/user_fee
/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
/spot/v1/order_detail
/spot/v2/orders
/spot/v1/trades
/spot/v2/orders
Add new field clientOrderId/spot/v1/trades
Add new field clientOrderId/spot/v1/order_detail
Add new field clientOrderId/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
/spot/v1/symbols/details
Add a new respond parameter trade_status, to show the trading status of a trading pair symbol.wss://ws-manager-compress.bitmart.com?protocol=1.1
will be taken down on 2022-02-28 UTC time,The new address iswss://ws-manager-compress.bitmart.com/api?protocol=1.1
/spot/v2/orders
Get User Order History V2/spot/v1/batch_orders
Batch Order/spot/v1/symbols/kline
Add new field 'quote_volume'/spot/v1/symbols/trades
Add optional parameter N to return the number of items, the default is up to 50 items/spot/v1/order_detail
Add new field 'unfilled_volume'/spot/v1/submit_order
The request parameter type added limit_maker and ioc order types/account/v2/deposit-withdraw/history
Get Deposit And Withdraw History V2/account/v1/wallet
Remove the account_type,Only respond to currency accounts; you can bring currency parameters (optional)/spot/v2/cancel_order
Cancel an outstanding order,V2/account/v1/currencies
Get Currency/account/v1/wallet
Get Account Balance/account/v1/deposit/address
Deposit Address/account/v1/withdraw/charge
Withdraw Quota/account/v1/withdraw/apply
Withdraw/account/v1/recharge-withdraw/history
Get Deposit And Withdraw History/account/v1/recharge-withdraw/detail
Get A Deposit Or Withdraw Detail/spot/v1/currencies
Get a list of all cryptocurrencies on the platform/spot/v1/symbols
Get a list of all trading pairs on the platform/spot/v1/symbols/details
Get a detailed list of all trading pairs on the platform/spot/v1/ticker
Get ticker/spot/v1/steps
Get K-Line steps/spot/v1/symbols/kline
Get k-Line/spot/v1/symbols/book
Get orderbook/spot/v1/symbols/trades
Get trades/spot/v1/wallet
Get user wallet/spot/v1/submit_order
Place order/spot/v1/cancel_order
Cancel order/spot/v1/cancel_orders
Cancel all outstanding orders in the specified direction for the specified trading pair/spot/v1/order_detail
Get order details/spot/v1/orders
Get user recent orders/spot/v1/trades
Get user trade historyAccess Key
: represents the identity of the account, this is your api keySecret Key
: used for API signatureMemo
: used for API signatureThe Access Key and Secret Key will be randomly generated and provided by BitMart, and the Memo will be provided by you to ensure the security of API access.
Read-Only
.Withdraw
.Read-only
(query spot trading orders, query contract trading orders, query funds)Spot-Trade
(place orders, cancel orders)Withdraw
(withdraw funds)Margin-Trade
(repayment, borrowing, placing orders, etc.)Future-Trade
(long position, short position, closing position, etc.)API Name | Authentication Type | Description |
---|---|---|
/account/v1/wallet | KEYED | Query account assets |
/account/v1/deposit/address | KEYED | Query deposit addresses for each currency |
/account/v1/withdraw/address/list | KEYED | Query withdraw address list |
/account/v2/deposit-withdraw/history | KEYED | Query deposit and withdrawal history |
/account/v1/deposit-withdraw/detail | KEYED | Query deposit and withdrawal details |
/spot/v1/wallet | KEYED | Query wallet balance for all currencies |
/spot/v4/query/order | SIGNED | Query order by id (v4) |
/spot/v4/query/client-order | SIGNED | Query order by client order id (v4) |
/spot/v4/query/open-orders | SIGNED | Current open orders (v4) |
/spot/v4/query/history-orders | SIGNED | Account orders (v4) |
/spot/v4/query/trades | SIGNED | Account trade list (v4) |
/spot/v4/query/order-trades | SIGNED | Order trade list(v4) |
/spot/v1/user_fee | KEYED | Query basic fee rate for current user |
/spot/v1/trade_fee | KEYED | Query fee rate for a specific trading pair for current user |
/spot/v1/margin/isolated/pairs | KEYED | Query loan interest rate and limit for a trading pair |
/spot/v1/margin/isolated/account | KEYED | Query isolated margin account information |
/spot/v1/margin/isolated/borrow_record | KEYED | Query isolated margin borrowing record |
/spot/v1/margin/isolated/repay_record | KEYED | Query isolated margin repayment record |
/contract/private/get-open-orders | KEYED | Query Contract All Open Orders |
/contract/private/order | KEYED | Query contract order details |
/contract/private/trade-fee-rate | KEYED | Query Trade Fee Rate |
/contract/private/order-history | KEYED | Query contract order history |
/contract/private/trades | KEYED | Query contract trade details |
/contract/private/transaction-history | KEYED | Get Contract Transaction History |
/contract/private/assets-detail | KEYED | Query contract asset details |
/contract/private/position | KEYED | Query position details |
/contract/private/position-v2 | KEYED | Query position details V2 |
/contract/private/current-plan-order | KEYED | Query Current Plan Orders |
/contract/private/position-risk | KEYED | Query Position Risk Details |
/contract/private/get-position-mode | KEYED | Get position mode |
API Name | Authentication Type | Description |
---|---|---|
/account/v1/withdraw/charge | KEYED | Query withdrawal limits |
/account/v1/withdraw/apply | SIGNED | Apply for withdrawal |
API Name | Authentication Type | Description |
---|---|---|
/spot/v1/submit_order | SIGNED | Place an order |
/spot/v2/submit_order | SIGNED | Place an order |
/spot/v1/batch_orders | SIGNED | Place multiple orders |
/spot/v2/batch_orders | SIGNED | Place multiple orders |
/spot/v4/batch_orders | SIGNED | Place multiple orders |
/spot/v1/cancel_order | SIGNED | Cancel an unfinished order |
/spot/v3/cancel_order | SIGNED | Cancel an unfinished order |
/spot/v1/cancel_orders | SIGNED | Cancel multiple orders |
/spot/v4/cancel_orders | SIGNED | Cancel multiple orders |
API Name | Authentication Type | Description |
---|---|---|
/spot/v1/margin/submit_order | SIGNED | Margin order placement |
/spot/v1/margin/isolated/transfer | SIGNED | Transfer funds between margin and spot accounts |
/spot/v1/margin/isolated/borrow | SIGNED | Isolated margin borrowing |
/spot/v1/margin/isolated/repay | SIGNED | Repay isolated margin debt |
API Name | Authentication Type | Description |
---|---|---|
/contract/private/submit-order | SIGNED | Place an order for a futures contract |
/contract/private/cancel-order | SIGNED | Cancel a single futures order |
/contract/private/cancel-orders | SIGNED | Batch cancel futures orders |
/contract/private/submit-plan-order | SIGNED | Place a plan order for futures contracts |
/contract/private/cancel-plan-order | SIGNED | Cancel futures plan orders |
/account/v1/transfer-contract | SIGNED | Future account transfer |
/account/v1/transfer-contract-list | SIGNED | Get Future account transfer list |
/contract/private/submit-tp-sl-order | SIGNED | Place a tp or sl order for a futures contract |
/contract/private/modify-plan-order | SIGNED | Modify a plan order for a futures contract |
/contract/private/modify-preset-plan-order | SIGNED | Modify a preset plan order for a futures contract |
/contract/private/modify-tp-sl-order | SIGNED | Modify a tp or sl order for a futures contract |
/contract/private/submit-trail-order | SIGNED | Place a trail order for futures contracts |
/contract/private/cancel-trail-order | SIGNED | Cancel futures trail order |
/contract/private/modify-limit-order | SIGNED | Modify futures limit order |
/contract/private/cancel-all-after | SIGNED | Timed cancel all open orders |
/contract/private/set-position-mode | SIGNED | Set position mode |
You need to enterInstitution Verification to use the sub-account endpoints.
After the creation is successful, the sub-account hasRead-only
permission by default.
Same as the above spot trading authority
Same as above futures trading authority
API Name | Authentication Type | Description |
---|---|---|
/account/sub-account/main/v1/sub-to-main | SIGNED | Sub-Account Transfer to Main-Account (For Main Account, use spot account) |
/account/sub-account/sub/v1/sub-to-main | SIGNED | Sub-Account Transfer to Main-Account (For Sub-Account, use spot account) |
/account/sub-account/main/v1/main-to-sub | SIGNED | Main-Account Transfer to Sub-Account (For Main Account, use spot account) |
/account/sub-account/main/v1/sub-to-sub | SIGNED | Sub-Account Transfer to Sub-Account (For Main Account, use spot account) |
/account/sub-account/main/v1/transfer-list | KEYED | Get Sub-Account Transfer History (For Main Account, use spot account) |
/account/sub-account/v1/transfer-history | KEYED | Get Account Spot Asset Transfer History (For Main/Sub Account, use spot account) |
/account/sub-account/main/v1/wallet | KEYED | Get Sub-Account Spot Wallet Balance (For Main Account, use spot account) |
/account/sub-account/main/v1/subaccount-list | KEYED | Get Sub-Account List (For Main Account, use spot account) |
/account/contract/sub-account/main/v1/sub-to-main | SIGNED | Sub-Account Transfer to Main-Account (For Main Account, use futures account) |
/account/contract/sub-account/main/v1/main-to-sub | SIGNED | Main-Account Transfer to Sub-Account (For Main Account, use futures account) |
/account/contract/sub-account/sub/v1/sub-to-main | SIGNED | Sub-Account Transfer to Main-Account (For Sub-Account, use futures account) |
/account/contract/sub-account/main/v1/wallet | KEYED | Get Sub-Account Futures Wallet Balance (For Main Account, use futures account) |
/account/contract/sub-account/v1/transfer-history | KEYED | Get Account Futures Asset Transfer History (For Main/Sub Account, use futures account) |
/account/contract/sub-account/main/v1/transfer-list | KEYED | Get Sub-Account Transfer History (For Main Account, use futures account) |
In order to facilitate access, we provide SDK in some languages for reference.For more programming codes, please refer to theQuick Start API on the page.
In addition to the SDK, we also provide code samples in multiple languages, and the samples mainly demonstrate how to use the signed interface.It can be built and run standalone or as part of your codebase.
Here are some frequently asked questions.
GET
andDELETE
method interfaces, parameters must be sent in the query string, i.e., the parameters concatenated after theURL?
.POST
andPUT
method interfaces, parameters are sent in the request body in JSON format.code
Error codemessage
Error descriptiontrace
Event tracking ID for each request, which is returned by the server for every requestdata
User DataFor details, please refer toError Code List
The authentication type of each API endpoint will be indicated. If it is marked asSIGNED
,it means that the endpoint requires a signature to access. If it is marked asKEYED
, it means that the endpoint only requires an API Access KEY to be set in the request header.
NONE
: Public endpoint, accessible to anyoneKEYED
: Endpoint requires a valid X-BM-KEY to be set in the request headerSIGNED
: Endpoint requires a valid X-BM-KEY and X-BM-SIGN signature to be set in the request headerCreate X-BM-TIMESTAMP
// JavaSystem.currentTimeMillis();// Pythonint(time.time() * 1000) // Golangtime.Now().UnixNano() / int64(time.Millisecond)// Nodejs & TypeScriptDate.now();// JavascriptDate.now();// PHPround(microtime(true) * 1000)// C#DateTimeOffset.UtcNow.ToUnixTimeMilliseconds()
X-BM-KEY
(Your created API Access KEY)X-BM-SIGN
(Signature using Sha-256)X-BM-TIMESTAMP
(Current timestamp in milliseconds when the request is sent)GET/DELETE
requests, the query string is in form format, such assymbol=BMX&side=BUY
.POST/PUT
requests, the query string is in JSON format, such as{"symbol":"BMX","side":"BUY"}
.Shell Example
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"}'
1589793796145
{"symbol":"BTC_USDT","price":"8600","count":"100"}
Then set the following:
1589793796145
Your_api_access_key
Your_api_secret_key
,X-BM-TIMESTAMP
+ '#' +Your_api_memo
+ '#' +{"symbol":"BTC_USDT","price":"8600","count":"100"}
)Assuming the key you applied for is as follows:
accessKey
=80618e45710812162b04892c7ee5ead4a3cc3e56secretKey
=6c6c98544461bbe71db2bca4c6d7fd0021e0ba9efc215f9c6ad41852df9d9df9memo
=test001then the right side is a complete request
You can also refer to the SDK orQuick Start API below to implement
The speed of the public interface is limited according to the IP, and the speed of the private interface is limited according to the API KEY. When the requests exceed the rate limit, the 429 status will be returned: the request is too frequent.
System Interface | Interface Name | Limit Target | Rate |
---|---|---|---|
/system/time | Get system time | IP | 10 times/sec |
/system/service | Get system service status | IP | 10 times/sec |
Funding Account Interface | Interface Name | Limit Target | Rate |
---|---|---|---|
/account/v1/currencies | Get currencies | IP | 2 times/2 sec |
/account/v1/wallet | Get account balance | X-BM-KEY | 12 times/2 sec |
/account/v1/deposit/address | Deposit address | X-BM-KEY | 2 times/2 sec |
/account/v1/withdraw/charge | Withdraw quota | X-BM-KEY | 2 times/2 sec |
/account/v1/withdraw/apply | Withdraw | X-BM-KEY | 8 times/2 sec |
/account/v1/withdraw/address/list | Withdraw Address | X-BM-KEY | 2 times/2 sec |
/account/v2/deposit-withdraw/history | Get deposit and withdraw history V2 | X-BM-KEY | 8 times/2 sec |
/account/v1/deposit-withdraw/detail | Get a deposit Or withdraw detail | X-BM-KEY | 8 times/2 sec |
/spot/v1/margin/isolated/account | Get Margin Account Details(Isolated) | X-BM-KEY | 12 times/2 sec |
/spot/v1/margin/isolated/transfer | Margin Asset Transfer | X-BM-KEY | 2 times/2 sec |
/spot/v1/user_fee | Basic Fee Rate | X-BM-KEY | 2 times/2 sec |
/spot/v1/trade_fee | Actual Trade Fee Rate | X-BM-KEY | 2 times/2 sec |
Spot Public Market Interface | Interface Name | Limit Target | Rate |
---|---|---|---|
/spot/v1/currencies | Get a list of all cryptocurrencies | IP | 8 times/2 sec |
/spot/v1/symbols | Get a list of all trading pairs | IP | 8 times/2 sec |
/spot/v1/symbols/details | Get a detailed list of all trading pairs | IP | 12 times/2 sec |
/spot/quotation/v3/tickers | Get Ticker of All Pairs (V3) | IP | 10 times/2 sec |
/spot/quotation/v3/ticker | Get Ticker of a Trading Pair(V3) | IP | 15 times/2 sec |
/spot/quotation/v3/lite-klines | Get Latest K-Line (V3) | IP | 15 times/2 sec |
/spot/quotation/v3/klines | Get History K-Line (V3) | IP | 10 times/2 sec |
/spot/quotation/v3/books | Get Depth(V3) | IP | 15 times/2 sec |
/spot/quotation/v3/trades | Get Recent Trades(V3) | IP | 15 times/2 sec |
Spot Trading Interface | Interface Name | Limit Target | Rate |
---|---|---|---|
/spot/v1/wallet | Get the user's wallet balance(KEYED) | X-BM-KEY | 12 times/2 sec |
/spot/v2/submit_order | New Order(v2) (SIGNED) | UID | 40 times/2 sec |
/spot/v4/batch_orders | New Batch Order(v4) (SIGNED) | UID | 40 times/2 sec |
/spot/v1/margin/submit_order | New Margin Order (SIGNED) | UID | 20 times/1 sec |
/spot/v3/cancel_order | Cancel Order(v3) (SIGNED) | UID | 40 times/2 sec |
/spot/v4/cancel_orders | Cancel Batch Order(v4) (SIGNED) | UID | 40 times/2 sec |
/spot/v4/cancel_all | Cancel All Order(v4) (SIGNED) | UID | 1 times/3 sec |
/spot/v4/query/order | Query Order By Id(v4) (SIGNED) | X-BM-KEY | 50 times/2 sec |
/spot/v4/query/client-order | Query Order By clientOrderId(v4) (SIGNED) | X-BM-KEY | 50 times/2 sec |
/spot/v4/query/open-orders | Current Open Orders(v4) (SIGNED) | X-BM-KEY | 12 times/2 sec |
/spot/v4/query/history-orders | Account Orders(v4) (SIGNED) | X-BM-KEY | 12 times/2 sec |
/spot/v4/query/trades | Account Trade List(v4) (SIGNED) | X-BM-KEY | 12 times/2 sec |
/spot/v4/query/order-trades | Order Trade List(v4) (SIGNED) | X-BM-KEY | 12 times/2 sec |
Sub-Account Interface | Interface Name | Limit Target | Rate |
---|---|---|---|
/account/sub-account/main/v1/sub-to-main | Sub-Account Spot Asset Transfer (For Main Account) | X-BM-KEY | 2 times/2 sec |
/account/sub-account/sub/v1/sub-to-main | Sub-Account Spot Asset Transfer (For Sub-Account) | X-BM-KEY | 2 times/2 sec |
/account/sub-account/main/v1/main-to-sub | Main Account Spot Asset Transfer (For Main Account) | X-BM-KEY | 2 times/2 sec |
/account/sub-account/sub/v1/sub-to-sub | Sub-Account to Sub-Account Spot Asset Transfer (For Sub-Account) | X-BM-KEY | 2 times/2 sec |
/account/sub-account/main/v1/sub-to-sub | Sub-account to Sub-Account Spot Asset Transfer (For Main Account) | X-BM-KEY | 2 times/2 sec |
/account/sub-account/main/v1/transfer-list | Query Sub-account Spot Asset Transfer History (For Main Account) | X-BM-KEY | 8 times/2 sec |
/account/sub-account/v1/transfer-history | Get Account Spot Asset Transfer History | X-BM-KEY | 8 times/2 sec |
/account/sub-account/main/v1/wallet | Get Sub-Account Spot Wallet Balance (For Main Account) | X-BM-KEY | 12 times/2 sec |
/account/sub-account/main/v1/subaccount-list | Get Sub-account List (For Main Account) | X-BM-KEY | 8 times/2 sec |
Margin Loan Interface | Interface Name | Limit Target | Rate |
---|---|---|---|
/spot/v1/margin/isolated/borrow | Margin Borrow (Isolated) | X-BM-KEY | 2 times/2 sec |
/spot/v1/margin/isolated/repay | Margin Repay (Isolated) | X-BM-KEY | 2 times/2 sec |
/spot/v1/margin/isolated/borrow_record | Get Borrow Record(Isolated) | X-BM-KEY | 150 times/2 sec |
/spot/v1/margin/isolated/repay_record | Get Repayment Record(Isolated) | X-BM-KEY | 150 times/2 sec |
/spot/v1/margin/isolated/pairs | Get Trading Pair Borrowing Rate and Amount | X-BM-KEY | 2 times/2 sec |
Speed limit judgment:
Each call to the interface will return 3 Response Headers with limit tags, as shown below:
Example:
X-BM-RateLimit-Remaining:10X-BM-RateLimit-Limit:600X-BM-RateLimit-Reset:60Theabovesettingmeansthatitcanbecalled600timeswithin60seconds,andcurrentlyhasbeencalled10times
Response Header | Description |
---|---|
X-BM-RateLimit-Remaining | The number of requests that have been used in the current time window |
X-BM-RateLimit-Limit | The max number of requests in the current time window |
X-BM-RateLimit-Reset | Current time window, in seconds |
Currently only applicable to v4 interfaces
Signed interfaces require the timestamp parameter to be passed, whose value should be the Unix timestamp (in milliseconds) at the time the request is sent, set in theX-BM-TIMESTAMP
header of the request. When the server receives the request, it will check the timestamp in the request. If it was sent more than 5000 milliseconds ago, the request will be considered invalid. This time window value can be defined by sending the optional parameterrecvWindow
.
The pseudo code for this logic is as follows:
if(timestamp<(serverTime+1000)&&(serverTime-timestamp)<=recvWindow){// process request}else{// reject request}
The internet is not always stable and reliable, so there may be latency fluctuations between your program and the BitMart server. This is the purpose of settingrecvWindow
. If you are engaged in high-frequency trading and have high requirements for trade timeliness, you can set recvWindow flexibly to meet your requirements.
currency
Currency refers to the basic unit that can be transferred in and out, such as BTC, ETH, EOS, etcsymbol
Trading pair name, consists of base and quote currency. Taking BTC_USDT as an example, BTC is the base currency, and USDT is the quote currency. Trading pairs are mainly used in spot tradingorderId
Order number, the order ID under the same currency pair of each business line is uniquetradeId
The unique number of the tradenew
=The order has been accepted by the engine.partially_filled
=A part of the order has been filled.filled
=The order has been completed.canceled
=The order has been canceled.partially_canceled
=A part of the order has been filled, and the order has been canceled.user
=User manually canceled.system
=System automatically canceled.stp
=Stp Cancelled.none
=nonecancel_maker
=cancel_makercancel_taker
=cancel_takercancel_both
=cancel_bothbuy
=Buysell
=Selllimit
=Limit Ordermarket
=Market Orderlimit_maker
=PostOnly Orderioc
=IOC Ordertaker
=Take orders, take the initiative to dealmaker
=Pending order, passive transactionAll the times returned by the system are in the form of timestamps.
Get system time
GET https://api-cloud.bitmart.com/system/time
Request
curl https://api-cloud.bitmart.com/system/time
None
Response
{"code":1000,"trace":"886fb6ae-456b-4654-b4e0-d681ac05cea1","message":"OK","data":{"server_time":1527777538000}}
Field | Type | Description |
---|---|---|
server_time | Long | Current system time (timestamp, accuracy in milliseconds) |
Get system service status
GET https://api-cloud.bitmart.com/system/service
Request
curl https://api-cloud.bitmart.com/system/service
None
Response
{"code":1000,"trace":"886fb6ae-456b-4654-b4e0-d681ac05cea1","message":"OK","data":{"service":[{"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}]}}
Field | Type | Description |
---|---|---|
title | String | System maintenance instructions title |
status | Long | System maintenance status - 0 =Waiting- 1 =Working- 2 =Completed |
service_type | String | Service type - spot =Spot API service- contract =Contract API service- account =Account API service |
start_time | Long | System maintenance start time, UTC-0, timestamp accuracy in milliseconds |
end_time | Long | System maintenance end time, UTC-0, timestamp accuracy in milliseconds |
Get a list of all cryptocurrencies on the platform
GET https://api-cloud.bitmart.com/spot/v1/currencies
Request
curl https://api-cloud.bitmart.com/spot/v1/currencies
None
Response
{"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}]}}
Field | Type | Description |
---|---|---|
id | String | Currency abbreviation, such as BTC |
name | String | Currency full name, such as Bitcoin |
withdraw_enabled | Boolean | Whether this currency can be withdrawn on the platform - true =can- false =no |
deposit_enabled | Boolean | Whether this currency can be deposited on the platform - true =can- false =no |
Get a list of all trading pairs on the platform
GET https://api-cloud.bitmart.com/spot/v1/symbols
Request
curl https://api-cloud.bitmart.com/spot/v1/symbols
None
Response
{"code":1000,"trace":"886fb6ae-456b-4654-b4e0-d681ac05cea1","message":"OK","data":{"symbols":["BMX_ETH","XLM_ETH","MOBI_ETH"]}}
Field | Type | Description |
---|---|---|
symbols | List | Array of trading pairs |
Get a detailed list of all trading pairs on the platform
GET https://api-cloud.bitmart.com/spot/v1/symbols/details
Request
curl https://api-cloud.bitmart.com/spot/v1/symbols/details
None
Response
{"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","price_min_precision":6,"price_max_precision":8,"expiration":"NA","min_buy_amount":"0.00010000","min_sell_amount":"0.00010000","trade_status":"trading"}]}}
Field | Type | Description |
---|---|---|
symbols | List | Array of trading pair details |
symbol | String | Trading pair name |
symbol_id | Int | Trading pair id |
base_currency | String | Base currency |
quote_currency | String | Quote currency |
quote_increment | String | The minimum order quantity is also the minimum order quantity increment |
base_min_size | String | Minimum order quantity |
price_min_precision | Number | Minimum price accuracy (decimal places), used to query k-line and depth |
price_max_precision | Number | Maximum price accuracy (decimal places), used to query k-line and depth |
expiration | String | Expiration time of trading pair |
min_buy_amount | String | Minimum order amount |
min_sell_amount | String | Minimum sell amount |
trade_status | String | Trade Status - trading =is trading- pre-trade =pre-open |
Get all trading pairs with a volume greater than 0 within 24 hours.Market data includes: latest transaction price, best bid price, best ask price and 24-hour transaction volume snapshot information.Note that the interface is not real-time data, if you need real-time data, please use websocket to subscribe Ticker channel
GET https://api-cloud.bitmart.com/spot/quotation/v3/tickers
Request
curl https://api-cloud.bitmart.com/spot/quotation/v3/tickers`
None
Response
{"code":1000,"trace":"886fb6ae-456b-4654-b4e0-1231","message":"success","data":[["BTC_USDT",//symbol"30000.00",//last"582.08066",//v_24h"4793098.48",//qv_24h"28596.30",//open_24h"31012.44",//high_24h"12.44",//low_24h"0.04909",//fluctuation"30000",//bid_px"1",//bid_sz"31012.44",//ask_px"69994.75267",//ask_sz"1691671091933"//ts],["ETH_USDT","1840.00","2.00000","3680.00","1842.18","1842.18","1840.00","-0.00118","1812.35","4.61989","1859.34","4.07793","1691671094213"]]}
Field | Type | Description |
---|---|---|
symbol | String | Trading pair |
last | String | Latest price |
v_24h | String | 24-hour trade volume in base currency |
qv_24h | String | 24-hour trade volume in quote currency |
open_24h | String | 24-hour open price |
high_24h | String | 24-hour highest price |
low_24h | String | 24-hour lowest price |
fluctuation | String | 24-hour price change |
bid_px | String | top buy price |
bid_sz | String | Size of top buy order |
ask_px | String | top sell price |
ask_sz | String | Size of top sell order |
ts | String | Time of generation(in milliseconds) |
Applicable to query the aggregated market price of a certain trading pair, and return the latest ticker information. Note that the interface is not real-time data, if you need real-time data, please use websocket to subscribe Ticker channel
GET https://api-cloud.bitmart.com/spot/quotation/v3/ticker
Request
curl https://api-cloud.bitmart.com/spot/quotation/v3/ticker?symbol=BTC_USDT
Field | Type | Required? | Description |
---|---|---|---|
symbol | String | Yes | Trading pair (e.g. BMX_USDT) |
Response
{"code":1000,"trace":"886fb6ae-456b-4654-b4e0-1231","message":"success","data":{"symbol":"BTC_USDT","last":"30000.00","v_24h":"582.08066","qv_24h":"4793098.48","open_24h":"28596.30","high_24h":"31012.44","low_24h":"12.44","fluctuation":"0.04909","bid_px":"30000","bid_sz":"1","ask_px":"31012.44","ask_sz":"69994.75267","ts":"1691671061919"}}
Field | Type | Description |
---|---|---|
symbol | String | Trading pair |
last | String | Latest price |
v_24h | String | 24-hour trade volume in base currency |
qv_24h | String | 24-hour trade volume in quote currency |
open_24h | String | 24-hour open price |
high_24h | String | 24-hour highest price |
low_24h | String | 24-hour lowest price |
fluctuation | String | 24-hour price change |
bid_px | String | top buy price |
bid_sz | String | Size of top buy order |
ask_px | String | top sell price |
ask_sz | String | Size of top sell order |
ts | String | Time of generation(in milliseconds) |
Query the latest K-line and return a maximum of 1000 data. Note that the latest K-line of the interface is not real-time data. If you want real-time data, please use websocket to subscribe to K-line channel
GET https://api-cloud.bitmart.com/spot/quotation/v3/lite-klines
Request
curl https://api-cloud.bitmart.com/spot/quotation/v3/lite-klines?symbol=BMX_ETH&step=15&limit=10
Field | Type | Required? | Description |
---|---|---|---|
symbol | String | Yes | Trading pair (e.g.BMX_USDT ) |
before | Long | No | Query timestamp (unit: second, e.g. 1525760116), query the data before this time |
after | Long | No | Query timestamp (unit: second, e.g. 1525769116), query the data after this time |
step | Int | No | k-line step, value[1, 5, 15, 30, 60, 120, 240, 1440, 10080, 43200] unit: minute, default 1 |
limit | Int | No | Return number, the maximum value is 200, default is 100 |
Response
{"code":1000,"trace":"886fb6ae-456b-4654-b4e0-1231","message":"success","data":[["1689736680",//t"3.721",//o"3.743",//h"3.677",//l"3.708",//c"22698348.04828491",//v"12698348.04828491"//qv],["1689736620","3.731","3.799","3.494","3.72","67632347.24399722","37632347.24399722"]]}
Field | Type | Description |
---|---|---|
t | String | Create timestamp (in seconds), It can be used as the unique identification of K line |
o | String | Open price |
h | String | Highest price |
l | String | Lowest price |
c | String | Close price |
v | String | Trading volume, with a unit of currency (If in BTC_USDT, The unit is BTC) |
qv | String | Trading volume, the value is the quantity in quote currency (If in BTC_USDT, The unit is USDT) |
Get k-line data within a specified time range of a specified trading pair.Note that the interface is not real-time data, if you need real-time data, please use websocket to subscribe KLine channel
GET https://api-cloud.bitmart.com/spot/quotation/v3/klines
Request
curl https://api-cloud.bitmart.com/spot/quotation/v3/klines?symbol=BMX_ETH&step=15&limit=10
Field | Type | Required? | Description |
---|---|---|---|
symbol | String | Yes | Trading pair (e.g.BMX_USDT ) |
before | Long | No | Query timestamp (unit: second, e.g. 1525760116), query the data before this time |
after | Long | No | Query timestamp (unit: second, e.g. 1525769116), query the data after this time |
step | Int | No | k-line step, value[1, 5, 15, 30, 60, 120, 240, 1440, 10080, 43200] unit: minute, default 1 |
limit | Int | No | Return number, the maximum value is 200, default is 100 |
Response
{"code":1000,"trace":"886fb6ae-456b-4654-b4e0-1231","message":"success","data":[["1689736680",//t"3.721",//o"3.743",//h"3.677",//l"3.708",//c"22698348.04828491",//v"12698348.04828491"//qv],["1689736620","3.731","3.799","3.494","3.72","67632347.24399722","37632347.24399722"]]}
Field | Type | Description |
---|---|---|
t | String | Create timestamp (in seconds), It can be used as the unique identification of K line |
o | String | Open price |
h | String | Highest price |
l | String | Lowest price |
c | String | Close price |
v | String | Trading volume, with a unit of currency (If in BTC_USDT, The unit is BTC) |
qv | String | Trading volume, the value is the quantity in quote currency (If in BTC_USDT, The unit is USDT) |
Get full depth of trading pairs.Note that the interface is not real-time data, if you need real-time data, please use websocket to subscribe Depth channel
GET https://api-cloud.bitmart.com/spot/quotation/v3/books
Request
curl https://api-cloud.bitmart.com/spot/quotation/v3/books?symbol=BTC_USDT&limit=1
Field | Type | Required? | Description |
---|---|---|---|
symbol | String | Yes | Trading pair (e.g.BMX_USDT ) |
limit | Int | No | Order book depth per side. Maximum 50, e.g. 50 bids + 50 asks. Default returns to 35 depth data, e.g. 35 bids + 35 asks. |
Response
{"code":1000,"trace":"886fb6ae-456b-4654-b4e0-1231","message":"success","data":{"ts":"1691672864874","symbol":"BTC_USDT","asks":[["31012.44",//price"69994.75267"//amount]],"bids":[["30000.00",//price"1.00000"//amount]]}}
Field | Type | Description |
---|---|---|
ts | String | Create time(Timestamp in milliseconds) |
symbol | String | Trading pair |
asks | List[] | Order book on sell side |
bids | List[] | Order book on buy side |
amount | String | Total number of current price depth |
price | String | The price at current depth |
Get the latest trade records of the specified trading pair.Note that the interface is not real-time data, if you need real-time data, please use websocket to subscribe Trade channel
GET https://api-cloud.bitmart.com/spot/quotation/v3/trades
Request
curl https://api-cloud.bitmart.com/spot/quotation/v3/trades?symbol=BMX_ETH&limit=10
Field | Type | Required? | Description |
---|---|---|---|
symbol | String | Yes | Trading pair (e.g.BMX_USDT ) |
limit | Int | No | Number of returned items, maximum is 50, default 50 |
Response
{"code":1000,"trace":"886fb6ae-456b-4654-b4e0-1231","message":"success","data":[["BMX_ETH",//symbol"1691743270994",//ts"1.00000000",//price"1.0",//size"sell"//side]]}
Field | Type | Description |
---|---|---|
symbol | String | Trading pair |
ts | String | Trade time (in milliseconds) |
price | String | Trade price |
size | String | Trade number |
side | String | Order Side - buy - sell |
Gets Account Balance
GET https://api-cloud.bitmart.com/account/v1/wallet
Request
curl-H'X-BM-KEY:{{AccessKey}}'https://api-cloud.bitmart.com/account/v1/wallet?currency=USDT&needUsdValuation=true
Field | Type | Required? | Description |
---|---|---|---|
currency | String | No | Currency |
needUsdValuation | Bool | No | Whether to return the USD valuation, default isfalse |
Response
{"message":"OK","code":1000,"trace":"ef834248-51d3-4223-9481-f862aa9dd39f","data":{"wallet":[{"currency":"USDT","name":"Tether USD","available":"1000.00000000","available_usd_valuation":"1002.00000000","frozen":"0.00000000","unAvailable":"0.00000000"}]}}
Field | Type | Description |
---|---|---|
currency | String | Token symbol, e.g., 'BTC' |
name | String | Token name, e.g., 'Bitcoin' |
available | String | Available Balance |
available_usd_valuation | String | Available Balance USD valuation |
frozen | String | Trading frozen Balance |
unAvailable | String | Trading frozen Balance + Other frozen Balance |
Gets the currency of the asset for withdrawal
GET https://api-cloud.bitmart.com/account/v1/currencies
Request
curl https://api-cloud.bitmart.com/account/v1/currencies?currencies=BTC,ETH,BMX
Field | Type | Required? | Description |
---|---|---|---|
currencies | String | No | Single query, such asBTC ; multiple queries, such asBTC,ETH,BMX , can have a maximum of 20. |
Response
{"code":1000,"trace":"886fb6ae-456b-4654-b4e0-d681ac05cea1","message":"OK","data":{"currencies":[{"currency":"USDT","name":"Tether USD","contract_address":null,"network":"OMNI","withdraw_enabled":false,"deposit_enabled":false,"withdraw_minsize":null,"withdraw_minfee":null,"withdraw_fee":"10","withdraw_fee_estimate":"10.3"},{"currency":"USDT-TRC20","name":"USDT-TRC20","contract_address":"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t","network":"TRC20","withdraw_enabled":true,"deposit_enabled":true,"withdraw_minsize":"10","withdraw_minfee":null,"withdraw_fee":"10","withdraw_fee_estimate":"10.3"},{"currency":"USDT-ERC20","name":"USDT-ERC20","contract_address":"0xdac17f958d2ee523a2206206994597c13d831ec7","network":"ERC20","withdraw_enabled":true,"deposit_enabled":true,"withdraw_minsize":"26","withdraw_minfee":null,"withdraw_fee":"26","withdraw_fee_estimate":"26.3"}]}}
Field | Type | Description |
---|---|---|
currency | String | Token symbol, e.g., 'BTC' |
name | String | Token name, e.g., 'Bitcoin' |
contract_address | String | Contract address |
network | String | network, e.g., 'ERC20' |
withdraw_enabled | Boolean | Availability to withdraw - true =available- false =not available |
deposit_enabled | Boolean | Availability to deposit - true =available- false =not available |
withdraw_minsize | String | Minimum withdrawal amount |
withdraw_minfee | String | Minimum withdrawal fee (After 2025-05-18, the field will be removed) |
withdraw_fee | String | Withdrawal fee. The unit corresponds to the currency |
withdraw_fee_estimate | String | Withdrawal fee estimate. The unit is USD. |
Get the user's wallet balance for all currencies
GET https://api-cloud.bitmart.com/spot/v1/wallet
Request
curl-H'X-BM-KEY:{{AccessKey}}' https://api-cloud.bitmart.com/spot/v1/wallet
None
Response
{"code":1000,"trace":"886fb6ae-456b-4654-b4e0-d681ac05cea1","message":"OK","data":{"wallet":[{"id":"BTC","available":"10.000000","name":"Bitcoin","frozen":"10.000000",},...]}}
Field | Type | Description |
---|---|---|
id | String | Cryptocurrency abbreviation |
name | String | Full name |
available | String | Available balance |
frozen | String | Frozen balance |
Gets Deposit Address
GET https://api-cloud.bitmart.com/account/v1/deposit/address
Request
curl-H'X-BM-KEY:{{AccessKey}}'https://api-cloud.bitmart.com/account/v1/deposit/address?currency=USDT-TRC20
Field | Type | Required? | Description |
---|---|---|---|
currency | String | Yes | Token symbol, e.g., 'BTC' |
Instruction
Response
{"message":"OK","code":1000,"trace":"0e6edd79-f77f-4251-abe5-83ba75d06c1a","data":{"currency":"USDT-TRC20","chain":"USDT-TRC20","address":"TGR3ghy2b5VLbyAYrmiE15jasR6aPHTvC5","address_memo":""}}
Field | Type | Description |
---|---|---|
currency | String | Token symbol, e.g., 'BTC' |
chain | String | Token chain |
address | String | Deposit address |
address_memo | String | Tag (tag/payment_id/memo); If some currencies need to withdraw currency, it will return data. If not, it will return empty string |
Forgot to write Memo/Wrote a wrong Memo?
Query withdraw quota for currencies
GET https://api-cloud.bitmart.com/account/v1/withdraw/charge
Request
curl-H'X-BM-KEY:{{AccessKey}}' https://api-cloud.bitmart.com/account/v1/withdraw/charge?currency=BTC
Field | Type | Required? | Description |
---|---|---|---|
currency | String | Yes | Token symbol, e.g., 'BTC' |
Response
{"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","withdraw_Precision_GeTen":10}}
Field | Type | Description |
---|---|---|
today_available_withdraw_BTC | String | Amount available for withdrawal today, unit: BTC |
min_withdraw | String | Minimum withdrawal amount |
withdraw_precision | Int | Withdrawal amount must be accurate to several decimal places. |
withdraw_fee | String | Withdrawal fee |
withdraw_Precision_GeTen | Long | Withdrawal amount must be an integral multiple of this value. If it is null, it means there is no such requirement. |
Creates a withdraw request from spot account to an external address
The API can only make withdrawal to verified addresses, and verified addresses can be set by WEB/APP.
POST https://api-cloud.bitmart.com/account/v1/withdraw/apply
Field | Type | Required? | Description |
---|---|---|---|
currency | String | Yes | Token symbol, e.g., 'BTC' |
amount | String | Yes | The amount of currency to withdraw |
1.Request: Withdraw to the blockchain
curl-H'X-BM-KEY:{{AccessKey}}'-H'X-BM-TIMESTAMP:{{currentTime}}'-H'X-BM-SIGN:{{SIGN}}'-X POST-d'{{ "currency": "USDT-TRC20", "amount": "100.000", "destination": "To Digital Address", "address": "0x1EE6FA5A3803608fc22a1f3F76********", "address_memo": ""}'https://api-cloud.bitmart.com/account/v1/withdraw/apply
Field | Type | Required? | Description |
---|---|---|---|
address | String | Yes | Withdraw address (only the address added on the official website is supported) |
address_memo | String | No | Address tag(tag Or payment_id Or memo) |
destination | String | No | Remark |
2.Request: Withdraw to BitMart account
curl-H'X-BM-KEY:{{AccessKey}}'-H'X-BM-TIMESTAMP:{{currentTime}}'-H'X-BM-SIGN:{{SIGN}}'-X POST-d'{{ "currency": "USDT-TRC20", "amount": "100.000", "type": 1, "value": "876940329", "areaCode": ""}'https://api-cloud.bitmart.com/account/v1/withdraw/apply
Field | Type | Required? | Description |
---|---|---|---|
type | Int | Yes | Account type1 =CID2 =Email3 =Phone |
value | String | Yes | Account |
areaCode | String | Yes | Phone area code, required when account type is phone, e.g.: 61 |
Response
{"code":1000,"trace":"886fb6ae-456b-4654-b4e0-d681ac05cea1","message":"OK","data":{"withdraw_id":"121212"}}
Field | Type | Description |
---|---|---|
withdraw_id | String | Withdrawa ID |
1. When withdraw_id is returned, it means that the withdrawal request has been sent successfully.
2. You can check the tx_id of this withdrawal by using the interface ofGet A Deposit Or Withdraw Detail, and use it to query the withdrawal progress on the blockchain.
3. If you get an error message, message=This address is not verified. Please add and verify this address on the client
You need to add the address to the whitelist address according to the following 3 steps.
Step 1: After logging in to the account on the Web or APP, enter the withdrawal page.
Step 2: Click【Add withdrawal address】
Step 3: On the address management page, save the withdrawal address as [Verified Address], which supports API withdrawal.
4. Address Types:
1. Standard Address: Can be withdrawn to a specified currency and network address.
2. Universal Address: Can be withdrawn to all currencies on the specified network.
3. EVM Address: Can be withdrawn to currencies on EVM type networks.
5. Verified Addresses:
1. When saving an address, it can be pre-verified to skip the verification during withdrawal (Verified addresses will not need to be verified again during the withdrawal process).
2. API withdrawal must use verified addresses; un-verified addresses cannot be used for withdrawal via API.
Gets Withdraw Address List
GET https://api-cloud.bitmart.com/account/v1/withdraw/address/list
Request
curl-H'X-BM-KEY:{{AccessKey}}'https://api-cloud.bitmart.com/account/v1/withdraw/address/list
None
Response
{"message":"OK","code":1000,"trace":"0e6edd79-f77f-4251-abe5-83ba75d06c1a","data":{"list":[{"currency":"ETH","network":"ETH","address":"0x1121","memo":"12","remark":"12","addressType":0,"verifyStatus":0}]}}
Field | Type | Description |
---|---|---|
address | String | Withdraw Address |
memo | String | Memo |
remark | String | Remark |
verifyStatus | Int | Address verify status - 0 =Unverified- 1 =Verified |
addressType | Int | Address Type - 0 =Standard Address- 1 =Universal Address- 2 =EVM Address |
network | String | Network. The value is present only when the address type is a Standard address or Universal Address |
currency | String | The value is present only when the address type is a Standard address |
The original /account/v1/deposit-withdraw/history interface, the old interface is no longer supported, please switch to the new interface as soon as possible
Search for all existed withdraws and deposits and return their latest status.
GET https://api-cloud.bitmart.com/account/v2/deposit-withdraw/history
Request
curl-H'X-BM-KEY:{{AccessKey}}'https://api-cloud.bitmart.com/account/v2/deposit-withdraw/history?N=100&operation_type=withdraw&startTime=1739499865000
Field | Type | Required? | Description |
---|---|---|---|
currency | String | No | Token symbol, e.g., 'BTC' |
operation_type | String | Yes | type - deposit =deposit- withdraw =withdraw |
startTime | Long | No | Default: 90 days from current timestamp (milliseconds) |
endTime | Long | No | Default: present timestamp (milliseconds) |
N | Int | Yes | Recent N records (value range 1-1000) |
Response
{"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":""}]}}
Field | Type | Description |
---|---|---|
withdraw_id | String | withdraw id |
deposit_id | String | deposit id |
operation_type | String | type - deposit =deposit- withdraw =withdraw |
currency | String | Token symbol, e.g., 'BTC' |
apply_time | Long | The request timestamp is accurate to milliseconds(UTC-0) |
arrival_amount | String | Actual amount received |
fee | String | fee |
status | Int | status - 0 =Create- 1 =Submitted, waiting for withdrawal- 2 =Processing- 3 =Done- 4 =Cancel- 5 =Fail |
address | String | Address |
address_memo | String | Address tag |
tx_id | String | Hash record |
Query a single charge record
GET https://api-cloud.bitmart.com/account/v1/deposit-withdraw/detail
Request
curl-H'X-BM-KEY:{{AccessKey}}'https://api-cloud.bitmart.com/account/v1/deposit-withdraw/detail?id=1679952
Field | Type | Required? | Description |
---|---|---|---|
id | String | Yes | withdraw_id ordeposit_id |
Response
{"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":""}}}
Field | Type | Description |
---|---|---|
withdraw_id | String | withdraw id |
deposit_id | String | deposit id |
operation_type | String | type - deposit =deposit- withdraw =withdraw |
currency | String | Token symbol, e.g., 'BTC' |
apply_time | Long | The request timestamp is accurate to milliseconds(UTC-0) |
arrival_amount | String | Actual amount received |
fee | String | fee |
status | Int | status - 0 =Create- 1 =Submitted, waiting for withdrawal- 2 =Processing- 3 =Done- 4 =Cancel- 5 =Fail |
address | String | address |
address_memo | String | address tag |
tx_id | String | Hash record |
Applicable for isolated margin account inquiries
GET https://api-cloud.bitmart.com/spot/v1/margin/isolated/account
Request
curl-H'X-BM-KEY:{{AccessKey}}' https://api-cloud.bitmart.com/spot/v1/margin/isolated/account?symbol=BTC_USDT
Field | Type | Required? | Description |
---|---|---|---|
symbol | String | No | Trading pair (e.g. BMX_USDT), no symbol is passed, and all isolated margin assets are returned |
Response
{"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"}},...]}}
Field | Type | Description |
---|---|---|
symbol | String | Trading pair |
risk_rate | String | Current risk rate |
risk_level | String | Risk level |
buy_enabled | Boolean | Whether open to buy |
sell_enabled | Boolean | Whether open to sell |
liquidate_price | String | Liquidation price (precision: 8 decimal places) |
liquidate_rate | String | Liquidation rate |
currency | String | Currency |
borrow_enabled | Boolean | Whether open to borrow |
borrowed | String | Borrowed assets (precision: 8 decimal places) |
borrow_unpaid | String | Outstanding principal amount (precision: 8 decimal places) |
interest_unpaid | String | Interest outstanding (precision: 8 decimal places) |
available | String | Available assets (precision: 8 decimal places) |
frozen | String | Trading frozen assets (precision: 8 decimal places) |
net_asset | String | Net assets (precision: 8 decimal places) |
net_assetBTC | String | Converted BTC net assets (precision: 8 decimal places) |
total_asset | String | Total assets (precision: 8 decimal places) |
For fund transfers between a margin account and spot account
POST https://api-cloud.bitmart.com/spot/v1/margin/isolated/transfer
Request
curl-H'X-BM-KEY:{{AccessKey}}'-H'X-BM-TIMESTAMP:{{currentTime}}'-H'X-BM-SIGN:{{SIGN}}'-X POST-d'{ "symbol":"BTC_USDT", "currency":"BTC", "amount":"1", "side":"in"}'https://api-cloud.bitmart.com/spot/v1/margin/isolated/transfer
Field | Type | Required? | Description |
---|---|---|---|
symbol | String | Yes | Trading pair (e.g. BMX_USDT) |
currency | String | Yes | Currency |
amount | String | Yes | Amount of transfers (precision: 8 decimal places) |
side | String | Yes | Transfer direction - in =Transfer in- out =Transfer out |
Response
{"message":"OK","code":1000,"trace":"f7f74924-14da-42a6-b7f2-d3799dd9a612","data":{"transfer_id":"124532"}}
Field | Type | Description |
---|---|---|
transfer_id | String | Transfer order id, only successful transfers will be returned |
For querying the base rate of the current user
GET https://api-cloud.bitmart.com/spot/v1/user_fee
Request
curl-H'X-BM-KEY:{{AccessKey}}' https://api-cloud.bitmart.com/spot/v1/user_fee
None
Response
{"message":"OK","code":1000,"trace":"0187ba0c876e4236ac191d9848a0f719.94.16778301620100121","data":{"user_rate_type":0,"level":"LV1","taker_fee_rate_A":"0.001","maker_fee_rate_A":"0.001","taker_fee_rate_B":"0.0025","maker_fee_rate_B":"0.0025","taker_fee_rate_C":"0.004","maker_fee_rate_C":"0.004","taker_fee_rate_D":"0.006","maker_fee_rate_D":"0.006"}}
Field | Type | Description |
---|---|---|
user_rate_type | Long | Rate type: - 0 =Normal Users- 1 =VIP Users- 2 =Special VIP Users |
level | String | User Level |
taker_fee_rate_A | String | Taker fee rate for Class-A pairs |
maker_fee_rate_A | String | Maker fee rate for Class-A pairs |
taker_fee_rate_B | String | Taker fee rate for Class-B pairs |
maker_fee_rate_B | String | Maker fee rate for Class-B pairs |
taker_fee_rate_C | String | Taker fee rate for Class-C pairs |
maker_fee_rate_C | String | Maker fee rate for Class-C pairs |
taker_fee_rate_D | String | Taker fee rate for Class-D pairs |
maker_fee_rate_D | String | Maker fee rate for Class-D pairs |
For the actual fee rate of the trading pairs
GET https://api-cloud.bitmart.com/spot/v1/trade_fee
Request
curl-H'X-BM-KEY:{{AccessKey}}'https://api-cloud.bitmart.com/spot/v1/trade_fee?symbol=BTC_USDT
Field | Type | Required? | Description |
---|---|---|---|
symbol | String | Yes | Trading pair (e.g. BMX_USDT) |
Response
{"message":"OK","code":1000,"trace":"87614aa8-5327-4fe2-aafc-02e2ddca7210","data":{"symbol":"BTC_USDT","buy_taker_fee_rate":"0.0008","sell_taker_fee_rate":"0.0008","buy_maker_fee_rate":"0.0006","sell_maker_fee_rate":"0.0006"}}
Field | Type | Description |
---|---|---|
symbol | String | Trading pair |
buy_taker_fee_rate | String | Taker fee rate (Buy) |
sell_taker_fee_rate | String | Taker fee rate (Sell) |
buy_maker_fee_rate | String | Maker fee rate (Buy) |
sell_maker_fee_rate | String | Maker fee rate (Sell) |
Send in a new order.
POST https://api-cloud.bitmart.com/spot/v2/submit_order
Request
curl-H'X-BM-KEY:{{AccessKey}}'-H'X-BM-TIMESTAMP:{{currentTime}}'-H'X-BM-SIGN:{{SIGN}}'-X POST-d'{ "symbol":"BTC_USDT", "side":"buy", "type":"limit", "size":"10", "price":"7000" "stpMode":"none"}'https://api-cloud.bitmart.com/spot/v2/submit_order
Field | Type | Required? | Description |
---|---|---|---|
symbol | String | Yes | Trading pair (e.g. BTC_USDT) |
side | String | Yes | Side - buy =Buy order- sell =Sell order |
type | String | Yes | Order type - limit =Limit order- market =Market order- limit_maker =PostOnly order- ioc =IOC order |
client_order_id | String | No | Client-defined OrderId(A combination of case-sensitive alphanumerics, all numbers, or all letters of up to 32 characters) |
stpMode | String | No | Self transaction protection type(default:none) - none - cancel_maker - cancel_taker - cancel_both |
type
=limit/limit_maker/ioc)Field | Type | Required? | Description |
---|---|---|---|
size | String | Yes | Order size |
price | String | Yes | Price |
type
=market,side
=buy)Field | Type | Required? | Description |
---|---|---|---|
notional | String | Yes | Required for placing orders by amount |
type
=market,side
=sell)Field | Type | Required? | Description |
---|---|---|---|
size | String | Yes | Required for placing orders by quantity |
Instruction
Buy-limit-maker
When "order price">="market lowest selling price", the order will be canceled by the system
When the "order price" <"the lowest selling price in the market", the order will be accepted by the system after the submission is successful
When "order price"*"order size"<minimum deal amount in the market, the order will be canceled by the system
Sell-limit-maker
When "order price" <= "market highest bid price", after the order is submitted, the order will be canceled by the system
When "order price"> "market highest bid price", the order will be accepted by the system after the submission is successful
When "order price"*"order size"<minimum deal amount in the market, the order will be canceled by the system
Buy-ioc,Sell-ioc
Self trade prevention (STP)
The trading platform imposes self trade prevention at account level. The default STP mode is none. Users can also utilize the stpMode request parameter of the placing order endpoint to determine the stpMode of a certain order.Self trade prevention will not lead to latency.
There are three STP modes.
Response
{"code":1000,"trace":"886fb6ae-456b-4654-b4e0-d681ac05cea1","message":"OK","data":{"order_id":"1223181"}}
Field | Type | Description |
---|---|---|
order_id | String | Order ID |
Applicable to the cancellation of a specified unfinished order
POST https://api-cloud.bitmart.com/spot/v3/cancel_order
Request
curl-H'X-BM-KEY:{{AccessKey}}'-H'X-BM-TIMESTAMP:{{currentTime}}'-H'X-BM-SIGN:{{SIGN}}'-X POST-d'{ "symbol": "BTC_USDT", "order_id": "112121212"}'https://api-cloud.bitmart.com/spot/v3/cancel_order
Field | Type | Required? | Description |
---|---|---|---|
symbol | String | Yes | Trading pair (e.g. BMX_USDT) |
order_id | String | order_id, client_order_id, one of them is required | Order ID |
client_order_id | String | order_id, client_order_id, one of them is required | Client-defined Order ID |
Response
{"code":1000,"trace":"886fb6ae-456b-4654-b4e0-d681ac05cea1","message":"OK","data":{"result":true}}
Field | Type | Description |
---|---|---|
result | Boolean | Cancel result - true =Cancel successfully- false =Cancel failed |
Batch order
POST https://api-cloud.bitmart.com/spot/v4/batch_orders
Request
curl-H'X-BM-KEY:{{AccessKey}}'-H'X-BM-TIMESTAMP:{{currentTime}}'-H'X-BM-SIGN:{{SIGN}}'-X POST-d'{ "symbol":"BTC_USDT", "orderParams":[{ "clientOrderId":"123456789", "size":"0.1", "price":"8800", "side":"buy", "type":"limit" "stpMode":"none" }], "recvWindow":5000}'https://api-cloud.bitmart.com/spot/v4/batch_orders
Field | Type | Required? | Description |
---|---|---|---|
symbol | String | Yes | Trading pair (e.g. BTC_USDT) |
orderParams | List | Yes | Order parameters, the number of transactions cannot exceed 10 |
recvWindow | Long | No | Trade time limit, allowed range (0,60000], default: 5000 milliseconds |
Field | Type | Required? | Description |
---|---|---|---|
side | String | Yes | Side - buy =Buy order- sell =Sell order |
type | String | Yes | Order type - limit =Limit order- market =Market order- limit_maker =PostOnly order- ioc =IOC order |
clientOrderId | String | No | Client-defined OrderId(A combination of case-sensitive alphanumerics, all numbers, or all letters of up to 32 characters) |
stpMode | String | No | Self transaction protection type(default:none) - none - cancel_maker - cancel_taker - cancel_both |
type
=limit/limit_maker/ioc)Field | Type | Required? | Description |
---|---|---|---|
size | String | Yes | Order size |
price | String | Yes | Price |
type
=market,side
=buy)Field | Type | Required? | Description |
---|---|---|---|
notional | String | Yes | Required for placing orders by amount |
type
=market,side
=sell)Field | Type | Required? | Description |
---|---|---|---|
size | String | Yes | Required for placing orders by quantity |
Instruction
Buy-limit-maker
When "order price">="market lowest selling price", the order will be canceled by the system
When the "order price" <"the lowest selling price in the market", the order will be accepted by the system after the submission is successful
When "order price"*"order size"<minimum deal amount in the market, the order will be canceled by the system
Sell-limit-maker
When "order price" <= "market highest bid price", the order will be canceled by the system
When "order price"> "market highest bid price", the order will be accepted by the system after the submission is successful
When "order price"*"order size"<minimum deal amount in the market, the order will be canceled by the system
Buy-ioc,Sell-ioc
Self trade prevention (STP)
The trading platform imposes self trade prevention at account level. The default STP mode is none. Users can also utilize the stpMode request parameter of the placing order endpoint to determine the stpMode of a certain order.Self trade prevention will not lead to latency.
There are three STP modes.
Response
{"message":"OK","code":1000,"trace":"5fc697fb817a4b5396284786a9b2609a.263.17022620476480263","data":{"code":0,"msg":"success","data":{"orderIds":["212751308355553320"]}}}
Field | Type | Description |
---|---|---|
orderIds | List | Order ID |
Cancel all outstanding orders in the specified direction for the specified trading pair or cancel based on the order ID
POST https://api-cloud.bitmart.com/spot/v4/cancel_orders
Request
curl-H'X-BM-KEY:{{AccessKey}}'-H'X-BM-TIMESTAMP:{{currentTime}}'-H'X-BM-SIGN:{{SIGN}}'-X POST-d'{ "symbol":"BTC_USDT", "orderIds":[ "5e925f3981" ], "recvWindow":5000}'https://api-cloud.bitmart.com/spot/v4/cancel_orders
Field | Type | Required? | Description |
---|---|---|---|
symbol | String | Yes | Trading pair (e.g. BTC_USDT) |
orderIds | List | orderIds, clientOrderIds, one of them is required | Order Id List (Limited to 10 ids) |
clientOrderIds | List | orderIds, clientOrderIds, one of them is required | Client-defined OrderId List (Limited to 10 ids) |
recvWindow | Long | No | Trade time limit, allowed range (0,60000], default: 5000 milliseconds |
Response
{"message":"OK","code":1000,"trace":"c4edbce860164203954f7c3c81d60fc6.309.17022669632770001","data":{"successIds":["213055379155243012"],"failIds":[],"totalCount":1,"successCount":1,"failedCount":0}}
Field | Type | Description |
---|---|---|
successIds | List | Successfully canceled order IDs |
failIds | List | Order IDs that failed to cancel |
totalCount | Int | Number of submissions |
successCount | Int | Number of successes |
failedCount | Int | Number of failures |
Cancel all orders
POST https://api-cloud.bitmart.com/spot/v4/cancel_all
Request
curl-H'X-BM-KEY:{{AccessKey}}'-H'X-BM-TIMESTAMP:{{currentTime}}'-H'X-BM-SIGN:{{SIGN}}'-X POST-d'{ "symbol":"BTC_USDT", "side":"buy"}'https://api-cloud.bitmart.com/spot/v4/cancel_all
Field | Type | Required? | Description |
---|---|---|---|
symbol | String | No | Trading pair (e.g. BTC_USDT) |
side | String | No | Order side - buy - sell |
Response
{"code":1000,"trace":"886fb6ae-456b-4654-b4e0-d681ac05cea1","message":"OK","data":{}}
If code is equal to 1000, it means the cancellation is successful.
Applicable for margin order placement
POST https://api-cloud.bitmart.com/spot/v1/margin/submit_order
Request
curl-H'X-BM-KEY:{{AccessKey}}'-H'X-BM-TIMESTAMP:{{currentTime}}'-H'X-BM-SIGN:{{SIGN}}'-X POST-d'{ "symbol":"BTC_USDT", "side":"buy", "type":"limit", "size":"10", "price":"7000"}'https://api-cloud.bitmart.com/spot/v1/margin/submit_order
Field | Type | Required? | Description |
---|---|---|---|
symbol | String | Yes | Trading pair (e.g. BTC_USDT) |
side | String | Yes | Side - buy =Buy order- sell =Sell order |
type | String | Yes | Order type - limit =Limit order- market =Market order- limit_maker =PostOnly order- ioc =IOC order |
clientOrderId | String | No | Client-defined OrderId(A combination of case-sensitive alphanumerics, all numbers, or all letters of up to 32 characters) |
type
=limit/limit_maker/ioc)Field | Type | Required? | Description |
---|---|---|---|
size | String | Yes | Order size |
price | String | Yes | Price |
type
=market,side
=buy)Field | Type | Required? | Description |
---|---|---|---|
notional | String | Yes | Required for placing orders by amount |
type
=market,side
=sell)Field | Type | Required? | Description |
---|---|---|---|
size | String | Yes | Required for placing orders by quantity |
Instruction
Buy-limit-maker
When "order price">="market lowest selling price", the system will refuse to accept the order after the order is submitted
When the "order price" <"the lowest selling price in the market", the order will be canceled by the system
Sell-limit-maker
When "order price" <= "market highest bid price", after the order is submitted, the system will refuse to accept the order
When "order price"> "market highest bid price", the order will be canceled by the system
Buy-ioc,Sell-ioc
Response
{"message":"OK","code":1000,"trace":"f7f74924-14da-42a6-b7f2-d3799dd9a612","data":{"order_id":1223181}}
Field | Type | Description |
---|---|---|
order_id | Long | Order ID |
Query a single order by orderId
POST https://api-cloud.bitmart.com/spot/v4/query/order
Refer toRate Limitation Details
Request
curl-H'X-BM-KEY:{{AccessKey}}'-H'X-BM-TIMESTAMP:{{currentTime}}'-H'X-BM-SIGN:{{SIGN}}'-X POST-d'{ "orderId":"118100034543076010", "queryState":"open", "recvWindow":5000}'https://api-cloud.bitmart.com/spot/v4/query/order
Field | Type | Required? | Description |
---|---|---|---|
orderId | String | Yes | Order id |
queryState | String | No | Query Type -open =Query order state [new, partially_filled] -history =QUery order state [filled, canceled, partially_canceled]) |
recvWindow | Long | No | Trade time limit, allowed range (0,60000], default: 5000 milliseconds |
queryState
is not filled in, all types of orders will be queried. If you know the order status, it is recommended to fill in, so that the query speed will be faster.Response
{"code":1000,"message":"success","data":{"orderId":"118100034543076010","clientOrderId":"118100034543076010","symbol":"BTC_USDT","side":"buy","orderMode":"spot","type":"limit","state":"filled","cancelSource":"","stpMode":"cancel_maker","price":"48800.00","priceAvg":"39999.00","size":"0.10000","filledSize":"0.10000","notional":"4880.00000","filledNotional":"3999.90000","createTime":1681701557927,"updateTime":1681701559408},"trace":"8aab576e50024648ae45e3cfaf90f9cf.60.16817015721880197"}
Field | Type | Description |
---|---|---|
orderId | String | Order ID |
clientOrderId | String | User-defined ID |
symbol | String | Trading pair (e.g. BTC_USDT) |
side | String | Order side - buy =buy- sell =sell |
orderMode | String | Order mode - spot =spot- iso_margin =isolated margin |
type | String | Order type - limit =limit order- market =market order- limit_maker =PostOnly order- ioc =IOC order |
state | String | Order status - new =The order has been accepted by the engine.- partially_filled =A part of the order has been filled.- filled =The order has been completed.- canceled =The order has been canceled.- partially_canceled =A part of the order has been filled , and the order has been canceled. |
cancelSource | String | Order cancellation reason(Return value only if the order state iscanceled orpartially_canceled, otherwise it will return an empty string) - user =User manually canceled.- system =System automatically canceled.- stp =Stp Cancelled. |
stpMode | String | Self transaction protection type - none =none- cancel_maker =cancel_maker- cancel_taker =cancel_taker- cancel_both =cancel_both |
price | String | Order price |
priceAvg | String | Average execution price of the order |
size | String | Order quantity |
filledSize | String | Actual execution quantity |
notional | String | Order amount |
filledNotional | String | Actual execution amount |
createTime | Long | Order creation time in milliseconds, e.g. 1681701557927 |
updateTime | Long | Last update time in milliseconds, e.g. 1681701557927 |
Query a single order by clientOrderId.
POST https://api-cloud.bitmart.com/spot/v4/query/client-order
Refer toRate Limitation Details
Request
curl-H'X-BM-KEY:{{AccessKey}}'-H'X-BM-TIMESTAMP:{{currentTime}}'-H'X-BM-SIGN:{{SIGN}}'-X POST-d'{ "clientOrderId":"118100034543076010", "queryState":"open", "recvWindow":5000}'https://api-cloud.bitmart.com/spot/v4/query/client-order
Field | Type | Required? | Description |
---|---|---|---|
clientOrderId | String | Yes | User-defined order id |
queryState | String | No | Query Type -open =Query order state [new, partially_filled] -history =Query order state [filled, canceled, partially_canceled]) |
recvWindow | Long | No | Trade time limit, allowed range (0,60000], default: 5000 milliseconds |
queryState
is not filled in, all types of orders will be queried. If you know the order status, it is recommended to fill in, so that the query speed will be faster.Response
{"code":1000,"message":"success","data":{"orderId":"118100034543076010","clientOrderId":"118100034543076010","symbol":"BTC_USDT","side":"buy","orderMode":"spot","type":"limit","state":"filled","cancelSource":"","stpMode":"cancel_maker","price":"48800.00","priceAvg":"39999.00","size":"0.10000","filledSize":"0.10000","notional":"4880.00000","filledNotional":"3999.90000","createTime":1681701557927,"updateTime":1681701559408},"trace":"8aab576e50024648ae45e3cfaf90f9cf.60.16817015721880197"}
Field | Type | Description |
---|---|---|
orderId | String | Order ID |
clientOrderId | String | User-defined ID |
symbol | String | Trading pair (e.g. BTC_USDT) |
side | String | Order side - buy =buy- sell =sell |
orderMode | String | Order mode - spot =spot- iso_margin =isolated margin |
type | String | Order type - limit =limit order- market =market order- limit_maker =PostOnly order- ioc =IOC order |
state | String | Order status - new =The order has been accepted by the engine.- partially_filled =A part of the order has been filled.- filled =The order has been completed.- canceled =The order has been canceled.- partially_canceled =A part of the order has been filled , and the order has been canceled. |
cancelSource | String | Order cancellation reason(Return value only if the order state iscanceled orpartially_canceled, otherwise it will return an empty string) - user =User manually canceled.- system =System automatically canceled.- stp =Stp Cancelled. |
stpMode | String | Self transaction protection type - none =none- cancel_maker =cancel_maker- cancel_taker =cancel_taker- cancel_both =cancel_both |
price | String | Order price |
priceAvg | String | Average execution price of the order |
size | String | Order quantity |
filledSize | String | Actual execution quantity |
notional | String | Order amount |
filledNotional | String | Actual execution amount |
createTime | Long | Order creation time in milliseconds, e.g. 1681701557927 |
updateTime | Long | Last update time in milliseconds, e.g. 1681701557927 |
Query the current opening order list of the account, only including state=[new, partially_filled] orders
POST https://api-cloud.bitmart.com/spot/v4/query/open-orders
Refer toRate Limitation Details
Request
curl-H'X-BM-KEY:{{AccessKey}}'-H'X-BM-TIMESTAMP:{{currentTime}}'-H'X-BM-SIGN:{{SIGN}}'-X POST-d'{ "symbol":"BTC_USDT", "orderMode":"spot", "startTime":1682239652931, "endTime":1682239657931, "limit":10, "recvWindow":5000}'https://api-cloud.bitmart.com/spot/v4/query/open-orders
Field | Type | Required? | Description |
---|---|---|---|
symbol | String | No | Trading pair (e.g. BTC_USDT) |
orderMode | String | No | Order mode -spot =spot trade -iso_margin =isolated margin trade |
startTime | Long | No | Start time in milliseconds, (e.g. 1681701557927) |
endTime | Long | No | End time in milliseconds, (e.g. 1681701557927) |
limit | Int | No | Number of queries, allowed range [1,200], default 200 |
recvWindow | Long | No | Trade time limit, allowed range (0,60000], default: 5000 milliseconds |
symbol
is not filled in, all trading pairs will be searched by defaultorderMode
is not filled in, and all order modes are searched by defaultlimit
is not filled, the default is 200, if it is filled, it cannot exceed 200startTime
andendTime
are not filled in, the data of the last 7 days will be displayed by default.endTime
must be greater than the value ofstartTime
.startTime
is filled in, query the historical records starting from this timestamp.endTime
is filled in, query the historical records starting from this timestamp.Response
{"code":1000,"message":"success","data":[{"orderId":"125213058731346056","clientOrderId":"125213058731346056","symbol":"BTC_USDT","side":"buy","orderMode":"spot","type":"limit","state":"new","cancelSource":"","stpMode":"cancel_maker","price":"800.00","priceAvg":"0.00","size":"0.10000","filledSize":"0.00000","notional":"80.00000000","filledNotional":"0.00000000","createTime":1681892198608,"updateTime":1681892198946}],"trace":"5e1c9f98d761443ea559c7af71ca57fa.60.16818922069220005"}
Field | Type | Description |
---|---|---|
orderId | String | Order ID |
clientOrderId | String | User-defined ID |
symbol | String | Trading pair (e.g. BTC_USDT) |
side | String | Order side - buy =buy- sell =sell |
orderMode | String | Order mode - spot =spot- iso_margin =isolated margin |
type | String | Order type - limit =limit order- market =market order- limit_maker =PostOnly order- ioc =IOC order |
state | String | Order status - new =The order has been accepted by the engine.- partially_filled =a part of the order has been filled. |
cancelSource | String | Order cancellation reason(Return value only if the order state iscanceled orpartially_canceled, otherwise it will return an empty string) - user =User manually canceled.- system =System automatically canceled. |
stpMode | String | 自成交保护类型 - none =不使用- cancel_maker =撤销maker- cancel_taker =撤销taker- cancel_both =全部撤销 |
price | String | Order price |
priceAvg | String | Average execution price of the order |
size | String | Order quantity |
filledSize | String | Actual execution quantity |
notional | String | Order amount |
filledNotional | String | Actual execution amount |
createTime | Long | Order creation time in milliseconds, e.g. 1681701557927 |
updateTime | Long | Last update time in milliseconds, e.g. 1681701557927 |
Query the account history order list, only including state=[filled, canceled, partially_canceled] orders
POST https://api-cloud.bitmart.com/spot/v4/query/history-orders
Refer toRate Limitation Details
Request
curl-H'X-BM-KEY:{{AccessKey}}'-H'X-BM-TIMESTAMP:{{currentTime}}'-H'X-BM-SIGN:{{SIGN}}'-X POST-d'{ "symbol":"BTC_USDT", "orderMode":"spot", "startTime":1682239502394, "endTime":1682239507394, "limit":10, "recvWindow":5000}'https://api-cloud.bitmart.com/spot/v4/query/history-orders
Field | Type | Required? | Description |
---|---|---|---|
symbol | String | No | Trading pair (e.g. BTC_USDT) |
orderMode | String | No | Order mode -spot =spot trade -iso_margin =isolated margin trade |
startTime | Long | No | Start time in milliseconds, (e.g. 1681701557927) |
endTime | Long | No | End time in milliseconds, (e.g. 1681701557927) |
limit | Int | No | Number of queries, allowed range [1,200], default 200 |
recvWindow | Long | No | Trade time limit, allowed range (0,60000], default: 5000 milliseconds |
symbol
is not filled in, all trading pairs will be searched by defaultorderMode
is not filled in, and all order modes are searched by defaultlimit
is not filled, the default is 200, if it is filled, it cannot exceed 200startTime
andendTime
are not filled in, the data of the last 7 days will be displayed by default.endTime
must be greater than the value ofstartTime
.startTime
is filled in, query the historical records starting from this timestamp.endTime
is filled in, query the historical records starting from this timestamp.Response
{"code":1000,"message":"success","data":[{"orderId":"118100034543076010","clientOrderId":"118100034543076010","symbol":"BTC_USDT","side":"buy","orderMode":"spot","type":"limit","state":"filled","cancelSource":"","stpMode":"cancel_maker","price":"48800.00","priceAvg":"39999.00","size":"0.10000","filledSize":"0.10000","notional":"4880.00000000","filledNotional":"3999.90000000","createTime":1681701557927,"updateTime":1681701559408}],"trace":"acc282ba9e434cc1a90bf6326de9e119.64.16818913787390001"}
Field | Type | Description |
---|---|---|
orderId | String | Order ID |
clientOrderId | String | User-defined ID |
symbol | String | Trading pair (e.g. BTC_USDT) |
side | String | Order side - buy =buy- sell =sell |
orderMode | String | Order mode - spot =spot- iso_margin =isolated margin |
type | String | Order type - limit =limit order- market =market order- limit_maker =PostOnly order- ioc =IOC order |
state | String | Order status - filled =The order has been completed.- canceled =The order has been canceled.- partially_canceled =A part of the order has been filled , and the order has been canceled. |
cancelSource | String | Order cancellation reason(Return value only if the order state iscanceled orpartially_canceled, otherwise it will return an empty string) - user =User manually canceled.- system =System automatically canceled.- stp =Stp Cancelled. |
stpMode | String | Self transaction protection type - none =none- cancel_maker =cancel_maker- cancel_taker =cancel_taker- cancel_both =cancel_both |
price | String | Order price |
priceAvg | String | Average execution price of the order |
size | String | Order quantity |
filledSize | String | Actual execution quantity |
notional | String | Order amount |
filledNotional | String | Actual execution amount |
createTime | Long | Order creation time in milliseconds, e.g. 1681701557927 |
updateTime | Long | Last update time in milliseconds, e.g. 1681701557927 |
Query all transaction records of the account
POST https://api-cloud.bitmart.com/spot/v4/query/trades
Refer toRate Limitation Details
Request
curl-H'X-BM-KEY:{{AccessKey}}'-H'X-BM-TIMESTAMP:{{currentTime}}'-H'X-BM-SIGN:{{SIGN}}'-X POST-d'{ "symbol":"BTC_USDT", "orderMode":"spot", "startTime":1682239845952, "endTime":1682239850952, "limit":10, "recvWindow":5000}'https://api-cloud.bitmart.com/spot/v4/query/trades
Field | Type | Required? | Description |
---|---|---|---|
symbol | String | No | Trading pair (e.g. BTC_USDT) |
orderMode | String | No | Order mode -spot =spot trade -iso_margin =isolated margin trade |
startTime | Long | No | Start time in milliseconds, (e.g. 1681701557927) |
endTime | Long | No | End time in milliseconds, (e.g. 1681701557927) |
limit | Int | No | Number of queries, allowed range [1,200], default 200 |
recvWindow | Long | No | Trade time limit, allowed range (0,60000], default: 5000 milliseconds |
symbol
is not filled in, all trading pairs will be searched by defaultorderMode
is not filled in, and all order modes are searched by defaultlimit
is not filled, the default is 200, if it is filled, it cannot exceed 200startTime
andendTime
are not filled in, the data of the last 7 days will be displayed by default.endTime
must be greater than the value ofstartTime
.startTime
is filled in, query the historical records starting from this timestamp.endTime
is filled in, query the historical records starting from this timestamp.Response
{"code":1000,"message":"success","data":[{"tradeId":"125277182593091639","orderId":"125213058731346053","clientOrderId":"125213058731346053","symbol":"BTC_USDT","side":"buy","orderMode":"spot","type":"limit","stpMode":"cancel_maker","price":"39999.00","size":"0.10000","notional":"3999.90000000","fee":"9.99975000","feeCoinName":"USDT","tradeRole":"taker","createTime":1681891896569,"updateTime":1681891896569}],"trace":"5e1c9f98d761443ea559c7af71ca57fa.61.16819603026240455"}
Field | Type | Description |
---|---|---|
tradeId | String | Trade id |
orderId | String | Order ID |
clientOrderId | String | User-defined ID |
symbol | String | Trading pair (e.g. BTC_USDT) |
side | String | Order side - buy =buy- sell =sell |
orderMode | String | Order mode - spot =spot- iso_margin =isolated margin |
type | String | Order type - limit =limit order- market =market order- limit_maker =PostOnly order- ioc =IOC order |
stpMode | String | Self transaction protection type - none =none- cancel_maker =cancel_maker- cancel_taker =cancel_taker- cancel_both =cancel_both |
price | String | Transaction price |
size | String | Transaction quantity |
notional | String | Transaction amount |
fee | String | Fee amount |
feeCoinName | String | Fee coin name |
tradeRole | String | Trade role - taker =Take orders, take the initiative to deal- maker =Pending order, passive transaction |
createTime | Long | Order creation time in milliseconds, e.g. 1681701557927 |
updateTime | Long | Last update time in milliseconds, e.g. 1681701557927 |
Query all transaction records of a single order
POST https://api-cloud.bitmart.com/spot/v4/query/order-trades
Refer toRate Limitation Details
Request
curl-H'X-BM-KEY:{{AccessKey}}'-H'X-BM-TIMESTAMP:{{currentTime}}'-H'X-BM-SIGN:{{SIGN}}'-X POST-d'{ "orderId":"118100034543076010", "recvWindow":5000}'https://api-cloud.bitmart.com/spot/v4/query/order-trades
Field | Type | Required? | Description |
---|---|---|---|
orderId | String | Yes | Order id |
recvWindow | Long | No | Trade time limit, allowed range (0,60000], default: 5000 milliseconds |
orderId
OrderID is required and cannot be emptyResponse
{"code":1000,"message":"success","data":[{"tradeId":"122177405911172002","orderId":"118100034543076010","clientOrderId":"118100034543076010","symbol":"BTC_USDT","side":"buy","orderMode":"spot","type":"limit","stpMode":"cancel_maker","price":"39999.00","size":"0.10000","notional":"3999.90000000","fee":"9.99975000","feeCoinName":"USDT","tradeRole":"taker","createTime":1681701559210,"updateTime":1681701559210}],"trace":"5e1c9f98d761443ea559c7af71ca57fa.62.16818934219090007"}
Field | Type | Description |
---|---|---|
tradeId | String | Trade id |
orderId | String | Order ID |
clientOrderId | String | User-defined ID |
symbol | String | Trading pair (e.g. BTC_USDT) |
side | String | Order side - buy =buy- sell =sell |
orderMode | String | Order mode - spot =spot- iso_margin =isolated margin |
type | String | Order type - limit =limit order- market =market order- limit_maker =PostOnly order- ioc =IOC order |
stpMode | String | Self transaction protection type - none =none- cancel_maker =cancel_maker- cancel_taker =cancel_taker- cancel_both =cancel_both |
price | String | Transaction price |
size | String | Transaction quantity |
notional | String | Transaction amount |
fee | String | Fee amount |
feeCoinName | String | Fee coin name |
tradeRole | String | Trade role - taker =Take orders, take the initiative to deal- maker =Pending order, passive transaction |
createTime | Long | Order creation time in milliseconds, e.g. 1681701557927 |
updateTime | Long | Last update time in milliseconds, e.g. 1681701557927 |
Applicable to isolated margin account borrowing operations
POST https://api-cloud.bitmart.com/spot/v1/margin/isolated/borrow
Request
curl-H'X-BM-KEY:{{AccessKey}}'-H'X-BM-TIMESTAMP:{{currentTime}}'-H'X-BM-SIGN:{{SIGN}}'-X POST-d'{ "symbol":"BTC_USDT", "currency":"BTC", "amount":"1"}'https://api-cloud.bitmart.com/spot/v1/margin/isolated/borrow
Field | Type | Required? | Description |
---|---|---|---|
symbol | String | Yes | Trading pair (e.g. BMX_USDT) |
currency | String | Yes | Borrowing currency, selected according to the borrowing trading pair(like BTC or USDT) |
amount | String | Yes | Amount of borrowing (precision: 8 decimal places) |
Response
{"message":"OK","code":1000,"trace":"f7f74924-14da-42a6-b7f2-d3799dd9a612","data":{"borrow_id":"113896"}}
Field | Type | Description |
---|---|---|
borrow_id | String | Borrowing order ID, only successful borrowing will be returned |
Applicable to isolated margin account repayment operations
POST https://api-cloud.bitmart.com/spot/v1/margin/isolated/repay
Request
curl-H'X-BM-KEY:{{AccessKey}}'-H'X-BM-TIMESTAMP:{{currentTime}}'-H'X-BM-SIGN:{{SIGN}}'-X POST-d'{ "symbol":"BTC_USDT", "currency":"BTC", "amount":"1"}'https://api-cloud.bitmart.com/spot/v1/margin/isolated/repay
Field | Type | Required? | Description |
---|---|---|---|
symbol | String | Yes | Trading pair (e.g. BMX_USDT) |
currency | String | Yes | Repayment currency, selected according to the borrowing trading pair(like BTC or USDT) |
amount | String | Yes | Amount of repayments (precision: 8 decimal places) |
Response
{"message":"OK","code":1000,"trace":"f7f74924-14da-42a6-b7f2-d3799dd9a612","data":{"repay_id":"123165"}}
Field | Type | Description |
---|---|---|
repay_id | String | Repayment order ID, only successful repayment will be returned |
Applicable to the inquiry of borrowing records of an isolated margin account
GET https://api-cloud.bitmart.com/spot/v1/margin/isolated/borrow_record
Request
curl-H'X-BM-KEY:{{AccessKey}}' https://api-cloud.bitmart.com/spot/v1/margin/isolated/borrow_record?symbol=BTC_USDT
Field | Type | Required? | Description |
---|---|---|---|
symbol | String | Yes | Trading pair (e.g. BMX_USDT) |
borrow_id | String | No | Borrow order id |
start_time | Long | No | Query start time: Timestamp |
end_time | Long | No | Query end time: Timestamp |
N | Int | No | Query record size, allowed range[1-100]. Default is 50 |
Response
{"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},...]}}
Field | Type | Description |
---|---|---|
borrow_id | String | Borrow order id |
symbol | String | Trading pair |
currency | String | Currency |
borrow_amount | String | The total principal amount borrowed (precision: 8 decimal places) |
daily_interest | String | Daily interest |
hourly_interest | String | Hourly interest |
interest_amount | String | Total interest (precision: 8 decimal places) |
create_time | Long | Order creation time |
Applicable to the inquiry of repayment records of isolated margin account
GET https://api-cloud.bitmart.com/spot/v1/margin/isolated/repay_record
Request
curl-H'X-BM-KEY:{{AccessKey}}'https://api-cloud.bitmart.com/spot/v1/margin/isolated/repay_record?symbol=BTC_USDT
Field | Type | Required? | Description |
---|---|---|---|
symbol | String | Yes | Trading pair (e.g. BMX_USDT) |
repay_id | String | No | Repayment ID |
currency | String | No | Currency |
start_time | Long | No | Query start time: Timestamp |
end_time | Long | No | Query end time: Timestamp |
N | Int | No | Query record size, allowed range[1-100]. Default is 50 |
Response
{"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"},...]}}
Field | Type | Description |
---|---|---|
repay_id | String | Repayment ID |
repay_time | Long | Repayment Timestamp |
symbol | String | Repayment trading pairs(like BTC_USDT) |
currency | String | Repayment currency |
repaid_amount | String | Repayment amount |
repaid_principal | String | The principal amount returned by this repayment |
repaid_interest | String | Interest returned by this repayment |
Applicable for checking the borrowing rate and borrowing amount of trading pairs
GET https://api-cloud.bitmart.com/spot/v1/margin/isolated/pairs
Request
curl-H'X-BM-KEY:{{AccessKey}}'https://api-cloud.bitmart.com/spot/v1/margin/isolated/pairs?symbol=BTC_USDT
Field | Type | Required? | Description |
---|---|---|---|
symbol | String | No | It can be multiple-choice; if not filled in, then return all, like BTC_USDT, ETH_USDT |
Response
{"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"}},...]}}
Field | Type | Description |
---|---|---|
symbol | String | Trading pair |
max_leverage | String | Leverage multiplier |
symbol_enabled | Boolean | Whether the trading pair is enabled |
currency | String | Currency |
daily_interest | String | Daily interest |
hourly_interest | String | Hourly interest |
max_borrow_amount | String | The maximum amount of borrowing (precision: 8 decimal places) |
min_borrow_amount | String | The minimum amount of borrowing (precision: 8 decimal places) |
borrowable_amount | String | The current available amount of borrowing (precision: 8 decimal places) |
Sub-account spot asset transfer to Main-account (For Main Account)
POST https://api-cloud.bitmart.com/account/sub-account/main/v1/sub-to-main
Request
curl-H'X-BM-KEY:{{AccessKey}}'-H'X-BM-TIMESTAMP:{{currentTime}}'-H'X-BM-SIGN:{{SIGN}}'-X POST-d'{ "requestNo":"4e2adcff-2122-1ce7-2557-4f65d2ce1ca2", "amount":"1", "currency":"BTC", "subAccount":"[email protected]"}'https://api-cloud.bitmart.com/account/sub-account/main/v1/sub-to-main
Field | Type | Required? | Description |
---|---|---|---|
requestNo | String | Yes | UUID,unique identifier, max length 64 |
amount | String | Yes | Transfer amount |
currency | String | Yes | Currency |
subAccount | String | Yes | Sub-Account username |
Response
{"code":1000,"trace":"886fb6ae-456b-4654-b4e0-d681ac05cea1","message":"OK","data":{}}
If code value is 1000,it means the transfer is successful.
Sub-Account spot asset transfer to Main-Account spot asset (For Sub-Account)
POST https://api-cloud.bitmart.com/account/sub-account/sub/v1/sub-to-main
Request
curl-H'X-BM-KEY:{{AccessKey}}'-H'X-BM-TIMESTAMP:{{currentTime}}'-H'X-BM-SIGN:{{SIGN}}'-X POST-d'{ "requestNo":"4e2adcff-2122-1ce7-2557-4f65d2ce1ca2", "amount":"1", "currency":"BTC"}'https://api-cloud.bitmart.com/account/sub-account/sub/v1/sub-to-main
Field | Type | Required? | Description |
---|---|---|---|
requestNo | String | Yes | UUID,unique identifier, max length 64 |
amount | String | Yes | Transfer amount |
currency | String | Yes | Currency |
Response
{"code":1000,"trace":"886fb6ae-456b-4654-b4e0-d681ac05cea1","message":"OK","data":{}}
If code value is 1000,it means the transfer is successful.
Main-account spot asset transfer to Sub-account spot asset (For Main Account)
POST https://api-cloud.bitmart.com/account/sub-account/main/v1/main-to-sub
Request
curl-H'X-BM-KEY:{{AccessKey}}'-H'X-BM-TIMESTAMP:{{currentTime}}'-H'X-BM-SIGN:{{SIGN}}'-X POST-d'{ "requestNo":"4e2adcff-2122-1ce7-2557-4f65d2ce1ca2", "amount":"1", "currency":"BTC", "subAccount":"[email protected]"}'https://api-cloud.bitmart.com/account/sub-account/main/v1/main-to-sub
Field | Type | Required? | Description |
---|---|---|---|
requestNo | String | Yes | UUID,unique identifier, max length 64 |
amount | String | Yes | Transfer amount |
currency | String | Yes | Currency |
subAccount | String | Yes | Sub-Account username |
Response
{"code":1000,"trace":"886fb6ae-456b-4654-b4e0-d681ac05cea1","message":"OK","data":{}}
If code value is 1000,it means the transfer is successful.
Sub-Account spot asset transfer to Sub-Account spot asset (For Main Account)
POST https://api-cloud.bitmart.com/account/sub-account/main/v1/sub-to-sub
Request
curl-H'X-BM-KEY:{{AccessKey}}'-H'X-BM-TIMESTAMP:{{currentTime}}'-H'X-BM-SIGN:{{SIGN}}'-X POST-d'{ "requestNo":"4e2adcff-2122-1ce7-2557-4f65d2ce1ca2", "amount":"1", "currency":"BTC", "fromAccount":"[email protected]", "toAccount":"[email protected]"}'https://api-cloud.bitmart.com/account/sub-account/main/v1/sub-to-sub
Field | Type | Required? | Description |
---|---|---|---|
requestNo | String | Yes | UUID,unique identifier, max length 64 |
amount | String | Yes | Transfer amount |
currency | String | Yes | Currency |
fromAccount | String | Yes | Transfer out Sub-Account username |
toAccount | String | Yes | Transfer to Sub-Account username |
Response
{"code":1000,"trace":"886fb6ae-456b-4654-b4e0-d681ac05cea1","message":"OK","data":{}}
If code value is 1000,it means the transfer is successful.
Query Sub-Account Spot Asset Transfer History (For Main Account)
GET https://api-cloud.bitmart.com/account/sub-account/main/v1/transfer-list
Request
curl-H'X-BM-KEY:{{AccessKey}}'https://api-cloud.bitmart.com/account/sub-account/main/v1/transfer-list?moveType=spot to spot
Field | Type | Required? | Description |
---|---|---|---|
moveType | String | Yes | type - spot to spot =Spot wallet transfer to spot wallet |
accountName | String | No | Sub-Account username (default: all sub-accounts will be queried) |
N | Int | Yes | Recent N records, allowed range[1,100] |
Response
{"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}]}}
Field | Type | Description |
---|---|---|
fromAccount | String | Transfer out Sub-Account username |
fromWalletType | String | Transfer out wallet type - spot =spot wallet |
toAccount | String | Transfer to Sub-Account username |
toWalletType | String | Transfer to wallet type - spot =spot wallet |
currency | String | currency |
amount | String | Transfer amount |
submissionTime | Long | The request timestamp is accurate to seconds(UTC-0) |
Get account spot asset transfer history (For Main/Sub Account)
GET https://api-cloud.bitmart.com/account/sub-account/v1/transfer-history
Request
curl-H'X-BM-KEY:{{AccessKey}}'https://api-cloud.bitmart.com/account/sub-account/v1/transfer-history?moveType=spot to spot
Field | Type | Required? | Description |
---|---|---|---|
moveType | String | Yes | type - spot to spot =Spot wallet transfer to spot wallet |
N | Int | Yes | Recent N records, allowed range[1,100] |
Response
{"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}]}}
Field | Type | Description |
---|---|---|
fromAccount | String | Transfer out Sub-Account username |
fromWalletType | String | Transfer out wallet type - spot =spot wallet |
toAccount | String | Transfer to Sub-Account username |
toWalletType | String | Transfer to wallet type - spot =spot wallet |
currency | String | currency |
amount | String | Transfer amount |
submissionTime | Long | The request timestamp is accurate to seconds(UTC-0) |
Get Sub-Account spot wallet balance (For Main Account)
GET https://api-cloud.bitmart.com/account/sub-account/main/v1/wallet
Request
curl-H'X-BM-KEY:{{AccessKey}}'https://api-cloud.bitmart.com/account/sub-account/main/v1/wallet?subAccount=[email protected]
Field | Type | Required? | Description |
---|---|---|---|
subAccount | String | Yes | Sub-Account username |
currency | String | No | currency |
Response
{"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"}]}}
Field | Type | Description |
---|---|---|
currency | String | Token symbol, e.g., 'BTC' |
name | String | Token name, e.g., 'Bitcoin' |
available | String | Available Balance |
frozen | String | Frozen Balance |
Get Sub-Account list (For Main Account)
GET https://api-cloud.bitmart.com/account/sub-account/main/v1/subaccount-list
Request
curl-H'X-BM-KEY:{{AccessKey}}'https://api-cloud.bitmart.com/account/sub-account/main/v1/subaccount-list
Response
{"message":"OK","code":1000,"trace":"c03c22c3-75db-4aaa-9500-6dcd63dd9ccf","data":{"subAccountList":[{"accountName":"[email protected]","status":1},{"accountName":"[email protected]","status":1}]}}
Field | Type | Description |
---|---|---|
accountName | String | Sub-Account username |
status | Int | Account Status - 0 =disabled in background- 1 =normal- 2 =frozen by main account |
Public Channel:wss://ws-manager-compress.bitmart.com/api?protocol=1.1
Private Channel:wss://ws-manager-compress.bitmart.com/user?protocol=1.1
The message format sent by the client to the BitMart server.
{"op":"<operation>", "args":["<topic1>","<topic2>"]}
Explain:
operation
request action, value: [subscribe
=Subscribe channel,unsubscribe
=Unsubscribe channel,login
=Account login]args
request parameter, value: channel array or parameters required for logintopic
channel topic, composed of<channel>:<filter>
Example:
{"op": "subscribe", "args": ["spot/ticker:BTC_USDT"]}
{"op": "login", "args": ["80618e45710812162b04892c7ee5ead4a3cc3e56", "1589267764859", "3ceeb7e1b8cb165a975e28a2e2dfaca4d30b358873c035 1c1a071d8c83314556"]}
The format of the success message returned by the BitMart server to the client.
The returned field not containserrorCode
Successful Response Format
Whenop=login:{"event":"<operation>"}Whenop=unsubscribe:{"event":"<operation>","topic":"<topic>"}Whenop=subscribe:{"table":"<topic1>","data":"[{"<value1>","<value2>"}]"}{"table":"<topic2>","data":"[{"<value1>","<value2>"}]"}
Example:
{"event":"login"}
{"topic":"spot/ticker:BTC_USDT","event":"subscribe"}
{"event":"unsubscribe","topic":"spot/ticker:BTC_USDT"}
{"table":"spot/ticker:BTC_USDT","data":"[{"<value1>","<value2>"}]"}
The format of the failed message returned by the BitMart server to the client.
If the returned field containserrorCode
, it means failure. For the reason of failure, please refer to:WebSocket Error Code
Failed Response Format
{"event":"<operation>","errorMessage":"<error_message>","errorCode":"<error_code>"}
{"event":"login","errorCode":"91002","errorMessage":"API KEY not found"}
{"event":"subscribe","errorCode":"90004","errorMessage":"Invalid channel param"}
WebSocket uses the Ping/Pong mechanism to maintain the connection. Once the connection is opened, a text 'ping' is sent every N seconds, and the remote endpoint will return a text 'pong' to keep responding. This is an approach to stay active. It helps to keep the connection open, especially if there is a short timeout proxy on an inactive connection.
If no data is returned after connecting to WebSocket, the link will be automatically disconnected after 20s. It is recommended that the user do the following:
The following is the data format of ping: (Example in Java pseudocode)
ws.send(new TextWebSocketFrame("ping");
Create 20 connectors and 1 receiving function in your code, and each connector subscribes to 100 channels, so that you can easily subscribe to 2000 channels.
Connection that do not send task subscription data within 5 minutes will be considered lifeless and the server will close the connection.
Only when the market data is returned after subscription, the remote service will compress the data and return it to the client. The remote service returns data in two formats, Binary format and Text format. When the binary format is returned, the data has been compressed by the remote service and the client needs to decompress it.
zlib is a library for data compression, developed by Jean-loup Gailly and Mark Adler. The first version (v0.9) was published on May 1, 1995. zlib uses the abstract DEFLATE algorithm, originally written for the libpng library, and later generally used by many software. This library is free.Official link http://zlib.net/
For more and more complete programming codes, please refer to theQuick Start API
Python
importzlibdefinflate(data):decompress=zlib.decompressobj(-zlib.MAX_WBITS)inflated=decompress.decompress(data)inflated+=decompress.flush()returninflated.decode('UTF-8')
Nodejs
constzlib=require('zlib');zlib.inflateRawSync(data);
Golang
import("compress/flate")funczipDecode(in[]byte)([]byte,error){reader:=flate.NewReader(bytes.NewReader(in))deferreader.Close()returnioutil.ReadAll(reader)}string(zipDecode(data))
php
@link https://php.net/manual/en/function.gzinflate.phpgzinflate($data)
Java
importjava.util.zip.*;publicclassStringCompressUtil{privatestaticStringuncompress(ByteBufbuf){try{byte[]temp=newbyte[buf.readableBytes()];ByteBufInputStreambis=newByteBufInputStream(buf);bis.read(temp);bis.close();Inflaterdecompresser=newInflater(true);decompresser.setInput(temp,0,temp.length);StringBuildersb=newStringBuilder();byte[]result=newbyte[1024];while(!decompresser.finished()){intresultLength=decompresser.inflate(result);sb.append(newString(result,0,resultLength,"UTF-8"));}decompresser.end();returnsb.toString();}catch(Exceptione){e.printStackTrace();}return"";}publicstaticStringdecode(ByteBufcontent){byte[]bytes=newbyte[content.readableBytes()];content.readBytes(bytes);ByteBufbyteBuf=Unpooled.wrappedBuffer(bytes);Stringstr=uncompress(byteBuf);returnstr;}}StringCompressUtil.decode(data)
Users can subscribe to one or more channels, and the total length of multiple channels cannot exceed 4096 bytes
subscribe
{"op":"subscribe","args":["<topic>"]}
<channel>:<filter>
Subscribe Request
{"op":"subscribe","args":["spot/ticker:BTC_USDT"]}
Subscription successful
{"event":"subscribe","topic":"spot/ticker:BTC_USDT"}
After successful subscription, push data
{"table":"spot/ticker:BTC_USDT","data":[]}
Cancel subscription to one or more channels
unsubscribe
{"op":"unsubscribe","args":["<topic>"]}
<channel>:<filter>
Unsubscribe Request
{"op":"unsubscribe","args":["spot/ticker:BTC_USDT","spot/ticker:ETH_USDT"]}
Unsubscribe successful
{"event":"unsubscribe","topic":"spot/ticker:BTC_USDT"}{"event":"unsubscribe","topic":"spot/ticker:ETH_USDT"}
Get the latest price, bid price, ask price and 24-hour trading volume
Subscribe Request
{"op":"subscribe","args":["spot/ticker:BTC_USDT"]}
Message Format:
{"op": "subscribe", "args": ["spot/ticker:<symbol>"]}
BTC_USDT
Subscription successful
{"event":"subscribe","topic":"spot/ticker:BTC_USDT"}
{"event":"subscribe","topic":"spot/ticker:<symbol>"}
Push data
{"data":[{"ask_px":"36000","ask_sz":"1.021","base_volume_24h":"2.02000","bid_px":"35000","bid_sz":"11","fluctuation":"-0.0001","high_24h":"35003.04","last_price":"35000.00","low_24h":"35000.00","ms_t":1709024652967,"open_24h":"35003.03","quote_volume_24h":"70700.00","s_t":1709024652,"symbol":"BTC_USDT"}],"table":"spot/ticker"}
Return data description:
Field | Type | Description |
---|---|---|
symbol | String | Trading pair,BTC_USDT |
last_price | String | Last trading price |
high_24h | String | 24-hour highest price |
low_24h | String | 24-hour lowest price |
open_24h | String | 24-hour open price |
base_volume_24h | String | 24-hour traded volume in base currency |
quote_volume_24h | String | 24-hour traded volume in quote currency |
s_t | Long | Create Time (timestamp in seconds) (The field will be removed, please use the ms_t field) |
ms_t | Long | Data push Timestamp (timestamp in millisecond) |
fluctuation | String | 24-hour Price change |
bid_px | String | Best bid price |
bid_sz | String | Best bid quantity |
ask_px | String | Best ask price |
ask_sz | String | Best bid quantity |
Get the spot K-line data
Subscribe Request
{"op":"subscribe","args":["spot/kline1m:BTC_USDT"]}
Message Format:
{"op": "subscribe", "args": ["<channel>:<symbol>"]}
spot/kline1m
BTC_USDT
Channel Name | Description |
---|---|
spot/kline1m | 1-min KLine Channel |
spot/kline5m | 5-min KLine Channel |
spot/kline15m | 15-min KLine Channel |
spot/kline30m | 30-min KLine Channel |
spot/kline1H | 1-hour KLine Channel |
spot/kline2H | 2-hour KLine Channel |
spot/kline4H | 4-hour KLine Channel |
spot/kline1D | 1-day KLine Channel |
spot/kline1W | 1-week KLine Channel |
spot/kline1M | 1-month KLine Channel |
Subscription successful
{"topic":"spot/kline1m:BTC_USDT","event":"subscribe"}
{"event":"subscribe","topic":"<channel>:<symbol>"}
Push data
{"data":[{"candle":[1709025360,"162.01","162.02","162.03","162.04","336.452694"],"symbol":"BTC_USDT"}],"table":"spot/kline1m"}
Return data description:
Field | Type | Description |
---|---|---|
symbol | String | Trading pair,BTC_USDT |
candle | List | KLine data |
Return depth data, each push is the full data
Subscribe Request
{"op":"subscribe","args":["spot/depth5:BTC_USDT"]}
Message Format:
{"op": "subscribe", "args": ["<channel>:<symbol>"]}
spot/depth5
BTC_USDT
Channel Name | Description |
---|---|
spot/depth5 | 5 Level Depth Channel |
spot/depth20 | 20 Level Depth Channel |
spot/depth50 | 50 Level Depth Channel |
Subscription successful
{"topic":"spot/depth5:BTC_USDT","event":"subscribe"}
{"event":"subscribe","topic":"<channel>:<symbol>"}
Push data
{"table":"spot/depth5","data":[{"asks":[["161.96","7.37567"]],"bids":[["161.94","4.552355"]],"symbol":"ETH_USDT","ms_t":1542337219120}]}
Return data description:
Field | Type | Description |
---|---|---|
symbol | String | Trading pair,BTC_USDT |
asks | List | Ask depth |
bids | List | Bid depth |
ms_t | Long | Data push Timestamp (Timestamp in millisecond) |
Return depth data, support the creation of a local full depth cache data
Subscribe Request
{"op":"subscribe","args":["spot/depth/increase100:BTC_USDT"]}
Full depth snapshot data Request
{"op":"request","args":["spot/depth/increase100:BTC_USDT"]}
Message Format:
{"op": "<op>", "args": ["spot/depth/increase100:<symbol>"]}
subscribe
=Subscribe, You will receive a message that the subscription is successful, and then you will receive incremental depth data pushed in real time.request
=Single request for the latest depth snapshot, You will receive a full depth of data immediately.spot/depth/increase100
, Support 100 levelsBTC_USDT
Subscription successful
{"topic":"spot/depth/increase100:BTC_USDT","event":"subscribe"}
{"event":"subscribe","topic":"spot/depth/increase100:<symbol>"}
Full depth snapshot data
{"data":[{"asks":[["23200","0.69959"],["28000.00","0.20000"]],"bids":[["23105","1.80114"]],"ms_t":1698292343610,"symbol":"BTC_USDT","type":"snapshot","version":4}],"table":"spot/depth/increase100"}
Incremental depth data
{"data":[{"asks":[["23200","0.59959"]],"bids":[],"ms_t":1698292358292,"symbol":"BTC_USDT","type":"update","version":5}],"table":"spot/depth/increase100"}
Return data description:
Field | Type | Description |
---|---|---|
symbol | String | Trading pair,BTC_USDT |
asks | List | Ask depth |
bids | List | Bid depth |
ms_t | Long | Data push Timestamp (Timestamp in millisecond) |
version | Long | data version |
type | String | data type - snapshot =Full depth snapshot data- update =Incremental depth data |
{"op": "subscribe", "args": ["spot/depth/increase100:<symbol>"] }
type=snapshot
(full data) andtype=update
(update)local cache
. If there is nolocal cache
, create one.local cache
. The update rules are as follows:updated to the local cache
.local cache
.absolute value
of the current pending order volume at this price, rather than the relative change.{"op": "request", "args": ["spot/depth/increase100:<symbol>"] }
to obtain the latest depth snapshot (type=snapshot in the message), and add the depth The content in the snapshot is overwritten to thelocal cache
, and then the logic continues from step 2.Get the latest real-time transaction data
Subscribe Request
{"op":"subscribe","args":["spot/trade:BTC_USDT"]}
Message Format:
{"op": "subscribe", "args": ["spot/trade:<symbol>"]}
BTC_USDT
Subscription successful
{"event":"subscribe","topic":"spot/trade:BTC_USDT"}
{"event":"subscribe","topic":"spot/trade:<symbol>"}
Push data
{"table":"spot/trade","data":[{"symbol":"ETH_USDT","price":"162.12","side":"buy","size":"11.085","s_t":1542337219,"ms_t":1542337219120}]}
Return data description:
Field | Type | Description |
---|---|---|
symbol | String | Trading pair,BTC_USDT |
side | String | Side of trade for taker order(buy orsell ) |
price | String | Trade price for taker order |
size | String | Trade quantity for taker order |
s_t | Long | Order execution time (Timestamp in seconds) (The field will be removed, please use the ms_t field) |
ms_t | Long | Order execution time (Timestamp in millisecond) |
Request Format
{"op":"login","args":["<YOUR_API_KEY>","<timestamp>","<sign>"]}
Login Example
{"op":"login","args":["80618e45710812162b04892c7ee5ead4a3cc3e56","1589267764859","3ceeb7e1b8cb165a975e28a2e2dfaca4d30b358873c0351c1a071d8c83314556"]}
Response
{"event":"login"}
Assume that the values of the API requested by the user is as follows:
Ues Javascript create paramsign
:sign =CryptoJS.HmacSHA256(1589267764859 + "#" + test001 + "#" + "bitmart.WebSocket", '6c6c98544461bbe71db2bca4c6d7fd0021e0ba9efc215f9c6ad41852df9d9df9')
= 3ceeb7e1b8cb165a975e28a2e2dfaca4d30b358873c0351c1a071d8c83314556
Ues Shell create paramsign
:sign =echo -n '1589267764859#test001#bitmart.WebSocket' | openssl dgst -sha256 -hmac "6c6c98544461bbe71db2bca4c6d7fd0021e0ba9efc215f9c6ad41852df9d9df9"
(stdin)= 3ceeb7e1b8cb165a975e28a2e2dfaca4d30b358873c0351c1a071d8c83314556
The final login parameters are:
{"op": "login", "args": ["80618e45710812162b04892c7ee5ead4a3cc3e56", "1589267764859", "3ceeb7e1b8cb165a975e28a2e2dfaca4d30b358873c0351c1a071d8c83314556"]}
Subscribe to the order execution progress of a single trading pair, or you can subscribe to the order execution progress of all trading pairs at once.
Order transaction progress subscription request for a single trading pair
{"op":"subscribe","args":["spot/user/order:BTC_USDT"]}
Order transaction progress subscription request for all trading pairs
{"op":"subscribe","args":["spot/user/orders:ALL_SYMBOLS"]}
Message Format:
1.The order transaction progress subscription of a single trading pair:
{"op": "subscribe", "args": ["spot/user/order:<symbol>"]}
spot/user/order
BTC_USDT
2.The order transaction progress of all trading pairs:
spot/user/orders
ALL_SYMBOLS
Note: The channel names subscribed to for a single trading pair and all trading pairs are different
Single trading pair subscription successful
{"event":"subscribe","topic":"spot/user/order:BTC_USDT"}
1.The order transaction progress subscription of a single trading pair was successfully subscribed.
{"event":"subscribe","topic":"spot/user/order:<symbol>"}
All trading pairs subscription successful
{"event":"subscribe","topic":"spot/user/orders:ALL_SYMBOLS"}
2.The order transaction progress of all trading pairs has been successfully subscribed.
{"event":"subscribe","topic":"spot/user/orders:ALL_SYMBOLS"}
Push data
{"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","create_time":"1609926028000","update_time":"1609926044000","order_mode":"0","entrust_type":"normal","order_state":"partially_filled","dealFee":"10.00","deal_fee_coin_name":"BMX"}],"table":"spot/user/order"}
Return data description:
Field | Type | Description |
---|---|---|
symbol | string | Trading pair,BTC_USDT |
order_id | string | Order ID |
price | string | Order price |
size | string | Order quantity |
notional | string | The purchase amount, returned when buying at market price; otherwise, an empty string is returned |
side | string | Side - buy - sell |
type | string | Type - limit - market |
ms_t | string | Order Create Timestamp (in milliseconds) |
filled_size | string | Filled size (Base currency) |
filled_notional | string | Filled notional amount (Quote currency) |
margin_trading | string | 0 :Spot order (The field will be removed, please use the order_mode field) |
order_type | string | Order type (The field will be removed, please use the entrust_type field) - 0 =Regular- 1 =Maker only(Post only)- 2 =Fill or kill(FOK)- 3 =Immediate or Cancel(IOC) |
state | string | Order state (The field will be removed, please use the order_state field) - 4 =Order success, Pending for fulfilment- 5 =Partially filled- 6 =Fully filled- 8 =Canceled- 12 =Canceled after Partially filled |
last_fill_price | string | Latest trade price(0 if not filled) |
last_fill_count | string | Latest trade quantity(0 if not filled) |
last_fill_time | string | Latest trade time(0 if not filled) millisecond |
exec_type | string | Whether the trade was created by a maker or a taker. - M =Maker- T =Taker |
detail_id | string | Trade id |
client_order_id | string | Client-defined OrderId |
create_time | String | Order Create Timestamp (in milliseconds) |
update_time | String | Order Update Timestamp (in milliseconds) |
order_mode | String | Order mode - spot =spot- iso_margin =margin |
entrust_type | String | Order Type - NORMAL =Normal trade order(Limit Order or Market Order)- LIMIT_MAKER =PostOnly Order- IOC =IOC Order |
order_state | String | Order State - new =The order has been accepted by the engine.- partially_filled =A part of the order has been filled.- filled =The order has been completed.- canceled =The order has been canceled by the user.- partially_canceled =A part of the order has been filled , and the order has been canceled. |
dealFee | String | Fee |
deal_fee_coin_name | String | Fee coin name |
Notice:This data is displayed after decompression,Refer to Data Compression for details
Balance change push
Subscribe Request
{"op":"subscribe","args":["spot/user/balance:BALANCE_UPDATE"]}
Message Format:
{"op": "subscribe", "args": ["spot/user/balance:BALANCE_UPDATE"]}
Subscription successful
{"event":"subscribe","topic":"spot/user/balance:BALANCE_UPDATE"}
{"event": "subscribe","topic": "spot/user/balance:BALANCE_UPDATE"}
Push data
{"data":[{"event_type":"TRANSACTION_COMPLETED ","event_time":"1693364237000","balance_details":[{"ccy":"BTC","av_bal":"123.22","fz_bal":"12.56"}]}],"table":"spot/user/balance"}
Return data description:
Field | Type | Description |
---|---|---|
event_type | string | Type for change - TRANSACTION_COMPLETED =Trade- ACCOUNT_RECHARGE =Recharge- ACCOUNT_WITHDRAWAL =Withdraw- ACCOUNT_TRANSFER =Transfer- BMX_DEDUCTION =BMX handling fee deduction |
event_time | string | Create time |
balance_details | string | Detail |
>ccy | string | Changing Balance Currency |
>av_bal | string | Available balance after change |
>fz_bal | string | Freeze balance after change |
Notice:This data is displayed after decompression,Refer to Data Compression for details
HTTP | Description |
---|---|
404 | Not Found-The requested interface could not be found |
403 | Forbidden-No permission to access the resource (KEY may not have permission, or it may be IP restrictions) |
401 | Unauthorized-Authentication failed (there are problems with the 3 header parameters, failed) |
500 | Internal Server Error-Server exception, BitMart service problem |
Example: httpStatus:200, body:{"code": 1000, "message": "OK", "trace": "12323-3243242-34334534-4353","data":{}}
error message | code error code | http status code | |
---|---|---|---|
Not found | 30000 | 404 | |
Header X-BM-KEY is empty | 30001 | 401 | |
Header X-BM-KEY not found | 30002 | 401 | |
Header X-BM-KEY has frozen | 30003 | 401 | |
Header X-BM-SIGN is empty | 30004 | 401 | |
Header X-BM-SIGN is wrong | 30005 | 401 | |
Header X-BM-TIMESTAMP is empty | 30006 | 401 | |
Header X-BM-TIMESTAMP must be long type | 30006 | 401 | |
Header X-BM-TIMESTAMP range. Within a minute | 30007 | 401 | |
Header X-BM-TIMESTAMP range. Timestamp for this request is outside of the recvWindow. | 30007 | 401 | |
Param recvWindow must be long type | 30007 | 401 | |
Param recvWindow must be less than 60000 and greater than 0 | 30007 | 401 | |
Header X-BM-TIMESTAMP invalid format | 30008 | 401 | |
IP is forbidden. We recommend enabling IP whitelist for API trading. After that reauth your account | 30010 | 403 | |
Header X-BM-KEY over expire time | 30011 | 403 | |
Header X-BM-KEY is forbidden to request it | 30012 | 403 | |
Request too many requests | 30013 | 429 | |
Service unavailable | 30014 | 503 | |
Service maintenance, the function is temporarily unavailable | 30016 | 200 | |
Your account request is temporarily rejected due to violation of current limiting rules, please contact customer service | 30017 | 418 | |
Request Body requires JSON format | 30018 | 503 | |
You do not have the permissions to perform this operation. Please contact customer service or BD for assistance | 30019 | 200 | |
Futures V1 API has been deprecated. Please use Futures V2 API. You can view the change logs for upgrade | 30030 | 200 | |
This endpoint has been deprecated. You can view the change logs for upgrade | 30031 | 200 |
Example: httpStatus:200, body:{"code": 1000,"trace":"886fb6ae-456b-4654-b4e0-d681ac05cea1","message": "OK","data": {}}
error message | code error code | http status code |
---|---|---|
OK | 1000 | 200 |
Invalid request (maybe the body is empty, or the int parameter passes string data) | 60000 | 400 |
Asset account type does not exist | 60001 | 400 |
currency does not exist | 60002 | 400 |
Currency has been closed recharge channel, if there is any problem, please consult customer service | 60003 | 400 |
Currency has been closed withdraw channel, if there is any problem, please consult customer service | 60004 | 400 |
Minimum amount is %s | 60005 | 400 |
Maximum withdraw precision is %d | 60006 | 400 |
Only withdrawals from added addresses are allowed | 60007 | 400 |
Balance not enough | 60008 | 400 |
Beyond the limit | 60009 | 400 |
Withdraw id or deposit id not found | 60010 | 400 |
Address is not valid | 60011 | 400 |
This action is not supported in this currency(If IOTA, HLX recharge and withdraw calls are prohibited) | 60012 | 400 |
The withdrawal amount must be an integral multiple of %s | 60013 | 400 |
Please check your memo | 60014 | 400 |
This address is not verified. Please add and verify this address on the client | 60015 | 400 |
Your account is not allowed to recharge | 60020 | 403 |
Your account is not allowed to withdraw | 60021 | 403 |
No withdrawals for 24 hours | 60022 | 403 |
Sub-account does not have permission to operate | 60026 | 403 |
Only supports sub-account calls | 60027 | 403 |
Account status is unavailable | 60028 | 403 |
The account is frozen by the master account, please contact the master account to unfreeze the account | 60029 | 403 |
Method Not Allowed | 60030 | 405 |
Unsupported Media Type | 60031 | 415 |
User account not found | 60050 | 500 |
Internal Server Error | 60051 | 500 |
Exception | 60052 | 400 |
please check The Email/PhoneNumber/BitMart ID And try again | 60053 | 403 |
Sub-account does not support withdraw | 60054 | 403 |
This currency is not support | 60055 | 403 |
This currency withdrawal is suspended | 60056 | 403 |
User status is not available | 60057 | 403 |
Monitor that the withdrawal will cause the overall spot wallet to fall below the Margin call risk rate. Please revise the withdrawal amount as appropriate | 60058 | 403 |
internal Withdraw forbidden | 60059 | 403 |
Invalid request | 60060 | 403 |
Unsupported operation | 60061 | 403 |
Forbidden | 60062 | 403 |
Account is frozen due to security policies. Please contact customer service | 60063 | 403 |
Exceed daily withdrawal quota, for your safety, please wait 24 hours and try again | 60064 | 403 |
The withdrawal user and the target user cannot be the same | 60065 | 403 |
Please notice the default startTime and endTime to make sure that time interval is within 0-90 days | 60066 | 400 |
If both startTime and endTimeare sent, time between startTimeand endTimemust be less than 90 days. | 60067 | 400 |
Parameter Error | 60000 | 400 |
Amount must be greater than 0 | 61000 | 400 |
Insufficient balance | 61001 | 400 |
ToAccount not found | 61002 | 400 |
The specified sub-account could not be found | 61003 | 400 |
Duplicate requests (such as using an existing requestNo) | 61004 | 400 |
Asset transfer between accounts is not available | 61005 | 403 |
The sub-account api only supports organization accounts | 61006 | 403 |
Please complete your institution verification to enable withdrawal function. | 61007 | 403 |
Suspend transfer out | 61008 | 403 |
error message | code error code | http status code |
---|---|---|
OK | 1000 | 200 |
no data | 70000 | 200 |
request param can not be null | 70001 | 200 |
symbol is invalid | 70002 | 200 |
after is invalid | 71001 | 200 |
before is invalid | 71002 | 200 |
request after or before is invalid | 71003 | 200 |
request kline count limit | 71004 | 200 |
request step error | 71005 | 200 |
Example: httpStatus:200, body:{"code": 1000,"trace":"886fb6ae-456b-4654-b4e0-d681ac05cea1","message": "OK","data": {}}
error message | code error code | http status code |
---|---|---|
OK | 1000 | 200 |
Bad Request | 50000 | 400 |
Symbol not found | 50001 | 400 |
From Or To format error | 50002 | 400 |
Step format error | 50003 | 400 |
Kline size over 500 | 50004 | 400 |
Order Id not found | 50005 | 400 |
Minimum size is %s | 50006 | 400 |
Maximum size is %s | 50007 | 400 |
Minimum price is %s | 50008 | 400 |
Minimum count*price is %s | 50009 | 400 |
RequestParam size is required | 50010 | 400 |
RequestParam price is required | 50011 | 400 |
RequestParam notional is required | 50012 | 400 |
Maximum limit*offset is %d | 50013 | 400 |
RequestParam limit is required | 50014 | 400 |
Minimum limit is 1 | 50015 | 400 |
Maximum limit is %d | 50016 | 400 |
RequestParam offset is required | 50017 | 400 |
Minimum offset is 1 | 50018 | 400 |
Invalid status. validate status is [1=Failed, 2=Success, 3=Frozen Failed, 4=Frozen Success, 5=Partially Filled, 6=Fully Fulled, 7=Canceling, 8=Canceled | 50019 | 400 |
Balance not enough | 50020 | 400 |
Invalid %s | 50021 | 400 |
Service unavailable | 50022 | 400 |
This Symbol can't place order by api | 50023 | 400 |
Order book size over 200 | 50024 | 400 |
Maximum price is %s | 50025 | 400 |
The buy order price cannot be higher than the open price | 50026 | 400 |
The sell order price cannot be lower than the open price | 50027 | 400 |
Missing parameters | 50028 | 400 |
The parameters do not match | 50029 | 400 |
Order is already canceled | 50030 | 400 |
Order is already completed | 50031 | 400 |
The order was matched or cancelled | 50032 | 400 |
The order quantity should be greater than 0 and less than or equal to 10 | 50033 | 400 |
The price is high and there is no matching depth | 50034 | 400 |
The price is low and there is no matching depth | 50035 | 400 |
Cancel failed, order is not revocable status | 50036 | 400 |
The maximum length of clientOrderId cannot exceed 32 | 50037 | 400 |
ClientOrderId only allows a combination of numbers and letters | 50038 | 400 |
Order_id and clientOrderId cannot be empty at the same time | 50039 | 400 |
Symbol Not Available | 50040 | 400 |
Out of query time range | 50041 | 400 |
clientOrderId is duplicate | 50042 | 400 |
Currency not found | 51000 | 400 |
Margin Account not Opened | 51001 | 400 |
Margin Account Not Available | 51002 | 400 |
Account Limit | 51003 | 400 |
Exceed the maximum number of borrows available | 51004 | 400 |
Less than the minimum borrowable amount | 51005 | 400 |
Exceeds the amount to be repaid | 51006 | 400 |
order_mode not found | 51007 | 400 |
Operation is limited, please try again later | 51008 | 400 |
Parameter mismatch: limit order/market order quantity should be greater than the minimum number of should buy/sell | 51009 | 400 |
Parameter mismatch: limit order price should be greater than the minimum buy price | 51010 | 400 |
Parameter mismatch: Limit order quantity * price should be greater than the minimum transaction amount | 51011 | 400 |
Participation mismatch: the number of market order buy orders should be greater than the minimum buyable amount | 51012 | 400 |
Parameter mismatch: the price of market order buy order placed is too small | 51013 | 400 |
Parameter mismatch: the amount of market order sell orders placed is too small | 51014 | 400 |
Quantity is too small | 51015 | 400 |
There is no Margin Borrowing | 51024 | 400 |
Unsupported OrderMode Type | 52000 | 400 |
Unsupported Trade Type | 52001 | 400 |
Unsupported Side Type | 52002 | 400 |
Unsupported Query State Type | 52003 | 400 |
End time must be greater than or equal to Start time | 52004 | 400 |
Your account is frozen due to security policies. Please contact customer service | 53000 | 403 |
Your kyc country is restricted. Please contact customer service. | 53001 | 403 |
Your account has not yet completed the kyc advanced certification, please complete first | 53002 | 403 |
No permission, please contact the main account | 53003 | 403 |
This trading pair is not available to trade in your region | 53004 | 403 |
Don't have permission to access the interface | 53005 | 403 |
Please complete your personal verification(Starter) | 53006 | 403 |
Please complete your personal verification(Advanced) | 53007 | 403 |
Services is not available in your countries and areas | 53008 | 403 |
Your account has not yet completed the qr code certification, please complete first | 53009 | 403 |
This account is restricted from borrowing | 53010 | 403 |
Your account type is prohibited from using this feature | 53011 | 403 |
Method Not Allowed | 57001 | 405 |
Unsupported Media Type | 58001 | 415 |
User account not found | 59001 | 400 |
Internal Server Error | 59002 | 500 |
Spot wallet call fail | 59003 | 500 |
Margin wallet service call exception | 59004 | 500 |
Margin wallet service restricted | 59005 | 500 |
Transfer fail | 59006 | 500 |
Get symbol risk data fail | 59007 | 500 |
Trading order failure | 59008 | 500 |
Loan success,but trading order failure | 59009 | 500 |
Insufficient loan amount. | 59010 | 500 |
The Get Wallet Balance service call fail, please try again later | 59011 | 500 |
Error Code Format
{"event":"<operation>","errorMessage":"","errorCode":""}
Error Message | Error Code |
---|---|
Invalid message format | 90001 |
Invalid op param | 90002 |
Invalid args param | 90003 |
Invalid channel param | 90004 |
Topic quantity in single subscription exceeds limit | 90005 |
Subscribed total topic quantity exceeds limit | 90006 |
Subscribed message frequency exceeds limit, please try later | 90007 |
Duplicate subscription | 90008 |
Invalid subscription | 90009 |
API KEY is empty | 91001 |
API KEY not found | 91002 |
API KEY has frozen | 91003 |
API KEY over expire time | 91004 |
Already logged in | 91005 |
User not logged in / User must be logged in | 91006 |
Param sign is empty | 91010 |
Param sign is wrong | 91011 |
Param timestamp is empty | 91021 |
Param timestamp range. Within a minute | 91022 |
Param timestamp invalid format | 91023 |
Invalid symbol param | 92001 |
Frequently reestablishing connections in a short period of time | 94001 |
The number of connections established between a single IP and the server exceeds the upper limit | 94002 |
Internal system error | 95000 |
For ease of reference, this statement collectively refers to our platform as "We." Any individual or entity accessing our platform is considered a user, hereafter referred to as "You." We would like to inform you of the following risks associated with using third-party SDKs (Software Development Kits):
By clicking "Next", you confirm that you have read and agree to all terms of this Disclaimer.
为了本声明表述之方便,本平台在声明中合称使用“我们”。只要登录本平台的自然人或其他主体均为本平台的用户,以下使用“您”。我们在此特向您提醒第三方SDK(Software Development Kit)风险如下:
点击“下一步”即表示您已阅读并同意本免责声明的所有条款。