Skip to main content

for developers

Uptime monitoring built for developers

Define your monitors the way you define the rest of your infrastructure: in code, reviewed in a pull request. A Terraform provider, a full REST API and an MCP server, plus a status page your users can trust. Run the single binary yourself or start free on the hosted tier, no card.

Monitors as code

Declare monitors, status pages and notification channels in HCL with the official Terraform provider. terraform plan runs on every pull request so a reviewer sees exactly what changes before it ships, and a bad check rolls back with a revert like any other regression. The config outlives the person who wrote it, and git blame keeps the why.

An API that means it

The REST API covers everything the dashboard does; the dashboard is just another client of it. Tokens are scoped to a resource and an action, bound to one organization, and always expire, so the credential in your CI pipeline can create monitors without also being able to delete your org. Script onboarding, wire checks into deploys, or build your own tooling on top.

Checks that tell you why

A failing check reports the HTTP status as its own field, so a wrong status code and a connection that returned nothing read as different failures. Timing comes back in parts too: DNS, TCP connect, TLS handshake and time-to-first-byte are separate numbers. When staging is slow, you see whether it is slow at the resolver or slow at the socket before you open a single log.

A dead man’s switch for cron jobs

Heartbeat checks flip monitoring around: your nightly backup job pings a URL when it finishes, and the alert fires when the ping stops coming. Silence becomes the signal. It is the only reliable way to notice that a cron job has been quietly dead for three weeks.

Query it from your assistant

An MCP server exposes your monitoring to any LLM client: ask what is down and since when in plain language, and get answers from your real monitors. Read tools can only look; the few that act wait for your explicit approval and write an audit row for every outcome.

Probes where your users are

Run regional probe agents on your own servers and check from where your customers actually are, with results folded into each monitor per region. Each agent authenticates with a scoped, org-bound token, so a compromised probe box never holds a key to anything else.

Declare a monitor in Terraform

resource "uptimepage_target" "api" {
  name     = "api prod"
  interval = 60

  check = {
    type = "http"
    http = {
      url = "https://example.com/healthz"
      expected_status = {
        kind  = "exact"
        exact = 200
      }
    }
  }
}

FAQ

Can I manage monitors as code?
Yes. An official Terraform provider covers monitors, status pages and channels, so you declare them in HCL and review changes in a pull request.
Is there a REST API?
Yes, a full REST API mirroring the dashboard, authenticated with scoped, org-bound tokens you can narrow to a single job.
Does it work with LLM tooling?
Yes. An MCP server lets an LLM client read your monitoring and take approval-gated, audited actions from the same config that lives in your repo.
Can I self-host it?
Yes. The whole product is one AGPL binary; compose brings it up next to Postgres and ClickHouse in minutes.

At a glance

  • As code Terraform + REST + MCP
  • Checks HTTP, TCP, DNS, TLS, domain, ping, heartbeat, flow
  • Check interval every 60s
  • Self-host one binary, AGPL
  • Probes multi-region, run your own
  • Price to start free, no card

Links

Start in under 5 minutes.

Start free

features · pricing · notes