Skip to main content

comparing monitoring as code

UptimeRobot in Terraform: what the provider covers

UptimeRobot is one of the few monitoring vendors that maintains its own Terraform provider instead of leaving it to a fork. It covers more than most of the incumbents do. The gap is narrow and worth naming exactly.

The table below is the whole comparison, unedited. Read it first if you like, it is the same one we would send you.

AGPL-3.0 · one binary · free tier · no card required

Where the vendor provider stops

  UptimeRobotUptimepage
provider from the vendor yesyes
latest release v1.10.0, 22 Jul 2026shipping
monitors as code yesyes
alerting as code alert contactschannels
status page as code page and announcementsyes
components as code no resourceyes
incidents as code no resourceopen from checks
self-host it noyes, AGPL

The provider lives at uptimerobot/terraform-provider-uptimerobot in UptimeRobot's own GitHub organization and publishes as uptimerobot/uptimerobot. Latest release v1.10.0 on 22 July 2026, commits this month.

Its resources are monitor, monitor_group, alert_contact, integration, maintenance_window, psp and psp_announcement. There is no component, incident or subscriber resource.

The registry badge reads community, which means the publisher is unverified rather than third-party. Uptimepage carries the same badge.

Verified 11 August 2026 against the provider's repository. Providers ship often, so check before you decide.

It is genuinely the vendor's

The repository is uptimerobot/terraform-provider-uptimerobot, in UptimeRobot's own GitHub organization, published to the registry as uptimerobot/uptimerobot. Latest release v1.10.0 on 22 July 2026, with commits this month. The registry badge reads community, which here means HashiCorp has not verified the publisher, not that a stranger wrote it. Read the owning organization and the last release date; the badge alone will mislead you.

What it manages

Seven resources as of August 2026: monitor, monitor_group, alert_contact, integration, maintenance_window, psp and psp_announcement. So the checks, how they are grouped, who gets paged, planned maintenance, and a public status page with announcements posted to it. That is a real monitoring-as-code story, and more than Pingdom or Statuspage can offer from any namespace they own.

The gap is incidents and components

There is no incident resource, no component resource and no subscriber resource. Announcements are the only way the page speaks, and someone writes them by hand rather than a failing check opening them. If your reason for putting this in code was an audited trail of what broke and who was told, that part stays in the dashboard.

The component that ties the page to a real check

resource "uptimepage_target" "api" {
  name     = "api"
  interval = 60
  check = {
    type = "http"
    http = {
      url             = "https://example.com/healthz"
      expected_status = { kind = "exact", exact = 200 }
    }
  }
}

resource "uptimepage_status_page" "public" {
  slug = "acme"
  name = "Acme Status"
}

resource "uptimepage_status_page_component" "api" {
  status_page_id = uptimepage_status_page.public.id
  target_id      = uptimepage_target.api.id
}

Where Uptimepage fits

The Uptimepage provider covers the parts that stop at the page boundary elsewhere: the status page, the components that bind it to real monitors, and the notification channels, alongside the checks. Incidents open automatically from failing checks rather than being typed, and confirmed email and webhook subscribers hear about them. Scoped, expiring tokens for the Terraform run. Hosted free with no card, or self-hosted under AGPL.

  1. 01Sign in with GitHub or Google. No card, no sales call.
  2. 02Paste a URL. The first check runs before you have finished reading this.
  3. 03Publish the status page, or export it to Terraform and keep it in Git.
acme cloud status.acme.dev subscribe

all systems operational checked 12s ago

api99.98%

p95 142ms · one incident in 45 days

dashboard99.91%

p95 318ms · two degraded days

webhooks99.99%

p95 88ms · no incidents

RESOLVED14 min

Elevated latency on the dashboard API

14:22 resolved, latency back under 300ms

14:08 opened automatically by the dashboard check

up degraded down 45 days · email & webhook subscribers

An example page. The monitors, the percentages and the incident are made up.

FAQ

Does UptimeRobot have an official Terraform provider?
Yes. It is published from UptimeRobot's own GitHub organization and appears on the registry as uptimerobot/uptimerobot. Latest release v1.10.0 on 22 July 2026, with commits this month.
What can the UptimeRobot Terraform provider manage?
Seven resources as of August 2026: monitor, monitor_group, alert_contact, integration, maintenance_window, psp and psp_announcement. So checks, grouping, who gets paged, planned maintenance, and a public status page with announcements.
Can Terraform create an UptimeRobot status page?
Yes. The psp resource creates the page and psp_announcement posts to it. There is no component, incident or subscriber resource, so those parts of the page stay in the dashboard.
Is the community badge on the registry a warning?
No. Community means HashiCorp has not verified the publisher, not that a stranger wrote it. UptimeRobot's own provider carries that badge, and so does ours. Check the owning organization and the last release date instead.

Links

Start in under 5 minutes.

Start free

features · pricing · notes