Rate limiting

Is there any more specific guidance on rate limiting other than this page?

In particular:

  • is there a separate limit per endpoint, or a single limit for the whole API?
  • is the limit applied per user/token or across the whole account?

I’m pulling data from the /incidents endpoint and wondering how likely it is I’ll be rate limited (haven’t been yet) and, if yes, whether it affects just me or everyone else on our account as well.

What would be useful is to have rate-limiting status returned in response headers, along the lines of GitHub REST API v3.

Hi Duncan,

We have a REST and an Events API, each with different limits:

Events - 60/min (enforced at the per-service level)
REST - 2,000/min (enforced at the account level)

API requests that exceed the API rate limit will return different HTTP status codes depending on which API you are using. REST v2 API will return a 429 code, and our v1 Events API will return a 403 code.

Cheers

1 Like

Hi Duncan,

I would like to add, within the REST API there are currently three endpoint-specific rate limits that can be lower than the global default (2000 requests per minute):

  • GET /oncalls (400/min)
  • POST /incidents (incident creation, 303/min)
  • POST /users (357/min).

These special limits are implemented such that requests to them are weighed more heavily (i.e. one request to create an incident counts as much towards the rate limit as 6.6 requests to retrieve a page from the services index). Thus, if one made a mixture of calls to them and other API endpoints, the result would not be exactly the endpoint-specific limit or the global default of 2k/minute, but somewhere in between.

These are subject to change (as are the default limits Chiedu gave above) as needed, to maintain availability and prevent over-utilization of system resources. We do not publish documentation of them as this would be a statement that could be incorrect at times.

1 Like