Groups

Returns all groups except internal system groups. The list includes the built-in App Managers group (see Field notes). 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/groups

List groups (paginated, sorted by name). Filter: ?type=department|profession|custom

GET
/api/open/v1/groups/{id}

Get a single group

POST
/api/open/v1/groups

Create 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 paramNotes
typeOne of department, profession, custom. Other values are not supported (they are not rejected with a 422).
page, per_page, sinceStandard pagination — see Pagination.

Response

{
  "data": {
    "id": 1,
    "name": "Kitchen Staff",
    "type": "department",
    "managers": [
      { "id": 42, "name": "John Doe" }
    ],
    "created_at": "2026-01-15T10:00:00+01:00"
  }
}

Field notes

  • managers lists the users flagged as manager of the group, [] if there are none. It appears on the /groups endpoints only — not when groups are embedded elsewhere (e.g. on a user). Groups embedded on a user carry is_manager instead (and is_editor on the /users endpoints).
  • Group types: department (organizational/location unit), profession (job title equivalent, synced from the HR system), custom (free-form).
  • Every company has one built-in App Managers group: its name is the fixed key app_managers_group (not translated, and it cannot be renamed) and its type is profession. Its members are exactly the users who manage at least one group (is_manager on the user), so it also appears in the groups of every manager. Membership follows manager status and cannot be set through the API: POST /users returns 422 if groups contains it. It is not a job title: an integration that syncs professions should skip the group whose name is app_managers_group.

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"}'
FieldNotes
nameRequired. Max 255 characters. Names are not unique: creating "Nørrebro" twice gives two departments.
typeOptional. department (default), profession or custom.
is_openOptional 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.