https://api.incident.io/, and you will need an API key from your incident.io dashboard to make requests.
OpenAPI specification
Download the full OpenAPI 3.0 spec to generate clients or feed to your tools.
Command-line interface
Manage incidents, alerts, and schedules from your terminal with
inc.Authentication
For all requests, you’ll need an API key. To create one, visit Settings → API keys. When you create the key, you’ll choose what actions it can take. Keys can have account-level permissions, team-scoped permissions, or both. We’ll only show the token once, so store it somewhere safe. API keys remain valid even if the creating user is deactivated. For more details on managing keys and permissions, see API keys. Set theAuthorization header using a Bearer scheme:
Make your first request
Any key can call the identity endpoint, which returns details of the key you authenticated with:401, check the key is passed exactly as shown, with no quotes around the token.
Rate limits
The default rate limit is 1,200 requests/minute per API key. Some endpoints have lower limits documented below. Note that these limits are subject to change unless otherwise contracted:
Burst is how many requests you can make at once; sustained is the rate at which your allowance refills.
Creating incidents is limited separately: an API key can create 10 incidents per hour where a chat channel is created, and 300 per hour otherwise. If you’re importing historical incidents, contact support to raise this temporarily.
Rate limit headers
Every response to a request made with an API key tells you where you stand, so you can slow down before you get a 429.
For example:
X-RateLimit-Limit lists both. Remaining, Used and Reset describe whichever has least left, because that is the one you will run into first.
Limits top up continuously rather than resetting at a set time. The window is in seconds and tells you the rate you can keep up. 1200;window=60 means 1,200 requests a minute, which is 20 requests a second that you can sustain indefinitely.
Two things to expect. X-RateLimit-Remaining can drop by more than the number of requests you made, because some limits are shared across all the API keys on your account. And the headers are left out entirely if we cannot work out your limits for a request, so treat them as missing rather than as zero.
Exceeding a rate limit
When you go over a rate limit, the API responds with429 Too Many Requests and a Retry-After header giving the number of seconds to wait:
Retry-After to decide how long to back off. It tells you when your next request will go through. X-RateLimit-Reset is later than that, because it is when your whole allowance is back.
The response body has the same information:
Pagination
List endpoints are cursor-paginated. Passpage_size to control how many records you get per request (default 25), and use the after cursor from pagination_meta to fetch the next page:
after set to the cursor from the previous response, until a response returns fewer records than page_size. The maximum page_size varies by endpoint and is documented on each endpoint’s page.
Errors
We use standard HTTP response codes. The response body is JSON with atype, status, request_id, and a list of errors:
request_id can be provided to support to help debug issues.
Compatibility
We won’t make breaking changes to existing endpoints, but expect integrators to upgrade within 3 months of deprecation. Backwards-compatible changes include:- Adding new endpoints
- Adding new properties to responses
- Reordering response properties
- Adding optional request parameters
- Altering the format or length of IDs
- Adding new enum values
/v1/incidents → /v2/incidents) and run them in parallel.
For questions, email support@incident.io.