Menu
API reference
Status pages
Public status pages, their monitors, logos and subscribers.
- GET List status pages
- POST Create a status page
- GET Get a status page
- PUT Update a status page
- DELETE Delete a status page
- PATCH Reorder a page's monitors
- POST Attach a monitor to a page
- DELETE Detach a monitor from a page
- POST Upload a page logo
- DELETE Remove the page logo
- POST Upload a dark-mode logo
- DELETE Remove the dark-mode logo
- POST Re-render the page preview
- GET List page subscribers
- POST Add a page subscriber
- DELETE Remove a page subscriber
List status pages
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 StatusPageResource requiredidstring requiredteam_idstring requirednamestring requiredslugstring requireddomain_modestring, one of "path", "subdomain", "custom" requiredHow the page is addressed, as a string: path or subdomain.
custom_domainstring or null requiredbrand_colorstring requiredlogo_urlstring or null requiredA signed URL for the logo image.
dark_logo_urlstring or null requiredA signed URL for the dark logo image; null means there is no dark logo.
logo_textstring or null requireddefault_themestring, one of "system", "light", "dark" requiredThe theme the page shows by default.
logo_alignmentstring, one of "left", "center" requireddescriptionstring or null requiredlocalestring or null requiredThe language the public page publishes in, null for the deployment default.
public_urlstring or null requiredThe URL the page is actually served at, resolved from the route itself.
is_publicboolean requiredsubscriptions_enabledboolean requiredmonitorsarray of stringpreview_image_urlstring or nullThe URL of the page preview image.
preview_rendered_atstring or null requiredpreview_render_statusstring or null, one of "rendering", "completed", "failed", null requiredNull means never rendered.
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/status-pages" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json"
const response = await fetch('https://api.uptizm.com/v1/status-pages', {
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/status-pages');
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/status-pages",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
},
)
print(response.json())
Try it
ms
Create a status page
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 requiredslugstring, max length 100 requireddomain_modestring, one of "path", "subdomain"How the page is addressed: path (the default) or subdomain.
custom_domainstring or null, max length 255brand_colorstring or null, max length 7Strictly #rrggbb: the client never sends an alpha channel.
logo_textstring or null, max length 8descriptionstring or null, max length 500localestring or null, one of "en", "tr", nullThe language this page publishes in: its own copy, its banner label and its incident titles.
default_themeStatusPageTheme: string, one of "system", "light", "dark"Colour scheme a public status page opens in before the visitor chooses one.
logo_alignmentLogoAlignment: string, one of "left", "center"Where the brand logo sits in a public status page's header.
is_publicbooleansubscriptions_enabledboolean
Response 201 application/json
dataStatusPageResource requiredidstring requiredteam_idstring requirednamestring requiredslugstring requireddomain_modestring, one of "path", "subdomain", "custom" requiredHow the page is addressed, as a string: path or subdomain.
custom_domainstring or null requiredbrand_colorstring requiredlogo_urlstring or null requiredA signed URL for the logo image.
dark_logo_urlstring or null requiredA signed URL for the dark logo image; null means there is no dark logo.
logo_textstring or null requireddefault_themestring, one of "system", "light", "dark" requiredThe theme the page shows by default.
logo_alignmentstring, one of "left", "center" requireddescriptionstring or null requiredlocalestring or null requiredThe language the public page publishes in, null for the deployment default.
public_urlstring or null requiredThe URL the page is actually served at, resolved from the route itself.
is_publicboolean requiredsubscriptions_enabledboolean requiredmonitorsarray of stringpreview_image_urlstring or nullThe URL of the page preview image.
preview_rendered_atstring or null requiredpreview_render_statusstring or null, one of "rendering", "completed", "failed", null requiredNull means never rendered.
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/status-pages" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"name": "string",
"slug": "string"
}'
const payload = {
"name": "string",
"slug": "string"
};
const response = await fetch('https://api.uptizm.com/v1/status-pages', {
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/status-pages');
$payload = <<<'JSON'
{
"name": "string",
"slug": "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/status-pages",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
"Content-Type": "application/json",
"Idempotency-Key": str(uuid.uuid4()),
},
data=r'''{
"name": "string",
"slug": "string"
}''',
)
print(response.json())
Try it
ms
Get a status page
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| statusPage | path | string | Yes | The status page ID |
Response 200 application/json
dataStatusPageResource and object requiredidstring requiredteam_idstring requirednamestring requiredslugstring requireddomain_modestring, one of "path", "subdomain", "custom" requiredHow the page is addressed, as a string: path or subdomain.
custom_domainstring or null requiredbrand_colorstring requiredlogo_urlstring or null requiredA signed URL for the logo image.
dark_logo_urlstring or null requiredA signed URL for the dark logo image; null means there is no dark logo.
logo_textstring or null requireddefault_themestring, one of "system", "light", "dark" requiredThe theme the page shows by default.
logo_alignmentstring, one of "left", "center" requireddescriptionstring or null requiredlocalestring or null requiredThe language the public page publishes in, null for the deployment default.
public_urlstring or null requiredThe URL the page is actually served at, resolved from the route itself.
is_publicboolean requiredsubscriptions_enabledboolean requiredmonitorsarray of string requiredpreview_image_urlstring or nullThe URL of the page preview image.
preview_rendered_atstring or null requiredpreview_render_statusstring or null, one of "rendering", "completed", "failed", null requiredNull means never rendered.
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/status-pages/STATUS_PAGE" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json"
const response = await fetch('https://api.uptizm.com/v1/status-pages/STATUS_PAGE', {
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/status-pages/STATUS_PAGE');
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/status-pages/STATUS_PAGE",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
},
)
print(response.json())
Try it
ms
Update a status page
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| statusPage | path | string | Yes | The status page ID |
Request body application/json
namestring, max length 200slugstring, max length 100domain_modestring, one of "path", "subdomain"custom_domainstring or null, max length 255brand_colorstring or null, max length 7logo_textstring or null, max length 8descriptionstring or null, max length 500localestring or null, one of "en", "tr", nulldefault_themeStatusPageTheme: string, one of "system", "light", "dark"Colour scheme a public status page opens in before the visitor chooses one.
logo_alignmentLogoAlignment: string, one of "left", "center"Where the brand logo sits in a public status page's header.
is_publicbooleansubscriptions_enabledboolean
Response 200 application/json
dataStatusPageResource and object requiredidstring requiredteam_idstring requirednamestring requiredslugstring requireddomain_modestring, one of "path", "subdomain", "custom" requiredHow the page is addressed, as a string: path or subdomain.
custom_domainstring or null requiredbrand_colorstring requiredlogo_urlstring or null requiredA signed URL for the logo image.
dark_logo_urlstring or null requiredA signed URL for the dark logo image; null means there is no dark logo.
logo_textstring or null requireddefault_themestring, one of "system", "light", "dark" requiredThe theme the page shows by default.
logo_alignmentstring, one of "left", "center" requireddescriptionstring or null requiredlocalestring or null requiredThe language the public page publishes in, null for the deployment default.
public_urlstring or null requiredThe URL the page is actually served at, resolved from the route itself.
is_publicboolean requiredsubscriptions_enabledboolean requiredmonitorsarray of string requiredpreview_image_urlstring or nullThe URL of the page preview image.
preview_rendered_atstring or null requiredpreview_render_statusstring or null, one of "rendering", "completed", "failed", null requiredNull means never rendered.
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/status-pages/STATUS_PAGE" \
-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/status-pages/STATUS_PAGE', {
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/status-pages/STATUS_PAGE');
$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/status-pages/STATUS_PAGE",
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 status page
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| statusPage | path | string | Yes | The status page 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/status-pages/STATUS_PAGE" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json"
const response = await fetch('https://api.uptizm.com/v1/status-pages/STATUS_PAGE', {
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/status-pages/STATUS_PAGE');
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/status-pages/STATUS_PAGE",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
},
)
print(response.status_code)
Try it
ms
Reorder a page's monitors
display_order for the monitors attached to the page.Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| statusPage | path | string | Yes | The status page ID |
Request body application/json
orderarray of object requiredidstring requireddisplay_orderinteger, 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/status-pages/STATUS_PAGE/monitors/reorder" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"order": [
{
"id": "string",
"display_order": 0
}
]
}'
const payload = {
"order": [
{
"id": "string",
"display_order": 0
}
]
};
const response = await fetch('https://api.uptizm.com/v1/status-pages/STATUS_PAGE/monitors/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/status-pages/STATUS_PAGE/monitors/reorder');
$payload = <<<'JSON'
{
"order": [
{
"id": "string",
"display_order": 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/status-pages/STATUS_PAGE/monitors/reorder",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
"Content-Type": "application/json",
},
data=r'''{
"order": [
{
"id": "string",
"display_order": 0
}
]
}''',
)
print(response.status_code)
Try it
ms
Attach a monitor to a page
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| statusPage | path | string | Yes | The status page ID |
| Idempotency-Key | header | string | No | Any unique string per logical request. |
Request body application/json
monitor_idstring requireddisplay_orderinteger, min 0custom_labelstring or null, max length 255
Response 200 application/json
dataStatusPageResource and object requiredidstring requiredteam_idstring requirednamestring requiredslugstring requireddomain_modestring, one of "path", "subdomain", "custom" requiredHow the page is addressed, as a string: path or subdomain.
custom_domainstring or null requiredbrand_colorstring requiredlogo_urlstring or null requiredA signed URL for the logo image.
dark_logo_urlstring or null requiredA signed URL for the dark logo image; null means there is no dark logo.
logo_textstring or null requireddefault_themestring, one of "system", "light", "dark" requiredThe theme the page shows by default.
logo_alignmentstring, one of "left", "center" requireddescriptionstring or null requiredlocalestring or null requiredThe language the public page publishes in, null for the deployment default.
public_urlstring or null requiredThe URL the page is actually served at, resolved from the route itself.
is_publicboolean requiredsubscriptions_enabledboolean requiredmonitorsarray of string requiredpreview_image_urlstring or nullThe URL of the page preview image.
preview_rendered_atstring or null requiredpreview_render_statusstring or null, one of "rendering", "completed", "failed", null requiredNull means never rendered.
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 POST "https://api.uptizm.com/v1/status-pages/STATUS_PAGE/monitors" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"monitor_id": "string"
}'
const payload = {
"monitor_id": "string"
};
const response = await fetch('https://api.uptizm.com/v1/status-pages/STATUS_PAGE/monitors', {
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/status-pages/STATUS_PAGE/monitors');
$payload = <<<'JSON'
{
"monitor_id": "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/status-pages/STATUS_PAGE/monitors",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
"Content-Type": "application/json",
"Idempotency-Key": str(uuid.uuid4()),
},
data=r'''{
"monitor_id": "string"
}''',
)
print(response.json())
Try it
ms
Detach a monitor from a page
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| statusPage | path | string | Yes | The status page ID |
| monitor | path | string | Yes | The monitor 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/status-pages/STATUS_PAGE/monitors/MONITOR" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json"
const response = await fetch('https://api.uptizm.com/v1/status-pages/STATUS_PAGE/monitors/MONITOR', {
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/status-pages/STATUS_PAGE/monitors/MONITOR');
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/status-pages/STATUS_PAGE/monitors/MONITOR",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
},
)
print(response.status_code)
Try it
ms
Upload a page logo
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| statusPage | path | string | Yes | The status page ID |
| Idempotency-Key | header | string | No | Any unique string per logical request. |
Request body multipart/form-data
logostring, binary requiredMaximum file size: 512 kilobytes.
Response 200 application/json
dataStatusPageResource and object requiredidstring requiredteam_idstring requirednamestring requiredslugstring requireddomain_modestring, one of "path", "subdomain", "custom" requiredHow the page is addressed, as a string: path or subdomain.
custom_domainstring or null requiredbrand_colorstring requiredlogo_urlstring or null requiredA signed URL for the logo image.
dark_logo_urlstring or null requiredA signed URL for the dark logo image; null means there is no dark logo.
logo_textstring or null requireddefault_themestring, one of "system", "light", "dark" requiredThe theme the page shows by default.
logo_alignmentstring, one of "left", "center" requireddescriptionstring or null requiredlocalestring or null requiredThe language the public page publishes in, null for the deployment default.
public_urlstring or null requiredThe URL the page is actually served at, resolved from the route itself.
is_publicboolean requiredsubscriptions_enabledboolean requiredmonitorsarray of string requiredpreview_image_urlstring or nullThe URL of the page preview image.
preview_rendered_atstring or null requiredpreview_render_statusstring or null, one of "rendering", "completed", "failed", null requiredNull means never rendered.
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 POST "https://api.uptizm.com/v1/status-pages/STATUS_PAGE/logo" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-F "[email protected]"
const form = new FormData();
form.append('file', fileInput.files[0]);
const response = await fetch('https://api.uptizm.com/v1/status-pages/STATUS_PAGE/logo', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.UPTIZM_API_KEY}`,
'Accept': 'application/json',
'Idempotency-Key': crypto.randomUUID(),
},
body: form,
});
const data = await response.json();
<?php
$curl = curl_init('https://api.uptizm.com/v1/status-pages/STATUS_PAGE/logo');
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer '.getenv('UPTIZM_API_KEY'),
'Accept: application/json',
'Idempotency-Key: '.uniqid('', true),
],
CURLOPT_POSTFIELDS => ['file' => new CURLFile('logo.png')],
]);
$response = curl_exec($curl);
import os
import uuid
import requests
response = requests.post(
"https://api.uptizm.com/v1/status-pages/STATUS_PAGE/logo",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
"Idempotency-Key": str(uuid.uuid4()),
},
files={'file': open('logo.png', 'rb')},
)
print(response.json())
Try it
Use the curl sample for file uploads.
Remove the page logo
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| statusPage | path | string | Yes | The status page ID |
Response 200 application/json
dataStatusPageResource and object requiredidstring requiredteam_idstring requirednamestring requiredslugstring requireddomain_modestring, one of "path", "subdomain", "custom" requiredHow the page is addressed, as a string: path or subdomain.
custom_domainstring or null requiredbrand_colorstring requiredlogo_urlstring or null requiredA signed URL for the logo image.
dark_logo_urlstring or null requiredA signed URL for the dark logo image; null means there is no dark logo.
logo_textstring or null requireddefault_themestring, one of "system", "light", "dark" requiredThe theme the page shows by default.
logo_alignmentstring, one of "left", "center" requireddescriptionstring or null requiredlocalestring or null requiredThe language the public page publishes in, null for the deployment default.
public_urlstring or null requiredThe URL the page is actually served at, resolved from the route itself.
is_publicboolean requiredsubscriptions_enabledboolean requiredmonitorsarray of string requiredpreview_image_urlstring or nullThe URL of the page preview image.
preview_rendered_atstring or null requiredpreview_render_statusstring or null, one of "rendering", "completed", "failed", null requiredNull means never rendered.
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 DELETE "https://api.uptizm.com/v1/status-pages/STATUS_PAGE/logo" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json"
const response = await fetch('https://api.uptizm.com/v1/status-pages/STATUS_PAGE/logo', {
method: 'DELETE',
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/status-pages/STATUS_PAGE/logo');
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/status-pages/STATUS_PAGE/logo",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
},
)
print(response.json())
Try it
ms
Upload a dark-mode logo
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| statusPage | path | string | Yes | The status page ID |
| Idempotency-Key | header | string | No | Any unique string per logical request. |
Request body multipart/form-data
logostring, binary requiredMaximum file size: 512 kilobytes.
Response 200 application/json
dataStatusPageResource and object requiredidstring requiredteam_idstring requirednamestring requiredslugstring requireddomain_modestring, one of "path", "subdomain", "custom" requiredHow the page is addressed, as a string: path or subdomain.
custom_domainstring or null requiredbrand_colorstring requiredlogo_urlstring or null requiredA signed URL for the logo image.
dark_logo_urlstring or null requiredA signed URL for the dark logo image; null means there is no dark logo.
logo_textstring or null requireddefault_themestring, one of "system", "light", "dark" requiredThe theme the page shows by default.
logo_alignmentstring, one of "left", "center" requireddescriptionstring or null requiredlocalestring or null requiredThe language the public page publishes in, null for the deployment default.
public_urlstring or null requiredThe URL the page is actually served at, resolved from the route itself.
is_publicboolean requiredsubscriptions_enabledboolean requiredmonitorsarray of string requiredpreview_image_urlstring or nullThe URL of the page preview image.
preview_rendered_atstring or null requiredpreview_render_statusstring or null, one of "rendering", "completed", "failed", null requiredNull means never rendered.
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 POST "https://api.uptizm.com/v1/status-pages/STATUS_PAGE/dark-logo" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-F "[email protected]"
const form = new FormData();
form.append('file', fileInput.files[0]);
const response = await fetch('https://api.uptizm.com/v1/status-pages/STATUS_PAGE/dark-logo', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.UPTIZM_API_KEY}`,
'Accept': 'application/json',
'Idempotency-Key': crypto.randomUUID(),
},
body: form,
});
const data = await response.json();
<?php
$curl = curl_init('https://api.uptizm.com/v1/status-pages/STATUS_PAGE/dark-logo');
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer '.getenv('UPTIZM_API_KEY'),
'Accept: application/json',
'Idempotency-Key: '.uniqid('', true),
],
CURLOPT_POSTFIELDS => ['file' => new CURLFile('logo.png')],
]);
$response = curl_exec($curl);
import os
import uuid
import requests
response = requests.post(
"https://api.uptizm.com/v1/status-pages/STATUS_PAGE/dark-logo",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
"Idempotency-Key": str(uuid.uuid4()),
},
files={'file': open('logo.png', 'rb')},
)
print(response.json())
Try it
Use the curl sample for file uploads.
Remove the dark-mode logo
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| statusPage | path | string | Yes | The status page ID |
Response 200 application/json
dataStatusPageResource and object requiredidstring requiredteam_idstring requirednamestring requiredslugstring requireddomain_modestring, one of "path", "subdomain", "custom" requiredHow the page is addressed, as a string: path or subdomain.
custom_domainstring or null requiredbrand_colorstring requiredlogo_urlstring or null requiredA signed URL for the logo image.
dark_logo_urlstring or null requiredA signed URL for the dark logo image; null means there is no dark logo.
logo_textstring or null requireddefault_themestring, one of "system", "light", "dark" requiredThe theme the page shows by default.
logo_alignmentstring, one of "left", "center" requireddescriptionstring or null requiredlocalestring or null requiredThe language the public page publishes in, null for the deployment default.
public_urlstring or null requiredThe URL the page is actually served at, resolved from the route itself.
is_publicboolean requiredsubscriptions_enabledboolean requiredmonitorsarray of string requiredpreview_image_urlstring or nullThe URL of the page preview image.
preview_rendered_atstring or null requiredpreview_render_statusstring or null, one of "rendering", "completed", "failed", null requiredNull means never rendered.
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 DELETE "https://api.uptizm.com/v1/status-pages/STATUS_PAGE/dark-logo" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json"
const response = await fetch('https://api.uptizm.com/v1/status-pages/STATUS_PAGE/dark-logo', {
method: 'DELETE',
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/status-pages/STATUS_PAGE/dark-logo');
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/status-pages/STATUS_PAGE/dark-logo",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
},
)
print(response.json())
Try it
ms
Re-render the page preview
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| statusPage | path | string | Yes | The status page ID |
| Idempotency-Key | header | string | No | Any unique string per logical request. |
Response 202
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 POST "https://api.uptizm.com/v1/status-pages/STATUS_PAGE/preview" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json" \
-H "Idempotency-Key: $(uuidgen)"
const response = await fetch('https://api.uptizm.com/v1/status-pages/STATUS_PAGE/preview', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.UPTIZM_API_KEY}`,
'Accept': 'application/json',
'Idempotency-Key': crypto.randomUUID(),
},
});
console.log(response.status);
<?php
$curl = curl_init('https://api.uptizm.com/v1/status-pages/STATUS_PAGE/preview');
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer '.getenv('UPTIZM_API_KEY'),
'Accept: application/json',
'Idempotency-Key: '.uniqid('', true),
],
]);
$response = curl_exec($curl);
import os
import uuid
import requests
response = requests.post(
"https://api.uptizm.com/v1/status-pages/STATUS_PAGE/preview",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
"Idempotency-Key": str(uuid.uuid4()),
},
)
print(response.status_code)
Try it
ms
List page subscribers
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| statusPage | path | string | Yes | The status page ID |
Response 200 application/json
dataarray of StatusPageSubscriberResource requiredidstring requiredemailstring requiredsubscribed_atstring or null requiredconfirmedboolean requirednewsletter_opt_inboolean 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/status-pages/STATUS_PAGE/subscribers" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json"
const response = await fetch('https://api.uptizm.com/v1/status-pages/STATUS_PAGE/subscribers', {
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/status-pages/STATUS_PAGE/subscribers');
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/status-pages/STATUS_PAGE/subscribers",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
},
)
print(response.json())
Try it
ms
Add a page subscriber
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| statusPage | path | string | Yes | The status page ID |
| Idempotency-Key | header | string | No | Any unique string per logical request. |
Request body application/json
emailstring, email, max length 254 required
Response 200 application/json
dataStatusPageSubscriberResource requiredidstring requiredemailstring requiredsubscribed_atstring or null requiredconfirmedboolean requirednewsletter_opt_inboolean required
Response 201 application/json
dataStatusPageSubscriberResource requiredidstring requiredemailstring requiredsubscribed_atstring or null requiredconfirmedboolean requirednewsletter_opt_inboolean 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/status-pages/STATUS_PAGE/subscribers" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"email": "string"
}'
const payload = {
"email": "string"
};
const response = await fetch('https://api.uptizm.com/v1/status-pages/STATUS_PAGE/subscribers', {
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/status-pages/STATUS_PAGE/subscribers');
$payload = <<<'JSON'
{
"email": "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/status-pages/STATUS_PAGE/subscribers",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
"Content-Type": "application/json",
"Idempotency-Key": str(uuid.uuid4()),
},
data=r'''{
"email": "string"
}''',
)
print(response.json())
Try it
ms
Remove a page subscriber
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| statusPage | path | string | Yes | The status page ID |
| subscriber | path | string | Yes | The subscriber 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/status-pages/STATUS_PAGE/subscribers/SUBSCRIBER" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json"
const response = await fetch('https://api.uptizm.com/v1/status-pages/STATUS_PAGE/subscribers/SUBSCRIBER', {
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/status-pages/STATUS_PAGE/subscribers/SUBSCRIBER');
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/status-pages/STATUS_PAGE/subscribers/SUBSCRIBER",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
},
)
print(response.status_code)
Try it
ms