Skip to content

Maintenance window reference

Full request schemas for /maintenance_windows are in the API Reference.

FieldTypeDefaultDescription
namestringrequiredWindow label.
tagsstring[][]A monitor is covered when its tags overlap this list.
service_idsuuid[][]Every monitor and alert rule of these services is covered. Up to 50; each must be a service in your account (404 otherwise). A window needs tags, services or both (400 otherwise). On update, the list replaces the old one.
schedule_typeenumrequiredone_time or recurring.
timezonestringUTCIANA timezone name. Recurrence times are interpreted in this timezone.
starts_atrfc3339required for one_timeWindow start. Must be before ends_at.
ends_atrfc3339required for one_timeWindow end.
recurrenceobjectrequired for recurringRecurrence rule (below).
{ "type": "daily", "start_time": "02:00", "end_time": "03:00" }
{ "type": "weekly", "days": ["sun"], "start_time": "02:00", "end_time": "04:00" }
KeyTypeDescription
typeenumdaily or weekly.
start_time / end_timestring24-hour HH:MM in the window’s timezone. An end_time earlier than start_time wraps past midnight (e.g. 23:00 to 01:00).
daysstring[]Weekly only; must be non-empty. Day names, case-insensitive: full English names (monday .. sunday) or three-letter abbreviations (mon .. sun). Anything else is rejected with a 400.
FieldTypeDescription
iduuidWindow ID.
account_iduuidOwning account.
is_currently_activeboolWhether the window is in effect right now, computed server-side.
created_at / updated_atrfc3339Timestamps.

A window matches by tag or by the monitor’s or rule’s service. It holds failure alerts and auto-created incidents until it ends, while checks keep running. See what “silenced” means for which monitors it covers and what it releases.

MethodPathPurpose
GET/maintenance_windowsList.
POST/maintenance_windowsCreate.
PUT/maintenance_windows/{window_id}Update (partial; omitted fields keep their value).
DELETE/maintenance_windows/{window_id}Delete. Alerts it held go out within a minute unless another window covers them.
GET/maintenance_windows/{window_id}/coverageThe monitors the window matches, { monitor_type, monitor_id, name, service_id, held_alerts }, with is_currently_active, the total held_alerts and truncated past 500 monitors. 404 when the window is not yours.