Rate Limit
IP Rate Limit
If you receive an HTTP 403 (Access Denied) response, your IP has been either temporarily or permanently banned. You should immediately review the below guidelines to ensure your application does not continue to violate the limit. If you are still banned after 30 minutes, you likely have a permanent ban.
We do not recommend running your application at the very edge of these limits in case abnormal network activity results in an unexpected violation.
GET
/POST
method (shared):- No more than 600 requests are allowed in any 5-second window.
All traffic to api.bybit.com
or api.bytick.com
share this limit regardless of if it accesses Spot, Derivatives or Options.
After violating the limit your IP will be banned for a set period of time (usually 30 minutes). Continually violating the limit will result in a permanent ban. We cannot undo permanent bans or shorten temporary bans.
API Rate Limit
If you receive "ret_msg": "Too many visits!"
in the JSON response, you have hit the API rate limit.
The API rate limit is based on the rolling time window per second and UID. In other words, it is per second per UID. Every request to the API returns response header shown in the code panel:
X-Bapi-Limit-Status
- your remaining requests for current endpointX-Bapi-Limit
- your current limit for current endpointX-Bapi-Limit-Reset-Timestamp
- the timestamp indicating when your request limit resets if you have exceeded your rate_limit. Otherwise, this is just the current timestamp (it may not exactly matchtimeNow
).
Http Response Header Example
▶Response Headers
Content-Type: application/json; charset=utf-8
Content-Length: 141
X-Bapi-Limit: 100
X-Bapi-Limit-Status: 99
X-Bapi-Limit-Reset-Timestamp: 1672738134824
API Rate Limit Table
Trade
- Classic account
- UTA1.0 Pro
- UTA2.0 Pro
Method | Path | Classic account | upgradable | ||
---|---|---|---|---|---|
inverse | linear | spot | |||
POST | /v5/order/create | 10/s | 20/s | Y | |
/v5/order/amend | 10/s | 10/s | Y | ||
/v5/order/cancel | 10/s | 20/s | Y | ||
/v5/order/cancel-all | 10/s | 20/s | N | ||
GET | /v5/order/realtime | 10/s | 20/s | N | |
/v5/order/history | 10/s | 20/s | N | ||
/v5/execution/list | 10/s | 20/s | N |
Method | Path | UTA1.0 Pro | upgradable | |||
---|---|---|---|---|---|---|
inverse | linear | option | spot | |||
POST | /v5/order/create | 10/s | 10/s | 10/s | 20/s | Y |
/v5/order/amend | 10/s | 10/s | 10/s | 20/s | Y | |
/v5/order/cancel | 10/s | 10/s | 10/s | 20/s | Y | |
/v5/order/cancel-all | 10/s | 10/s | 1/s | 20/s | N | |
/v5/order/create-batch | - | 10/s | 10/s | 20/s | Y | |
/v5/order/amend-batch | - | 10/s | 10/s | 20/s | Y | |
/v5/order/cancel-batch | - | 10/s | 10/s | 20/s | Y | |
/v5/order/disconnected-cancel-all | - | 5/s | N | |||
GET | /v5/order/realtime | 10/s | 50/s | N | ||
/v5/order/history | 10/s | 50/s | N | |||
/v5/execution/list | 10/s | 50/s | N | |||
/v5/order/spot-borrow-check | - | 50/s | N |
Method | Path | UTA2.0 Pro | upgradable | |||
---|---|---|---|---|---|---|
inverse | linear | option | spot | |||
POST | /v5/order/create | 10/s | 10/s | 20/s | Y | |
/v5/order/amend | 10/s | 10/s | 10/s | Y | ||
/v5/order/cancel | 10/s | 10/s | 20/s | Y | ||
/v5/order/cancel-all | 10/s | 1/s | 20/s | N | ||
/v5/order/create-batch | 10/s | 10/s | 20/s | Y | ||
/v5/order/amend-batch | 10/s | 10/s | 20/s | Y | ||
/v5/order/cancel-batch | 10/s | 10/s | 20/s | Y | ||
/v5/order/disconnected-cancel-all | 5/s | N | ||||
GET | /v5/order/realtime | 50/s | N | |||
/v5/order/history | 50/s | N | ||||
/v5/execution/list | 50/s | N | ||||
/v5/order/spot-borrow-check | - | 50/s | N |
Position
- Classic account
- UTA1.0 Pro
- UTA2.0 Pro
Method | Path | Classic account | upgradable | ||
---|---|---|---|---|---|
inverse | linear | spot | |||
GET | /v5/position/list | 10/s | - | N | |
/v5/position/closed-pnl | 10/s | - | N | ||
POST | /v5/position/set-leverage | 10/s | - | N |
Method | Path | UTA1.0 Pro | upgradable | |||
---|---|---|---|---|---|---|
inverse | linear | option | spot | |||
GET | /v5/position/list | 10/s | 50/s | - | N | |
/v5/position/closed-pnl | 10/s | 50/s | - | - | N | |
POST | /v5/position/set-leverage | 10/s | 10/s | - | - | N |
Method | Path | UTA2.0 Pro | upgradable | |||
---|---|---|---|---|---|---|
inverse | linear | option | spot | |||
GET | /v5/position/list | 50/s | - | N | ||
/v5/position/closed-pnl | 50/s | - | - | N | ||
POST | /v5/position/set-leverage | 10/s | 10/s | - | - | N |
Account
- Classic account
- UTA1.0 Pro
- UTA2.0 Pro
Method | Path | Limit | upgradable | |
---|---|---|---|---|
GET | /v5/account/contract-transaction-log | 10/s | N | |
/v5/account/wallet-balance | accountType=SPOT | 20/s | N | |
accountType=CONTRACT | 10/s | N | ||
/v5/account/fee-rate | category=linear | 10/s | N | |
category=spot | 5/s | N | ||
category=option | 5/s | N |
Method | Path | Limit | upgradable | |
---|---|---|---|---|
GET | /v5/account/wallet-balance | accountType=CONTRACT | 50/s | N |
accountType=UNIFIED | ||||
/v5/account/withdrawal | 50/s | N | ||
/v5/account/borrow-history | 50/s | N | ||
/v5/account/collateral-info | 50/s | N | ||
/v5/asset/coin-greeks | 50/s | N | ||
/v5/account/transaction-log | accountType=UNIFIED | 50/s | N | |
/v5/account/fee-rate | category=linear | 10/s | N | |
category=spot | 5/s | N | ||
category=option | 5/s | N |
Method | Path | Limit | upgradable | |
---|---|---|---|---|
GET | /v5/account/wallet-balance | accountType=UNIFIED | 50/s | N |
/v5/account/withdrawal | 50/s | N | ||
/v5/account/borrow-history | 50/s | N | ||
/v5/account/collateral-info | 50/s | N | ||
/v5/asset/coin-greeks | 50/s | N | ||
/v5/account/transaction-log | accountType=UNIFIED | 50/s | N | |
/v5/account/fee-rate | category=linear | 10/s | N | |
category=spot | 5/s | N | ||
category=option | 5/s | N |
Asset
Method | Path | Limit | upgradable |
---|---|---|---|
GET | /v5/asset/transfer/query-asset-info | 60 req/min | N |
/v5/asset/transfer/query-transfer-coin-list | 60 req/min | N | |
/v5/asset/transfer/query-inter-transfer-list | 60 req/min | N | |
/v5/asset/transfer/query-sub-member-list | 60 req/min | N | |
/v5/asset/transfer/query-universal-transfer-list | 5 req/s | N | |
/v5/asset/transfer/query-account-coins-balance | 5 req/s | N | |
/v5/asset/deposit/query-record | 100 req/min | N | |
/v5/asset/deposit/query-sub-member-record | 300 req/min | N | |
/v5/asset/deposit/query-address | 300 req/min | N | |
/v5/asset/deposit/query-sub-member-address | 300 req/min | N | |
/v5/asset/withdraw/query-record | 300 req/min | N | |
/v5/asset/coin/query-info | 5 req/s | N | |
/v5/asset/exchange/order-record | 600 req/min | N | |
POST | /v5/asset/transfer/inter-transfer | 60 req/min | N |
/v5/asset/transfer/save-transfer-sub-member | 20 req/s | N | |
/v5/asset/transfer/universal-transfer | 5 req/s | N | |
/v5/asset/withdraw/create | 1 req/s | N | |
/v5/asset/withdraw/cancel | 60 req/min | N |
User
Method | Path | Limit | upgradable |
---|---|---|---|
POST | v5/user/create-sub-member | 5 req/s | N |
/v5/user/create-sub-api | 5 req/s | N | |
/v5/user/frozen-sub-member | 5 req/s | N | |
/v5/user/update-api | 5 req/s | N | |
/v5/user/update-sub-api | 5 req/s | N | |
/v5/user/delete-api | 5 req/s | N | |
/v5/user/delete-sub-api | 5 req/s | N | |
GET | /v5/user/query-sub-members | 10 req/s | N |
/v5/user/query-api | 10 req/s | N | |
/v5/user/aff-customer-info | 10 req/s | N |
Spot Leverage Token
Method | Path | Limit | Upgradable |
---|---|---|---|
GET | /v5/spot-lever-token/order-record | 50 req/s | N |
POST | /v5/spot-lever-token/purchase | 20 req/s | N |
POST | /v5/spot-lever-token/redeem | 20 req/s | N |
Spot Margin Trade (UTA)
For now, there is no limit for endpoints under this category |
API Rate Limit Rules For VIPs
The values in the table represent the application upper limit of the corresponding level, and do not mean that users at this level will automatically enjoy the corresponding API Rate Limit by default.
The batch order endpoint, which includes operations for creating, amending, and canceling, has its own rate limit and does not share it with single requests, e.g., let's say the rate limit of single create order endpoint is 100/s, and batch create order endpoint is 100/s, so in this case, I can place 200 linear orders in one second if I use both endpoints to place orders
When category = linear spot or inverse
API for batch create/amend/cancel order, the frequency of the API will be consistent with the current configuration, but the counting consumption will be consumed according to the actual number of orders. (Number of consumption = number of requests * number of orders included in a single request), and the configuration of business lines is independent of each other.
The batch APIs allows 1-10 orders/request. For example, if a batch order request is made once and contains 5 orders, then the request limit will consume 5.
If part of the last batch of orders requested within 1s exceeds the limit, the part that exceeds the limit will fail, and the part that does not exceed the limit will succeed. For example, in the 1 second, the remaining limit is 5, but a batch request containing 8 orders is placed at this time, then the first 5 orders will be successfully placed, and the 6-8th orders will report an error exceeding the limit, and these orders will fail.
Classic account & UTA | UTA Pro | |||||
---|---|---|---|---|---|---|
Level\Product | Futures | Option | Spot | Futures | Option | Spot |
Default | 10/s | 10/s | 20/s | 10/s | 10/s | 20/s |
VIP 1 | 20/s | 20/s | 25/s | 20/s | 20/s | 25/s |
VIP 2 | 40/s | 40/s | 30/s | 40/s | 40/s | 30/s |
VIP 3 | 60/s | 60/s | 40/s | 60/s | 60/s | 40/s |
VIP 4 | 60/s | 60/s | 40/s | 60/s | 60/s | 40/s |
VIP 5 | 60/s | 60/s | 40/s | 60/s | 60/s | 40/s |
VIP Supreme | 60/s | 60/s | 40/s | 60/s | 60/s | 40/s |
PRO1 | 100/s | 100/s | 50/s | 150/s | 150/s | 150/s |
PRO2 | 150/s | 150/s | 75/s | 200/s | 200/s | 200/s |
PRO3 | 200/s | 200/s | 100/s | 250/s | 250/s | 250/s |
PRO4 | 200/s | 200/s | 100/s | 300/s | 300/s | 300/s |
PRO5 | 200/s | 200/s | 100/s | 300/s | 300/s | 300/s |
PRO6 | 200/s | 200/s | 100/s | 300/s | 300/s | 300/s |
How to increase API Limit
- Institutional account will be automatically upgraded or downgraded according to the trading volume
- VIP account needs to contact your VIP relational manager to change the api rate limit