Maintenance Windows

A fixed start/end time range during which incident tracking is suppressed for a monitor or an entire project — so a planned deploy or upstream migration doesn't page anyone.

Windows don’t repeat — there’s no recurrence/cron field. For a recurring maintenance schedule, create a new window each time (e.g. from a cron job on your own side calling Create Maintenance Window).
GET/maintenance-windows
List Maintenance Windows

A fixed time range during which incidents are suppressed for a monitor or an entire project. No recurrence — one-off ranges only.

Example Request
curl -X GET "https://api.exitprobe.com/api/v1/maintenance-windows" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"
Example Response
{
  "success": true,
  "data": {
    "maintenance_windows": [
      { "id": 9, "project_id": 3, "monitor_id": null, "note": "Scheduled upstream migration", "starts_at": "2026-09-27T02:00:00Z", "ends_at": "2026-09-27T04:00:00Z", "project": { "id": 3, "name": "Default Project" }, "monitor": null }
    ]
  }
}
POST/maintenance-windows
Create Maintenance Window

Scope to exactly one of project_id or monitor_id. A project-scoped window suppresses incidents for every monitor in that project; a monitor-scoped one suppresses just that monitor.

Request Body
project_idintegerRequired if monitor_id is omitted.
monitor_idintegerRequired if project_id is omitted.
notestringMax 500 chars.
starts_at*stringAny parseable date.
ends_at*stringMust be after starts_at.
Notes
  • •422 "Select a project or a specific server monitor to scope this maintenance window to." if both project_id and monitor_id are omitted.
  • •While a window is active, a status flap produces no incident record at all — not even a suppressed/hidden one.
Example Request
curl -X POST "https://api.exitprobe.com/api/v1/maintenance-windows" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "My Monitor"
}'
Example Response
{ "success": true, "message": "Maintenance window scheduled.", "data": { "maintenance_window": { "id": 9, "starts_at": "2026-09-27T02:00:00Z", "ends_at": "2026-09-27T04:00:00Z" } } }
DELETE/maintenance-windows/{id}
Delete Maintenance Window

Example Request
curl -X DELETE "https://api.exitprobe.com/api/v1/maintenance-windows/{id}" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"
Example Response
{ "success": true, "message": "Maintenance window removed." }