---
title: "List Subscribers of All Status Pages"
description: "Returns the subscribers of every status page you may manage in one paged list, with filters. Requires admin or editor role."
---

`GET /api/status-pages/subscribers`

The same rows as [List Status Page Subscribers](/api/status-pages/list-subscribers), across pages: exactly the status pages whose subscriber list you could open one by one (your organization, your customer scope; pages without a customer only with an organization-wide scope). Subscribers cannot be created through the API: a subscription only exists once the recipient has confirmed it (double opt-in). To remove one, use [Delete Status Page Subscriber](/api/status-pages/delete-subscriber) with the row's `statusPagePublicId`.

## Query Parameters

| Parameter | Description |
|-----------|-------------|
| `page` | Page number, default `1` |
| `perPage` | Rows per page, default `50`, capped at `200` |
| `statusPageId` | Only this status page (ID or `publicId`). An unknown page or one outside your scope yields an empty list |
| `channel` | `email`, `sms`, `push`, `webhook`, `slack` or `teams` |
| `status` | `pending`, `confirmed`, `unsubscribed` or `disabled` |
| `search` | Case-insensitive match on the email address or the status page name (at most 200 characters) |

## Example (cURL)

```bash
curl "$BASE_URL/api/status-pages/subscribers?status=confirmed&perPage=100" \
  -H "Authorization: Bearer $TOKEN"
```

## Response

```json
{
  "items": [
    {
      "id": 43,
      "statusPageId": 7,
      "statusPagePublicId": "db58058e-4b58-4d97-a314-3bb8e279a182",
      "statusPageName": "Acme Status",
      "email": null,
      "channel": "slack",
      "target": "https://hooks.slack.com/…",
      "componentIds": [12],
      "componentNames": ["Checkout"],
      "status": "confirmed",
      "locale": "de",
      "createdAt": "2026-10-27T09:00:00.000Z",
      "confirmedAt": "2026-10-27T09:01:00.000Z"
    }
  ],
  "total": 1,
  "page": 1,
  "perPage": 100
}
```

Newest first. Field meanings as in [List Status Page Subscribers](/api/status-pages/list-subscribers): `email` is `null` for the URL channels, `target` carries only the origin of the target URL, never the full URL. `componentNames` lists the names of `componentIds` in the same order; both are `null` when the subscriber follows the whole page.

## Common errors

- `401 Unauthorized` when you are not authenticated
- `403 Forbidden` (`data.code: forbidden`) when your role is not admin or editor
- `403 Forbidden` (`data.code: statusPagesModuleDisabled`) when the status page module is not active for your organization
- `400 Bad Request` (`data.code: invalidRequestBody`) when `page`, `perPage`, `channel`, `status` or `search` is invalid
- `400 Invalid Status page identifier` (`data.code: invalidIdentifier`) when `statusPageId` is neither a numeric ID nor a UUID
