---
title: "List Maintenance Windows"
description: "Returns maintenance windows scoped to your organization by default."
---

`GET /api/maintenance-windows`

You can filter by a specific target (e.g. `websiteId`) or by customer/organization.

## Authentication

Requires a valid session.

- Header: `Authorization: Bearer <token>`

## Query Parameters

- `websiteId` (optional)
- `customerId` (optional)
- `organizationId` (optional, defaults to your session organization)
- `activeOnly` (optional): set to `true` to only return active windows
- Target filters (optional, exactly one is typically used when narrowing down):
 - `icmpMonitorId`, `smtpMonitorId`, `sshMonitorId`, `ftpMonitorId`, `imapPopMonitorId`

Note: When `websiteId` is provided, access is enforced for that website.

Note (API token scope): If you use a customer-scoped API token, results are restricted to that customer. Providing a different `customerId` returns `403`.

## Example (cURL)

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

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

## Example Response

```json
[
 {
  "id": 5,
  "websiteId": 101,
  "icmpMonitorId": null,
  "smtpMonitorId": null,
  "sshMonitorId": null,
  "ftpMonitorId": null,
  "imapPopMonitorId": null,
  "customerId": 12,
  "customerName": "Acme Corp",
  "name": "Weekly maintenance",
  "description": "Planned downtime",
  "startTime": "2026-02-25T02:00:00.000Z",
  "endTime": "2026-02-25T04:00:00.000Z",
  "isRecurring": true,
  "recurrencePattern": {
   "frequency": "weekly",
   "interval": 1,
   "daysOfWeek": [1]
  },
  "isActive": true,
  "timezone": "UTC",
  "createdBy": "<user-id>",
  "createdAt": "2026-02-20T10:00:00.000Z",
  "updatedAt": "2026-02-20T10:00:00.000Z",
  "website": {
   "id": 101,
    "url": "https://deinkunde.com"
  }
 }
]
```

Note: The list endpoint only includes the `website` relation (when `websiteId` is set). It does not include nested `customer` objects or monitor relations. A lightweight top-level `customerName` is included for display/filtering.

## Common Errors

- `401 Unauthorized` if you are not authenticated
- `403 Forbidden` if you do not have access

