Throttling Limits

Everbridge® Reserves the right to limit excessive API requests to protect our infrastructure and maintain customer continuity against potential bad actors or incorrectly configured integrations against our APIs.

Historically rate limits were done at the method level. With our new throttling policies below, this will be a change to previous behavior by applying throttling at the organization level with a tiered solution to a throttled pipeline across all APIs.

📘

Recommendation

It is highly recommended that you develop against the New tier based throttling limits

Current Method level throttling rates (requests per minute) are as follows:

  • GET: 10,000
  • POST/PUT: 300
  • DELETE: 1,000
  • PATCH: 300

New tier based throttling limits (Coming Soon)

  • All customers will be automatically opted into the Bronze plan.
  • There will be NO additional costs to move up to the Silver and Gold plans. However, requests to move to a higher tier must be reviewed and approved by product management.
PlanRate (Requests per second)Burst (Requests per second)Daily Quota
Bronze102550,000
Silver2035100,000
Gold3550500,000

🚧

429 (Too Many Requests).

Exceeding your organizations designated throttling limit could result in an HTTP error response of 429 (Too Many Requests).

Retrying on 429 error

When an API call fails with the 429 (Too Many Requests) status code or a 5xx (Server Error), we recommend retrying the request after a small period of time. This time interval should be calculated using an "exponential backoff" strategy, adding random "jitter" to each subsequent attempt.

For a in-depth discussion of these terms, see this Amazon blog post.

The following logic, taken from the above mentioned article, can be used to determine how long to leave between a failed API call and the next one:

sleep = random_between(0, min(cap, base * 2 ** attempt)) 
  • sleep is the amount of time to intersperse between the failed call and the next one.
  • random_between is a mathematical function that returns a random number between two integers.
  • min is a mathematical function to find the smaller of two numbers.
  • cap is the maximum amount of time to leave between two successive API calls.
  • base is the normal amount of time between two successive API calls.
  • attempt is the attempt number, 0 for the API call being attempted after the first failure, 1 for the API call attempted after the second failure, and so on up to a maximum threshold of retries

Continue successive backoff times and attempts for as long as successive API calls fail with 429 or 5xx. When an API call succeeds with a 2XX status code, the API client should reset the logic back to the normal backoff threshold.