---
title: "List groups"
method: GET
path: "/groups"
tags: ["Groups"]
---

# List groups

`GET /groups`

## Request

- Base URL: `https://demodesk.com/api/v2`
- URL: `https://demodesk.com/api/v2/groups`
- Auth: HTTP bearer

Returns the company groups readable by the owner of the API key.

Company admins see all groups of their company. Other users see the shared groups and the restricted
groups they have access to, the same as in Settings > Groups. Personal groups are never listed.

Groups are sorted by name, then by id. Only restricted groups can be changed through the membership
endpoints. Shared groups contain every user of the company.

Rate limits:
- Global: 120 requests per minute per API key.

## Query parameters

- `search` string
- `cursor` string
- `limit` integer

## Response `200`

Groups fetched successfully.

- GroupsIndexResponse
  - `data` Group[], required
    - `id` string, required: Internal group id.
    - `name` string, required: Name of the group.
    - `visibility` 'restricted' | 'shared', required: Visibility of the group. Shared groups contain every user of the company and their membership cannot be changed.
    - `default` boolean, required: Whether this is the default General group of the company. The default group cannot be changed through the API.
    - `recordingAccess` 'own_group' | 'selected_groups' | 'all_groups', nullable, required: Whose recordings the members of the group can see in addition to the recordings of the group itself. `own_group` adds nothing, `selected_groups` adds the groups listed in `recordingAccessGroupIds`, `all_groups` adds every restricted group of the company. `null` for shared groups, where the setting does not apply.
    - `recordingAccessGroupIds` string[], required: Ids of the groups whose recordings the members can see in addition to the group's own. Only filled when `recordingAccess` is `selected_groups`. The group itself is implicit and never listed.
    - `createdAt` string, date-time, required: When the group was created.
    - `updatedAt` string, date-time, required: When the group was last changed.
  - `meta` object, required
    - `hasNext` boolean, required
    - `limit` integer, required
    - `nextCursor` string, nullable

## Other responses

- `400`: Request validation failed.
- `401`: API key is missing or invalid.
- `403`: The authenticated user is not allowed to access this resource, e.g. it is not assigned to a company.
- `429`: Rate limit exceeded.

## Changes

- **2026-10-18** `14d6c8e2e11a`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/demodesk/apis/demodesk-public-api/changes/groups/get.md)

---

[API](https://skmtc.dev/demodesk/apis/demodesk-public-api.md) - [All operations](https://skmtc.dev/demodesk/apis/demodesk-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/demodesk/apis/demodesk-public-api/revisions/8729e4025dc9?raw)
