Rate Limit
This chapter mainly divides the details of rate limit into the following two aspects:
- REST API
- WebSocket
When the requests exceed the rate limit, the 429 status will be returned: the request is too frequent.
REST API
If a valid API key is passed in, the user id will be used to limit the rate; if not, the public IP will be used to limit the rate.
Rate limit rules: There is a separate description on each interface. If there is not, the rate limit is 10 times per second in general.
Each call to the interface will return 3 Response Headers with limit tags, as shown below:
Response Header | Description |
---|---|
X-BM-RateLimit-Remaining | The number of requests left 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 |
- Example: Note that when X-BM-RateLimit-Remaining> X-BM-RateLimit-Limit, please do not continue to call, otherwise it will be banned
X-BM-RateLimit-Remaining: 10
X-BM-RateLimit-Limit: 600
X-BM-RateLimit-Reset: 60
The above setting means that it can be called 600 times within 60 seconds, and currently has been called 10 times
The specific interface limits are as follows:
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 | Special Remarks |
---|---|---|---|---|
/account/v1/currencies | Get currencies | IP | 5 times/sec | |
/account/v1/wallet | Get account balance | X-BM-KEY | 5 times/sec | |
/account/v1/deposit/address | Deposit address | X-BM-KEY+currency | 5 times/sec | Rate limit is not accumulated between different currency |
/account/v1/withdraw/charge | Withdraw quota | X-BM-KEY+currency | 5 times/sec | Rate limit is not accumulated between different currency |
/account/v1/withdraw/apply | Withdraw | X-BM-KEY+currency | 5 times/sec | Rate limit is not accumulated between different currency |
/account/v1/recharge-withdraw/history | Get deposit and withdraw history | X-BM-KEY+currency | 5 times/sec | Rate limit is not accumulated between different currency |
/account/v1/recharge-withdraw/detail | Get a deposit Or withdraw detail | X-BM-KEY | 50 times/sec |
Contract Interface | Interface Name | Limit Target | Rate | Special Remarks |
---|---|---|---|---|
/contract/v1/ifcontract/contracts | Get contract list | IP | 5 times/sec | |
/contract/v1/ifcontract/indexes | Query the index price of all contracts | IP | 5 times/sec | |
/contract/v1/ifcontract/pnls | Get ADL list | IP | 5 times/sec | |
/contract/v1/ifcontract/depth | Get contract depth | IP | 5 times/sec | |
/contract/v1/ifcontract/fundingrate | Get funding rate | IP | 5 times/sec | |
/contract/v1/ifcontract/indexquote | Get index price K-Line | IP | 10 times/sec | |
/contract/v1/ifcontract/quote | Get K-Line | IP | 10 times/sec | |
/contract/v1/ifcontract/tickers | Get the latest contract prices | IP | 10 times/sec | |
/contract/v1/ifcontract/trades | Get historical contract trade records | IP | 10 times/sec | |
/contract/v1/ifcontract/accounts | Get user account information | X-BM-KEY | 5 times/sec | |
/contract/v1/ifcontract/batchOrders | Order in batches | X-BM-KEY | 5 times/sec | |
/contract/v1/ifcontract/cancelOrders | Cancel order | X-BM-KEY | 5 times/sec | |
/contract/v1/ifcontract/marginOper | Adjust margin | X-BM-KEY | 5 times/sec | |
/contract/v1/ifcontract/orderTrades | Get order trade records | X-BM-KEY | 5 times/sec | |
/contract/v1/ifcontract/positionFee | Get Position Fee | X-BM-KEY | 5 times/sec | |
/contract/v1/ifcontract/submitOrder | Submit order | X-BM-KEY | 5 times/sec | |
/contract/v1/ifcontract/userLiqRecords | Get liquidation records | X-BM-KEY | 5times/sec | |
/contract/v1/ifcontract/userOrderInfo | Check order details | X-BM-KEY | 5 times/sec | |
/contract/v1/ifcontract/userOrders | Get orders | X-BM-KEY | 5 times/sec | |
/contract/v1/ifcontract/userPositions | Get user positions | X-BM-KEY | 5 times/sec | |
/contract/v1/ifcontract/userTrades | Get trade records | X-BM-KEY | 5 times/sec |
Spot Interface | Interface Name | Limit Target | Rate | Special Remarks |
---|---|---|---|---|
/spot/v1/currencies | Get a list of all cryptocurrencies | IP | 5 times/sec | |
/spot/v1/symbols | Get a list of all trading pairs | IP | 5 times/sec | |
/spot/v1/symbols/details | Get a detailed list of all trading pairs | IP | 5 times/sec | |
/spot/v1/ticker | Get ticker | IP+symbol | 5 times/sec | Rate limit is not accumulated between different trading pairs |
/spot/v1/steps | Get K-Line steps | IP | 5 times/sec | |
/spot/v1/symbols/kline | Get k-Line | IP+symbol | 5 times/sec | Rate limit is not accumulated between different trading pairs |
/spot/v1/symbols/book | Get orderbook | IP+symbol | 5 times/sec | Rate limit is not accumulated between different trading pairs |
/spot/v1/symbols/trades | Get the latest trades | IP+symbol | 5 times/second | Rate limit is not accumulated between different trading pairs |
/spot/v1/wallet | Get the user's wallet balance | X-BM-KEY | 10 times/sec | |
/spot/v1/submit_order | Place order | X-BM-KEY+symbol | 50 times/sec | Rate limit is not accumulated between different trading pairs |
/spot/v2/cancel_order | Cancel order | X-BM-KEY+symbol | 50 times/sec | Rate limit is not accumulated between different trading pairs |
/spot/v1/cancel_orders | Cancel all orders in the specified direction of the specified trading pair | X-BM-KEY+symbol | 50 times/sec | Rate limit is not accumulated between different trading pairs |
/spot/v1/order_detail | Get order details | X-BM-KEY+symbol | 50 times/sec | Rate limit is not accumulated between different trading pairs |
/spot/v1/orders | Get user's recent orders | X-BM-KEY+symbol | 10 times/sec | Rate limit is not accumulated between different trading pairs |
/spot/v1/trades | User trade records | X-BM-KEY+symbol | 10 times/sec | Rate limit is not accumulated between different trading pairs |
WebSocket
None.