# Create segment

Create a segment with an optional set of tags (OR logic).

Source: https://statusdashboard.com/docs/api/subscriptions/segments/create

`POST /app/segments`

Creates a segment. Requires the **Segments** plan feature and admin role.

When `tagIds` is non-empty, tags are combined with OR logic: a contact in any listed tag is considered part of the segment. An empty `tagIds` array is allowed — the segment matches no contacts until tags are added.

***

## Request
See [API Basics](/docs/api) for required headers.

### Body
| Field    | Type    | Required | Description                                                                                                                                         |
| -------- | ------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `name`   | string  | Yes      | Segment name. 1–50 characters. Unique per org (case-insensitive).                                                                                   |
| `tagIds` | uuid\[] | Yes      | Existing tag UUIDs. May be empty (`[]`) — the segment matches no contacts until tags are added. Subject to the organization `tagsPerSegment` limit. |

***

## Sample request
```bash
curl -X POST https://api.statusdashboard.com/app/segments \
  -H "Authorization: Bearer bcf847abf5c6:def456" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Executives",
    "tagIds": [
      "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "b2c3d4e5-f6a7-8901-bcde-f12345678901"
    ]
  }'
```

## Sample response
**Status: `201 Created`**

```json
{
  "segment": {
    "id": "8f3c2e1a-4b5d-6e7f-8a9b-0c1d2e3f4a5b",
    "name": "Executives",
    "tagIds": [
      "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "b2c3d4e5-f6a7-8901-bcde-f12345678901"
    ],
    "tags": [
      { "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "name": "Executive" },
      { "id": "b2c3d4e5-f6a7-8901-bcde-f12345678901", "name": "Director" }
    ],
    "activeSubscriberCount": 14,
    "createdAt": "2026-06-01T12:00:00.000Z",
    "updatedAt": "2026-06-01T12:00:00.000Z"
  }
}
```

***

## Error responses
| Status | When                                                          |
| ------ | ------------------------------------------------------------- |
| `400`  | Validation error, duplicate name, or unknown `tagId`.         |
| `403`  | Not admin, feature not enabled, or segment/tag limit reached. |
