Status pages
Public pages that show the status of your components, your incidents and scheduled maintenance, on <slug>.spectate.page or your own domain. Visitors can subscribe to updates by email and report problems. The plan limits the number of pages; private pages, password protection and custom domains depend on the plan too. Logos and the favicon are uploaded in the dashboard.
List status pages
Returns the team's status pages, by name unless you sort.
query Parameters
pagePage number, from 1.
per_pageStatus pages per page, 1 to 100.
filter[visibility]Only pages with this visibility.
Who can open a status page.
public Anyone. |
private Visitors with the access link, or the password when the page has one. Part of the Team plan and up. |
filter[search]Case-insensitive text in the name, slug or custom domain.
sortSort by name or created_at. Prefix - for descending. Default name.
List status pages › Responses
Paginated set of StatusPage
current_pagefirst_page_urlfromlast_page_urllast_pageGenerated paginator links.
next_page_urlpathBase path for paginator generated URLs.
per_pageNumber of items shown per page.
prev_page_urltoNumber of the last item in the slice.
totalTotal number of items being paginated.
Create a status page
Creates the page on <slug>.spectate.page; without a slug it is derived from the name.
Add components next (createStatusPageComponent). The plan limits the number of pages
(403 PLAN_LIMIT_REACHED); private pages, password protection and custom domains need a
plan that includes them (403 PLAN_FEATURE_UNAVAILABLE). Escalation paths must belong to
the team.
Create a status page › Request Body
nameName, shown as the page title
slug^[a-z0-9](?:[a-z0-9-…The page's subdomain under spectate.page: lowercase letters, digits and dashes. Leave out to derive it from the name
visibilityWho can open the page. Private pages are part of the Team plan and up (403 PLAN_FEATURE_UNAVAILABLE)
public Anyone. |
private Visitors with the access link, or the password when the page has one. Part of the Team plan and up. |
custom_domainYour own domain for the page, such as status.acme.com; null for none. Part of paid plans (403 PLAN_FEATURE_UNAVAILABLE otherwise). A new domain needs to be verified again: see custom_domain_verification and verifyStatusPageCustomDomain
password_protectedLet visitors of a private page also get in with a password. Part of paid plans (403 PLAN_FEATURE_UNAVAILABLE otherwise); turning it on needs a password unless the page has one
passwordThe password, 8 to 255 characters. Write-only; leave out or send null to keep the current one
languageLanguage of the public page and of subscriber emails
en English. |
nl Dutch. |
de German. |
fr French. |
es Spanish. |
it Italian. |
match_browser_languageGive visitors their browser's language when it is supported
How the page looks and what it shows
collapsed_groupsComponent groups that start collapsed; replaces the current list
automation_enabledMonitor automation: when a monitor linked to a component goes down, open an incident "{component} is down" (major outage), and resolve it when the monitor recovers
automation_down_messagePosted when a linked monitor goes down, up to 5000 characters; {component} and {status_page} are filled in. null for a default message
automation_recovered_messagePosted when the monitor recovers, up to 5000 characters; null for a default message
issue_reports_enabledLet visitors report problems from the page
issue_reports_show_on_pageWhile reports are above the threshold, say on the page that users are reporting issues
issue_reports_alerts_enabledFire an alert when reports reach the threshold
issue_reports_thresholdReports within issue_reports_window_minutes that count as above the threshold, 1 to 1000
issue_reports_window_minutesThe window for the threshold, in minutes, 1 to 1440
traffic_alerts_enabledAlert when views reach traffic_alert_multiplier times the usual views for the time of day
traffic_alert_multiplierHow many times the usual views alert, 2 to 100
traffic_alert_min_viewsFewer views than this in 15 minutes never alert, 10 to 1000000
escalation_path_idsEscalation paths for the page's alerts (issue reports and traffic spikes); replaces the current ones. Empty for the team's default path
Create a status page › Responses
The new status page.
idStatus page ID
nameName, shown as the page title
slugThe page's subdomain under spectate.page
visibilityWho can open the page
public Anyone. |
private Visitors with the access link, or the password when the page has one. Part of the Team plan and up. |
statusThe headline status visitors see: the worst status of the components, and the impact of open incidents that affect no components
operational Working normally. |
degraded_performance Slower or less reliable than usual. |
partial_outage Down for some visitors or some functions. |
major_outage Down. |
under_maintenance In planned maintenance. |
public_urlWhere visitors open the page: the custom domain once it is verified, else the spectate.page address
access_urlOpens the page while it is private. Anyone with it gets in; rotateStatusPageAccessKey replaces it
custom_domainYour own domain for the page; null for none. Visitors use it once it is verified
password_protectedWhether visitors of a private page can also get in with the password
has_passwordWhether the page has a password. The password itself is never returned
languageLanguage of the public page and of subscriber emails
en English. |
nl Dutch. |
de German. |
fr French. |
es Spanish. |
it Italian. |
match_browser_languageVisitors get their browser's language when it is supported, and can switch languages in the footer
How the page looks and what it shows
collapsed_groupsComponent groups that start collapsed
automation_enabledMonitor automation: when a monitor linked to a component goes down, an incident "{component} is down" (major outage) opens with automation_down_message, and resolves with automation_recovered_message when the monitor recovers
automation_down_messagePosted when a linked monitor goes down; {component} and {status_page} are filled in. null for a default message
automation_recovered_messagePosted when the monitor recovers; null for a default message
issue_reports_enabledVisitors can report problems from the page
issue_reports_show_on_pageWhile reports are above the threshold, the page says that users are reporting issues
issue_reports_alerts_enabledReaching the threshold fires an alert
issue_reports_thresholdReports within issue_reports_window_minutes that count as above the threshold, 1 to 1000
issue_reports_window_minutesThe window for the threshold, in minutes, 1 to 1440
issue_reports_triggered_atSince when reports are above the threshold; null when they aren't
traffic_alerts_enabledAlert when views reach traffic_alert_multiplier times the usual views for the time of day
traffic_alert_multiplierHow many times the usual views alert, 2 to 100
traffic_alert_min_viewsFewer views than this in 15 minutes never alert, 10 to 1000000
Escalation paths the page's alerts (issue reports and traffic spikes) follow; empty for the team's default path
created_atWhen the page was created
Get a status page
Returns the page with its settings and headline status. Its components, incidents and maintenance have their own lists.
path Parameters
statusPageStatus page ID.
Get a status page › Responses
The status page.
idStatus page ID
nameName, shown as the page title
slugThe page's subdomain under spectate.page
visibilityWho can open the page
public Anyone. |
private Visitors with the access link, or the password when the page has one. Part of the Team plan and up. |
statusThe headline status visitors see: the worst status of the components, and the impact of open incidents that affect no components
operational Working normally. |
degraded_performance Slower or less reliable than usual. |
partial_outage Down for some visitors or some functions. |
major_outage Down. |
under_maintenance In planned maintenance. |
public_urlWhere visitors open the page: the custom domain once it is verified, else the spectate.page address
access_urlOpens the page while it is private. Anyone with it gets in; rotateStatusPageAccessKey replaces it
custom_domainYour own domain for the page; null for none. Visitors use it once it is verified
password_protectedWhether visitors of a private page can also get in with the password
has_passwordWhether the page has a password. The password itself is never returned
languageLanguage of the public page and of subscriber emails
en English. |
nl Dutch. |
de German. |
fr French. |
es Spanish. |
it Italian. |
match_browser_languageVisitors get their browser's language when it is supported, and can switch languages in the footer
How the page looks and what it shows
collapsed_groupsComponent groups that start collapsed
automation_enabledMonitor automation: when a monitor linked to a component goes down, an incident "{component} is down" (major outage) opens with automation_down_message, and resolves with automation_recovered_message when the monitor recovers
automation_down_messagePosted when a linked monitor goes down; {component} and {status_page} are filled in. null for a default message
automation_recovered_messagePosted when the monitor recovers; null for a default message
issue_reports_enabledVisitors can report problems from the page
issue_reports_show_on_pageWhile reports are above the threshold, the page says that users are reporting issues
issue_reports_alerts_enabledReaching the threshold fires an alert
issue_reports_thresholdReports within issue_reports_window_minutes that count as above the threshold, 1 to 1000
issue_reports_window_minutesThe window for the threshold, in minutes, 1 to 1440
issue_reports_triggered_atSince when reports are above the threshold; null when they aren't
traffic_alerts_enabledAlert when views reach traffic_alert_multiplier times the usual views for the time of day
traffic_alert_multiplierHow many times the usual views alert, 2 to 100
traffic_alert_min_viewsFewer views than this in 15 minutes never alert, 10 to 1000000
Escalation paths the page's alerts (issue reports and traffic spikes) follow; empty for the team's default path
created_atWhen the page was created
Update a status page
Changes only the settings you send; inside theme, also only the keys you send. A new
slug moves the page: the old address stops working. A new custom_domain needs to be
verified again before visitors use it. Turning off issue reports or traffic alerts ends the
alerts they fired. Private pages, password protection and custom domains need a plan that
includes them (403 PLAN_FEATURE_UNAVAILABLE); a page that is private already stays so.
path Parameters
statusPageStatus page ID.
Update a status page › Request Body
nameName, shown as the page title
slug^[a-z0-9](?:[a-z0-9-…The page's subdomain under spectate.page: lowercase letters, digits and dashes. The old address stops working
visibilityWho can open the page. Private pages are part of the Team plan and up (403 PLAN_FEATURE_UNAVAILABLE)
public Anyone. |
private Visitors with the access link, or the password when the page has one. Part of the Team plan and up. |
custom_domainYour own domain for the page, such as status.acme.com; null for none. Part of paid plans (403 PLAN_FEATURE_UNAVAILABLE otherwise). A new domain needs to be verified again: see custom_domain_verification and verifyStatusPageCustomDomain
password_protectedLet visitors of a private page also get in with a password. Part of paid plans (403 PLAN_FEATURE_UNAVAILABLE otherwise); turning it on needs a password unless the page has one
passwordThe password, 8 to 255 characters. Write-only; leave out or send null to keep the current one
languageLanguage of the public page and of subscriber emails
en English. |
nl Dutch. |
de German. |
fr French. |
es Spanish. |
it Italian. |
match_browser_languageGive visitors their browser's language when it is supported
How the page looks and what it shows
collapsed_groupsComponent groups that start collapsed; replaces the current list
automation_enabledMonitor automation: when a monitor linked to a component goes down, open an incident "{component} is down" (major outage), and resolve it when the monitor recovers
automation_down_messagePosted when a linked monitor goes down, up to 5000 characters; {component} and {status_page} are filled in. null for a default message
automation_recovered_messagePosted when the monitor recovers, up to 5000 characters; null for a default message
issue_reports_enabledLet visitors report problems from the page
issue_reports_show_on_pageWhile reports are above the threshold, say on the page that users are reporting issues
issue_reports_alerts_enabledFire an alert when reports reach the threshold
issue_reports_thresholdReports within issue_reports_window_minutes that count as above the threshold, 1 to 1000
issue_reports_window_minutesThe window for the threshold, in minutes, 1 to 1440
traffic_alerts_enabledAlert when views reach traffic_alert_multiplier times the usual views for the time of day
traffic_alert_multiplierHow many times the usual views alert, 2 to 100
traffic_alert_min_viewsFewer views than this in 15 minutes never alert, 10 to 1000000
escalation_path_idsEscalation paths for the page's alerts (issue reports and traffic spikes); replaces the current ones. Empty for the team's default path
Update a status page › Responses
The updated status page.
idStatus page ID
nameName, shown as the page title
slugThe page's subdomain under spectate.page
visibilityWho can open the page
public Anyone. |
private Visitors with the access link, or the password when the page has one. Part of the Team plan and up. |
statusThe headline status visitors see: the worst status of the components, and the impact of open incidents that affect no components
operational Working normally. |
degraded_performance Slower or less reliable than usual. |
partial_outage Down for some visitors or some functions. |
major_outage Down. |
under_maintenance In planned maintenance. |
public_urlWhere visitors open the page: the custom domain once it is verified, else the spectate.page address
access_urlOpens the page while it is private. Anyone with it gets in; rotateStatusPageAccessKey replaces it
custom_domainYour own domain for the page; null for none. Visitors use it once it is verified
password_protectedWhether visitors of a private page can also get in with the password
has_passwordWhether the page has a password. The password itself is never returned
languageLanguage of the public page and of subscriber emails
en English. |
nl Dutch. |
de German. |
fr French. |
es Spanish. |
it Italian. |
match_browser_languageVisitors get their browser's language when it is supported, and can switch languages in the footer
How the page looks and what it shows
collapsed_groupsComponent groups that start collapsed
automation_enabledMonitor automation: when a monitor linked to a component goes down, an incident "{component} is down" (major outage) opens with automation_down_message, and resolves with automation_recovered_message when the monitor recovers
automation_down_messagePosted when a linked monitor goes down; {component} and {status_page} are filled in. null for a default message
automation_recovered_messagePosted when the monitor recovers; null for a default message
issue_reports_enabledVisitors can report problems from the page
issue_reports_show_on_pageWhile reports are above the threshold, the page says that users are reporting issues
issue_reports_alerts_enabledReaching the threshold fires an alert
issue_reports_thresholdReports within issue_reports_window_minutes that count as above the threshold, 1 to 1000
issue_reports_window_minutesThe window for the threshold, in minutes, 1 to 1440
issue_reports_triggered_atSince when reports are above the threshold; null when they aren't
traffic_alerts_enabledAlert when views reach traffic_alert_multiplier times the usual views for the time of day
traffic_alert_multiplierHow many times the usual views alert, 2 to 100
traffic_alert_min_viewsFewer views than this in 15 minutes never alert, 10 to 1000000
Escalation paths the page's alerts (issue reports and traffic spikes) follow; empty for the team's default path
created_atWhen the page was created
Delete a status page
The page goes offline at once, with its components, incidents, maintenance, subscribers and uploaded logos. Subscribers aren't emailed. Its firing alerts resolve. The team's own incidents are kept.
path Parameters
statusPageStatus page ID.
Delete a status page › Responses
No content
Verify the custom domain
Looks up the page's custom domain in DNS. One passing record verifies it: a CNAME to the
page's cname_target, or the TXT record from custom_domain_verification. A verified
domain stays verified when a later check fails. routed tells whether visitors reach the
page; its certificate is issued on the first visit. The page needs a custom domain (422
otherwise). Safe to repeat while DNS changes propagate.
path Parameters
statusPageStatus page ID.
Verify the custom domain › Responses
What DNS returned, and whether the domain is verified.
domainThe domain
verifiedWhether ownership is proven, now or earlier. A proven domain stays verified when a later check fails
verified_atWhen ownership was proven; null before
The records that can verify the domain; one passing record is enough
routedWhether visitors reach the page: the domain points at it by CNAME or resolves to the same addresses. The page and its certificate need this; the certificate is issued on the first visit
addressesAddresses the domain resolves to (A and AAAA records)
checked_atWhen DNS was checked
Rotate the access key
Replaces the key in the page's access_url: the old link stops working, and every visitor
of the private page is signed out, including those who entered the password.
path Parameters
statusPageStatus page ID.
Rotate the access key › Responses
The status page with its new access URL.
idStatus page ID
nameName, shown as the page title
slugThe page's subdomain under spectate.page
visibilityWho can open the page
public Anyone. |
private Visitors with the access link, or the password when the page has one. Part of the Team plan and up. |
statusThe headline status visitors see: the worst status of the components, and the impact of open incidents that affect no components
operational Working normally. |
degraded_performance Slower or less reliable than usual. |
partial_outage Down for some visitors or some functions. |
major_outage Down. |
under_maintenance In planned maintenance. |
public_urlWhere visitors open the page: the custom domain once it is verified, else the spectate.page address
access_urlOpens the page while it is private. Anyone with it gets in; rotateStatusPageAccessKey replaces it
custom_domainYour own domain for the page; null for none. Visitors use it once it is verified
password_protectedWhether visitors of a private page can also get in with the password
has_passwordWhether the page has a password. The password itself is never returned
languageLanguage of the public page and of subscriber emails
en English. |
nl Dutch. |
de German. |
fr French. |
es Spanish. |
it Italian. |
match_browser_languageVisitors get their browser's language when it is supported, and can switch languages in the footer
How the page looks and what it shows
collapsed_groupsComponent groups that start collapsed
automation_enabledMonitor automation: when a monitor linked to a component goes down, an incident "{component} is down" (major outage) opens with automation_down_message, and resolves with automation_recovered_message when the monitor recovers
automation_down_messagePosted when a linked monitor goes down; {component} and {status_page} are filled in. null for a default message
automation_recovered_messagePosted when the monitor recovers; null for a default message
issue_reports_enabledVisitors can report problems from the page
issue_reports_show_on_pageWhile reports are above the threshold, the page says that users are reporting issues
issue_reports_alerts_enabledReaching the threshold fires an alert
issue_reports_thresholdReports within issue_reports_window_minutes that count as above the threshold, 1 to 1000
issue_reports_window_minutesThe window for the threshold, in minutes, 1 to 1440
issue_reports_triggered_atSince when reports are above the threshold; null when they aren't
traffic_alerts_enabledAlert when views reach traffic_alert_multiplier times the usual views for the time of day
traffic_alert_multiplierHow many times the usual views alert, 2 to 100
traffic_alert_min_viewsFewer views than this in 15 minutes never alert, 10 to 1000000
Escalation paths the page's alerts (issue reports and traffic spikes) follow; empty for the team's default path
created_atWhen the page was created