---
title: "List Websites"
description: "Lists websites within an organization (paginated). Results are scoped by your session/permissions."
---

`GET /api/websites`

## Query Parameters

- `organizationId` (optional): Defaults to your session organization.
- `customerId` (optional): Filter websites by customer.
- `search` (optional): Search by website/customer fields.
- `monitoringType` (optional): `combined` | `http_status` | `ssl_check` | `playwright` | `heartbeat` | `dns`
- `excludeMonitoringType` (optional): same values as `monitoringType`
- `page` (optional, default: `1`)
- `perPage` (optional, default: `50`, max: `200`)

## Example (cURL)

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

curl -X GET "$BASE_URL/api/websites?organizationId=1&page=1&perPage=50" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Accept: application/json"
```

## Response

```json
{
  "items": [
    {
      "id": 101,
      "publicId": "11111111-1111-4111-8111-111111111111",
      "customerId": 1,
      "customerPublicId": "22222222-2222-4222-8222-222222222222",
      "customerName": "Acme Corp",
      "name": "Main Marketing Site",
      "url": "https://deinkunde.com",
      "status": "active",
      "monitoringType": "combined",
      "checkInterval": 1,
      "createdAt": "2026-02-26T12:00:00.000Z"
    }
  ],
  "total": 1,
  "page": 1,
  "perPage": 50
}
```

Each item contains flat `customerName` and `customerPublicId` fields, not a full embedded `customer` object.

## Common errors

- `400 Invalid customerId` when `customerId` is invalid
- `400 Invalid monitoringType` when `monitoringType` is not supported
- `401 Unauthorized` when you are not logged in
- `403 Forbidden` when you cannot access the organization

