# Escalation Policies

## Get Escalation Policy By team

> Returns all escalation policy details of the given \`ownerID\` (teamId) in the request param.\
> Requires \`access\_token\` as a \`Bearer {{token}}\` in the \`Authorization\` header with \`read\` scope.

```json
{"openapi":"3.1.0","info":{"title":"Squadcast","version":"1.0.0"},"tags":[{"name":"Escalation Policies"}],"servers":[{"url":"https://api.squadcast.com","description":"production US env","variables":{}},{"url":"https://api.eu.squadcast.com","description":"production EU env","variables":{}}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer"}},"schemas":{"V3.EscalationPolicies.EscalationPolicyResponse":{"type":"object","required":["id","name","description","organization_id","repetition","repeat_after","rules","slug","enable_incident_reminders","incident_reminder_rules","enable_incident_retrigger","retrigger_after","entity_owner","owner","access_control"],"properties":{"id":{"type":"string","description":"The unique identifier for the escalation policy."},"name":{"type":"string","description":"The name of the escalation policy."},"description":{"type":"string","description":"A description of the escalation policy."},"organization_id":{"type":"string","description":"The ID of the organization this policy belongs to."},"repetition":{"type":"integer","format":"int32","description":"The number of times the entire policy should be repeated."},"repeat_after":{"type":"integer","format":"int32","description":"The time in minutes after which the policy should be repeated."},"rules":{"type":"array","items":{"$ref":"#/components/schemas/V3.EscalationPolicies.EscalationPolicyRule"},"description":"The rules that define the escalation steps."},"slug":{"type":"string","description":"The URL-friendly slug for the policy name."},"enable_incident_reminders":{"type":"boolean","description":"Enable or disable incident reminders."},"incident_reminder_rules":{"type":"array","items":{"$ref":"#/components/schemas/V3.EscalationPolicies.IncidentReminderRule"},"description":"The rules for incident reminders."},"enable_incident_retrigger":{"type":"boolean","description":"Enable or disable automatic incident re-triggering."},"retrigger_after":{"type":"integer","format":"int32","description":"The time in hours after which an incident should be re-triggered."},"entity_owner":{"allOf":[{"$ref":"#/components/schemas/Common.V3.EntityOwner"}],"description":"The owner of the entity."},"owner":{"allOf":[{"$ref":"#/components/schemas/Common.V3.RBACOwner"}],"description":"The RBAC owner of the policy (typically a team)."},"access_control":{"type":"array","items":{"$ref":"#/components/schemas/Common.V3.RBACEntityPermission"},"description":"Access control list for this policy."}},"description":"Represents an Escalation Policy in the system."},"V3.EscalationPolicies.EscalationPolicyRule":{"type":"object","required":["escalationTime","via","roundrobin_enabled","roundrobin_next_index","entities","escalate_within_roundrobin","repetition","repeat_after"],"properties":{"escalationTime":{"type":"integer","format":"int32","description":"The time in minutes to wait before this rule is triggered."},"via":{"type":"array","items":{"type":"string"},"description":"The notification methods to use for this rule."},"roundrobin_enabled":{"type":"boolean","description":"Indicates if round-robin is enabled for the entities in this rule."},"roundrobin_next_index":{"type":"integer","format":"int32","description":"The index of the next entity to be notified in a round-robin setup."},"entities":{"type":"array","items":{"$ref":"#/components/schemas/V3.EscalationPolicies.EscalationEntity"},"description":"The entities to be notified in this rule."},"escalate_within_roundrobin":{"type":"boolean","description":"Indicates if escalation should happen within the round-robin rotation."},"repetition":{"type":"integer","format":"int32","description":"The number of times this specific rule should be repeated."},"repeat_after":{"type":"integer","format":"int32","description":"The time in minutes after which this rule should be repeated."}},"description":"Represents a rule within an escalation policy."},"V3.EscalationPolicies.EscalationEntity":{"type":"object","required":["type"],"properties":{"id":{"type":"string","description":"The unique identifier of the entity (user, squad, or schedule v1)."},"pid":{"type":"integer","format":"int32","description":"The unique identifier of the entity (schedule v2)."},"type":{"type":"string","enum":["user","squad","schedule","schedulev2"],"description":"The type of the entity."}},"description":"Represents an entity to be notified in an escalation rule."},"V3.EscalationPolicies.IncidentReminderRule":{"type":"object","required":["via","time_interval","till"],"properties":{"via":{"type":"array","items":{"type":"string"},"description":"The notification methods to use for the reminder."},"time_interval":{"type":"integer","format":"int32","description":"The interval in minutes at which to send the reminder."},"till":{"type":"integer","format":"int32","description":"The duration in minutes for which to send reminders."}},"description":"Represents a rule for sending incident reminders."},"Common.V3.EntityOwner":{"type":"object","required":["id","type"],"properties":{"id":{"type":"string","description":"The ID of the owner."},"type":{"type":"string","description":"The type of the owner ( \"user\", \"squad\")."}},"description":"Represents the owner of an entity."},"Common.V3.RBACOwner":{"type":"object","required":["id","type"],"properties":{"id":{"type":"string","description":"The ID of the owner."},"type":{"type":"string","enum":["team"],"description":"The type of the owner."}},"description":"Represents the RBAC owner of an entity."},"Common.V3.RBACEntityPermission":{"type":"object","required":["user_id","abilities"],"properties":{"user_id":{"type":"string","description":"The ID of the user receiving the permission."},"abilities":{"type":"object","unevaluatedProperties":{"type":"boolean"},"description":"A map of abilities granted to the user."}},"description":"Represents a permission granted to a user for a specific entity."},"Common.V3.ErrorMeta":{"type":"object","required":["status","error_message"],"properties":{"status":{"anyOf":[{"type":"string"},{"type":"integer"}]},"error_message":{"type":"string"}},"description":"Represents a single response containing data of type T."}}},"paths":{"/v3/escalation-policies":{"get":{"operationId":"EscalationPolicies_getEscalationPolicyByTeam","summary":"Get Escalation Policy By team","description":"Returns all escalation policy details of the given `ownerID` (teamId) in the request param.\nRequires `access_token` as a `Bearer {{token}}` in the `Authorization` header with `read` scope.","parameters":[{"name":"owner_id","in":"query","required":true,"description":"here owner_id represents team_id, if  team_id is not provided, it will return escalation policies of all teams.","schema":{"type":"string"}},{"name":"page_number","in":"query","required":false,"schema":{"type":"integer"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer"}},{"name":"authorization","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/V3.EscalationPolicies.EscalationPolicyResponse"}},"meta":{"type":"object","properties":{"total_count":{"type":"integer","format":"int32"}},"required":["total_count"]}},"required":["data","meta"]}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"409":{"description":"The request conflicts with the current state of the server.","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"502":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"503":{"description":"Service unavailable.","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"504":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}}},"tags":["Escalation Policies"]}}}}
```

## Create Escalation Policies

> Add escalation policy to the organization. Returns the escalation policy object in response.\
> Requires \`access\_token\` as a \`Bearer {{token}}\` in the \`Authorization\` header with \`user-write\` scope.

```json
{"openapi":"3.1.0","info":{"title":"Squadcast","version":"1.0.0"},"tags":[{"name":"Escalation Policies"}],"servers":[{"url":"https://api.squadcast.com","description":"production US env","variables":{}},{"url":"https://api.eu.squadcast.com","description":"production EU env","variables":{}}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer"}},"schemas":{"V3.EscalationPolicies.EscalationPolicyResponse":{"type":"object","required":["id","name","description","organization_id","repetition","repeat_after","rules","slug","enable_incident_reminders","incident_reminder_rules","enable_incident_retrigger","retrigger_after","entity_owner","owner","access_control"],"properties":{"id":{"type":"string","description":"The unique identifier for the escalation policy."},"name":{"type":"string","description":"The name of the escalation policy."},"description":{"type":"string","description":"A description of the escalation policy."},"organization_id":{"type":"string","description":"The ID of the organization this policy belongs to."},"repetition":{"type":"integer","format":"int32","description":"The number of times the entire policy should be repeated."},"repeat_after":{"type":"integer","format":"int32","description":"The time in minutes after which the policy should be repeated."},"rules":{"type":"array","items":{"$ref":"#/components/schemas/V3.EscalationPolicies.EscalationPolicyRule"},"description":"The rules that define the escalation steps."},"slug":{"type":"string","description":"The URL-friendly slug for the policy name."},"enable_incident_reminders":{"type":"boolean","description":"Enable or disable incident reminders."},"incident_reminder_rules":{"type":"array","items":{"$ref":"#/components/schemas/V3.EscalationPolicies.IncidentReminderRule"},"description":"The rules for incident reminders."},"enable_incident_retrigger":{"type":"boolean","description":"Enable or disable automatic incident re-triggering."},"retrigger_after":{"type":"integer","format":"int32","description":"The time in hours after which an incident should be re-triggered."},"entity_owner":{"allOf":[{"$ref":"#/components/schemas/Common.V3.EntityOwner"}],"description":"The owner of the entity."},"owner":{"allOf":[{"$ref":"#/components/schemas/Common.V3.RBACOwner"}],"description":"The RBAC owner of the policy (typically a team)."},"access_control":{"type":"array","items":{"$ref":"#/components/schemas/Common.V3.RBACEntityPermission"},"description":"Access control list for this policy."}},"description":"Represents an Escalation Policy in the system."},"V3.EscalationPolicies.EscalationPolicyRule":{"type":"object","required":["escalationTime","via","roundrobin_enabled","roundrobin_next_index","entities","escalate_within_roundrobin","repetition","repeat_after"],"properties":{"escalationTime":{"type":"integer","format":"int32","description":"The time in minutes to wait before this rule is triggered."},"via":{"type":"array","items":{"type":"string"},"description":"The notification methods to use for this rule."},"roundrobin_enabled":{"type":"boolean","description":"Indicates if round-robin is enabled for the entities in this rule."},"roundrobin_next_index":{"type":"integer","format":"int32","description":"The index of the next entity to be notified in a round-robin setup."},"entities":{"type":"array","items":{"$ref":"#/components/schemas/V3.EscalationPolicies.EscalationEntity"},"description":"The entities to be notified in this rule."},"escalate_within_roundrobin":{"type":"boolean","description":"Indicates if escalation should happen within the round-robin rotation."},"repetition":{"type":"integer","format":"int32","description":"The number of times this specific rule should be repeated."},"repeat_after":{"type":"integer","format":"int32","description":"The time in minutes after which this rule should be repeated."}},"description":"Represents a rule within an escalation policy."},"V3.EscalationPolicies.EscalationEntity":{"type":"object","required":["type"],"properties":{"id":{"type":"string","description":"The unique identifier of the entity (user, squad, or schedule v1)."},"pid":{"type":"integer","format":"int32","description":"The unique identifier of the entity (schedule v2)."},"type":{"type":"string","enum":["user","squad","schedule","schedulev2"],"description":"The type of the entity."}},"description":"Represents an entity to be notified in an escalation rule."},"V3.EscalationPolicies.IncidentReminderRule":{"type":"object","required":["via","time_interval","till"],"properties":{"via":{"type":"array","items":{"type":"string"},"description":"The notification methods to use for the reminder."},"time_interval":{"type":"integer","format":"int32","description":"The interval in minutes at which to send the reminder."},"till":{"type":"integer","format":"int32","description":"The duration in minutes for which to send reminders."}},"description":"Represents a rule for sending incident reminders."},"Common.V3.EntityOwner":{"type":"object","required":["id","type"],"properties":{"id":{"type":"string","description":"The ID of the owner."},"type":{"type":"string","description":"The type of the owner ( \"user\", \"squad\")."}},"description":"Represents the owner of an entity."},"Common.V3.RBACOwner":{"type":"object","required":["id","type"],"properties":{"id":{"type":"string","description":"The ID of the owner."},"type":{"type":"string","enum":["team"],"description":"The type of the owner."}},"description":"Represents the RBAC owner of an entity."},"Common.V3.RBACEntityPermission":{"type":"object","required":["user_id","abilities"],"properties":{"user_id":{"type":"string","description":"The ID of the user receiving the permission."},"abilities":{"type":"object","unevaluatedProperties":{"type":"boolean"},"description":"A map of abilities granted to the user."}},"description":"Represents a permission granted to a user for a specific entity."},"Common.V3.ErrorMeta":{"type":"object","required":["status","error_message"],"properties":{"status":{"anyOf":[{"type":"string"},{"type":"integer"}]},"error_message":{"type":"string"}},"description":"Represents a single response containing data of type T."},"V3.EscalationPolicies.CreateEscalationPolicyRequest":{"type":"object","required":["owner_id","name","description","repetition","repeat_after","rules","enable_incident_reminders","incident_reminder_rules","enable_incident_retrigger","retrigger_after"],"properties":{"owner_id":{"type":"string","description":"The ID of the team that owns this escalation policy."},"name":{"type":"string","description":"The name of the escalation policy."},"description":{"type":"string","description":"A description of the escalation policy."},"repetition":{"type":"integer","format":"int32","description":"The number of times the entire policy should be repeated."},"repeat_after":{"type":"integer","format":"int32","description":"The time in minutes after which the policy should be repeated."},"rules":{"type":"array","items":{"$ref":"#/components/schemas/V3.EscalationPolicies.EscalationPolicyRule"},"description":"The rules that define the escalation steps."},"enable_incident_reminders":{"type":"boolean","description":"Enable or disable incident reminders."},"incident_reminder_rules":{"type":"array","items":{"$ref":"#/components/schemas/V3.EscalationPolicies.IncidentReminderRule"},"description":"The rules for incident reminders."},"enable_incident_retrigger":{"type":"boolean","description":"Enable or disable automatic incident re-triggering."},"retrigger_after":{"type":"integer","format":"int32","description":"The time in hours after which an incident should be re-triggered."},"entity_owner":{"allOf":[{"$ref":"#/components/schemas/Common.V3.EntityOwner"}],"description":"The owner of the entity."}}}}},"paths":{"/v3/escalation-policies":{"post":{"operationId":"EscalationPolicies_createEscalationPolicies","summary":"Create Escalation Policies","description":"Add escalation policy to the organization. Returns the escalation policy object in response.\nRequires `access_token` as a `Bearer {{token}}` in the `Authorization` header with `user-write` scope.","parameters":[],"responses":{"201":{"description":"The request has succeeded and a new resource has been created as a result.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/V3.EscalationPolicies.EscalationPolicyResponse"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"409":{"description":"The request conflicts with the current state of the server.","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"502":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"503":{"description":"Service unavailable.","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"504":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}}},"tags":["Escalation Policies"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/V3.EscalationPolicies.CreateEscalationPolicyRequest"}}}}}}}}
```

## Get Escalation Policy By ID

> Returns an escalation policy details of the given \`escalationPolicyID\` in the request param.\
> Requires \`access\_token\` as a \`Bearer {{token}}\` in the \`Authorization\` header with \`read\` scope.

```json
{"openapi":"3.1.0","info":{"title":"Squadcast","version":"1.0.0"},"tags":[{"name":"Escalation Policies"}],"servers":[{"url":"https://api.squadcast.com","description":"production US env","variables":{}},{"url":"https://api.eu.squadcast.com","description":"production EU env","variables":{}}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer"}},"schemas":{"V3.EscalationPolicies.EscalationPolicyResponse":{"type":"object","required":["id","name","description","organization_id","repetition","repeat_after","rules","slug","enable_incident_reminders","incident_reminder_rules","enable_incident_retrigger","retrigger_after","entity_owner","owner","access_control"],"properties":{"id":{"type":"string","description":"The unique identifier for the escalation policy."},"name":{"type":"string","description":"The name of the escalation policy."},"description":{"type":"string","description":"A description of the escalation policy."},"organization_id":{"type":"string","description":"The ID of the organization this policy belongs to."},"repetition":{"type":"integer","format":"int32","description":"The number of times the entire policy should be repeated."},"repeat_after":{"type":"integer","format":"int32","description":"The time in minutes after which the policy should be repeated."},"rules":{"type":"array","items":{"$ref":"#/components/schemas/V3.EscalationPolicies.EscalationPolicyRule"},"description":"The rules that define the escalation steps."},"slug":{"type":"string","description":"The URL-friendly slug for the policy name."},"enable_incident_reminders":{"type":"boolean","description":"Enable or disable incident reminders."},"incident_reminder_rules":{"type":"array","items":{"$ref":"#/components/schemas/V3.EscalationPolicies.IncidentReminderRule"},"description":"The rules for incident reminders."},"enable_incident_retrigger":{"type":"boolean","description":"Enable or disable automatic incident re-triggering."},"retrigger_after":{"type":"integer","format":"int32","description":"The time in hours after which an incident should be re-triggered."},"entity_owner":{"allOf":[{"$ref":"#/components/schemas/Common.V3.EntityOwner"}],"description":"The owner of the entity."},"owner":{"allOf":[{"$ref":"#/components/schemas/Common.V3.RBACOwner"}],"description":"The RBAC owner of the policy (typically a team)."},"access_control":{"type":"array","items":{"$ref":"#/components/schemas/Common.V3.RBACEntityPermission"},"description":"Access control list for this policy."}},"description":"Represents an Escalation Policy in the system."},"V3.EscalationPolicies.EscalationPolicyRule":{"type":"object","required":["escalationTime","via","roundrobin_enabled","roundrobin_next_index","entities","escalate_within_roundrobin","repetition","repeat_after"],"properties":{"escalationTime":{"type":"integer","format":"int32","description":"The time in minutes to wait before this rule is triggered."},"via":{"type":"array","items":{"type":"string"},"description":"The notification methods to use for this rule."},"roundrobin_enabled":{"type":"boolean","description":"Indicates if round-robin is enabled for the entities in this rule."},"roundrobin_next_index":{"type":"integer","format":"int32","description":"The index of the next entity to be notified in a round-robin setup."},"entities":{"type":"array","items":{"$ref":"#/components/schemas/V3.EscalationPolicies.EscalationEntity"},"description":"The entities to be notified in this rule."},"escalate_within_roundrobin":{"type":"boolean","description":"Indicates if escalation should happen within the round-robin rotation."},"repetition":{"type":"integer","format":"int32","description":"The number of times this specific rule should be repeated."},"repeat_after":{"type":"integer","format":"int32","description":"The time in minutes after which this rule should be repeated."}},"description":"Represents a rule within an escalation policy."},"V3.EscalationPolicies.EscalationEntity":{"type":"object","required":["type"],"properties":{"id":{"type":"string","description":"The unique identifier of the entity (user, squad, or schedule v1)."},"pid":{"type":"integer","format":"int32","description":"The unique identifier of the entity (schedule v2)."},"type":{"type":"string","enum":["user","squad","schedule","schedulev2"],"description":"The type of the entity."}},"description":"Represents an entity to be notified in an escalation rule."},"V3.EscalationPolicies.IncidentReminderRule":{"type":"object","required":["via","time_interval","till"],"properties":{"via":{"type":"array","items":{"type":"string"},"description":"The notification methods to use for the reminder."},"time_interval":{"type":"integer","format":"int32","description":"The interval in minutes at which to send the reminder."},"till":{"type":"integer","format":"int32","description":"The duration in minutes for which to send reminders."}},"description":"Represents a rule for sending incident reminders."},"Common.V3.EntityOwner":{"type":"object","required":["id","type"],"properties":{"id":{"type":"string","description":"The ID of the owner."},"type":{"type":"string","description":"The type of the owner ( \"user\", \"squad\")."}},"description":"Represents the owner of an entity."},"Common.V3.RBACOwner":{"type":"object","required":["id","type"],"properties":{"id":{"type":"string","description":"The ID of the owner."},"type":{"type":"string","enum":["team"],"description":"The type of the owner."}},"description":"Represents the RBAC owner of an entity."},"Common.V3.RBACEntityPermission":{"type":"object","required":["user_id","abilities"],"properties":{"user_id":{"type":"string","description":"The ID of the user receiving the permission."},"abilities":{"type":"object","unevaluatedProperties":{"type":"boolean"},"description":"A map of abilities granted to the user."}},"description":"Represents a permission granted to a user for a specific entity."},"Common.V3.ErrorMeta":{"type":"object","required":["status","error_message"],"properties":{"status":{"anyOf":[{"type":"string"},{"type":"integer"}]},"error_message":{"type":"string"}},"description":"Represents a single response containing data of type T."}}},"paths":{"/v3/escalation-policies/{escalationPolicyID}":{"get":{"operationId":"EscalationPolicies_getEscalationPolicyById","summary":"Get Escalation Policy By ID","description":"Returns an escalation policy details of the given `escalationPolicyID` in the request param.\nRequires `access_token` as a `Bearer {{token}}` in the `Authorization` header with `read` scope.","parameters":[{"name":"escalationPolicyID","in":"path","required":true,"description":"(Required) escalation policy ID","schema":{"type":"string"}}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/V3.EscalationPolicies.EscalationPolicyResponse"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"409":{"description":"The request conflicts with the current state of the server.","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"502":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"503":{"description":"Service unavailable.","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"504":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}}},"tags":["Escalation Policies"]}}}}
```

## Update Escalation Policy

> Update organization escalation policy details.\
> Requires \`access\_token\` as a \`Bearer {{token}}\` in the \`Authorization\` header with \`user-write\` scope.

```json
{"openapi":"3.1.0","info":{"title":"Squadcast","version":"1.0.0"},"tags":[{"name":"Escalation Policies"}],"servers":[{"url":"https://api.squadcast.com","description":"production US env","variables":{}},{"url":"https://api.eu.squadcast.com","description":"production EU env","variables":{}}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer"}},"schemas":{"V3.EscalationPolicies.EscalationPolicyResponse":{"type":"object","required":["id","name","description","organization_id","repetition","repeat_after","rules","slug","enable_incident_reminders","incident_reminder_rules","enable_incident_retrigger","retrigger_after","entity_owner","owner","access_control"],"properties":{"id":{"type":"string","description":"The unique identifier for the escalation policy."},"name":{"type":"string","description":"The name of the escalation policy."},"description":{"type":"string","description":"A description of the escalation policy."},"organization_id":{"type":"string","description":"The ID of the organization this policy belongs to."},"repetition":{"type":"integer","format":"int32","description":"The number of times the entire policy should be repeated."},"repeat_after":{"type":"integer","format":"int32","description":"The time in minutes after which the policy should be repeated."},"rules":{"type":"array","items":{"$ref":"#/components/schemas/V3.EscalationPolicies.EscalationPolicyRule"},"description":"The rules that define the escalation steps."},"slug":{"type":"string","description":"The URL-friendly slug for the policy name."},"enable_incident_reminders":{"type":"boolean","description":"Enable or disable incident reminders."},"incident_reminder_rules":{"type":"array","items":{"$ref":"#/components/schemas/V3.EscalationPolicies.IncidentReminderRule"},"description":"The rules for incident reminders."},"enable_incident_retrigger":{"type":"boolean","description":"Enable or disable automatic incident re-triggering."},"retrigger_after":{"type":"integer","format":"int32","description":"The time in hours after which an incident should be re-triggered."},"entity_owner":{"allOf":[{"$ref":"#/components/schemas/Common.V3.EntityOwner"}],"description":"The owner of the entity."},"owner":{"allOf":[{"$ref":"#/components/schemas/Common.V3.RBACOwner"}],"description":"The RBAC owner of the policy (typically a team)."},"access_control":{"type":"array","items":{"$ref":"#/components/schemas/Common.V3.RBACEntityPermission"},"description":"Access control list for this policy."}},"description":"Represents an Escalation Policy in the system."},"V3.EscalationPolicies.EscalationPolicyRule":{"type":"object","required":["escalationTime","via","roundrobin_enabled","roundrobin_next_index","entities","escalate_within_roundrobin","repetition","repeat_after"],"properties":{"escalationTime":{"type":"integer","format":"int32","description":"The time in minutes to wait before this rule is triggered."},"via":{"type":"array","items":{"type":"string"},"description":"The notification methods to use for this rule."},"roundrobin_enabled":{"type":"boolean","description":"Indicates if round-robin is enabled for the entities in this rule."},"roundrobin_next_index":{"type":"integer","format":"int32","description":"The index of the next entity to be notified in a round-robin setup."},"entities":{"type":"array","items":{"$ref":"#/components/schemas/V3.EscalationPolicies.EscalationEntity"},"description":"The entities to be notified in this rule."},"escalate_within_roundrobin":{"type":"boolean","description":"Indicates if escalation should happen within the round-robin rotation."},"repetition":{"type":"integer","format":"int32","description":"The number of times this specific rule should be repeated."},"repeat_after":{"type":"integer","format":"int32","description":"The time in minutes after which this rule should be repeated."}},"description":"Represents a rule within an escalation policy."},"V3.EscalationPolicies.EscalationEntity":{"type":"object","required":["type"],"properties":{"id":{"type":"string","description":"The unique identifier of the entity (user, squad, or schedule v1)."},"pid":{"type":"integer","format":"int32","description":"The unique identifier of the entity (schedule v2)."},"type":{"type":"string","enum":["user","squad","schedule","schedulev2"],"description":"The type of the entity."}},"description":"Represents an entity to be notified in an escalation rule."},"V3.EscalationPolicies.IncidentReminderRule":{"type":"object","required":["via","time_interval","till"],"properties":{"via":{"type":"array","items":{"type":"string"},"description":"The notification methods to use for the reminder."},"time_interval":{"type":"integer","format":"int32","description":"The interval in minutes at which to send the reminder."},"till":{"type":"integer","format":"int32","description":"The duration in minutes for which to send reminders."}},"description":"Represents a rule for sending incident reminders."},"Common.V3.EntityOwner":{"type":"object","required":["id","type"],"properties":{"id":{"type":"string","description":"The ID of the owner."},"type":{"type":"string","description":"The type of the owner ( \"user\", \"squad\")."}},"description":"Represents the owner of an entity."},"Common.V3.RBACOwner":{"type":"object","required":["id","type"],"properties":{"id":{"type":"string","description":"The ID of the owner."},"type":{"type":"string","enum":["team"],"description":"The type of the owner."}},"description":"Represents the RBAC owner of an entity."},"Common.V3.RBACEntityPermission":{"type":"object","required":["user_id","abilities"],"properties":{"user_id":{"type":"string","description":"The ID of the user receiving the permission."},"abilities":{"type":"object","unevaluatedProperties":{"type":"boolean"},"description":"A map of abilities granted to the user."}},"description":"Represents a permission granted to a user for a specific entity."},"Common.V3.ErrorMeta":{"type":"object","required":["status","error_message"],"properties":{"status":{"anyOf":[{"type":"string"},{"type":"integer"}]},"error_message":{"type":"string"}},"description":"Represents a single response containing data of type T."},"V3.EscalationPolicies.UpdateEscalationPolicyRequest":{"type":"object","properties":{"owner_id":{"type":"string","description":"The ID of the team that owns this escalation policy."},"name":{"type":"string","description":"The name of the escalation policy."},"description":{"type":"string","description":"A description of the escalation policy."},"repetition":{"type":"integer","format":"int32","description":"The number of times the entire policy should be repeated."},"repeat_after":{"type":"integer","format":"int32","description":"The time in minutes after which the policy should be repeated."},"rules":{"type":"array","items":{"$ref":"#/components/schemas/V3.EscalationPolicies.EscalationPolicyRule"},"description":"The rules that define the escalation steps."},"enable_incident_reminders":{"type":"boolean","description":"Enable or disable incident reminders."},"incident_reminder_rules":{"type":"array","items":{"$ref":"#/components/schemas/V3.EscalationPolicies.IncidentReminderRule"},"description":"The rules for incident reminders."},"enable_incident_retrigger":{"type":"boolean","description":"Enable or disable automatic incident re-triggering."},"retrigger_after":{"type":"integer","format":"int32","description":"The time in hours after which an incident should be re-triggered."},"entity_owner":{"allOf":[{"$ref":"#/components/schemas/Common.V3.EntityOwner"}],"description":"The owner of the entity."}}}}},"paths":{"/v3/escalation-policies/{escalationPolicyID}":{"post":{"operationId":"EscalationPolicies_updateEscalationPolicy","summary":"Update Escalation Policy","description":"Update organization escalation policy details.\nRequires `access_token` as a `Bearer {{token}}` in the `Authorization` header with `user-write` scope.","parameters":[{"name":"escalationPolicyID","in":"path","required":true,"description":"(Required) escalation policy ID","schema":{"type":"string"}},{"name":"authorization","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/V3.EscalationPolicies.EscalationPolicyResponse"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"409":{"description":"The request conflicts with the current state of the server.","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"502":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"503":{"description":"Service unavailable.","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"504":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}}},"tags":["Escalation Policies"],"requestBody":{"required":true,"content":{"text/plain":{"schema":{"$ref":"#/components/schemas/V3.EscalationPolicies.UpdateEscalationPolicyRequest"}}}}}}}}
```

## Remove Escalation Policy

> Remove escalation policy from the organization. Upon success, the escalation policy will be removed from the organization.\
> Requires \`access\_token\` as a \`Bearer {{token}}\` in the \`Authorization\` header with \`user-write\` scope.

```json
{"openapi":"3.1.0","info":{"title":"Squadcast","version":"1.0.0"},"tags":[{"name":"Escalation Policies"}],"servers":[{"url":"https://api.squadcast.com","description":"production US env","variables":{}},{"url":"https://api.eu.squadcast.com","description":"production EU env","variables":{}}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer"}},"schemas":{"Common.V3.ErrorMeta":{"type":"object","required":["status","error_message"],"properties":{"status":{"anyOf":[{"type":"string"},{"type":"integer"}]},"error_message":{"type":"string"}},"description":"Represents a single response containing data of type T."}}},"paths":{"/v3/escalation-policies/{escalationPolicyID}":{"delete":{"operationId":"EscalationPolicies_removeEscalationPolicy","summary":"Remove Escalation Policy","description":"Remove escalation policy from the organization. Upon success, the escalation policy will be removed from the organization.\nRequires `access_token` as a `Bearer {{token}}` in the `Authorization` header with `user-write` scope.","parameters":[{"name":"escalationPolicyID","in":"path","required":true,"description":"(Required) escalation policy ID","schema":{"type":"string"}},{"name":"authorization","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"There is no content to send for this request, but the headers may be useful. ","content":{"*/*":{"schema":{"type":"object"}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"409":{"description":"The request conflicts with the current state of the server.","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"502":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"503":{"description":"Service unavailable.","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"504":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}}},"tags":["Escalation Policies"]}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developers.incidents.cloud.solarwinds.com/api-reference/escalation-policies.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
