---
title: "Maintenance Windows"
description: "Create and manage maintenance windows to suppress alerts during planned work. Windows can target a single monitor, multiple monitors, an entire customer, or any monitor carrying a given tag."
---

Maintenance windows suppress alerts for the covered monitors during a planned time range. While a window is active the affected monitor is treated as **in maintenance**: no alerts are fired and, if the customer has a status page, the service is shown as **Maintenance** instead of **Degraded**.

## Targeting options

A window can cover monitors in four ways (mutually exclusive, except that `targets` and `tagIds` may be combined):

| Mode | How to specify |
|------|----------------|
| **Single monitor (legacy)** | One of the legacy ID fields: `websiteId`, `icmpMonitorId`, `smtpMonitorId`, `sshMonitorId`, `ftpMonitorId`, `imapPopMonitorId`, `dnsMonitorId`, `customerIpId`, `customerDomainId` |
| **Multiple monitors** | `targets: [{ type, id }, ...]` array |
| **By tag (dynamic)** | `tagIds: [number, ...]`: covers all monitors of the window's customer that currently carry the tag; future-tagged monitors are auto-covered |
| **Customer-level** | `customerId` alone: covers every monitor belonging to that customer |

## Dynamic tag behavior

Tag-based windows are evaluated live by the monitoring worker: every time a check result arrives the worker resolves which maintenance windows apply to that monitor by looking up the monitor's current tags. This means a monitor tagged *after* a window is created is automatically covered without updating the window. Removing a tag from a monitor drops it from coverage instantly.

Tag windows are anchored to a single customer. You cannot create an organization-wide tag window that spans multiple customers.

## Endpoints

- [List Maintenance Windows](./list)
- [Create Maintenance Window](./create)
- [Get Maintenance Window](./get)
- [Update Maintenance Window](./update)
- [Delete Maintenance Window](./delete)
