Rate Limits
Public Endpoints
The below mentioned public endpoints will be rate limited. For more information please reach out to your Bullish customer support.
- /trading-api/v1/markets and subpaths
- /trading-api/v1/market-data and subpaths
- /trading-api/v1/history/markets and subpaths
- /trading-api/v1/assets and subpaths
- /trading-api/v1/index-prices and subpaths
- /trading-api/v1/index-data and subpaths
Private Endpoints
API endpoints denoted by Ratelimited: True in the description are also subject to rate limits.
e.g. Create Order. The API endpoints fall under the below categories. The rate limit for each category is independently applied.
- Unauthenticated endpoints, rate limited at 50 requests per second.
- Authenticated
/ordersendpoints, rate limited at 50 requests per second. - Other Authenticated endpoints, rate limited at 50 requests per second.
Rate Limits per IP address
Each IP address is subject to a blanket rate limit of 500 requests per 10 seconds (approximately 50 requests per second).
If an IP address is rate limited, the http response status code will be 429 Too Many Requests and the IP address
is blocked from making any requests for 60 seconds.
Global Rate Limit
The global rate limit is an additional rate limit specific to the exchange. It is used to help limit the flow of orders into the exchange. It affects all clients fairly.
When the global rate limit is breached the x-ratelimit-global-breach header value will be set to true else false.
Rate Limits Info
When rate limits are not exceeded, the http response header of the API endpoint called will contain the below:
x-ratelimit-limit: Maximum number of requests allowed for the specific API category within time period.x-ratelimit-remaining: Remaining number of requests allowed for the specific API category within time period.x-ratelimit-reset: The next time period in whichx-ratelimit-remainingis reset back to the maximum allowed for the specific API category.x-ratelimit-global-breach: true/false, indicating whether the global limit has been breached.
Exceeding Rate Limits
When rate limits are exceeded, the API endpoint will return the http response status code 429 Too Many Requests and the http response body will be:
{
"errorCode": 96000,
"errorCodeName": "RATE_LIMIT_EXCEEDED",
"message": "Rate limit exceeded"
}
Exceeding The Global Rate Limit
When the global rate limit is exceeded, the API endpoint will return the http response status code 429 Too Many Requests and the http response body will be:
{
"errorCode": 96001,
"errorCodeName": "GLOBAL_RATE_LIMIT_EXCEEDED",
"message": "Global rate limit exceeded"
}
Increasing Rate Limits
For more information on increasing your rate limits, please reach out to your sales representative.
Obtaining Your Rate Limit Token
Each trading account has a unique rate limit token that can be obtained by querying Get Trading Accounts.
The rate limit token must be provided in the HTTP request header BX-RATELIMIT-TOKEN to enjoy higher tiers of rate limits
else the default of 50 msgs/sec is applied.