---
title: "List Status Page Components"
description: "Returns every component of a status page, ordered by sort."
---

`GET /api/status-pages/{id}/components`

A component is one row on the status page: a monitor (`sourceKind: monitor`), a third-party provider from our dependency monitoring (`sourceKind: dependency`) or an entry you maintain by hand (`sourceKind: manual`). Components can sit in a [group](/api/status-pages/list-status-page-component-groups). The list holds every component of the page in one page of results, ordered by `sort`, then `id`. A page has at most 100 components.

The monitors the page includes automatically through `includeCustomerMonitors` are not components and do not appear here.

## Access

Organization `admin`, `editor` and `readonly`. A customer-scoped user or API token only reaches pages of a customer in its scope; a page without a customer (`customerId: null`) answers it with `403` (`forbidden`). A page of another organization answers `404` (`statusPageNotFound`). `:id` takes the numeric id or the `publicId` of the status page.

## Example (cURL)

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

curl -X GET "$BASE_URL/api/status-pages/1/components" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Accept: application/json"
```

## Response

`200 OK`

```json
{
  "items": [
    {
      "id": 7,
      "publicId": "0b6f3c1e-8d2a-4f5b-9c7e-1a2b3c4d5e6f",
      "statusPageId": 1,
      "groupId": 3,
      "sort": 0,
      "name": "Main Site",
      "description": null,
      "showUptime": true,
      "sourceKind": "monitor",
      "monitorType": "http",
      "monitorId": 101,
      "manualStatus": null,
      "dependencySlug": null,
      "createdAt": "2026-10-27T09:00:00.000Z",
      "updatedAt": "2026-10-27T09:00:00.000Z"
    },
    {
      "id": 8,
      "publicId": "5d4c3b2a-1f0e-4d9c-8b7a-6f5e4d3c2b1a",
      "statusPageId": 1,
      "groupId": null,
      "sort": 1,
      "name": "Payment provider",
      "description": "Card payments at checkout",
      "showUptime": true,
      "sourceKind": "manual",
      "monitorType": null,
      "monitorId": null,
      "manualStatus": "operational",
      "dependencySlug": null,
      "createdAt": "2026-10-27T09:05:00.000Z",
      "updatedAt": "2026-10-27T09:05:00.000Z"
    }
  ],
  "total": 2,
  "page": 1,
  "perPage": 2
}
```

| Field | Description |
|---|---|
| `groupId` | Numeric id of the group, or `null` when the component is not in a group. |
| `sourceKind` | `monitor`, `dependency` or `manual`. |
| `monitorType`, `monitorId` | The monitor of a monitor component; `null` for a manual one. `monitorType` is one of `http`, `dns`, `icmp`, `smtp`, `ssh`, `tcp`, `ftp`, `imap_pop`. |
| `manualStatus` | State of a manual component: `operational`, `degraded`, `partial_outage`, `major_outage` or `maintenance`; `null` for the other kinds. |
| `dependencySlug` | Provider slug of a dependency component (`GET /api/public/dependencies`); `null` for the other kinds. |
| `showUptime` | Whether the component shows its availability bar on the page. |

## Common errors

- `400 Bad Request` (`invalidIdentifier`) when an id in the path is neither a number nor a UUID
- `401 Unauthorized` when you are not logged in
- `403 Forbidden` (`forbidden`) when your role may not do this, or for a customer-scoped caller on a page without a customer or of another customer
- `403 Forbidden` (`statusPagesModuleDisabled`) when the status pages module is not activated
- `404 Not Found` (`statusPageNotFound`) when the status page does not exist or belongs to another organization
