List
List all escalations for your account.
This endpoint supports a number of filters, which can help find escalations matching certain criteria.
Note that:
- Filters may be used together, and the result will be escalations that match all filters.
- All query parameters must be URI encoded.
To use this API, you will need an API key with the “View data” or “Create and manage on-call resources” permission.
By escalation_path
Find all escalations that escalated to escalation path with id=ABC:
curl --get 'https://api.incident.io/v2/escalations' \
--data 'escalation_path[one_of]=ABC'
By status
Find all escalations with a current status of “triggered”:
curl --get 'https://api.incident.io/v2/escalations' \
--data 'status[one_of]=triggered'
Possible values are “pending”, “triggered”, “acked”, “resolved”, “expired” and “cancelled”. Escalations are in “pending” when they are in a grace period when the related alert has been grouped in an incident.
By alert
Find all escalations that were created by alert with id=ABC:
curl --get 'https://api.incident.io/v2/escalations' \
--data 'alert[one_of]=ABC'
By created_at and updated_at
Find all escalations that follow specified date parameters for created_at and updated_at fields. Possible values are “gte” (greater than or equal to), “lte” (less than or equal to), and “date_range” (between two dates). For example, to find all escalations updated after 2025-01-01:
curl --get 'https://api.incident.io/v2/escalations' \
--data 'updated_at[gte]=2025-01-01'
To find all escalations created between 2025-01-01 and 2025-01-31:
curl --get 'https://api.incident.io/v2/escalations' \
—data ‘created_at[date_range]=2025-01-01~2025-01-31’
- Filters may be used together, and the result will be escalations that match all filters.
- All query parameters must be URI encoded.
By escalation_path
Find all escalations that escalated to escalation path with id=ABC:By status
Find all escalations with a current status of “triggered”:By alert
Find all escalations that were created by alert with id=ABC:By created_at and updated_at
Find all escalations that follow specified date parameters for created_at and updated_at fields. Possible values are “gte” (greater than or equal to), “lte” (less than or equal to), and “date_range” (between two dates). For example, to find all escalations updated after 2025-01-01:Authorizations
API key from your incident.io dashboard (Settings → API keys)
Query Parameters
Number of escalations to return per page
1 <= x <= 5025
An escalation's ID. This endpoint will return a list of escalations after this ID in relation to the API response order.
"01FDAG4SAP5TYPT98WGR2N7W91"
Filter on the escalation path for which the escalation was triggered. Accepted operators are 'one_of' and 'not_in'.
{ "one_of": ["01J479052SSQAA4531ASFPR3BF"] }Filter on the status of the escalation. Accepted operators are 'one_of' and 'not_in'.
{ "one_of": ["triggered"] }Filter on the alert that created an escalation. Accepted operators are 'one_of' and 'not_in'.
{ "one_of": ["01J479052SSQAA4531ASFPR3BF"] }Filter on the created_at timestamp of the escalation. Accepted operators are 'gte', 'lte' and 'date_range'.
{ "gte": ["2021-08-17"] }Filter on the updated_at timestamp of the escalation. Accepted operators are 'gte', 'lte' and 'date_range'.
{ "gte": ["2021-08-17"] }Filter on the idempotency key of the escalation. This is the key set when creating escalations via the API, and is distinct from alert deduplication keys. Accepted operators are 'is' for exact matches and 'starts_with' for prefix matching.
{ "starts_with": ["team-a:"] }Response
OK response.
[
{
"created_at": "2021-08-17T13:28:57.801578Z",
"creator": {
"alert": {
"id": "01GW2G3V0S59R238FAHPDS1R66",
"title": "*errors.withMessage: PG::Error failed to connect"
},
"user": {
"email": "lisa@incident.io",
"id": "01FCNDV6P870EA6S7TK1DSYDG0",
"name": "Lisa Karlin Curtis",
"role": "owner",
"slack_user_id": "U02AYNF2XJM"
},
"workflow": {
"id": "01FCNDV6P870EA6S7TK1DSYDG0",
"name": "My little workflow"
}
},
"escalation_path_id": "01G0J1EXE7AXZ2C93K61WBPYEH",
"events": [
{
"channels": [
{
"microsoft_teams_channel_id": "abc123",
"microsoft_teams_team_id": "abc123",
"slack_channel_id": "abc123",
"slack_team_id": "abc123"
}
],
"event": "entered_grace_period",
"id": "01G0J1EXE7AXZ2C93K61WBPYEH",
"occurred_at": "2021-08-17T13:28:57.801578Z",
"urgency": "high",
"users": [
{
"email": "lisa@incident.io",
"id": "01FCNDV6P870EA6S7TK1DSYDG0",
"name": "Lisa Karlin Curtis",
"role": "owner",
"slack_user_id": "U02AYNF2XJM"
}
]
}
],
"id": "01G0J1EXE7AXZ2C93K61WBPYEH",
"priority": { "name": "P1" },
"related_alerts": [
{
"alert_source_id": "01GW2G3V0S59R238FAHPDS1R66",
"created_at": "2021-08-17T13:28:57.801578Z",
"deduplication_key": "4293868629",
"description": "CPU on the payments service has exceeded 75 percent for 5 minutes",
"id": "01GW2G3V0S59R238FAHPDS1R66",
"resolved_at": "2021-08-17T14:28:57.801578Z",
"source_url": "https://www.my-alerting-platform.com/alerts/my-alert-123",
"status": "firing",
"title": "*errors.withMessage: PG::Error failed to connect",
"updated_at": "2021-08-17T13:28:57.801578Z"
}
],
"related_incidents": [
{
"external_id": 123,
"id": "01FDAG4SAP5TYPT98WGR2N7W91",
"name": "Our database is sad",
"reference": "INC-123",
"status_category": "triage",
"summary": "Our database is really really sad, and we don't know why yet.",
"visibility": "public"
}
],
"status": "pending",
"title": "Database CPU is high",
"updated_at": "2021-08-17T13:28:57.801578Z"
}
]{
"after": "01FCNDV6P870EA6S7TK1DSYDG0",
"page_size": 25
}