Create and manage escalation paths, and list and filter escalations.
With incident.io On-call you can create escalation paths that describe how a page should be escalated to people and schedules.
Create an escalation path.
An escalation path is a series of steps that describe how a page should be escalated, represented as graph, supporting conditional branches based on alert priority and working intervals.
We recommend you create escalation paths in the incident.io dashboard where our path builder makes it easy to use conditions and visualise the path.
Created response.
{- "name": "Urgent Support",
- "path": [
- {
- "id": "01FCNDV6P870EA6S7TK1DSYDG0",
- "if_else": {
- "conditions": [
- {
- "operation": "one_of",
- "param_bindings": [
- {
- "array_value": [
- {
- "literal": "SEV123",
- "reference": "incident.severity"
}
], - "value": {
- "literal": "SEV123",
- "reference": "incident.severity"
}
}
], - "subject": "incident.severity"
}
], - "else_path": [
- { }
], - "then_path": [
- { }
]
}, - "level": {
- "round_robin_config": {
- "enabled": false,
- "rotate_after_seconds": 120
}, - "targets": [
- {
- "id": "lawrencejones",
- "schedule_mode": "currently_on_call",
- "type": "user",
- "urgency": "high"
}
], - "time_to_ack_interval_condition": "active",
- "time_to_ack_seconds": 1800,
- "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0"
}, - "notify_channel": {
- "targets": [
- {
- "id": "lawrencejones",
- "schedule_mode": "currently_on_call",
- "type": "user",
- "urgency": "high"
}
], - "time_to_ack_interval_condition": "active",
- "time_to_ack_seconds": 1800,
- "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0"
}, - "repeat": {
- "repeat_times": 3,
- "to_node": "01FCNDV6P870EA6S7TK1DSYDG0"
}, - "type": "if_else"
}
], - "team_ids": [
- "01JPQA75EPNEES4479P16P4XAB"
], - "working_hours": [
- {
- "id": "abc123",
- "name": "abc123",
- "timezone": "abc123",
- "weekday_intervals": [
- {
- "end_time": "17:00",
- "start_time": "09:00",
- "weekday": "tuesday"
}
]
}
]
}
{- "escalation_path": {
- "id": "01FCNDV6P870EA6S7TK1DSYDG0",
- "name": "Urgent Support",
- "path": [
- {
- "id": "01FCNDV6P870EA6S7TK1DSYDG0",
- "if_else": {
- "conditions": [
- {
- "operation": {
- "label": "Lawrence Jones",
- "value": "01FCQSP07Z74QMMYPDDGQB9FTG"
}, - "param_bindings": [
- {
- "array_value": [
- {
- "label": "Lawrence Jones",
- "literal": "SEV123",
- "reference": "incident.severity"
}
], - "value": {
- "label": "Lawrence Jones",
- "literal": "SEV123",
- "reference": "incident.severity"
}
}
], - "subject": {
- "label": "Incident Severity",
- "reference": "incident.severity"
}
}
], - "else_path": [
- { }
], - "then_path": [
- { }
]
}, - "level": {
- "round_robin_config": {
- "enabled": false,
- "rotate_after_seconds": 120
}, - "targets": [
- {
- "id": "lawrencejones",
- "schedule_mode": "currently_on_call",
- "type": "user",
- "urgency": "high"
}
], - "time_to_ack_interval_condition": "active",
- "time_to_ack_seconds": 1800,
- "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0"
}, - "notify_channel": {
- "targets": [
- {
- "id": "lawrencejones",
- "schedule_mode": "currently_on_call",
- "type": "user",
- "urgency": "high"
}
], - "time_to_ack_interval_condition": "active",
- "time_to_ack_seconds": 1800,
- "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0"
}, - "repeat": {
- "repeat_times": 3,
- "to_node": "01FCNDV6P870EA6S7TK1DSYDG0"
}, - "type": "if_else"
}
], - "team_ids": [
- "01JPQA75EPNEES4479P16P4XAB"
], - "working_hours": [
- {
- "id": "abc123",
- "name": "abc123",
- "timezone": "abc123",
- "weekday_intervals": [
- {
- "end_time": "17:00",
- "start_time": "09:00",
- "weekday": "tuesday"
}
]
}
]
}
}
Show an escalation path.
We recommend you create escalation paths in the incident.io dashboard where our path builder makes it easy to use conditions and visualise the path.
OK response.
{- "escalation_path": {
- "id": "01FCNDV6P870EA6S7TK1DSYDG0",
- "name": "Urgent Support",
- "path": [
- {
- "id": "01FCNDV6P870EA6S7TK1DSYDG0",
- "if_else": {
- "conditions": [
- {
- "operation": {
- "label": "Lawrence Jones",
- "value": "01FCQSP07Z74QMMYPDDGQB9FTG"
}, - "param_bindings": [
- {
- "array_value": [
- {
- "label": "Lawrence Jones",
- "literal": "SEV123",
- "reference": "incident.severity"
}
], - "value": {
- "label": "Lawrence Jones",
- "literal": "SEV123",
- "reference": "incident.severity"
}
}
], - "subject": {
- "label": "Incident Severity",
- "reference": "incident.severity"
}
}
], - "else_path": [
- { }
], - "then_path": [
- { }
]
}, - "level": {
- "round_robin_config": {
- "enabled": false,
- "rotate_after_seconds": 120
}, - "targets": [
- {
- "id": "lawrencejones",
- "schedule_mode": "currently_on_call",
- "type": "user",
- "urgency": "high"
}
], - "time_to_ack_interval_condition": "active",
- "time_to_ack_seconds": 1800,
- "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0"
}, - "notify_channel": {
- "targets": [
- {
- "id": "lawrencejones",
- "schedule_mode": "currently_on_call",
- "type": "user",
- "urgency": "high"
}
], - "time_to_ack_interval_condition": "active",
- "time_to_ack_seconds": 1800,
- "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0"
}, - "repeat": {
- "repeat_times": 3,
- "to_node": "01FCNDV6P870EA6S7TK1DSYDG0"
}, - "type": "if_else"
}
], - "team_ids": [
- "01JPQA75EPNEES4479P16P4XAB"
], - "working_hours": [
- {
- "id": "abc123",
- "name": "abc123",
- "timezone": "abc123",
- "weekday_intervals": [
- {
- "end_time": "17:00",
- "start_time": "09:00",
- "weekday": "tuesday"
}
]
}
]
}
}
Updates an escalation path.
We recommend you create escalation paths in the incident.io dashboard where our path builder makes it easy to use conditions and visualise the path.
OK response.
{- "name": "Urgent Support",
- "path": [
- {
- "id": "01FCNDV6P870EA6S7TK1DSYDG0",
- "if_else": {
- "conditions": [
- {
- "operation": "one_of",
- "param_bindings": [
- {
- "array_value": [
- {
- "literal": "SEV123",
- "reference": "incident.severity"
}
], - "value": {
- "literal": "SEV123",
- "reference": "incident.severity"
}
}
], - "subject": "incident.severity"
}
], - "else_path": [
- { }
], - "then_path": [
- { }
]
}, - "level": {
- "round_robin_config": {
- "enabled": false,
- "rotate_after_seconds": 120
}, - "targets": [
- {
- "id": "lawrencejones",
- "schedule_mode": "currently_on_call",
- "type": "user",
- "urgency": "high"
}
], - "time_to_ack_interval_condition": "active",
- "time_to_ack_seconds": 1800,
- "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0"
}, - "notify_channel": {
- "targets": [
- {
- "id": "lawrencejones",
- "schedule_mode": "currently_on_call",
- "type": "user",
- "urgency": "high"
}
], - "time_to_ack_interval_condition": "active",
- "time_to_ack_seconds": 1800,
- "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0"
}, - "repeat": {
- "repeat_times": 3,
- "to_node": "01FCNDV6P870EA6S7TK1DSYDG0"
}, - "type": "if_else"
}
], - "team_ids": [
- "01JPQA75EPNEES4479P16P4XAB"
], - "working_hours": [
- {
- "id": "abc123",
- "name": "abc123",
- "timezone": "abc123",
- "weekday_intervals": [
- {
- "end_time": "17:00",
- "start_time": "09:00",
- "weekday": "tuesday"
}
]
}
]
}
{- "escalation_path": {
- "id": "01FCNDV6P870EA6S7TK1DSYDG0",
- "name": "Urgent Support",
- "path": [
- {
- "id": "01FCNDV6P870EA6S7TK1DSYDG0",
- "if_else": {
- "conditions": [
- {
- "operation": {
- "label": "Lawrence Jones",
- "value": "01FCQSP07Z74QMMYPDDGQB9FTG"
}, - "param_bindings": [
- {
- "array_value": [
- {
- "label": "Lawrence Jones",
- "literal": "SEV123",
- "reference": "incident.severity"
}
], - "value": {
- "label": "Lawrence Jones",
- "literal": "SEV123",
- "reference": "incident.severity"
}
}
], - "subject": {
- "label": "Incident Severity",
- "reference": "incident.severity"
}
}
], - "else_path": [
- { }
], - "then_path": [
- { }
]
}, - "level": {
- "round_robin_config": {
- "enabled": false,
- "rotate_after_seconds": 120
}, - "targets": [
- {
- "id": "lawrencejones",
- "schedule_mode": "currently_on_call",
- "type": "user",
- "urgency": "high"
}
], - "time_to_ack_interval_condition": "active",
- "time_to_ack_seconds": 1800,
- "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0"
}, - "notify_channel": {
- "targets": [
- {
- "id": "lawrencejones",
- "schedule_mode": "currently_on_call",
- "type": "user",
- "urgency": "high"
}
], - "time_to_ack_interval_condition": "active",
- "time_to_ack_seconds": 1800,
- "time_to_ack_weekday_interval_config_id": "01FCNDV6P870EA6S7TK1DSYDG0"
}, - "repeat": {
- "repeat_times": 3,
- "to_node": "01FCNDV6P870EA6S7TK1DSYDG0"
}, - "type": "if_else"
}
], - "team_ids": [
- "01JPQA75EPNEES4479P16P4XAB"
], - "working_hours": [
- {
- "id": "abc123",
- "name": "abc123",
- "timezone": "abc123",
- "weekday_intervals": [
- {
- "end_time": "17:00",
- "start_time": "09:00",
- "weekday": "tuesday"
}
]
}
]
}
}
List all escalations for your account.
This endpoint supports a number of filters, which can help find escalations matching certain criteria.
Note that:
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'
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.
Find all escalations that were created by alert with id=ABC:
curl --get 'https://api.incident.io/v2/escalations' \
--data 'alert[one_of]=ABC'
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'
OK response.
{- "escalations": [
- {
- "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": "viewer",
- "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": "viewer",
- "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",
- "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"
}
], - "pagination_meta": {
- "after": "01FCNDV6P870EA6S7TK1DSYDG0",
- "page_size": 25
}
}
{- "escalation": {
- "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": "viewer",
- "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": "viewer",
- "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",
- "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"
}
}