openstatus logoPricingDashboard

Uptime monitoring for websites, APIs and services

Monitor your websites, APIs and services from 28 regions. Get alerted the moment a check fails an assertion or exceeds your threshold.

Why is uptime monitoring important?

Uptime monitoring is the practice of continuously asking one question on your users' behalf: is this service working right now? Instead of waiting for a customer to report a problem, checks run on a schedule from outside your own network and tell you the moment the answer changes.

It answers three things a dashboard inside your own infrastructure cannot:

  1. Is my service reachable? Can users actually get to it, from where they are?
  2. Is it fast enough? Are response times inside the range you promised?
  3. Is it correct? Is it returning the data you expect, not just a 200?

That external vantage point is the whole point. If your service runs on the same infrastructure as your monitoring, an outage that takes down one takes down the other — and you find out from your customers instead.

Free to start. Paid plans from $30/mo.

Trusted by teams who ship transparency

How uptime monitoring works

+----------------+
| Service to be  |
| Monitored      |
+----------------+
      ▲
      |
      |   (Network Latency/Failures)
      |
+-----+-------+   +-----+-------+   +-----+-------+
| Monitoring  |   | Monitoring  |   | Monitoring  |
| Node (USA)  |   | Node (EU)   |   | Node (Asia) |
+-----+-------+   +-----+-------+   +-----+-------+
      |               |                 |
      |---------------|-----------------|
      ▼               ▼                 ▼
+------------------------------------------------+
|                 openstatus                     |
|                                                |
| - Sends automated requests (e.g., pings or     |
|   HTTP checks) from all nodes at set intervals |
| - Records response time and success/failure    |
| - Compares results from different nodes        |
| - If a failure or a slow response is detected, |
|   it triggers an alert.                        |
+------------------------------------------------+
      |
      | (Alerts: Email, SMS, Slack, etc.) 🔔
      |
+-----+-----+
| Your Team |
+-----------+

Uptime Dashboard

dashboard monitor charts
dashboard monitor charts

Response Logs

dashboard monitor logs
dashboard monitor logs

Why choose openstatus for uptime monitoring?

Global Monitoring

You can monitor your services from multiple regions around the world. We currently have our probes deployed in 28 regions.

Check all regions in the global speed checker.

Multi Cloud

You should avoid monitoring your services from the same cloud providers you use for those services. That's why our probes are deployed across three different cloud providers:

  • Fly.io
  • Koyeb
  • Railway

API Monitoring

Monitor any HTTP/HTTPS endpoint including REST APIs, GraphQL APIs, webhooks, and third-party service endpoints. Openstatus supports all HTTP methods and custom headers for authentication.

Assertions

Validating your response can be important. You can do status code, header or body text assertions. Read more in the docs.

Thresholds

You can set a degraded at and timeout threshold whenever required. We will send you a notification whenever the responses exceed the thresholds.

Open Telemetry

When needed, you can export to your OTLP endpoint the metrics for every request we do. Access the data and set yourself an alert channel in Grafana, Honeycomb etc. Read more in our guide.

Notification channels

Set different notification channels and get notified whenever a response fails your assertions or exceeds your thresholds.

We support:

  • Socials: Slack, Discord, Telegram Bot, Google Chat, Microsoft Teams
  • Direct: Email, SMS, WhatsApp
  • Incident Management: OpsGenie, PagerDuty, Grafana OnCall
  • Custom: Webhook, Ntfy

Status Pages

Automatically update your status page based on your uptime monitoring results. Push reports and communicate with your users during incidents. You can choose to share response details on your status page. Read more about status pages.

Monitoring as Code

The best way to version your monitor changes is via the openstatus CLI and its YAML config. Additionally, we provide a Terraform Provider.

# yaml-language-server: $schema=https://www.openstatus.dev/schema.json
uptime-monitor:
  name: "Graphql"
  description: "GitHub GraphQL API"
  frequency: "10m"
  active: true
  regions:
    - iad
    - ams
    - syd
    - jnb
    - gru
  retry: 3
  kind: http
  request:
    url: https://api.github.com/graphql
    method: POST
    headers:
      User-Agent: OpenStatus
      Authorization: Bearer YOUR_TOKEN_HERE
    body: |
      {
        "query": "query { viewer { login }}"
      }

Once set, apply your changes via CLI:

openstatus monitors apply

Check our GitHub repository to see the YAML templates of how to monitor MCP, GraphQL,... endpoints. We also provide a simple GitHub Action to run it in your CI/CD.

Private Locations

Sometimes the services you want to monitor are not accessible from the outside. Simply deploy our probes to your favorite cloud provider, your own server or on your own virtual private cloud (VPC).

The docker image is only 8.5MB small and should easily fit on your infrastructure whether ARM64 or AMD64.

docker pull ghcr.io/openstatushq/private-location:latest
docker run -d \
  --name openstatus-private-location \
  --restart=always \
  -e OPENSTATUS_KEY=$OPENSTATUS_KEY \
  ghcr.io/openstatushq/private-location:latest

You can read more here:

Status Page Monitors

status page monitor details
status page monitor details

Frequently asked questions

What is uptime monitoring?

Uptime monitoring is the practice of checking, on a fixed schedule and from outside your own network, whether a service is reachable and responding correctly. Checks typically run every 30 seconds to 10 minutes from probe locations around the world. Because the checks originate externally, they catch failures your internal dashboards cannot see — DNS problems, expired certificates, and regional outages.

How often should I check my service?

Match the frequency to the cost of the outage. Revenue-critical endpoints justify 30-second checks; internal tooling is usually fine at 5 or 10 minutes. Higher frequency shortens the time between a failure starting and you hearing about it, but consumes more of your check quota. openstatus supports 30s, 1m, 5m and 10m intervals depending on your plan.

What is the difference between uptime and availability?

Uptime is what your monitor measures: the proportion of checks that succeeded. Availability is what your users experienced, which includes degraded performance your checks may have passed. A service returning HTTP 200 in eight seconds is up but arguably not available. This is why thresholds matter alongside assertions — they let you count slow responses as degraded rather than healthy.

Can I monitor internal services?

Yes. Deploy a private location probe inside your network as an 8.5MB Docker container and it appears as another monitoring region in your dashboard. The probe reaches out to openstatus, so no inbound firewall rule is needed. You can run as many private locations as you like across different VPCs or networks.

How do I monitor a REST or GraphQL API?

Create an HTTP monitor pointing at the endpoint, choose the method, and add any headers your API needs for authentication. For GraphQL, send a POST with the query in the body. Then add assertions on the status code, response headers, or body content so the monitor verifies the response is correct rather than merely present, and set a threshold so slow responses register as degraded.

How much does uptime monitoring cost?

The free Hobby plan includes one monitor at a 10-minute interval with no credit card. Paid plans start at $30/month for Starter (20 monitors, 1-minute checks, 6 regions per monitor), $100/month for Pro (50 monitors, 30-second checks, all 28 regions), and $500/month for Scale. Annual billing gives you two months free.

How many regions should I monitor from?

Start with 3-5 regions covering your main user geographies. More regions provide better global coverage but use more check quota. For critical services, monitor from all major regions (North America, Europe, Asia) to catch regional issues quickly.

Why monitor from multiple cloud providers instead of just one?

If your service runs on AWS and your monitoring also runs on AWS, you won't detect AWS-wide outages or network issues affecting AWS connectivity. Using Fly.io, Koyeb, and Railway ensures monitoring independence from your infrastructure provider.

What's the difference between frequency settings?

Frequency determines how often we check your service (e.g., every 30 seconds, 1 minute, 5 minutes, 10 minutes). Higher frequency (30s) catches issues faster but uses more checks. Lower frequency (10m) is sufficient for non-critical services and conserves quota.

Can uptime monitoring trigger my status page automatically?

Yes, you can configure monitors to automatically update your status page based on monitoring results. When assertions fail or thresholds are exceeded, the status page can reflect degraded or down status without manual intervention.

How do thresholds and assertions work together?

Assertions validate response correctness (status code, headers, body content) while thresholds define performance boundaries (degraded latency, timeout). Both can trigger alerts - assertions catch functional failures, thresholds catch performance degradation.

What types of API endpoints can I monitor?

You can monitor any HTTP/HTTPS endpoint including REST APIs, GraphQL APIs, webhooks, and third-party service endpoints. Openstatus supports all HTTP methods (GET, POST, PUT, DELETE, etc.) and custom headers for authentication.

Should I use YAML with CLI or Terraform for monitoring as code?

Use YAML + CLI for simplicity and if you're not already using Terraform. It's lightweight and easy to get started. Choose Terraform if you're managing infrastructure as code and want to integrate monitoring into your existing Terraform workflows for unified state management.

Can I run private monitoring locations in different networks?

Yes, you can deploy as many private location probes as needed across different networks, VPCs, or regions. Each gets its own API key and appears as a separate monitoring region in your dashboard. The Docker image is only 8.5MB and supports ARM64 and AMD64.


Free to start. Paid plans from $30/mo.


Check your website's latency

Global Speed Checker