# Escalation Policies API Reference

Source: https://instatus.com/help/api/escalation-policies

## Possible Values for fields

**Escalation rule conditions**

| Value              | Description                                                |
| ------------------ | ---------------------------------------------------------- |
| `NOT_ACKNOWLEDGED` | The condition where an incident has not been acknowledged. |

**Escalation action type**

| Value                         | Description                           |
| ----------------------------- | ------------------------------------- |
| `NOTIFY_TEAM`                 | Notify a specific team.               |
| `NOTIFY_TEAM_MEMBER`     | Notify a specific team member.   |
| `NOTIFY_CURRENT_ON_CALL_USER` | Notify the current on-call user.      |
| `NOTIFY_NEXT_ON_CALL_USER`    | Notify the next on-call user.         |
| `NOTIFY_ALL_ON_CALL_MEMBERS`  | Notify all members currently on-call. |

## Get Escalation Policies

**Endpoint:**

```bash
GET /:page_id/escalation-policies
```

**Example request**

```bash
GET /1/escalation-policies
```

**Example response**

```json
{
  "escalationPolicies": [
    {
      "id": "escalationPolicy123",
      "siteId": "site123",
      "name": "Primary Escalation Policy",
      "description": "This is the primary escalation policy for site123.",
      "rules": [
        {
          "id": "rule123",
          "escalationPolicyId": "escalationPolicy123",
          "order": 1,
          "condition": "NOT_ACKNOWLEDGED",
          "delayInMins": 5,
          "actions": [
            {
              "id": "action123",
              "ruleId": "rule123",
              "type": "NOTIFY_TEAM",
              "targetId": "team123",
              "createdAt": "2023-08-08T12:00:00Z",
              "updatedAt": "2023-08-08T12:00:00Z"
            },
            {
              "id": "action124",
              "ruleId": "rule123",
              "type": "NOTIFY_CURRENT_ON_CALL_USER",
              "targetId": null,
              "createdAt": "2023-08-08T12:01:00Z",
              "updatedAt": "2023-08-08T12:01:00Z"
            }
          ]
        },
        {
          "id": "rule456",
          "escalationPolicyId": "escalationPolicy123",
          "order": 2,
          "condition": "NOT_ACKNOWLEDGED",
          "delayInMins": 10,
          "actions": [
            {
              "id": "action125",
              "ruleId": "rule456",
              "type": "NOTIFY_NEXT_ON_CALL_USER",
              "targetId": null,
              "createdAt": "2023-08-08T12:10:00Z",
              "updatedAt": "2023-08-08T12:10:00Z"
            },
            {
              "id": "action126",
              "ruleId": "rule456",
              "type": "NOTIFY_TEAM_MEMBER",
              "targetId": "member456",
              "createdAt": "2023-08-08T12:12:00Z",
              "updatedAt": "2023-08-08T12:12:00Z"
            }
          ]
        }
      ],
      "repeat": true,
      "repeatCount": 3,
      "repeatDelay": 15,
      "revertAcknowledgement": true,
      "autoResolveIncidentsAfterRepeat": false,
      "createdAt": "2023-08-08T12:00:00Z",
      "updatedAt": "2023-08-08T12:05:00Z"
    },
    {
      "id": "escalationPolicy456",
      "siteId": "site123",
      "name": "Secondary Escalation Policy",
      "description": "This is the secondary escalation policy for site123.",
      "rules": [],
      "repeat": false,
      "repeatCount": 0,
      "repeatDelay": 0,
      "revertAcknowledgement": false,
      "autoResolveIncidentsAfterRepeat": false,
      "createdAt": "2023-08-08T12:10:00Z",
      "updatedAt": "2023-08-08T12:10:00Z"
    }
  ]
}
```

## Create Escalation Policy

**Endpoint:**

```bash
POST /escalation-policies
```

**Example request**

```json
{
  "pageId": "12345",
  "name": "Critical Alerts Policy",
  "description": "Policy for handling critical alerts",
  "rules": [
    {
      "delayInMins": 5,
      "condition": "NOT_ACKNOWLEDGED",
      "actions": [
        {
          "targetId": "target-1",
          "type": "NOTIFY_TEAM_MEMBER"
        },
        {
          "targetId": "target-2",
          "type": "NOTIFY_TEAM_MEMBER"
        }
      ]
    }
  ],
  "repeat": true,
  "repeatDelay": 10,
  "repeatCount": 3,
  "autoResolveIncidentsAfterRepeat": false,
  "revertAcknowledgement": true
}
```

**Example response**

```json
{
  "escalationPolicy": {
    "id": "new-escalation-policy-id",
    "pageId": "12345",
    "name": "Critical Alerts Policy",
    "description": "Policy for handling critical alerts",
    "rules": [
      {
        "delayInMins": 5,
        "condition": "NOT_ACKNOWLEDGED",
        "actions": [
          {
            "targetId": "target-1",
            "type": "NOTIFY_TEAM_MEMBER"
          },
          {
            "targetId": "target-2",
            "type": "NOTIFY_TEAM_MEMBER"
          }
        ]
      }
    ],
    "repeat": true,
    "repeatDelay": 10,
    "repeatCount": 3,
    "autoResolveIncidentsAfterRepeat": false,
    "revertAcknowledgement": true
  },
  "message": "Routing rule created successfully."
}
```

## Delete Escalation Policy

**Endpoint:**

```bash
DELETE /escalation-policies/:id
```

**Example request**

```bash
DELETE /escalation-policies/escalationPolicy123
```

**Example response**

```json
{
  "message": "Escalation policy deleted successfully."
}
```

## Update Escalation Policy

**Endpoint:**

```bash
PUT /escalation-policies/:id
```

**Example request**

```json
{
  "pageId": "12345",
  "name": "Updated Critical Alerts Policy",
  "description": "Updated Policy for handling critical alerts",
  "rules": [
    {
      "delayInMins": 10,
      "condition": "NOT_ACKNOWLEDGED",
      "actions": [
        {
          "targetId": "target-1",
          "type": "NOTIFY_TEAM_MEMBER"
        },
        {
          "targetId": "target-2",
          "type": "NOTIFY_TEAM_MEMBER"
        }
      ]
    }
  ],
  "repeat": true,
  "repeatDelay": 10,
  "repeatCount": 3,
  "autoResolveIncidentsAfterRepeat": false,
  "revertAcknowledgement": true
}
```

**Example response**

```json
{
  "escalationPolicy": {
    "pageId": "12345",
    "name": "Updated Critical Alerts Policy",
    "description": "Updated Policy for handling critical alerts",
    "rules": [
      {
        "delayInMins": 10,
        "condition": "NOT_ACKNOWLEDGED",
        "actions": [
          {
            "targetId": "target-1",
            "type": "NOTIFY_TEAM_MEMBER"
          },
          {
            "targetId": "target-2",
            "type": "NOTIFY_TEAM_MEMBER"
          }
        ]
      }
    ],
    "repeat": true,
    "repeatDelay": 10,
    "repeatCount": 3,
    "autoResolveIncidentsAfterRepeat": false,
    "revertAcknowledgement": true
  },
  "message": "Routing rule updated successfully."
}
```
