Cloud REST API Rate Limiting
Ativo Programs uses rate limiting on its Cloud REST API to ensure service availability and responsiveness among clients.
Implementation
Ativo limits the number of Jira Cloud REST API calls per client. The exact settings are not published, but requests are at risk of being rate limited when doing more than 100 requests over a few minutes.
The rate limits are calculated per client, not per user. E.g., if John and Ann are Jira admins working on the same Jira tenant (same URL), then the API calls of John and Ann both count together against the rate limits.
There is no rate limiting on the Data Center platform. It is at the discretion of the Jira Data Center Admins to review scripts and external integrations.
Rate limit responses
In cases of rate limiting, the HTTP header response contains the status code 429
.
Retry with backoff
A response with the status code 429
has not been processed. You can (and probably want to) safely retry it.
The best practice is to retry events with an exponential backoff. We also recommend using Jitter (a random small time added) to avoid the thundering herd problem.
For example:
1
1000 - 1300 ms (randomly chosen in this range)
2
2000 - 2500 ms
3
4000 - 5000 ms
4
8000 - 10000 ms
5 and successive
16000 - 20000 ms
Example rate limiting retry code with Jitter and exponential retry (TypeScript):
Other tips
The Ativo configuration typically changes slowly, allowing external apps and scripts to cache REST API responses for a reasonable duration.
Further reading
The Ativo API rate limiting is implemented in a similar way as the Jira Rate Limiting. Code that works with Jira rate limiting should also work for Ativo API rate limiting (except we don't use the Retry-After
and X-RateLimit-Reset
headers, but these are also optional in Jira).
Last updated