StatusPage.me Blog

Product updates, guides, and more

Manage Your Status Pages as Code: Introducing the StatusPage.me Terraform Provider

Manage Your Status Pages as Code: Introducing the StatusPage.me Terraform Provider

Status pages are part of production infrastructure. The configuration behind them should be reviewable, repeatable, and deployable through the same workflow as the services they report on.

That is why we have released the StatusPage.me Terraform provider. It is available publicly on the Terraform Registry as hosted-status-page/hsp, starting with version 0.1.0.

The provider lets you manage the core parts of a StatusPage.me setup in Terraform: status pages, monitors, incidents, maintenance windows, and custom metrics.

Status page configuration belongs in your infrastructure workflow

Without infrastructure as code, a status page configuration tends to drift. A monitor gets added during an incident. A maintenance window is set up manually and later copied inconsistently. A new environment has a status page that looks almost like production, but not quite.

Terraform gives those changes a normal engineering path:

  • Review status page changes before they are applied.
  • Keep monitoring configuration alongside the services it represents.
  • Maintain consistent configuration across environments.
  • Import existing StatusPage.me resources instead of rebuilding them by hand.

That matters most when the work is urgent. The status page should help communicate an incident, not become another source of configuration uncertainty during one.

What the provider manages today

The first release covers the resources that make up the operational core of a StatusPage.me account:

  • Status pages
  • Website, API, and DNS monitors
  • Immutable incidents and append-only timeline updates
  • Scheduled maintenance windows
  • Custom metrics and their data points

Matching data sources are available for status pages, monitors, incidents, maintenance windows, and custom metrics.

This is deliberately not a claim that every dashboard setting is now an IaC resource. API monitor authentication, query parameters, headers, and request bodies are not currently exposed through Terraform and remain managed in the StatusPage.me dashboard. Database monitors are currently unavailable through the provider.

Start with a page and a monitor

Install the provider from the Registry and configure it with an API key. You can supply that key through the HSP_API_KEY environment variable rather than committing it to configuration.

terraform {
  required_providers {
    hsp = {
      source  = "hosted-status-page/hsp"
      version = "~> 0.1.0"
    }
  }
}

provider "hsp" {}

resource "hsp_status_page" "production" {
  name = "Acme Status"
  slug = "acme-status"
}

resource "hsp_monitor" "website" {
  status_page_id = hsp_status_page.production.id
  name           = "Marketing website"
  type           = "site"
  target         = "https://example.com"
}

From there, you can add immutable incident records, append-only incident timeline updates, maintenance windows, and metrics to the same configuration. Existing resources can also be imported, so adopting Terraform does not require replacing a working setup.

Incident history follows the same transparency rules as the StatusPage.me dashboard. Terraform cannot edit or replace a published incident. It appends follow-up messages and forward state transitions as timeline entries. Destroy is refused by default; when archive_on_destroy = true, Terraform can archive a resolved incident only if the status-page owner’s plan includes incident archiving. It never hard-deletes the incident or its timeline.

A public first release, with clear boundaries

Version 0.1.0 established the provider. The immutable incident-update resource and guarded archival lifecycle described above require version 0.1.1 or later. This remains an early release, not a promise that the provider is finished. We will keep expanding it where the StatusPage.me API and operational workflows support a reliable Terraform experience.

For now, use the provider for the resources it manages well, keep dashboard-only settings in the dashboard, and check plans before applying changes to a live status page. That is the honest division of responsibility at this stage.

Get started

The Terraform provider page explains the available resources, monitor-type support, and known limitations. For implementation details, start with the getting-started guide, then see the resource and limitation reference.

If your status page is part of your production system, its configuration should be part of your production workflow too.

Author avatar
Published Jul 23, 2026
Founder of StatusPage.me, building uptime monitoring and status page infrastructure for engineering teams.
About this article

Manage StatusPage.me status pages, monitors, incidents, maintenance windows, and custom metrics with Terraform using the provider now available on the public Terraform Registry.

Jul 23, 2026 Category: Product Update 👁️ 1 reads