llms.txt
# openstatus
> Openstatus is an open-source status page, incident response and uptime monitoring platform. Incidents run from Slack or your AI agent: declare one, keep a single timeline and leave with a drafted postmortem; Slack declarations open a dedicated channel. It is built for infra as code: monitors, status pages, and notification channels are declared in YAML or Terraform and driven from a CLI, a typed API, or an MCP server (Claude, ChatGPT, Cursor), so your agents can update them. It runs synthetic checks in parallel from 28 regions across Fly.io, Koyeb, and Railway and surfaces incidents on branded status pages. Available as managed SaaS or self-hosted (AGPL-3.0). Bootstrapped, founded in 2023.
## Who it's for
- Small teams that want incident response next to their monitors and status page, run from Slack instead of a separate on-call tool
- Teams that manage uptime monitoring and status pages as infra as code and let agents (Claude, Cursor, ChatGPT, CI) open and resolve incidents over MCP, CLI, or API
- Development teams that want transparent incident communication
- Companies that need multi-region uptime monitoring
- Teams that prefer infrastructure-as-code workflows (YAML via the CLI, or the Terraform provider)
- Organizations that require self-hosted monitoring behind a firewall (private locations)
- Open-source projects and startups looking for a free or affordable monitoring solution
## Pricing
- **Hobby** — $0/month: 1 monitor, 6 regions, 10m check interval, 1 status page, 3 page components, 14-day data retention
- **Starter** — $30/month: 20 monitors, 28 regions, 1m check interval, 1 status page, 20 components, 3-month retention, subscribers, custom domain, WhatsApp/PagerDuty alerts
- **Pro** — $100/month: 50 monitors, 28 regions, 30s check interval, 5 status pages, 50 components, 12-month retention, private locations, OTel exporter, 20 notification channels
- **Scale** — $500/month: everything in Pro plus 10 status pages, 500 page components, and White Label, Magic Link auth, and IP Restriction included at no extra cost
Annual billing gives 2 months free (Starter $300/yr, Pro $1,000/yr, Scale $5,000/yr). Pricing is available in USD and EUR.
## Key Features
- **28-region monitoring** — Parallel checks across Europe, North America, South America, Asia, Africa, and Oceania; no round-robin, all selected regions fire simultaneously
- **Multi-cloud** — Monitors run on Fly.io, Koyeb, and Railway for true cloud diversity
- **Status Pages** — Branded public or password-protected pages with custom domains, themes, maintenance windows, and subscriber notifications (email, RSS, Slack)
- **Incident Response** — Declare incidents from Slack or the dashboard, a dedicated Slack channel for incidents declared in Slack, one timeline with reminders, internal status alongside public status page updates, and AI-drafted postmortems
- **API Monitoring** — Assertions, thresholds, status code checks, header and body validation
- **Infra as Code** — Define monitors, status pages, and notification channels in YAML (CLI, GitHub Actions) or Terraform
- **Private Locations** — 8.5MB Docker image for monitoring internal services behind firewalls
- **Alerting** — Email, Slack, Discord, webhook, WhatsApp, PagerDuty, OpsGenie, Grafana OnCall
- **OpenTelemetry** — Export synthetic check metrics to any OTLP endpoint
- **SDK** — Node.js SDK on JSR (@openstatus/sdk-node)
- **MCP server** — Streamable-HTTP MCP at https://api.openstatus.dev/mcp with OAuth 2.1, for status reports, maintenance windows, and monitor reads; every mutation lands in the audit log
- **Open-source** — AGPL-3.0-licensed, self-hostable, 9k+ GitHub stars
## Key Differentiators
- Built for humans and agents: MCP server, --json CLI output, typed API, read-only or read-write API key scopes
- Open-source and bootstrapped (no VC funding)
- Parallel scheduling — all selected regions check simultaneously (vs. round-robin competitors)
- Unlimited team members on paid plans
- Status page subscribers included (not a paid add-on)
- Private status pages included in the team plan (not an additional charge)
- Self-hosting option with full feature parity
## Product
- [Incident Management](https://www.openstatus.dev/incident-management): Declare an incident from Slack or the dashboard, run it in its own channel, keep one timeline and leave with a postmortem. Next to the monitors and the status page it belongs to.
- [Status Page](https://www.openstatus.dev/status-page): Create a public or private status page in minutes. Show real-time uptime, incidents and maintenance on a fully branded page with a custom domain.
- [Uptime Monitoring](https://www.openstatus.dev/uptime-monitoring): Monitor your websites, APIs and services from 28 regions. Get alerted the moment a check fails an assertion or exceeds your threshold.
## Tooling
- [API](https://www.openstatus.dev/tooling/api): A typed JSON-over-HTTP API powered by ConnectRPC — every endpoint the dashboard uses, with a fully typed Node SDK on top.
- [CLI](https://www.openstatus.dev/tooling/cli): Manage monitors, status pages, and incidents from your terminal — interactive for humans, scriptable for agents, and YAML-managed for monitoring as code.
- [MCP Server](https://www.openstatus.dev/tooling/mcp-server): Connect Claude, ChatGPT, Cursor, and any other Model Context Protocol client to your workspace — sign in with OAuth, pick a workspace, and get audit-logged mutations with explicit notify semantics.
- [Terraform](https://www.openstatus.dev/tooling/terraform): Manage monitors, notifications, and status pages as HCL — same plan-and-apply lifecycle as the rest of your infrastructure, with one command to bootstrap from an existing workspace.
## Documentation
- [Building Trust with Status Pages](https://www.openstatus.dev/docs/concept/best-practices-status-page): Understanding how to communicate effectively during incidents and build user trust through transparency.
- [Foundational Concepts](https://www.openstatus.dev/docs/concept/getting-started): Understand uptime monitoring, latency vs response time, SLA calculations, and the design decisions behind openstatus.
- [Understanding Latency vs Response Time](https://www.openstatus.dev/docs/concept/latency-vs-response-time): Deep dive into the difference between latency and response time, and why both matter for monitoring
- [Understanding Private Locations](https://www.openstatus.dev/docs/concept/private-locations): What a private location is, when to use one, how it talks to openstatus, and how it differs from a public probe.
- [Probes, Locations, and Regions](https://www.openstatus.dev/docs/concept/probes-and-locations): Three words that look interchangeable but aren't — what each one means in openstatus and how they fit together.
- [Response Logs and Data Retention](https://www.openstatus.dev/docs/concept/response-logs-and-retention): What openstatus stores for every check, when the response body is kept, and how long each plan retains the data.
- [Understanding Status Reports and Incidents](https://www.openstatus.dev/docs/concept/status-reports-and-incidents): How openstatus separates detecting a problem (incidents) from communicating it (status reports and maintenance windows), and how report updates drive your status page.
- [Uptime Calculation and Shared Values](https://www.openstatus.dev/docs/concept/uptime-calculation-and-values): Understand how openstatus calculates uptime — from monitor checks (time per status or number of checks) or from reports only — and choose which values to share on your status page.
- [Understanding Monitoring as Code](https://www.openstatus.dev/docs/concept/uptime-monitoring-as-code): Why and how to manage monitoring configuration as code for GitOps workflows
- [Understanding Uptime Monitoring](https://www.openstatus.dev/docs/concept/uptime-monitoring): A deep dive into uptime monitoring concepts, architecture, and best practices
- [How-to Guides](https://www.openstatus.dev/docs/guides/getting-started): Practical guides for integrating openstatus with GitHub Actions, OTLP endpoints, Cloudflare, and more.
- [How to Deploy a Status Page to Cloudflare Pages](https://www.openstatus.dev/docs/guides/how-deploy-status-page-cf-pages): Learn how to use openstatus monitoring data to deploy a status page on Cloudflare Pages.
- [How to Add a Status Badge to a GitHub README](https://www.openstatus.dev/docs/guides/how-to-add-svg-status-badge): A step-by-step guide to adding a real-time SVG or PNG status badge to your GitHub repository.
- [Configure Your Status Page](https://www.openstatus.dev/docs/guides/how-to-configure-status-page): A step-by-step tutorial to customize and configure your status page
- [Connect openstatus to your coding agent](https://www.openstatus.dev/docs/guides/how-to-connect-openstatus-to-your-agent): Step-by-step tutorial to add the openstatus MCP server to Claude Code, Codex, opencode, Cursor, Claude Desktop, or ChatGPT so the agent can read and manage your status pages
- [Create a Private Location](https://www.openstatus.dev/docs/guides/how-to-create-private-location): Set up monitoring from your own infrastructure using Docker-based private probes
- [Create Your Own Status Page Theme](https://www.openstatus.dev/docs/guides/how-to-create-status-page-theme): A step-by-step guide to designing, testing, and contributing a community theme for openstatus status pages.
- [How to Deploy a Private Probe on Cloudflare Containers](https://www.openstatus.dev/docs/guides/how-to-deploy-probes-cloudflare-containers): A step-by-step guide to deploying an openstatus private monitoring probe on Cloudflare Containers.
- [How to Auto-Post Status Updates to X and Bluesky](https://www.openstatus.dev/docs/guides/how-to-deploy-statuspage-socials-notifier): A step-by-step guide to deploying the statuspage-socials-notifier and cross-posting your status page updates to X (Twitter) and Bluesky.
- [How to Embed a Status Page in an Iframe](https://www.openstatus.dev/docs/guides/how-to-embed-status-page-iframe): Embed a trimmed, chromeless version of your openstatus status page on any website using the `?embed` query parameter.
- [How to Export Metrics to an OTLP Endpoint](https://www.openstatus.dev/docs/guides/how-to-export-metrics-to-otlp-endpoint): A step-by-step guide to sending openstatus metrics to your observability platform via OTLP.
- [Import a Status Page from Another Provider](https://www.openstatus.dev/docs/guides/how-to-import-status-page): Import your existing status page setup from Atlassian Statuspage, Better Stack, or Instatus into openstatus
- [Manage Your openstatus Stack with Terraform](https://www.openstatus.dev/docs/guides/how-to-manage-openstatus-with-terraform): Use Terraform to manage monitors, status pages, and notifications as code — version-controlled, peer-reviewed, and reproducible.
- [How to Monitor an MCP Server](https://www.openstatus.dev/docs/guides/how-to-monitor-mcp-server): Monitor an MCP server with openstatus - JSON-RPC health checks, tools/list assertions, authenticated endpoints, and uptime alerts from 28 regions.
- [How to Run Synthetic Tests in GitHub Actions](https://www.openstatus.dev/docs/guides/how-to-run-synthetic-test-github-action): Integrate openstatus synthetic monitoring into your CI/CD pipeline
- [Set up SAML single sign-on](https://www.openstatus.dev/docs/guides/how-to-set-up-saml-sso): Let your team sign in to openstatus through Okta, Entra ID, or any SAML identity provider
- [Set Up the openstatus Slack Agent](https://www.openstatus.dev/docs/guides/how-to-setup-slack-agent): A step-by-step tutorial to install the openstatus Slack agent and manage incidents directly from Slack
- [How to translate your status page](https://www.openstatus.dev/docs/guides/how-to-translate-status-page): Enable multiple languages on your status page and contribute new translations.
- [How to Use openstatus React Widget](https://www.openstatus.dev/docs/guides/how-to-use-react-widget): Add an openstatus status widget to your React or Next.js app with the @openstatus/react package as a React Server Component, or build your own with the typed fetch helper.
- [Self-Host the openstatus Status Page (Lightweight)](https://www.openstatus.dev/docs/guides/self-host-status-page-only): How to self-host a status page - what you actually take on by running it yourself, when hosting it is the wrong call, and a Docker Compose setup that runs the status page without any monitoring infrastructure.
- [How to Self-Host openstatus](https://www.openstatus.dev/docs/guides/self-hosting-openstatus): Complete guide to deploying openstatus on your own infrastructure
- [Need help?](https://www.openstatus.dev/docs/help/support): We're always here to help.
- [API Rate Limits](https://www.openstatus.dev/docs/reference/api-rate-limits): Request limits for the openstatus API, what a 429 response looks like, and how to retry.
- [CLI Reference](https://www.openstatus.dev/docs/reference/cli-reference): Complete reference for the openstatus CLI — manage status pages, monitors, and incidents from your terminal.
- [DNS Monitor Reference](https://www.openstatus.dev/docs/reference/dns-monitor): Complete technical specification for DNS record monitoring
- [gRPC Monitor Reference](https://www.openstatus.dev/docs/reference/grpc-monitor): Complete technical specification for gRPC health check monitoring.
- [HTTP Monitor Reference](https://www.openstatus.dev/docs/reference/http-monitor): Complete technical specification for HTTP/HTTPS endpoint monitoring
- [ICMP Monitor Reference](https://www.openstatus.dev/docs/reference/icmp-monitor): Complete technical specification for ICMP (ping) monitoring.
- [Incident Management Reference](https://www.openstatus.dev/docs/reference/incident-management): Technical specification for declared incidents - severity, status, timeline, postmortem and the Slack channel
- [Incident Reference](https://www.openstatus.dev/docs/reference/incident): Technical specification for incident management and lifecycle
- [Location Reference](https://www.openstatus.dev/docs/reference/location): Complete technical specification for Location monitoring
- [Maintenance Reference](https://www.openstatus.dev/docs/reference/maintenance): Technical specification for scheduled maintenance windows in openstatus.
- [MCP Server](https://www.openstatus.dev/docs/reference/mcp-server): Connect openstatus to AI assistants via the Model Context Protocol
- [Notification Channels Reference](https://www.openstatus.dev/docs/reference/notification): Technical specification for openstatus notification channels and alert payloads.
- [Reference Overview](https://www.openstatus.dev/docs/reference/overview): Technical specifications for openstatus monitors, status pages, notifications, locations, and the CLI, MCP, and Terraform integrations.
- [Page Components Reference](https://www.openstatus.dev/docs/reference/page-components): Complete specification for openstatus page components on status pages.
- [Private Location Reference](https://www.openstatus.dev/docs/reference/private-location): Technical specification for configuring and utilizing private monitoring locations.
- [Status Page Reference](https://www.openstatus.dev/docs/reference/status-page): Complete technical specification for openstatus status page configuration.
- [Status Report Reference](https://www.openstatus.dev/docs/reference/status-report): Technical specification for incident status updates within openstatus.
- [Subscriber Reference](https://www.openstatus.dev/docs/reference/subscriber): Technical specification for managing status page subscribers and their notifications.
- [TCP Monitor Reference](https://www.openstatus.dev/docs/reference/tcp-monitor): Complete technical specification for TCP service monitoring.
- [Terraform Provider Reference](https://www.openstatus.dev/docs/reference/terraform): Technical specification for the openstatus Terraform Provider.
- [Authentication](https://www.openstatus.dev/docs/sdk/nodejs/authentication): Configure API key authentication for the openstatus Node.js SDK
- [Error Handling](https://www.openstatus.dev/docs/sdk/nodejs/error-handling): Handle errors and implement retry strategies with the openstatus Node.js SDK
- [Getting Started](https://www.openstatus.dev/docs/sdk/nodejs/getting-started): Install and start using the openstatus Node.js SDK
- [Health Service](https://www.openstatus.dev/docs/sdk/nodejs/health-service): Check the openstatus API health status using the Node.js SDK
- [Maintenance Service](https://www.openstatus.dev/docs/sdk/nodejs/maintenance-service): Manage scheduled maintenance windows with the openstatus Node.js SDK
- [Monitor Service](https://www.openstatus.dev/docs/sdk/nodejs/monitor-service): Create and manage HTTP, TCP, and DNS monitors with the openstatus Node.js SDK
- [Notification Service](https://www.openstatus.dev/docs/sdk/nodejs/notification-service): Manage notification channels and providers with the openstatus Node.js SDK
- [Node.js SDK](https://www.openstatus.dev/docs/sdk/nodejs/overview): Interact with openstatus programmatically from your JavaScript and TypeScript applications
- [Private Location Service](https://www.openstatus.dev/docs/sdk/nodejs/private-location-service): Manage private locations — self-hosted probes that run monitors from your own network — with the openstatus Node.js SDK
- [Reference](https://www.openstatus.dev/docs/sdk/nodejs/reference): Complete reference for enums, regions, assertions, and TypeScript type exports in the openstatus Node.js SDK
- [Status Page Service](https://www.openstatus.dev/docs/sdk/nodejs/status-page-service): Manage status pages, components, groups, and subscribers with the openstatus Node.js SDK
- [Status Report Service](https://www.openstatus.dev/docs/sdk/nodejs/status-report-service): Manage incident reports and status updates with the openstatus Node.js SDK
- [TypeScript Tips](https://www.openstatus.dev/docs/sdk/nodejs/typescript-tips): Tips for working with bigint fields, oneof types, and migrating clients in the openstatus Node.js SDK
- [PHP SDK](https://www.openstatus.dev/docs/sdk/php/overview): Interact with openstatus programmatically from your PHP applications
- [Python SDK](https://www.openstatus.dev/docs/sdk/python/overview): Interact with openstatus programmatically from your Python applications
- [Create an Uptime Monitor in 5 Minutes](https://www.openstatus.dev/docs/tutorial/create-your-first-monitor): Set up your first uptime monitor with openstatus — track response time, status codes, and availability from 28 global regions.
- [Create a Status Page](https://www.openstatus.dev/docs/tutorial/create-your-first-status-page): A step-by-step tutorial to create and publish your first status page
- [Get Started with openstatus CLI](https://www.openstatus.dev/docs/tutorial/get-started-with-openstatus-cli): Step-by-step tutorial to install the openstatus CLI and export your workspace to Terraform
- [Tutorials Overview](https://www.openstatus.dev/docs/tutorial/getting-started): Step-by-step tutorials to create monitors, wire up notifications, publish status pages and reports, and drive it all from the openstatus CLI.
- [Manage Status Reports from the CLI](https://www.openstatus.dev/docs/tutorial/manage-status-reports-cli): Open, update, and resolve status reports from the terminal during an incident — the operational counterpart to managing your stack as code.
- [Wire Up Your First Notification](https://www.openstatus.dev/docs/tutorial/your-first-notification): Send your first alert from openstatus — create a notification channel, attach it to a monitor, and confirm an alert lands.
- [Publish Your First Status Report](https://www.openstatus.dev/docs/tutorial/your-first-status-report): Open, update, and resolve a status report from the openstatus dashboard — the four-state workflow your users will see during an incident.
## Guides
- [API Service Disruption Template](https://www.open