---
title: "List Maintenance Windows"
description: "Returns all maintenance windows visible to the authenticated user, scoped by organization and optional customer filter."
---

`GET /api/maintenance-windows`

## Query Parameters

- `customerId` (optional): Filter windows by customer ID.
- `organizationId` (optional): Defaults to your session organization.

## Example (cURL)

```bash
BASE_URL="https://uptimeify.io"
TOKEN="<your-api-token>"

curl -X GET "$BASE_URL/api/maintenance-windows?customerId=1" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Accept: application/json"
```

## Response

```json
[
  {
    "id": 42,
    "publicId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
    "organizationId": 10,
    "customerId": 1,
    "name": "Weekly deployment",
    "description": "Rolling update every Monday",
    "startTime": "2026-07-07T02:00:00.000Z",
    "endTime": "2026-07-07T04:00:00.000Z",
    "isRecurring": true,
    "recurrencePattern": {
      "frequency": "weekly",
      "interval": 1,
      "daysOfWeek": [1]
    },
    "isActive": true,
    "timezone": "UTC",
    "targets": [
      { "type": "website", "id": 101 },
      { "type": "icmp", "id": 5 }
    ],
    "tags": [
      { "id": 7, "name": "Production", "color": "red" }
    ],
    "websiteId": null,
    "icmpMonitorId": null,
    "smtpMonitorId": null,
    "sshMonitorId": null,
    "ftpMonitorId": null,
    "imapPopMonitorId": null,
    "dnsMonitorId": null,
    "customerIpId": null,
    "customerDomainId": null,
    "createdAt": "2026-06-01T09:00:00.000Z",
    "updatedAt": "2026-06-01T09:00:00.000Z"
  }
]
```

Each window includes:

- `targets`: array of `{ type, id }` objects for all explicitly selected monitors (`type` is one of `website` | `dns` | `icmp` | `smtp` | `ssh` | `ftp` | `imap_pop`).
- `tags`: array of tag objects `{ id, name, color }` for tag-based coverage; an empty array when the window does not use tag targeting.
- Legacy single-target fields (`websiteId`, `icmpMonitorId`, etc.) remain present for backwards compatibility; they are `null` when multi-target or tag-based selection is used.

## Common errors

- `401 Unauthorized` when you are not logged in
- `403 Forbidden` when you cannot access the organization
