Menu
API reference
Escalation
Escalation policies and their paging steps.
- GET List escalation policies
- POST Create an escalation policy
- GET Get an escalation policy
- PUT Update an escalation policy
- DELETE Delete an escalation policy
- POST Add an escalation step
- PATCH Reorder escalation steps
- DELETE Remove an escalation step
List escalation policies
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| per_page | query | integer, min 1, max 200 | No | Page size, clamped to 1 and the endpoint's maximum (200 on most lists). |
| cursor | query | string | No | The meta.next_cursor of the previous page. |
Response 200 application/json
dataarray of EscalationPolicyResource requiredidstring requiredteam_idstring requirednamestring requiredrepeat_last_stepboolean requiredEmitted on every read, list included: the editor seeds both switches from the roster it already holds, so gating these behind the detail response would make an edit form open with the flags off and then silently save them off.
is_defaultboolean requiredstepsarray of stringcreated_atstring or null requiredupdated_atstring or null required
linksobject requiredfirststring or null requiredlaststring or null requiredprevstring or null requirednextstring or null required
metaobject requiredpathstring or null requiredBase path for paginator generated URLs.
per_pageinteger, min 0 requiredNumber of items shown per page.
next_cursorstring or null requiredThe "cursor" that points to the next set of items.
prev_cursorstring or null requiredThe "cursor" that points to the previous set of items.
Errors
- 401 Unauthenticated
- 403 The key lacks the ability this endpoint requires (required_ability names it), or the action is not allowed for the team.
- 429 Rate limited. Each key may make 120 reads (GET) and 30 writes per minute; wait for Retry-After seconds.
Code samples
curl -X GET "https://api.uptizm.com/v1/escalation-policies" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json"
const response = await fetch('https://api.uptizm.com/v1/escalation-policies', {
method: 'GET',
headers: {
'Authorization': `Bearer ${process.env.UPTIZM_API_KEY}`,
'Accept': 'application/json',
},
});
const data = await response.json();
<?php
$curl = curl_init('https://api.uptizm.com/v1/escalation-policies');
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer '.getenv('UPTIZM_API_KEY'),
'Accept: application/json',
],
]);
$response = curl_exec($curl);
import os
import requests
response = requests.get(
"https://api.uptizm.com/v1/escalation-policies",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
},
)
print(response.json())
Try it
ms
Create an escalation policy
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| Idempotency-Key | header | string | No | Any unique string per logical request. |
Request body application/json
namestring, max length 200 requiredrepeat_last_stepbooleanBoth are optional and both default to false in the schema, so a client that predates them (or simply omits them) creates exactly the policy it created before.
is_defaultboolean
Response 201 application/json
dataEscalationPolicyResource requiredidstring requiredteam_idstring requirednamestring requiredrepeat_last_stepboolean requiredEmitted on every read, list included: the editor seeds both switches from the roster it already holds, so gating these behind the detail response would make an edit form open with the flags off and then silently save them off.
is_defaultboolean requiredstepsarray of stringcreated_atstring or null requiredupdated_atstring or null required
Errors
- 401 Unauthenticated
- 403 The key lacks the ability this endpoint requires (required_ability names it), or the action is not allowed for the team.
- 422 Validation error
- 429 Rate limited. Each key may make 120 reads (GET) and 30 writes per minute; wait for Retry-After seconds.
Code samples
curl -X POST "https://api.uptizm.com/v1/escalation-policies" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"name": "string"
}'
const payload = {
"name": "string"
};
const response = await fetch('https://api.uptizm.com/v1/escalation-policies', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.UPTIZM_API_KEY}`,
'Accept': 'application/json',
'Content-Type': 'application/json',
'Idempotency-Key': crypto.randomUUID(),
},
body: JSON.stringify(payload),
});
const data = await response.json();
<?php
$curl = curl_init('https://api.uptizm.com/v1/escalation-policies');
$payload = <<<'JSON'
{
"name": "string"
}
JSON;
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer '.getenv('UPTIZM_API_KEY'),
'Accept: application/json',
'Content-Type: application/json',
'Idempotency-Key: '.uniqid('', true),
],
CURLOPT_POSTFIELDS => $payload,
]);
$response = curl_exec($curl);
import os
import uuid
import requests
response = requests.post(
"https://api.uptizm.com/v1/escalation-policies",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
"Content-Type": "application/json",
"Idempotency-Key": str(uuid.uuid4()),
},
data=r'''{
"name": "string"
}''',
)
print(response.json())
Try it
ms
Get an escalation policy
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| policy | path | string | Yes | The policy ID |
Response 200 application/json
dataEscalationPolicyResource and object requiredidstring requiredteam_idstring requirednamestring requiredrepeat_last_stepboolean requiredEmitted on every read, list included: the editor seeds both switches from the roster it already holds, so gating these behind the detail response would make an edit form open with the flags off and then silently save them off.
is_defaultboolean requiredstepsarray of string requiredcreated_atstring or null requiredupdated_atstring or null required
Errors
- 401 Unauthenticated
- 403 The key lacks the ability this endpoint requires (required_ability names it), or the action is not allowed for the team.
- 404 Not found
- 429 Rate limited. Each key may make 120 reads (GET) and 30 writes per minute; wait for Retry-After seconds.
Code samples
curl -X GET "https://api.uptizm.com/v1/escalation-policies/POLICY" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json"
const response = await fetch('https://api.uptizm.com/v1/escalation-policies/POLICY', {
method: 'GET',
headers: {
'Authorization': `Bearer ${process.env.UPTIZM_API_KEY}`,
'Accept': 'application/json',
},
});
const data = await response.json();
<?php
$curl = curl_init('https://api.uptizm.com/v1/escalation-policies/POLICY');
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer '.getenv('UPTIZM_API_KEY'),
'Accept: application/json',
],
]);
$response = curl_exec($curl);
import os
import requests
response = requests.get(
"https://api.uptizm.com/v1/escalation-policies/POLICY",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
},
)
print(response.json())
Try it
ms
Update an escalation policy
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| policy | path | string | Yes | The policy ID |
Request body application/json
namestring, max length 200repeat_last_stepbooleanOmitting either leaves it as it was: this is a PATCH-shaped update, so an editor that only renames a policy must not silently clear its paging flags.
is_defaultboolean
Response 200 application/json
dataEscalationPolicyResource and object requiredidstring requiredteam_idstring requirednamestring requiredrepeat_last_stepboolean requiredEmitted on every read, list included: the editor seeds both switches from the roster it already holds, so gating these behind the detail response would make an edit form open with the flags off and then silently save them off.
is_defaultboolean requiredstepsarray of string requiredcreated_atstring or null requiredupdated_atstring or null required
Errors
- 401 Unauthenticated
- 403 The key lacks the ability this endpoint requires (required_ability names it), or the action is not allowed for the team.
- 404 Not found
- 422 Validation error
- 429 Rate limited. Each key may make 120 reads (GET) and 30 writes per minute; wait for Retry-After seconds.
Code samples
curl -X PUT "https://api.uptizm.com/v1/escalation-policies/POLICY" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{}'
const payload = {};
const response = await fetch('https://api.uptizm.com/v1/escalation-policies/POLICY', {
method: 'PUT',
headers: {
'Authorization': `Bearer ${process.env.UPTIZM_API_KEY}`,
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify(payload),
});
const data = await response.json();
<?php
$curl = curl_init('https://api.uptizm.com/v1/escalation-policies/POLICY');
$payload = <<<'JSON'
{}
JSON;
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer '.getenv('UPTIZM_API_KEY'),
'Accept: application/json',
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => $payload,
]);
$response = curl_exec($curl);
import os
import requests
response = requests.put(
"https://api.uptizm.com/v1/escalation-policies/POLICY",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
"Content-Type": "application/json",
},
data=r'''{}''',
)
print(response.json())
Try it
ms
Delete an escalation policy
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| policy | path | string | Yes | The policy ID |
Response 204
No body.
Errors
- 401 Unauthenticated
- 403 The key lacks the ability this endpoint requires (required_ability names it), or the action is not allowed for the team.
- 404 Not found
- 429 Rate limited. Each key may make 120 reads (GET) and 30 writes per minute; wait for Retry-After seconds.
Code samples
curl -X DELETE "https://api.uptizm.com/v1/escalation-policies/POLICY" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json"
const response = await fetch('https://api.uptizm.com/v1/escalation-policies/POLICY', {
method: 'DELETE',
headers: {
'Authorization': `Bearer ${process.env.UPTIZM_API_KEY}`,
'Accept': 'application/json',
},
});
console.log(response.status);
<?php
$curl = curl_init('https://api.uptizm.com/v1/escalation-policies/POLICY');
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'DELETE',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer '.getenv('UPTIZM_API_KEY'),
'Accept: application/json',
],
]);
$response = curl_exec($curl);
import os
import requests
response = requests.delete(
"https://api.uptizm.com/v1/escalation-policies/POLICY",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
},
)
print(response.status_code)
Try it
ms
Add an escalation step
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| policy | path | string | Yes | The policy ID |
| Idempotency-Key | header | string | No | Any unique string per logical request. |
Request body application/json
positioninteger, min 0 requireddelay_minutesinteger, min 0 requiredtarget_typeEscalationTargetType: string, one of "on_call", "user" requiredWho an escalation step pages: the on-call responder (on_call) or a user (user).
target_idstring or null, uuid
Response 201 application/json
dataEscalationPolicyResource and object requiredidstring requiredteam_idstring requirednamestring requiredrepeat_last_stepboolean requiredEmitted on every read, list included: the editor seeds both switches from the roster it already holds, so gating these behind the detail response would make an edit form open with the flags off and then silently save them off.
is_defaultboolean requiredstepsarray of string requiredcreated_atstring or null requiredupdated_atstring or null required
Errors
- 401 Unauthenticated
- 403 The key lacks the ability this endpoint requires (required_ability names it), or the action is not allowed for the team.
- 404 Not found
- 422 Validation error
- 429 Rate limited. Each key may make 120 reads (GET) and 30 writes per minute; wait for Retry-After seconds.
Code samples
curl -X POST "https://api.uptizm.com/v1/escalation-policies/POLICY/steps" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"position": 0,
"delay_minutes": 0,
"target_type": "on_call"
}'
const payload = {
"position": 0,
"delay_minutes": 0,
"target_type": "on_call"
};
const response = await fetch('https://api.uptizm.com/v1/escalation-policies/POLICY/steps', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.UPTIZM_API_KEY}`,
'Accept': 'application/json',
'Content-Type': 'application/json',
'Idempotency-Key': crypto.randomUUID(),
},
body: JSON.stringify(payload),
});
const data = await response.json();
<?php
$curl = curl_init('https://api.uptizm.com/v1/escalation-policies/POLICY/steps');
$payload = <<<'JSON'
{
"position": 0,
"delay_minutes": 0,
"target_type": "on_call"
}
JSON;
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer '.getenv('UPTIZM_API_KEY'),
'Accept: application/json',
'Content-Type: application/json',
'Idempotency-Key: '.uniqid('', true),
],
CURLOPT_POSTFIELDS => $payload,
]);
$response = curl_exec($curl);
import os
import uuid
import requests
response = requests.post(
"https://api.uptizm.com/v1/escalation-policies/POLICY/steps",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
"Content-Type": "application/json",
"Idempotency-Key": str(uuid.uuid4()),
},
data=r'''{
"position": 0,
"delay_minutes": 0,
"target_type": "on_call"
}''',
)
print(response.json())
Try it
ms
Reorder escalation steps
position for the policy's steps.Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| policy | path | string | Yes | The policy ID |
Request body application/json
orderarray of object requiredidstring requiredpositioninteger, min 0 required
Response 204
No body.
Errors
- 401 Unauthenticated
- 403 The key lacks the ability this endpoint requires (required_ability names it), or the action is not allowed for the team.
- 404 Not found
- 422 Validation error
- 429 Rate limited. Each key may make 120 reads (GET) and 30 writes per minute; wait for Retry-After seconds.
Code samples
curl -X PATCH "https://api.uptizm.com/v1/escalation-policies/POLICY/steps/reorder" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"order": [
{
"id": "string",
"position": 0
}
]
}'
const payload = {
"order": [
{
"id": "string",
"position": 0
}
]
};
const response = await fetch('https://api.uptizm.com/v1/escalation-policies/POLICY/steps/reorder', {
method: 'PATCH',
headers: {
'Authorization': `Bearer ${process.env.UPTIZM_API_KEY}`,
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify(payload),
});
console.log(response.status);
<?php
$curl = curl_init('https://api.uptizm.com/v1/escalation-policies/POLICY/steps/reorder');
$payload = <<<'JSON'
{
"order": [
{
"id": "string",
"position": 0
}
]
}
JSON;
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'PATCH',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer '.getenv('UPTIZM_API_KEY'),
'Accept: application/json',
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => $payload,
]);
$response = curl_exec($curl);
import os
import requests
response = requests.patch(
"https://api.uptizm.com/v1/escalation-policies/POLICY/steps/reorder",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
"Content-Type": "application/json",
},
data=r'''{
"order": [
{
"id": "string",
"position": 0
}
]
}''',
)
print(response.status_code)
Try it
ms
Remove an escalation step
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| policy | path | string | Yes | The policy ID |
| step | path | string | Yes | The step ID |
Response 204
No body.
Errors
- 401 Unauthenticated
- 403 The key lacks the ability this endpoint requires (required_ability names it), or the action is not allowed for the team.
- 404 Not found
- 429 Rate limited. Each key may make 120 reads (GET) and 30 writes per minute; wait for Retry-After seconds.
Code samples
curl -X DELETE "https://api.uptizm.com/v1/escalation-policies/POLICY/steps/STEP" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json"
const response = await fetch('https://api.uptizm.com/v1/escalation-policies/POLICY/steps/STEP', {
method: 'DELETE',
headers: {
'Authorization': `Bearer ${process.env.UPTIZM_API_KEY}`,
'Accept': 'application/json',
},
});
console.log(response.status);
<?php
$curl = curl_init('https://api.uptizm.com/v1/escalation-policies/POLICY/steps/STEP');
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'DELETE',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer '.getenv('UPTIZM_API_KEY'),
'Accept: application/json',
],
]);
$response = curl_exec($curl);
import os
import requests
response = requests.delete(
"https://api.uptizm.com/v1/escalation-policies/POLICY/steps/STEP",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
},
)
print(response.status_code)
Try it
ms