---
title: "Create a recipient group"
method: POST
path: "/api/v1/recipient-groups"
tags: ["Recipient groups"]
---

# Create a recipient group

`POST /api/v1/recipient-groups`

## Request

- Base URL: `https://wardenpoint.com` (the document declares no server; this is the origin it was published from)
- URL: `https://wardenpoint.com/api/v1/recipient-groups`
- Auth: API key in header `X-API-Key`

Creates a group and, optionally, fills it in one call. Repeating the call with a name that already exists returns the existing group with 200 instead of creating a duplicate; the members of that existing group are left exactly as they are, so use the update endpoint when you mean to change them. One caveat for retries: the plan's group limit is checked before that name lookup, so retrying a create that already succeeded and filled the last free slot answers 429 rather than 200 — treat a 429 on a retry as "probably already created" and check the listing.

## Request body

- RecipientGroupWriteRequest
  - `name` string, required: Display name.
  - `description` string, nullable: Free text for people, never used to route anything. Omitting the field on an update leaves the stored text alone; sending an explicit null erases it. This is the one field here that behaves that way — `recipients` is authoritative, not sparse.
  - `recipients` string[], nullable: Full member list, by recipient UUID. Omit to leave membership untouched, send [] to empty the group; anyone missing from a non-empty list is removed. UUIDs belonging to another company are silently ignored.

## Response `200`

A group with this name already existed and was returned unchanged.

- object
  - `data` RecipientGroup: A named set of recipients. `POST /notifications/send-to-group` takes the UUID of one.
    - `uuid` string, uuid: Stable identifier — every group endpoint takes this.
    - `name` string: Display name.
    - `description` string, nullable: Free-form note about what the group is for.
    - `is_active` boolean
    - `created_at` string, date-time
    - `updated_at` string, date-time
    - `recipients_count` integer: Number of members. A zero here means alerts sent to this group reach nobody.
    - `recipients` object[]: Members. Present only on single-group responses, not in the listing.
      - `uuid` string, uuid
      - `name` string
      - `is_active` boolean

## Other responses

- `201`: Group created.
- `401`: API key missing, invalid, revoked or expired.
- `402`: The company subscription is inactive.
- `403`: API key lacks the config.write ability.
- `422`: Validation failed — missing name, or a recipient UUID that does not exist at all.
- `429`: The plan's group limit is reached.

---

[API](https://skmtc.dev/wardenpoint/apis/wardenpoint-api.md) · [All operations](https://skmtc.dev/wardenpoint/apis/wardenpoint-api/llms.txt) · [OpenAPI document](https://skmtc.dev/wardenpoint/apis/wardenpoint-api/revisions/259ee445728e?raw)
