openstatus logoPricingDashboard

Run status pages and incident response from Slack or your AI agent.

Open source status page, incident response and global uptime monitoring. When something breaks, your subscribers hear it first and your auditor gets the trail.

Free to start, with a 14-day Starter trial and no card needed. Paid plans from $30/mo.

Checkout API
99.94%
45 days ago
Today
Webhooks
99.99%
45 days ago
Today

powered by openstatus

status.piedpiper.dev

A live status page for the fictional Pied Piper, mid-incident: a Degraded Performance banner, Checkout API degraded at 99.94% uptime, Webhooks, Dashboard and Docs operational, each with a 45-day uptime bar.

Trusted by teams who ship transparency

Cal.comTwentyDocumensoTraefikPassboltHankoWhiteBITSuperwallOpenPanelProboRoundtableSmplrspace

One incident, start to finish

At 09:41 the Checkout API at Pied Piper starts returning 503s from Europe. Here is what openstatus does before the team has finished reading the first alert, and what is left behind six months later.

09:41

Your monitor catches it first

Four of the six regions the monitor runs from confirm the 503s, so the alert fires before the first support ticket arrives. It lands in Slack and PagerDuty with a link to the failing checks.

#incidentsopenstatus · alert
os
openstatusAPP09:41
Checkout API is failing
POST https://api.piedpiper.dev/v1/checkout
Status
503
Regions
lhr, ams, cdg, koyeb_fra
Latency
4,388 ms
Cron Timestamp
2026-10-08T09:41:12.000Z
Error
Expected status code 200, received 503
Also PagerDuty paged · Email sent · Webhook 2004 of 6 regions failed the assertion

The Slack alert at 09:41: Checkout API returned 503 from lhr, ams, cdg and koyeb_fra at 4,388 ms, with 4 of 6 regions failing the status-code assertion.

09:43

Declare the incident, get a channel

One slash command declares the incident with a title and a severity. Openstatus opens a dedicated Slack channel, invites you and pins the incident card, so the response has one place to happen.

#incidentsslash command
G
Gilfoyle09:43
/openstatus incident declare Checkout API 503s in EU --sev major
os
openstatusAPP09:43
Declare incident
Title
Checkout API 503s in EU
Severity
Major
os
openstatusAPP09:43
Incident Checkout API 503s in EU declared (major). Open in openstatus
Channel #inc-2026-10-08-checkout-api-503s-in-eu openedGilfoyle invited

Gilfoyle runs /openstatus incident declare Checkout API 503s in EU --sev major in #incidents at 09:43. The openstatus app posts an approval card, confirms the incident is declared and opens a dedicated incident channel.

09:44

Tell customers from Slack, or with your favorite agent

Ask the openstatus agent in the incident thread. It drafts the status report, you approve it, and it goes live without anyone opening the dashboard. The same agent runs wherever you work: connect the MCP server to Claude, ChatGPT or Cursor and publish it from there.

#incidentsthread
G
Gilfoyle09:44
@openstatus checkout API is returning 503s from every EU region, US is fine. Open a status report?
os
openstatusAPP09:44
Draft status report
Title
Elevated errors on Checkout API
Status
Investigating
Affected
Checkout API
Message
We are investigating elevated error rates on the Checkout API from European regions. Payments outside Europe are not affected.
os
openstatusAPP09:44
Published to status.piedpiper.dev. 1,337 subscribers notified. Reply here to post the next update.

An engineer asks @openstatus in the incident thread to open a status report. The agent drafts "Elevated errors on Checkout API", the engineer approves, and 1,337 subscribers are notified.

10:14

Mitigate in the channel, update the page

The rollback lands and one slash command marks the incident mitigated. The linked status report moves to monitoring with its own public wording, and subscribers hear about it without anyone leaving Slack.

#inc-2026-10-08-checkout-api-503s-in-euslash command
G
Gilfoyle10:14
/openstatus incident mitigate Rollback complete in eu-west-1 and eu-west-2.
os
openstatusAPP10:14
Incident Checkout API 503s in EU is now mitigated.
Linked status report
Elevated errors on Checkout APIMonitoring
The rollback has completed in eu-west-1 and eu-west-2. Error rates are back to baseline; we are monitoring for the next hour.
Internal status and public update move separately1,337 subscribers notified

At 10:14 Gilfoyle runs /openstatus incident mitigate Rollback complete in eu-west-1 and eu-west-2. in the incident channel and the app confirms the incident is now mitigated. Below it, the linked status report "Elevated errors on Checkout API" reads Monitoring, with its own public message and 1,337 subscribers notified.

11:02

The postmortem arrives as a draft

Once the incident is resolved, the agent drafts a blameless postmortem from the timeline, the public updates and the channel history. You edit it, approve it and close the incident while everyone still remembers what happened.

PostmortemDraft · drafted by the agent
Summary

A configuration change in the European edge made the Checkout API return 503 for requests routed through Europe.

Impact

Checkout requests routed through Europe failed for 55m, from 09:41 to 10:36 UTC. Payments outside Europe were not affected.

Timeline
  • 09:43 UTC Declared
  • 09:44 UTC Status report linked
  • 09:49 UTC Note
  • 10:14 UTC Mitigated
  • 10:36 UTC Resolved
Root cause

The 09:38 edge config deploy changed EU routing and was not validated against a European region before rollout.

What went well

The monitor alerted within a minute and the first public update went out three minutes later.

What went wrong

The deploy had no canary, so every European region failed at once.

Action items
  • [ ] Canary edge config changes in one EU region first
  • [ ] Add a pre-deploy check from lhr and koyeb_fra
Built from the timeline, public updates and the Slack channelApprove, then close the incident

The postmortem draft, written by the agent at 11:02: summary, impact (55m, from 09:41 to 10:36 UTC, Europe only), a UTC timeline, root cause (the 09:38 edge config deploy), what went well, what went wrong and two action items, with buttons to approve it or draft again.

+1 week

The record stays public

Every update stays on the status page with its timestamp. When a prospect asks how you handle outages, the answer is already in your incident history.

Elevated errors on Checkout API
Checkout API
Resolved · October 8 at 10:36 AM (UTC) (in 52 minutes)
Error rates have stayed at baseline for the last hour. This incident is resolved.
Monitoring · October 8 at 10:14 AM (UTC) (22 minutes earlier)
The rollback has completed in eu-west-1 and eu-west-2. Error rates are back to baseline; we are monitoring for the next hour.
Identified · October 8 at 9:52 AM (UTC) (22 minutes earlier)
A configuration change in our European edge caused the Checkout API to return 503 for requests routed through Europe. A rollback is in progress.
Investigating · October 8 at 9:44 AM (UTC) (8 minutes earlier)
We are investigating elevated error rates on the Checkout API from European regions. Payments outside Europe are not affected.

The same incident a week later in the status page's events feed: four timestamped updates from investigating at 09:44 to resolved at 10:36.

+6 months

The trail exists when the auditor asks

Every step is logged: who declared it, from where, when each update shipped. When SOC 2 asks how you notify customers during an incident, you send one link.

Audit log13 events
11:20:48incident_postmortem.updategilfoyle@piedpiper.dev · slack→ approved
11:02:14incident_postmortem.creategilfoyle@piedpiper.dev · slackdraft · agent
10:36:20incident.updategilfoyle@piedpiper.dev · slack→ resolved
10:36:00status_report.updategilfoyle@piedpiper.dev · slack→ resolved
10:14:25incident.updategilfoyle@piedpiper.dev · slack→ mitigated
10:14:03status_report.updategilfoyle@piedpiper.dev · slack→ monitoring
09:52:41notification.sendsystememail 1,337 · rss · slack-connect
09:52:40status_report.updategilfoyle@piedpiper.dev · slack→ identified
09:49:17incident_event.creategilfoyle@piedpiper.dev · slacknote · pinned in slack
09:44:31notification.sendsystememail 1,337 · rss · slack-connect
09:44:30status_report.creategilfoyle@piedpiper.dev · slackinvestigating · Checkout API
09:43:08incident.creategilfoyle@piedpiper.dev · slackmajor · Checkout API 503s in EU
09:41:12monitor.alertprobeCheckout API · lhr, ams, cdg, koyeb_fra
Every mutation, with actor and sourceexport CSV / JSON

The incident's audit log, with the newest entry at the top. From oldest to newest: monitor.alert at 09:41:12, incident.create at 09:43:08 and status_report.create at 09:44:30 by gilfoyle@piedpiper.dev via Slack, notification.send a second later, then the identified, monitoring and resolved updates, the incident mitigated and resolved, and the postmortem approved at 11:20:48. It exports as CSV or JSON.

In their words

“Open-source CRM needs an open-source status page. Openstatus took us minutes to set up — and it covers everything our customers actually depend on.”
Félix Malfait Co-founder @twentycrmRead the story
“We picked openstatus because the workflow matched ours. We stayed because it keeps matching.”
Michel Loiseleur Head of Platforms @traefiklabsRead the story

For humans and agents

Every action in the dashboard is reachable programmatically. One API key, four ways in.

  • CLI for the terminal and CI, with --json output for scripts.
  • API with typed endpoints, an OpenAPI spec and a Node SDK.
  • MCP server so Claude, ChatGPT or Cursor can run it for you.
  • Terraform to keep monitors, status pages and notifications as HCL.

Flat pricing

No per-seat fees. Every new workspace starts with a 14-day Starter trial, no card needed. Open source and self-hostable under AGPL-3.0.

PlanPriceIncludes
Hobby$01 monitor, 1 status page, checks every 10 min
Starter$30/mo20 monitors, 1-min checks, custom domain, subscribers
Pro$100/mo50 monitors, 30-sec checks, all 28 regions, custom theme
Scale$500/mo500 components, white label, email auth and IP restriction

Get started

No account yet? Check any URL's response time from 28 regions, no sign-up needed.

Frequently asked questions

What is openstatus?

Openstatus is an open-source status page and incident response platform. Monitor from 28 regions, publish a branded status page on your own domain, and manage it from Slack, an AI agent, the dashboard, CLI, API or Terraform.

It is used by teams like Cal.com, WhiteBIT, and Documenso, and available as a managed service or for self-hosting.

What does the free plan include?

The free Hobby plan includes one monitor, one status page (with three page components), and a minimum check interval of 10m. See the pricing page for a full comparison.

No credit card required. Upgrade or cancel at any time.

Do I need a status page for SOC 2?

SOC 2's CC2.3 criteria asks you to demonstrate incident communication with external parties. A public status page with timestamped, audited incident history is the shortest answer.

Every status report on openstatus is timestamped and documented automatically, and every mutation is written to the audit log. Read more about SOC 2 status pages.

Can I self-host openstatus?

Yes. Openstatus is AGPL-3.0 and can be self-hosted with Docker. You can also keep the hosted version and run private monitoring locations behind your firewall for internal services.

The source code is on GitHub.

Who is behind openstatus?

Openstatus is built by Thibault and Max, a bootstrapped two-person team building in public.

We're profitable and self-funded, and we'll be here when your next audit comes around. Read more on our about page.