Browse docs

Customize your status page

Everything the status page builder can do, from branding and layout to incidents, subscribers and embeds.

If you haven't made a status page yet, start with Create your first status page. This guide goes through each part of the builder in the order you'll meet it.

Three status pages with different logos, themes and fonts

The builder

Open a page from Status pages to edit it. The builder has three tabs that share one form, so one Save status page saves all of them and switching tabs never loses what you've typed.

Design Everything that changes how the page looks, next to a live preview of the real page.
Settings Name, URL, search description, favicon, and who can open the page.
Share The page link and snippets for the JSON status, badge and widget.
The status page builder: header, layout and live preview on the Design tab

Branding

The top of the page is your logo, or the page title when there's no logo. Under it, an overall status line tells visitors at a glance whether everything works.

Logo Upload a PNG, JPEG or WebP up to 2 MB, or enter a Logo URL for a hosted image (SVG works there). An upload wins over the URL.
Brand link URL Where the logo (or page title) links, usually your website.
Page title Shown in the browser tab and subscriber emails, and at the top of the page when there's no logo.
Theme Light or dark.
Accent color Links, buttons and section icons. Text on buttons switches between black and white for contrast.
Background color Optional; leave it empty for the theme's default.
Font Sans serif, serif or monospace, from the visitor's system fonts. No third-party font service is loaded.
Favicon On the Settings tab. A square icon for the browser tab; without one, the logo is used.
Hide "Powered by WatchCat" Removes the footer. Pro and Team only.

Shared links to the page show a preview card with your page title, search description and logo.

Layout: sections and monitors

Group monitors into sections, such as Core platform, Regions or Scheduled jobs. Drag rows by their handle to reorder monitors or move them between sections, and drag whole sections to reorder them.

  • A section without a title renders as a plain list.
  • A collapsible section has a header visitors can click to fold it; Start collapsed folds it by default. A folded section still says how many services it holds, and how many are down.
  • Each monitor can have a public name, so internal names like api-prod-eu-1 never appear.
  • Uptime and cron monitors mix freely. A late cron job reads as Degraded and a missed one as Outage, the same labels as uptime monitors.

Uptime history and performance

Each monitor has a bar of daily history. A day turns red only for a confirmed incident, not for a single failed check, so a brief blip doesn't make your page look worse than your service was. Hovering a day shows what happened.

Days shown 7, 14, 30 or 90 days, as far as your plan keeps data: 7 days on Free, 90 on Pro and Team.
Show uptime percentage The uptime of the whole page under the status line, of each titled section, and of each monitor.
Show response times A sparkline of each uptime monitor's daily average response time, from successful checks.

Incidents

When something goes wrong, tell visitors what you know. From Status pages, click Incidents next to the page and then Report incident. Give it a title, a status, the affected monitors and a first update.

  • Post updates as you go: investigating, identified, monitoring, resolved. The incident's status follows its latest update.
  • Open incidents are pinned to the top of the page, and affected monitors show the incident next to their own status.
  • Each incident has a permalink with its whole timeline. Resolved incidents move to Past incidents and the monthly history.
  • Untick Show on the status page to keep an incident internal.

Scheduled maintenance

Maintenance belongs to monitors, not to a page, so you schedule it from Maintenance in the sidebar with Schedule maintenance: a title, a start and an end, details, and the affected monitors.

  • With Show on status pages on, every page that shows one of those monitors announces the window ahead of time, and only names its own monitors.
  • While it runs, affected monitors read Under maintenance and don't turn the page red.
  • Alerts for those monitors are muted during the window, and the downtime doesn't count against the page's uptime.
  • Post updates while it runs; a Completed update ends the window early.

Subscribers and the feed

Visitors can follow your updates without checking the page:

Email Subscribe to updates on the page. Subscribers confirm their address first (double opt-in), then get every incident and maintenance update, plus a note when maintenance starts and ends. Every email has a one-click unsubscribe, which deletes the address.
Atom feed Updates feed on the page, for feed readers and tools that watch feeds. No address needed.

To see or remove subscribers, open a page's menu under Status pages and choose Subscribers.

Who can open the page

Choose on the Settings tab under Access:

Public Anyone with the address can open it. The default.
Unlisted Opens only through the share link, which carries a secret key. Replace the link when saving to stop old links from working. Pro and Team.
Password protected Visitors enter a shared password once per browser session. Changing the password signs everyone out. Pro and Team.

Unlisted and password-protected pages aren't indexed by search engines, and anyone without access gets a "not found" page, so they don't learn the page exists.

Show your status elsewhere

The Share tab has copyable snippets and a preview of each. They update within a minute.

Status JSON /status/acme.json returns the overall status, each component, open incidents and maintenance, shaped like Statuspage's summary.json so existing scripts read it easily.
Badge An SVG badge for READMEs and dashboards.
Widget A one-line status card for your own site, in your page's colors, that links to the page.

Badge in a README

[![Status](https://watchcat.io/status/acme/badge)](https://watchcat.io/status/acme)

Widget on your site

<iframe src="https://watchcat.io/status/acme/embed" title="Acme status"
        width="100%" height="56" style="border:0" loading="lazy"></iframe>

Unlisted pages include their key in these snippets. Password-protected pages don't offer them.

Build pages from code or an agent

Everything above is also available through the REST API and the MCP server, including the logo as a base64 data URI. Point an AI agent at your brand files and it can build the page for you.

curl -X POST https://watchcat.io/api/v1/status_pages \
  -H "Authorization: Bearer $WATCHCAT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Acme",
    "headline": "Acme status",
    "theme": "dark",
    "accent_color": "#f59e0b",
    "font": "mono",
    "show_uptime_percentage": true,
    "sections": [
      {
        "title": "Core platform",
        "monitors": [ { "id": 12, "display_name": "Public API" }, 14 ]
      },
      {
        "title": "Scheduled jobs",
        "collapsible": true,
        "monitors": [ { "id": 3, "type": "cron" } ]
      }
    ]
  }'

Start monitoring in minutes

Free plan available. No credit card required.