POST/v2/statuspages

Create a status page

Creates a new status page.

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"]
Available options:
enfrderunlplsv
themeenum<string>optional
Color scheme for the status page. system automatically matches the visitor's OS preference. Default: system
Available options:
lightdarksystem
fontstringoptional
Typography for the status page. Fonts are loaded from Google Fonts. Use system-ui for fastest load times. Default: Inter
Available options:
system-uiLatoManropeInterOpen SansMontserratPoppinsRobotoRalewayNunitoMerriweatherDM SansWork Sans
accent_colorstringoptional
Primary brand color used for buttons, links, and highlights. Must be a valid hex color code (e.g., #188ded). Default: #36b27e
auto_refreshbooleanoptional
Automatically refresh the page every 60 seconds to show latest status without manual reload. Useful for dashboards displayed on monitors. Default: false
banner_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: true
logostringoptional
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: 32px
faviconstringoptional
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: false
hide_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: false
google_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: true
subscribe.emailboolean
Allow visitors to subscribe via email. They'll receive emails when incidents are created, updated, or resolved. Default: true
subscribe.slackboolean
Allow visitors to subscribe via Slack webhook. They can connect their Slack workspace to receive status updates in a channel. Default: false
subscribe.teamsboolean
Allow visitors to subscribe via Microsoft Teams webhook. They can connect their Teams workspace to receive status updates in a channel. Default: false
subscribe.smsboolean
Allow visitors to subscribe via SMS. They'll receive text messages when incidents occur. Additional charges may apply. Default: false
authenticationobjectoptional
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: false
authentication.google_ssoboolean
Require visitors to sign in with their Google account. Use with google_allowed_domains to restrict to specific email domains. Default: false
authentication.saml_ssoboolean
Require visitors to authenticate via your SAML identity provider (e.g., Okta, Azure AD, OneLogin). Requires sso_connection_uuid to be set. Default: false
authentication.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 to use for SAML authentication (e.g., sso_abc123xyz). Create SSO connections via the API or in the dashboard under Status Pages → SSO Connections.
sectionsarray<object>optional
Organize your services into logical sections. Each section can contain multiple services (monitors or components) that are displayed together with a shared heading.
sections[].namestringrequired
Heading displayed above this group of services. Examples: "Core Services", "API", "Infrastructure", "Third-party Integrations".
sections[].servicesarray<object>
List of services (monitors or components) to display in this section. Services are displayed in the order provided.
sections[].services[].monitor_uuidstringrequired
UUID of the monitor (mon_xxx) or component (comp_xxx) to display. The monitor's current status and uptime data will be shown.
sections[].services[].name_shownstring
Custom display name for this service. If not set, the monitor's original name is used. Useful for showing user-friendly names instead of technical monitor names.
sections[].services[].show_uptimeboolean
Display the uptime percentage badge (e.g., "99.9%") next to the service name. Calculated over the last 90 days. Default: true
sections[].services[].show_response_timesboolean
Display a response time graph showing the service's performance over time. Clicking the service reveals the detailed graph. Default: true
sections[].services[].descriptionstring
Short description displayed below the service name. Useful for explaining what the service does or providing additional context to visitors.
sections[].services[].is_groupboolean
Mark this service as a collapsible group containing nested services. The group's status reflects the worst status among its children. Default: false
sections[].services[].servicesarray
Nested services when is_group is true. These services appear collapsed under the parent and can be expanded by clicking. Same structure as the parent services array.

Response

Returns the newly created status page.

RequestcURL
curl -X POST https://api.hyperping.io/v2/statuspages \
  -H "Authorization: Bearer ${API_TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "My Status Page",
    "subdomain": "mystatus",
    "website": "https://mycompany.com",
    "languages": ["en"],
    "theme": "system",
    "accent_color": "#188ded",
    "subscribe": {
      "enabled": true,
      "email": true,
      "slack": true
    },
    "authentication": {
      "sso_connection_uuid": "sso_abc123xyz"
    },
    "sections": [
      {
        "name": "Services",
        "services": [
          {
            "monitor_uuid": "mon_abc123xyz",
            "name_shown": "API",
            "show_uptime": true,
            "show_response_times": true
          }
        ]
      }
    ]
  }'
201 CreatedJSON
{
  "message": "Status page created",
  "statuspage": {
    "uuid": "sp_xyz789abc",
    "name": "My Status Page",
    "hostname": null,
    "hostedsubdomain": "mystatus.hyperping.app",
    "url": "mystatus.hyperping.app",
    "password_protected": false,
    "settings": {
      "authentication": {
        "password_protection": false,
        "google_sso": true,
        "google_allowed_domains": ["mycompany.com"],
        "saml_sso": true,
        "sso_connection_uuid": "sso_abc123xyz",
        "sso_connection": {
          "uuid": "sso_abc123xyz",
          "name": "Corporate Azure AD",
          "provider": "azure"
        }
      },
      ...
    },
    "sections": [ ... ]
  }
}