Menu
API reference
Maintenance
Scheduled maintenance windows announced on status pages.
- GET List maintenance windows
- POST Plan a maintenance window
- GET Get a maintenance window
- PUT Update a maintenance window
- DELETE Delete a maintenance window
List maintenance windows
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 ScheduledMaintenanceResource requiredidstring requiredteam_idstring requiredstatus_page_idstring requiredtitlestring requireddescriptionstring or null requiredsuppress_alertsboolean requiredstarts_atstring requiredends_atstring requiredannounced_atstring or null requiredmonitorsarray of objectmonitor_idstring requirednamestring required
created_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/scheduled-maintenances" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json"
const response = await fetch('https://api.uptizm.com/v1/scheduled-maintenances', {
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/scheduled-maintenances');
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/scheduled-maintenances",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
},
)
print(response.json())
Try it
ms
Plan a maintenance window
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| Idempotency-Key | header | string | No | Any unique string per logical request. |
Request body application/json
status_page_idstring, uuid requiredtitlestring, max length 200 requireddescriptionstring or null, max length 2000suppress_alertsbooleanstarts_atstring, date-time requiredends_atstring, date-time requiredmonitor_idsarray of string, uuid
Response 201 application/json
dataScheduledMaintenanceResource and object requiredidstring requiredteam_idstring requiredstatus_page_idstring requiredtitlestring requireddescriptionstring or null requiredsuppress_alertsboolean requiredstarts_atstring requiredends_atstring requiredannounced_atstring or null requiredmonitorsarray of object requiredmonitor_idstring requirednamestring required
created_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/scheduled-maintenances" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"status_page_id": "00000000-0000-4000-8000-000000000000",
"title": "string",
"starts_at": "2026-01-01T00:00:00Z",
"ends_at": "2026-01-01T00:00:00Z"
}'
const payload = {
"status_page_id": "00000000-0000-4000-8000-000000000000",
"title": "string",
"starts_at": "2026-01-01T00:00:00Z",
"ends_at": "2026-01-01T00:00:00Z"
};
const response = await fetch('https://api.uptizm.com/v1/scheduled-maintenances', {
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/scheduled-maintenances');
$payload = <<<'JSON'
{
"status_page_id": "00000000-0000-4000-8000-000000000000",
"title": "string",
"starts_at": "2026-01-01T00:00:00Z",
"ends_at": "2026-01-01T00:00:00Z"
}
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/scheduled-maintenances",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
"Content-Type": "application/json",
"Idempotency-Key": str(uuid.uuid4()),
},
data=r'''{
"status_page_id": "00000000-0000-4000-8000-000000000000",
"title": "string",
"starts_at": "2026-01-01T00:00:00Z",
"ends_at": "2026-01-01T00:00:00Z"
}''',
)
print(response.json())
Try it
ms
Get a maintenance window
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| maintenance | path | string | Yes | The maintenance ID |
Response 200 application/json
dataScheduledMaintenanceResource and object requiredidstring requiredteam_idstring requiredstatus_page_idstring requiredtitlestring requireddescriptionstring or null requiredsuppress_alertsboolean requiredstarts_atstring requiredends_atstring requiredannounced_atstring or null requiredmonitorsarray of object requiredmonitor_idstring requirednamestring required
created_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/scheduled-maintenances/MAINTENANCE" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json"
const response = await fetch('https://api.uptizm.com/v1/scheduled-maintenances/MAINTENANCE', {
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/scheduled-maintenances/MAINTENANCE');
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/scheduled-maintenances/MAINTENANCE",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
},
)
print(response.json())
Try it
ms
Update a maintenance window
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| maintenance | path | string | Yes | The maintenance ID |
Request body application/json
status_page_idstring, uuidtitlestring, max length 200descriptionstring or null, max length 2000suppress_alertsbooleanstarts_atstring, date-timeends_atstring, date-timemonitor_idsarray of string, uuid
Response 200 application/json
dataScheduledMaintenanceResource and object requiredidstring requiredteam_idstring requiredstatus_page_idstring requiredtitlestring requireddescriptionstring or null requiredsuppress_alertsboolean requiredstarts_atstring requiredends_atstring requiredannounced_atstring or null requiredmonitorsarray of object requiredmonitor_idstring requirednamestring required
created_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/scheduled-maintenances/MAINTENANCE" \
-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/scheduled-maintenances/MAINTENANCE', {
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/scheduled-maintenances/MAINTENANCE');
$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/scheduled-maintenances/MAINTENANCE",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
"Content-Type": "application/json",
},
data=r'''{}''',
)
print(response.json())
Try it
ms
Delete a maintenance window
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| maintenance | path | string | Yes | The maintenance 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/scheduled-maintenances/MAINTENANCE" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json"
const response = await fetch('https://api.uptizm.com/v1/scheduled-maintenances/MAINTENANCE', {
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/scheduled-maintenances/MAINTENANCE');
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/scheduled-maintenances/MAINTENANCE",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
},
)
print(response.status_code)
Try it
ms