Request
Bodyapplication/json
namestringrequired
Name of the status page. Displayed in the Hyperping dashboard, used as the browser tab title, shown in the header when a website URL is set (as "Go to [Name]"), and used as the page title if no logo is set.
subdomainstringoptional
Subdomain for hosting on Hyperping (e.g.,
mycompany becomes mycompany.hyperping.app). Must be unique across all Hyperping status pages. Only alphanumeric characters and hyphens allowed.hostnamestringoptional
Your own custom domain (e.g.,
status.mycompany.com). Requires CNAME DNS record pointing to cname.hyperping.io. SSL certificate is automatically provisioned.websitestringoptional
URL to your main website. Displayed as a clickable link in the status page header, allowing visitors to navigate back to your site.
descriptionstringoptional
Short text displayed below the status page title. Use it to describe your service or provide context to visitors.
languagesarray<string>optional
Languages available on your status page. When multiple languages are set, a language switcher appears. Incident updates and maintenance messages can be localized per language. Default:
["en"]themeenum<string>optional
Color scheme for the status page.
system automatically matches the visitor's OS preference. Default: systemfontstringoptional
Typography for the status page. Fonts are loaded from Google Fonts. Use
system-ui for fastest load times. Default: Interaccent_colorstringoptional
Primary brand color used for buttons, links, and highlights. Must be a valid hex color code (e.g.,
#188ded). Default: #36b27eauto_refreshbooleanoptional
Automatically refresh the page every 60 seconds to show latest status without manual reload. Useful for dashboards displayed on monitors. Default:
falsebanner_headerbooleanoptional
Controls the status page layout. When
true, displays a compact banner at the top with the overall status. When false, shows a larger centered status icon with the message. Default: truelogostringoptional
URL to your logo image. Displayed in the header. Supports PNG, JPG, SVG, and ICO formats. Recommended: use a transparent PNG or SVG for best results.
logo_heightstringoptional
Height of the logo in pixels. Width scales proportionally. Example:
32px, 48px. Default: 32pxfaviconstringoptional
URL to your favicon. Displayed in browser tabs. Supports ICO, PNG, and SVG formats. Recommended size: 32x32 or 64x64 pixels.
hide_powered_bybooleanoptional
Remove the "Powered by Hyperping" branding from the footer. Available on paid plans. Default:
falsehide_from_search_enginesbooleanoptional
Adds
noindex and nofollow meta tags to prevent search engines from indexing your status page. Useful for internal or private status pages. Default: falsegoogle_analyticsstringoptional
Your Google Analytics 4 measurement ID (e.g.,
G-XXXXXXXXXX). Enables tracking of page views and visitor analytics on your status page.passwordstringoptional
Password required to access the status page when
authentication.password_protection is enabled. Visitors must enter this password before viewing the page.subscribeobjectoptional
Configure how visitors can subscribe to receive notifications about incidents and maintenance on your status page.
subscribe.enabledboolean
Show the "Subscribe" button on the status page. When disabled, visitors cannot subscribe to updates. Default:
truesubscribe.emailboolean
Allow visitors to subscribe via email. They'll receive emails when incidents are created, updated, or resolved. Default:
truesubscribe.slackboolean
Allow visitors to subscribe via Slack webhook. They can connect their Slack workspace to receive status updates in a channel. Default:
falsesubscribe.teamsboolean
Allow visitors to subscribe via Microsoft Teams webhook. They can connect their Teams workspace to receive status updates in a channel. Default:
falsesubscribe.smsboolean
Allow visitors to subscribe via SMS. They'll receive text messages when incidents occur. Additional charges may apply. Default:
falseauthenticationobjectoptional
Restrict access to your status page. Useful for internal status pages that should only be visible to employees or authenticated users.
authentication.password_protectionboolean
Require visitors to enter a password before viewing the status page. Set the password using the
password field. Default: falseauthentication.google_ssoboolean
Require visitors to sign in with their Google account. Use with
google_allowed_domains to restrict to specific email domains. Default: falseauthentication.saml_ssoboolean
Require visitors to authenticate through the identity provider of an SSO connection, over SAML or OpenID Connect (e.g., Okta, Azure AD, Auth0). Requires
sso_connection_uuid to be set. Default: falseauthentication.google_allowed_domainsarray<string>
List of email domains allowed for Google SSO login. Only users with email addresses from these domains can access the page. Example:
["mycompany.com", "subsidiary.com"]authentication.sso_connection_uuidstring
UUID of the SSO connection visitors sign in with, SAML or OpenID Connect (e.g.,
sso_abc123xyz). Create OpenID Connect connections with the SSO Connections API, and any type in the dashboard under Status Pages → SSO Connections. List SSO connections returns the UUIDs of all of them.sectionsarray<object>optional
The blocks of services on the page, in display order. A service is a monitor (
mon_), a healthcheck (hc_), a server (agt_) or a component (comp_), or a group of them.sections[].namestring | objectrequired
Heading of the section. A string is stored under the page's default language. The GET returns an object keyed by language (
{ "en": "API" }), which you can send back as is.sections[].is_splitboolean
Kept for compatibility, with no visible effect on the page. Default:
truesections[].servicesarray<object>
Services of the section, in display order.
sections[].services[].monitor_uuidstringrequired
Identifier of the service:
mon_ for a monitor, hc_ for a healthcheck, agt_ for a server, comp_ for a component. uuid and id are accepted under the same rules (when several are set, monitor_uuid wins, then uuid, then id). Each one must belong to the project, otherwise the request fails with 400 and nothing is saved. Not needed on a group.sections[].services[].name_shownstring
Display name on the page, stored under the default language. Set it on every service, or send
name as the GET returns it: the page does not fall back to the monitor's own name.sections[].services[].nameobject
Display name per language, as the GET returns it. Used when
name_shown is absent.sections[].services[].descriptionstring | object
Shown in a tooltip next to the service name. A string is stored under the default language.
sections[].services[].show_uptimeboolean
90 days of daily uptime bars. Works for healthchecks too. Default:
truesections[].services[].show_response_timesboolean
Response time chart. A healthcheck has no response time, so the value is stored as
false for it, whatever you send. Default: truesections[].services[].hide_when_upboolean
Lists the service only during an incident or a maintenance. Default:
falsesections[].services[].is_groupboolean
Makes this entry a collapsible group. Give it a
name_shown and its services; it needs no identifier. Its status is the worst status of its services. Default: falsesections[].services[].servicesarray<object>
Services of the group, when
is_group is true. Each takes monitor_uuid, name_shown (or name), show_uptime, show_response_times and hide_when_up, with the same rules as above. Groups do not nest.sections[].services[].typestringread-only
Returned by the GET:
monitor, healthcheck, server or component, derived from the identifier. Ignored on input, so a GET sent back unchanged keeps every service as it is.Healthchecks on a status page
Add a healthcheck with its hc_ identifier: the publicUuid field of the healthchecks API (GET /v2/healthchecks). The status page GET returns it for the healthchecks already on a page, and the MCP list_healthchecks tool lists them too. The ping token (tok_, the uuid of the healthchecks API) is accepted as well, converted to the hc_ and never stored or shown on the page.
A healthcheck shows uptime bars like a monitor (show_uptime), but no response time chart: show_response_times is always false for it.
Response
Returns the newly created status page.