Groups API
Create and manage user groups, members, and group-based permissions
Manage user groups and their memberships programmatically. Groups let you share dashboards and visuals with multiple users at once.
For conceptual background on group types and permission model, see Groups.
Authentication
All endpoints require a project-scoped JWT token:
See Authentication for token generation.
Base URL
List Groups
Returns groups accessible to the authenticated user, with pagination.
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
type | string | No | Filter by type: ORG_GROUP, TENANT_GROUP, or all. Default: all types visible to user. |
search | string | No | Search by group name |
tenantId | string | No | Filter to groups for a specific tenant |
includeMembers | boolean | No | Include member details in response. Default: false |
page | integer | No | Page number. Default: 1 |
limit | integer | No | Results per page, 1-100. Default: 20 |
sort | string | No | Sort field: name, created, or members |
order | string | No | Sort direction: asc or desc |
Request
Response
Create Group
Create a new organization or tenant group.
Required role: ADMIN for org groups, POWER_USER for tenant groups.
Request Body
| Name | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Group name. 1-100 characters. Must be unique within scope. |
description | string | No | Group description. Max 500 characters. |
type | string | Yes | ORG_GROUP or TENANT_GROUP |
tenantId | string | Conditional | Required when type is TENANT_GROUP |
Request
Response
Errors
| Status | Cause | Fix |
|---|---|---|
400 | Invalid name or missing required fields | Check name length (1-100) and type value |
403 | Insufficient role | Requires ADMIN (org groups) or POWER_USER (tenant groups) |
409 | Group name already exists in this scope | Choose a unique name |
Get Group
Retrieve a specific group with metadata about shared resources.
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
includeMembers | boolean | No | Include member details. Default: false |
Request
Response
Errors
| Status | Cause | Fix |
|---|---|---|
403 | No permission to view this group | Ensure you belong to the group's org/tenant |
404 | Group not found | Verify the group ID |
Update Group
Update a group's name or description. Only include the fields you want to change.
Request Body
| Name | Type | Required | Description |
|---|---|---|---|
name | string | No | New group name. 1-100 characters. Must be unique within scope. |
description | string|null | No | New description. Set to null to clear. Max 500 characters. |
Request
Response
Errors
| Status | Cause | Fix |
|---|---|---|
400 | Invalid name | Check name length (1-100) |
403 | No edit permission | Must be group creator, ADMIN, or POWER_USER in scope |
404 | Group not found | Verify the group ID |
409 | Name already taken | Choose a unique name within the scope |
Delete Group
Delete a group. Removes all member associations and revokes any access granted through this group.
Required: Creator, ADMIN, or POWER_USER in scope.
Request
Response
Errors
| Status | Cause | Fix |
|---|---|---|
403 | No delete permission | Must be group creator, ADMIN, or POWER_USER in scope |
404 | Group not found | Verify the group ID |
409 | Group has shared resources | Revoke resource shares before deleting, or handle cascading removal |
List Members
Returns all members of a group with user details (name, email).
Request
Response
Add Members
Add one or more users to a group. Users must match the group type (org users for org groups, tenant users for tenant groups).
Request Body
| Name | Type | Required | Description |
|---|---|---|---|
userIds | string[] | Yes | User IDs to add. 1-100 per request. |
userType | string | Yes | org or tenant — must match the group type |
Request
Response
Errors
| Status | Cause | Fix |
|---|---|---|
400 | Invalid user IDs, wrong userType, or exceeds 100 users | Verify user IDs exist and match group type |
403 | No permission to manage members | Must be group creator, ADMIN, or POWER_USER in scope |
404 | Group not found | Verify the group ID |
Remove Members (Batch)
Remove multiple members from a group in one request.
Request Body
| Name | Type | Required | Description |
|---|---|---|---|
userIds | string[] | Yes | User IDs to remove. 1-100 per request. |
Request
Response
Remove Single Member
Remove a specific member by their membership ID (not user ID).
Path Parameters
| Name | Type | Description |
|---|---|---|
id | string | Group ID |
memberId | string | Membership record ID (from the members list response) |
Request
Response
Errors
| Status | Cause | Fix |
|---|---|---|
403 | No permission to manage members | Must be group creator, ADMIN, or POWER_USER in scope |
404 | Member not found in this group | Verify both group ID and member ID |
List Group Permissions
Returns all resources (dashboards and visuals) shared with this group, with pagination.
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
resourceType | string | No | Filter by DASHBOARD or VISUAL |
page | integer | No | Page number. Default: 1 |
limit | integer | No | Results per page, 1-100. Default: 20 |
Request
Response
Sharing with Groups
To share a dashboard or visual with a group, use the Sharing API with scope: "group":
Code Examples
Create a Group and Add Members
Sync Group Members from External Source
Error Format
All error responses return:
For the full error reference, see Errors.
Related
- Groups Concepts — Group types, permission model, best practices
- Sharing & Management API — Share dashboards with groups
- Authentication — Token generation