Skip to main content
This is the API reference for incident.io. It documents available API endpoints, provides examples of how to use them, and covers authentication, rate limits, and error handling. The API is hosted at 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 the Authorization 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:
If you get a 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. When you exceed a rate limit, the API responds with 429 Too Many Requests:

Pagination

List endpoints are cursor-paginated. Pass page_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:
To iterate through all records, repeat the request with 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 a type, status, request_id, and a list of errors:
The 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
When breaking changes are unavoidable, we create a new version on a separate path (e.g. /v1/incidents/v2/incidents) and run them in parallel. For questions, email support@incident.io.