---
title: "Create Status Page Component Group"
description: "Adds a component group to a status page."
---

`POST /api/status-pages/{id}/groups`

## Access

Organization `admin` and `editor`. 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`). Path ids take the numeric id or the `publicId`. The change is written to the organization's audit log.

## Request Body

| Field | Type | Required | Default | Description |
|-------|------|----------|---------|-------------|
| `name` | string | Yes | - | Heading of the group (1-120 chars). |
| `sort` | number | No | after the last group | Position, 0-100000. |
| `collapsed` | boolean | No | `false` | Start collapsed on the public page. |

Put components into the group with `groupId` on [Create Status Page Component](/api/status-pages/create-status-page-component), [Update Status Page Component](/api/status-pages/update-status-page-component) or [Reorder Status Page Components](/api/status-pages/reorder-status-page-components).

## Example (cURL)

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

curl -X POST "$BASE_URL/api/status-pages/1/groups" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "name": "Core services" }'
```

## Response

`201 Created` with the new group:

```json
{
  "id": 3,
  "publicId": "9e8d7c6b-5a4f-4e3d-8c2b-1a0f9e8d7c6b",
  "statusPageId": 1,
  "name": "Core services",
  "sort": 0,
  "collapsed": false,
  "createdAt": "2026-10-27T08:55:00.000Z",
  "updatedAt": "2026-10-27T08:55:00.000Z"
}
```

## Common errors

- `400 Bad Request` (`invalidRequestBody`) when `name` is missing or a field is invalid
- `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
- `409 Conflict` (`statusPageLimitReached`, with `data.max`) when the page already has 100 groups
