Maintenance windows
Schedule planned work so it does not open incidents or page anyone, and so the status page shows maintenance rather than downtime.
A maintenance window tells PulseTrace that failures between two instants are expected. While a window is active for a monitor, no incident is opened for it; with suppress notifications on, nothing is sent either. Because no incident opens, the window does not count against availability the way an outage would.
Fields
| Field | Notes |
|---|---|
name, description | Shown in the incident timeline and the maintenance list. |
starts_at, ends_at | UTC instants; the app lets you pick them in a display timezone. |
timezone | Display only — how the window is rendered, not when it fires. |
affected_monitor_ids | Which monitors are covered. Empty means the whole organization. |
affected_regions | Optional: limit to checks from these regions. |
expected_changes | A note for Intelligence: the DNS/TLS/header changes you expect to see, so they are recorded as expected. |
suppress_notifications | Also silence notifications, not only incidents. |
Each window has a computed status of upcoming, active or past. There is no recurrence — create one window per occurrence, or create them from the API on your deploy schedule.
curl -X POST https://api.pulsetrace.app/api/v1/maintenance-windows \
-H "Authorization: Bearer $PULSETRACE_API_KEY" -H "Content-Type: application/json" \
-d '{
"name": "DB failover drill",
"starts_at": "2026-09-12T02:00:00Z",
"ends_at": "2026-09-12T02:30:00Z",
"timezone": "Europe/Berlin",
"affected_monitor_ids": ["…"],
"suppress_notifications": true
}'Routes: GET/POST /api/v1/maintenance-windows, GET/PUT/DELETE /api/v1/maintenance-windows/{id}; scopes maintenance_windows:read|create|update|delete.