Skip to main content

Rate Limits

Public Endpoints

The below mentioned public endpoints will be rate limited. For more information please reach out to your Bullish customer support.

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 /orders endpoints, 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 which x-ratelimit-remaining is 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.