Integrations / Terraform

Uptime monitoring as code, with the official Terraform provider

Define monitors, cron-job checks, alert routing and status pages in HCL. Review them as pull requests, apply them like the rest of your infrastructure — with Terraform or OpenTofu.

Open source · Works on every plan · Terraform & OpenTofu

From zero to monitored in one apply

1 · Configure the provider

terraform {
  required_providers {
    uptimeeye = {
      source = "uptimeeye/uptimeeye"
    }
  }
}

provider "uptimeeye" {
  # or set the UPTIMEEYE_API_KEY environment variable
  api_key = var.uptimeeye_api_key
}

2 · Describe your monitoring

resource "uptimeeye_notification_channel" "oncall" {
  name = "On-Call"
}

resource "uptimeeye_notification_integration" "slack" {
  channel_id = uptimeeye_notification_channel.oncall.id
  name       = "Slack #alerts"
  slack = {
    webhook_url = var.slack_webhook_url
    channel     = "#alerts"
  }
}

resource "uptimeeye_monitor" "api" {
  name                    = "API Healthcheck"
  notification_channel_id = uptimeeye_notification_channel.oncall.id
  locations               = ["eu-central-1", "us-east-1"]

  steps = [{
    type = "http"
    request = {
      url = "https://api.example.com/health"
    }
    asserts = [{
      type     = "body"
      property = "statusCode"
      operator = "is"
      expected = "200"
    }]
  }]

  options = {
    tick_every = 60
    timeout    = 5000
  }
}

Full resource reference in the provider documentation.

Monitoring changes go through code review

Monitors, alert routing and status pages live in your repo. Every change is a pull request — versioned, reviewed, and rolled back like the rest of your infrastructure.

Reproducible across environments and clients

Spin up the same monitoring stack for staging, production, or a new customer with one apply. Agencies can template an entire white-label setup per client.

Import what you already have

Every resource supports terraform import, so an existing UptimeEye setup can move into code without recreating anything. Drift shows up in the plan, not in an outage.

Everything in the app, as a resource

  • HTTP, DNS and ICMP monitors incl. multi-step flows
  • Cron-job / heartbeat checks (scheduled tasks)
  • Notification channels & integrations (Slack, PagerDuty, Teams, Discord, Telegram, email, webhooks)
  • Status pages incl. sections and custom domains
  • Scheduled uptime reports
  • Secure variables for monitor steps

Set up in minutes

  1. 1

    Create an API key

    In UptimeEye, open Settings → API Keys and create an organization key (ue_live_…). Available on every plan, including Free.

  2. 2

    Configure the provider

    Add uptimeeye/uptimeeye to required_providers and pass the key via variable or the UPTIMEEYE_API_KEY environment variable.

  3. 3

    Plan and apply

    Describe monitors, alerting and status pages as resources, review the plan, apply — and manage monitoring changes as pull requests from now on.

Frequently asked questions

Does the provider work with OpenTofu?

Yes. The provider is published to the public Terraform Registry and works with both Terraform and OpenTofu without any extra configuration.

Which plan do I need?

API keys and the Terraform provider are available on every plan, including Free. Plan limits (number of monitors, check intervals, integrations) apply exactly as they do in the app.

Can I import an existing UptimeEye setup?

Yes — every resource supports terraform import. Nested resources use composite IDs, e.g. <channel_id>/<integration_id> for notification integrations.

How are secrets like webhook URLs handled?

Sensitive attributes (webhook URLs, routing keys, secure variables) are marked sensitive in the schema, and secure variable values are write-only on the API — UptimeEye never returns them in plaintext.

Where is the provider source code?

The provider is open source on GitHub (uptimeeye/terraform-provider-uptimeeye). Issues and feature requests are welcome there.

Found a bug or missing a resource? Open an issue on GitHub.

Put your monitoring under version control

Create a free account, generate an API key, and apply your first monitor in the next ten minutes.