Create a status page
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).
Before you start
Section titled “Before you start”- 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.
Settings reference
Section titled “Settings reference”| 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.
Features
Section titled “Features”| 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.
Create it in the app
Section titled “Create it in the app”- Open Status pages in the sidebar (
/status-pages) and click Create status page. - 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.
- 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).
- 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).
- 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).
- 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.
Do it with the API or MCP
Section titled “Do it with the API or MCP”POST /statuspage (scope statuspage:write). slug and title are required; settings and components are
optional:
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.
What happens next
Section titled “What happens next”- 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.jsonand the badge are cached briefly).
Limits and gotchas
Section titled “Limits and gotchas”- The slug is permanent. To change the address, create a new page and delete the old one.
- Slug refusals answer
422 validation_failedat/slug: reasonduplicatewhen another page already uses it,invalidfor 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_limitwithfeature: "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.hideBrandingis accepted but has no effect.

