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?
Is there a REST API?
Does it work with LLM tooling?
Can I self-host it?
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