Status Pages

Create public status pages to communicate service status with your customers. Includes real-time status, incident history, uptime metrics, email subscriptions, status badges, and Atom feeds.

Public Status Page

A public status page showing service status, uptime metrics, and incident history

Overview

Status pages provide a public-facing view of your service health. Customers can check the status of your services without needing to contact support. Key features:

  • Public or private visibility
  • Custom URL slug (e.g., /status/your-company)
  • Company branding with logo
  • Real-time status updates
  • 24-hour uptime percentage per check
  • Clickable 90-day history bars per check
  • 90-day incident history
  • Email subscriptions for incident notifications
  • SVG status badges for embedding
  • Atom feed for RSS readers
  • Downloadable status report

Status Pages management

Manage your status pages with visibility controls, check assignments, and custom URLs

Creating a Status Page

  1. Go to Status Pages in the sidebar
  2. Click + New Status Page
  3. Configure the status page settings
  4. Select which checks to display
  5. Click Create

Example Configuration

Name:Acme Corp Status
Slug:acme-corp
Description:Current status of Acme Corp services
Visibility:Public
Logo URL:https://acme.com/logo.png
Checks:API, Website, Database

Status Page URL

Once created, your status page is accessible at:

https://your-domain.com/status/{slug}

# Example:
https://your-domain.com/status/acme-corp

Reporting Incidents

Communicate with your customers as you investigate and resolve issues. Report incidents directly on your status page and keep subscribers informed with updates.

Creating an Incident

  1. Go to your status page (from Status Pages list, click Manage)
  2. Open the Incidents tab
  3. Click Report incident
  4. Fill in the details:
    • Title — Brief description of the issue
    • Impact — Minor, Major, or Critical
    • Status — Investigating, Identified, Monitoring, or Resolved (defaults to Investigating)
    • Message — Public message for subscribers
  5. Optionally toggle Notify subscribers to send an email
  6. Click Publish

Posting Updates

As you investigate and resolve the issue, post updates on the incident to keep customers informed:

  1. On the incident card, click Post update
  2. Choose the next status:
    • Investigating — You're looking into the issue
    • Identified — Root cause found
    • Monitoring — Monitoring the fix
    • Resolved — Issue is fixed
  3. Add an update message
  4. Toggle Notify subscribers to send an email (enabled by default only when marking as Resolved)
  5. Click Publish

Subscribers receive an email when an incident is first reported and when it's resolved. Intermediate updates email subscribers only if Notify subscribers is checked.

Publishing from Internal Incidents

You can also publish incidents from your internal incident pages:

  1. Open an inbound incident or check incident on your dashboard
  2. Click Publish to status page
  3. Choose one or more status pages to publish to
  4. Set the public title, impact, and message
  5. Click Publish

If you publish from an inbound incident (Prometheus, Grafana, etc.), the status page entry automatically resolves when the source incident resolves. Check incidents must be resolved on the status page manually.


Scheduled Maintenance

Notify your customers about planned maintenance windows. Maintenance can be announced on status pages to set expectations and reduce support requests during downtime.

Announcing Maintenance on Status Pages

When creating or editing a maintenance window, you can enable Announce on status pages (pages showing the affected checks). When enabled, the maintenance appears on public status pages of your organization that display at least one affected check. A maintenance window without specific checks (applying to the whole organization) appears on every status page of that organization that shows at least one check.

Tip

To see a maintenance announcement on a status page, that page must display at least one check affected by the maintenance. Empty status pages (with no checks) do not show maintenance.

What Customers See

Maintenance windows are listed on your public status page under Scheduled maintenance, showing up to 14 days ahead, with a maximum of 10 entries listed soonest first. Only the maintenance name and description are visible to customers — internal notes and affected check details are never exposed.

While a maintenance window is running, a prominent Maintenance in progress banner appears at the top of the status page above other content. Recurring maintenance windows show their next scheduled occurrences in the list.

Per-Page View

View announced maintenance for a status page:

  1. Go to Status Pages
  2. Click Manage on your status page
  3. Open the Maintenance tab
  4. See all announced maintenance for that page, with links to Manage maintenance windows

Platform-Wide Maintenance

Maintenance windows created by a superadmin without an organization assignment are considered platform-wide and are never shown on customer status pages. Use this for internal infrastructure maintenance that does not affect customer-facing services.

Caching

Changes to maintenance windows (create, update, delete, or toggling the announcement flag) are reflected immediately on public status pages. The status page cache is automatically cleared when modifications occur.


Overall Status

The status page shows an overall status based on all included checks:

OperationalAll systems are running normally
DegradedSome systems have issues (DEGRADED or LATE status)
OutageOne or more systems are DOWN

90-Day History Bars

Each check on the status page shows a clickable 90-day history bar. Each day is colored by that day's uptime percentage:

  • Green — Uptime ≥ 99.5%
  • Yellow — Uptime ≥ 95%
  • Red — Uptime below 95%
  • Gray — No data (check was paused or new)

Hover over a day to see the exact uptime percentage and the worst state reached that day. Click any day that was not fully green to open what happened on that date — all the way back through the full 90 days, not just the recent ones. Green days have no incidents to show, so they are not clickable.

A day can be red with no status changes of its own — the check went down earlier and had not recovered yet, so nothing “happened” on that date. Those days are labelled Ongoing and point you at the day the incident actually started.


Inbound Incidents on Status Pages

Status pages can also reflect incidents created through the Inbound Events API (Prometheus, Grafana, custom scripts, etc.), not just your monitored checks.

Enabling It

This is opt-in per status page. In the status page editor, enable Show Inbound Incidents and choose a Minimum Severity (critical, error, warning, or info; default critical). Only inbound incidents at or above that severity are published.

Status Auto-Sync

Once enabled, the status page entry tracks the inbound incident automatically:

Inbound eventStatus page state
Incident created (trigger)Investigating
Incident acknowledgedIdentified
Incident resolvedResolved

A prominent active incidents banner appears at the top of the public page while any inbound incident is open. Subscribers get an email when the incident is first published and when it resolves — intermediate status changes update the page but don't generate additional emails, to avoid spamming subscribers.


Uptime Panel

Each check on the status page shows its 24-hour uptime percentage and current response time. This gives visitors a quick sense of service reliability.


Email Subscriptions

Visitors can subscribe to email notifications for your status page. When an incident occurs or resolves, subscribers automatically receive an email.

How It Works

  1. A visitor enters their email address in the subscribe form on your status page
  2. They receive a confirmation email with a verification link
  3. After clicking the link, they're subscribed to incident notifications
  4. When a check changes status (UP → DOWN, DOWN → UP, etc.), subscribers are notified
  5. Every notification email includes an unsubscribe link

Tip

Subscriptions use double opt-in (email confirmation required) to prevent spam and comply with email best practices. Unconfirmed subscriptions are automatically cleaned up.

What Subscribers Receive

  • Incident notifications — When a check goes DOWN or DEGRADED
  • Resolution notifications — When a check recovers to UP
  • Notifications include: check name, old status, new status, timestamp

Status Badges

Embed status badges in your README, documentation, or website to show current service status. Badges are SVG images rendered in the shields.io style.

Badge Types

BadgeURLShows
Status/api/badges/{uuid}Current status: UP (green), DOWN (red), DEGRADED (amber)
Uptime/api/badges/{uuid}/uptime24-hour uptime percentage (e.g., "99.95%")

Embedding

Embed codes are available on each check's detail page. Both Markdown and HTML formats are provided:

Markdown
![Status](https://your-domain.com/api/badges/abc-123-uuid)
![Uptime](https://your-domain.com/api/badges/abc-123-uuid/uptime)
HTML
<img src="https://your-domain.com/api/badges/abc-123-uuid" alt="Status" />
<img src="https://your-domain.com/api/badges/abc-123-uuid/uptime" alt="Uptime" />

Customization

Badges support query parameters for styling:

ParameterValuesDefault
styleflat, flat-squareflat

Badges are public and require no authentication. They are cached for a short period to reduce load.


Atom Feed

Every public status page has an Atom feed that RSS readers can subscribe to. This provides another way for your users to stay informed about incidents.

Feed URLs

FeedURLContent
Main Feed/api/status-pages/public/{slug}/feed.atomAll status changes and incidents
Incidents Feed/api/status-pages/public/{slug}/incidentsIncident history only

Add the Atom feed URL to any RSS reader (Feedly, Inoreader, Thunderbird, etc.) to receive updates automatically.


Custom Domains

Host your status page on your own domain (e.g., status.acme.com) instead of the default your-instance.com/status/slug URL.

Setup Steps

  1. Add a CNAME record pointing your subdomain to syschecks.com (or your instance hostname)
  2. Add a TXT record for domain verification: _systeam-verify.status.acme.com with the verification token shown in settings
  3. In your status page settings, enter the custom domain and click Verify Domain
  4. Wait for DNS propagation (up to a few minutes)
  5. Click Check Status to confirm verification

DNS Records Example

TypeNameValue
CNAMEstatus.acme.comsyschecks.com
TXT_systeam-verify.status.acme.comsysteam-verify-abc123...

Tip

TLS certificates are automatically provisioned via Let's Encrypt once the CNAME is verified. No manual certificate configuration is needed.

Verification States

StateMeaning
PendingDomain entered but DNS records not yet verified
VerifiedBoth CNAME and TXT records confirmed, custom domain is active
FailedDNS records not found or incorrect. Check your DNS configuration.

Public Report Download

Visitors can download a status report from your public status page. The report includes overall status, per-check uptime, and recent incident history. See the Reports page for more details.


Visibility Options

Public Status Pages

Accessible to anyone with the URL. No login required. Ideal for customer-facing status pages. Public pages also enable:

  • Email subscriptions
  • Atom feed
  • Public report download
  • Public API access

Private Status Pages

Require authentication. Use for internal team status pages or staging environments. Private pages are only visible to organization members.


Customization

Logo

Add your company logo URL to brand your status page. Recommended: height of 40-60 pixels.

Check Selection

Choose which checks to display. You can give checks different display names for the public page. For example, show "API" publicly while the internal check name is "Production API v2 - Load Balancer".

Best Practice

Group related services logically. Show "API" and "Website" but keep internal services like "Redis Cache" hidden from public view.


Managing Status Pages

Enable/Disable

Temporarily disable a status page without deleting it. Disabled pages return a 404 error.

Edit

Update the name, description, checks, or visibility settings at any time.

Delete

Permanently remove a status page and all its subscriber data. This cannot be undone.


Public API

Access status page data programmatically (no authentication required for public pages):

GET/api/status-pages/public/{slug}Status page data
GET/api/status-pages/public/{slug}/uptimeUptime data for all checks
POST/api/status-pages/public/{slug}/subscribeSubscribe to email notifications
GET/api/status-pages/public/{slug}/feed.atomAtom feed
Example: Status Page API Response
{
  "name": "Acme Corp Status",
  "description": "Current status of Acme Corp services",
  "logo_url": "https://acme.com/logo.png",
  "overall_status": "operational",
  "checks": [
    {
      "name": "API",
      "status": "UP",
      "response_time": 120,
      "uptime_24h": 99.98,
      "last_check": "2026-02-12T10:30:00Z"
    },
    {
      "name": "Website",
      "status": "UP",
      "response_time": 340,
      "uptime_24h": 100,
      "last_check": "2026-02-12T10:30:00Z"
    }
  ],
  "last_updated": "2026-02-12T10:30:00Z"
}

Next Steps