Skip to content

Create a status page

View as Markdown

A status page shows a chosen set of your monitors to your own users at a permanent public address. This page creates one and explains every field on the editor’s Settings tab. Components, appearance, announcements and subscribers have their own pages (linked below).

  • At least one monitor is useful - a page can be created empty, but it has nothing to show until you add components.
  • Your plan decides how many pages you can have (1 to 10) - see plan limits.
  • Pick the slug carefully: it is the page’s public address and cannot be changed later.
Setting (UI label) Where API field Type / allowed values Default Plan What it does for you
Name Wizard step 2, Settings tab title Text, required, up to 200 characters - all The page heading and browser-tab title.
Page URL Wizard step 2 (read-only afterwards) slug 3-64 characters: lowercase letters, digits and single hyphens (^[a-z0-9]+(-[a-z0-9]+)*$); unique; not a reserved word - all The address: status.host-tracker.com/<slug> and www.host-tracker.com/status/<slug>. Fixed once the page exists.
Homepage URL (optional) Wizard, Settings tab settings.homepageUrl Absolute http(s) URL, up to 500 characters none all Where your logo and title link to.
SLA target Settings tab settings.slaTarget Number greater than 0 and up to 100, for example 99.9; empty for none none Webmaster band and above Shows “against a 99.9% target” with an error budget, plus a 12-month compliance history visitors can expand and export as CSV.
Google Analytics measurement ID Settings tab, White-label settings.googleAnalyticsId G- followed by 4-16 letters or digits none Webmaster band and above Adds your GA4 tag so visits appear in your own property.
Password protection Wizard (Password), Settings tab Access not in the API Any password; empty for a public page none all Makes the page unlisted - visitors must enter it. See Password protection.
Search engines Wizard, Settings tab Access settings.robotsIndex Index - allow search engines (true) / No-index - keep it out of search results (false) Index Webmaster band and above (below it, pages are always indexable) Whether search engines may list the page.
Features Settings tab settings.features Any of the 10 tokens below see below all What visitors see.
Custom domain - customDomain (read-only) - - - Not available yet - see custom domain.

Branding, colours and layout (logo, theme, density, grouping, the display preset) are on the Appearance tab - see Appearance and branding. The announcement banner is on the Announcements tab.

Switch (UI label) Token Default (app) Default (API) What it does
Show bar charts barCharts on on The 90-day uptime bar under each component.
Show uptime percentage uptimePercent on on The uptime % beside each component.
Show outage details outageDetails off off The reason / error text on outage and incident rows.
Enable details pages detailsPages on on Click-through incident and history pages. Off, those pages answer 404.
Show floating status bar floatingBar off off A sticky bar with overall up/down counts.
Show monitor URL monitorUrls off off Each component’s address under its name.
Hide paused monitors hidePaused off off Leaves paused monitors off the page instead of showing them without data.
Show overall percentage overallUptime off on A combined 24 h / 7 d / 30 d uptime strip.
Show latest downtime downtimeFeed off off The automatic “Recent Downtime” feed of every outage the monitors recorded.
Enable subscribe subscribe on on The email subscribe form, the RSS/Atom feeds, and email delivery to existing subscribers. Off also stops updates to people already subscribed by email.

In the API, settings.features is the page’s whole feature set: a token you leave out is off.

  1. Open Status pages in the sidebar (/status-pages) and click Create status page.
  2. Step 1 - Monitors. Search for a monitor and click Add, or use Bulk add to add every monitor matching tags or a name filter (optionally into a group). Under Selected monitors you can set a Public label and a Group (optional) per monitor, remove rows and choose a Sort order. You can also skip this and add components later. Click Next step: Settings.
  3. Step 2 - Settings. Enter the Name and the Page URL slug. Optionally set the Homepage URL, Branding (Logo URL, Favicon URL), Layout (Show monitors under groups, density and logo position), and Access (Password, Search engines).
  4. Create the page. The editor opens with a “Your status page is live!” note, and the page is public immediately at its address (unless you set a password).
  5. Use the editor’s four tabs to finish: Monitors, Appearance, Settings, Announcements. Save each tab’s changes with its own save button (for example Save settings).
  6. Click View page to open the public page, or Share to copy the public link and the embed snippets.

The Status pages list shows each page with its address, monitor count, creation date, an amber badge for open incidents, a Private badge when it has a password, and buttons to Edit, View, declare an incident, or Delete.

POST /statuspage (scope statuspage:write). slug and title are required; settings and components are optional:

Terminal window
curl -X POST https://api2.host-tracker.com/statuspage \
-H "Authorization: Bearer $HT_TOKEN" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: create-acme-status" \
-d '{
"slug": "acme",
"title": "Acme status",
"settings": {
"homepageUrl": "https://acme.example.com",
"theme": "light",
"showGroups": true,
"features": ["barCharts", "uptimePercent", "detailsPages", "subscribe"]
},
"components": [
{ "monitorId": "WEB_MONITOR_ID", "name": "Website", "group": "Web" },
{ "monitorId": "API_MONITOR_ID", "name": "Public API", "group": "API" },
{ "thirdParty": true, "name": "Payment provider", "manualState": "operational" }
]
}'

The answer is 201 Created with the page and a Location: /statuspage/{id} header. The page view carries id, slug, title, componentCount, unresolvedIncidents, hasPassword, created, customDomain, settings and components.

Task Operation
List pages GET /statuspage (sort created, title, slug)
Read one GET /statuspage/{id}
Change title or settings PATCH /statuspage/{id} - only what you send changes; null clears a member
Replace the components PUT /statuspage/{id}/component - see components
Delete DELETE /statuspage/{id} - frees the slug; the receipt counts removed components, incidents, subscribers and templates

MCP: create_status_page takes slug, title, componentsJson (a JSON array like the components above) and settingsJson, both JSON passed as strings. update_status_page takes title and/or settingsJson; the settings you send are merged into the page’s settings field by field (members you leave out keep their values; only features replaces its whole list) - the tool’s own text says it replaces the object, which is not what the API does. The page is public as soon as it is created, so agree the slug, title and monitors with the page owner first.

  • The page is live at https://status.host-tracker.com/<slug> immediately.
  • Components show their monitors’ live state; uptime bars fill from the monitors’ existing history.
  • If Enable subscribe is on, visitors can subscribe by email. Declare incidents from the Announcements tab.
  • Changes you save reach the public page within about a minute (the page, status.json and the badge are cached briefly).
  • The slug is permanent. To change the address, create a new page and delete the old one.
  • Slug refusals answer 422 validation_failed at /slug: reason duplicate when another page already uses it, invalid for a bad format or a reserved word (api, admin, www, status, help, app, login, signup, profile, billing, new, edit, dist, content, img, lib, healthz, account, user, error, home, ic, status-pages).
  • Page cap. Creating more pages than your plan allows answers 403 package_limit with feature: "statusPages" (in the app: “Your plan allows N status page(s). Upgrade to create more.”).
  • Plan-gated settings (SLA target, Google Analytics ID, no-index) are saved on any plan but only take effect on the public page from the Webmaster band up.
  • Deleting a page removes it, its components, incidents and subscribers, and the slug stops working at once. Your monitors are not affected.
  • The “Powered by HostTracker” credit is always shown; settings.hideBranding is accepted but has no effect.