IronWatchDocs
Dashboard
FlipSign · Quickstart
~5 min readsynced 2026-05-29·/api/v1 routes@live

Your first incident

One curl opens an incident on your status page and fans the news out to every verified subscriber. Grab a key from Settings → API Keys, drop in your page ID, and paste this into your terminal. The rest of this page explains each step in detail.

~/projects/acme · zsh
$curl -X POST "https://flipsign.live/api/v1/pages/d290f1ee-6c54-4b01-90e6-d701748f0851/incidents" \ -H "Authorization: Bearer <FLIPSIGN_API_KEY>" \ -H "Content-Type: application/json" \ -d { "title": "Elevated API error rates", "severity": "major", "status": "investigating", "message": "We are investigating elevated 5xx responses on the API." }'
201Created· 138ms · 287 bytes
{
  "id":         "a3f2c1e0-9b8d-4e21-8c0f-2d1e3f4a5b6c",
  "pageId":     "d290f1ee-6c54-4b01-90e6-d701748f0851",
  "title":      "Elevated API error rates",
  "severity":   "major",
  "status":     "investigating",
  "startedAt":  "2026-05-29T17:55:00.000Z",
  "resolvedAt": null,
  "createdAt":  "2026-05-29T17:55:00.000Z",
  "updatedAt":  "2026-05-29T17:55:00.000Z"
}

What is FlipSign?

Status pages

FlipSign

A status page, with sharp edges.

FlipSign is the public-facing dashboard your customers visit when something is on fire — incidents, components, maintenance, and a JSON feed.

What it does
  • Hosted status page with custom domain
  • Incident lifecycle: investigating → identified → monitoring → resolved
  • Subscribe via email / RSS / webhook
What it does not do
  • ↛ Not usDetect the outage
    FlipSign is the megaphone, not the microphone.
    → try WatchTower / PingWatch
  • ↛ Not usRun private status
    Internal dashboards live in the suite dashboard.
    → try IronWatch Hub

Authentication

Every API request carries a Bearer token. Create a key in Settings → API Keys — the full key (it starts with fs_sk_) is shown once at creation, so store it somewhere safe. Keys are hashed on our side; only the prefix stays visible in the dashboard for identification.

Header
Authorization: Bearer fs_sk_a1b2c3d4e5f6...

Find your page

A status page is created in the dashboard — it owns your slug, brand colour, custom domain, and the public board at /s/<slug>. The API works against a page, so every component, incident, and maintenance call needs its id. List your pages to find it:

curl
curl "https://flipsign.live/api/v1/pages" \
  -H "Authorization: Bearer <FLIPSIGN_API_KEY>"
Response · 200
{
  "pages": [
    {
      "id":           "d290f1ee-6c54-4b01-90e6-d701748f0851",
      "slug":         "acme",
      "name":         "Acme Status",
      "brandColor":   "#8b5cf6",
      "customDomain": "status.acme.com",
      "isPublic":     true,
      "createdAt":    "2026-05-20T09:00:00.000Z"
    }
  ]
}

Add a component

Componentsare the rows on your board — "API", "Dashboard", "Webhooks". Each has a status the public board renders with a colour. Create one with a namerequired; status defaults to operational.

curl
curl -X POST "https://flipsign.live/api/v1/pages/d290f1ee-.../components" \
  -H "Authorization: Bearer <FLIPSIGN_API_KEY>" \
  -H "Content-Type: application/json" \
  -d {
    "name": "API",
    "description": "Public REST API",
    "status": "operational"
  }'

The five valid statuses are operational, degraded, partial_outage, major_outage, and maintenance. To flip a component during an incident, PATCHit — that's the move a deploy script makes:

curl
curl -X PATCH "https://flipsign.live/api/v1/components/<component-id>" \
  -H "Authorization: Bearer <FLIPSIGN_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{ "status": "major_outage" }'

Open an incident

When something breaks, open an incident. Required field is titlerequired; severity defaults to minor and status to investigating. Pass an initial message and it becomes the first update in the timeline. Creating an incident fires the subscriber-email + alert-channel fan-out automatically.

curl
curl -X POST "https://flipsign.live/api/v1/pages/d290f1ee-.../incidents" \
  -H "Authorization: Bearer <FLIPSIGN_API_KEY>" \
  -H "Content-Type: application/json" \
  -d {
    "title": "Elevated API error rates",
    "severity": "major",
    "status": "investigating",
    "message": "We are investigating elevated 5xx responses."
  }'

Post updates & resolve

As you learn more, append updates. Each update carries a bodyrequired and an optional status — when the status changes, the incident moves with it. Walk it through identifiedmonitoring resolved; setting resolved stamps resolvedAt and fires the resolved notification path. Every update re-notifies subscribers and channels.

curl
curl -X POST "https://flipsign.live/api/v1/incidents/<incident-id>/updates" \
  -H "Authorization: Bearer <FLIPSIGN_API_KEY>" \
  -H "Content-Type: application/json" \
  -d {
    "body": "Root cause identified — rolling back the bad deploy.",
    "status": "identified"
  }'
curl · resolve
curl -X PATCH "https://flipsign.live/api/v1/incidents/<incident-id>" \
  -H "Authorization: Bearer <FLIPSIGN_API_KEY>" \
  -H "Content-Type: application/json" \
  -d {
    "status": "resolved",
    "message": "The rollback is complete and error rates are back to normal."
  }'

Schedule maintenance

Planned downtime is communicated ahead of time. A maintenance window needs a titlerequired plus startsAtrequired and endsAtrequired as ISO 8601 timestamps (endsAt must be after startsAt). Optionally pass affectedComponentIdsto highlight specific rows. The board shows an "Upcoming maintenance" callout before the window and a banner during it.

curl
curl -X POST "https://flipsign.live/api/v1/pages/d290f1ee-.../scheduled-maintenance" \
  -H "Authorization: Bearer <FLIPSIGN_API_KEY>" \
  -H "Content-Type: application/json" \
  -d {
    "title": "Database upgrade",
    "description": "Brief read-only window while we upgrade Postgres.",
    "startsAt": "2026-06-01T02:00:00Z",
    "endsAt": "2026-06-01T03:00:00Z"
  }'

Next steps

Embed a live status pill anywhere with one line — <script src="https://flipsign.live/widget/<slug>" defer></script> — and point a custom domain at your board (both Pro+). Subscribers can follow via email or RSS, and the uptime heatmap lives at /s/<slug>/uptime.

Ship it.
Open the dashboard, grab a key and your page ID, and run your first incident through the lifecycle.