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 (Date TBD)
All customers will be automatically opted into the Bronze plan at no additional cost. There will be a transactional cost offset to move up to the Silver and Gold plans.
Plan | Rate (Requests per second) | Burst (Requests per second) | Daily Quota |
---|---|---|---|
Bronze | 10 | 25 | 50,000 |
Silver | 20 | 35 | 100,000 |
Gold | 35 | 50 | 500,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.
Updated 2 months ago