Groups
Returns all groups except internal system groups. Groups can also be created; they are live immediately and can be targeted by content.
Required scope: read:groups for reading, write:groups for creating.
Endpoints
GET
/api/open/v1/groupsList groups (paginated). Filter: ?type=department|profession|custom
GET
/api/open/v1/groups/{id}Get a single group
POST
/api/open/v1/groupsCreate a group (returns 201 with the group)
List groups
curl "https://customer.monotree.com/api/open/v1/groups?type=department" \
-H "Authorization: Bearer mono_your_token_here"| Query param | Notes |
|---|---|
type | One of department, profession, custom. |
page, per_page, since | Standard pagination. |
Response
{
"data": {
"id": 1,
"name": "Kitchen Staff",
"type": "department",
"managers": [
{ "id": 42, "name": "John Doe" }
],
"created_at": "2026-01-15T10:00:00+00:00"
}
}Field notes
managerslists the users flagged as manager of the group. It appears on the /groups endpoints only — not when groups are embedded elsewhere (e.g. on a user).- Group types:
department(organizational/location unit),profession(job title equivalent, synced from the HR system),custom(free-form).
Create a group
curl -X POST https://customer.monotree.com/api/open/v1/groups \
-H "Authorization: Bearer mono_your_token_here" \
-H "Content-Type: application/json" \
-d '{"name": "Nørrebro", "type": "department"}'| Field | Notes |
|---|---|
name | Required. Max 255 characters. Names are not unique: creating "Nørrebro" twice gives two departments. |
type | Optional. department (default), profession or custom. |
is_open | Optional boolean, custom groups only. Lets employees join the group themselves. Sending true on a department or profession returns 422. |
Returns 201 with the same group object as GET /groups/{id}. The group is published right away, so content targeted at it reaches members immediately.