YeshID Groups API [ALPHA]
Last updated: December 22, 2025
This functionality of the YeshID API is under very early ALPHA. Please check in with your YeshID CSM or SE before proceeding with this API.
Group Management API Documentation
This document covers all the API endpoints for managing groups and group membership in YeshID. All endpoints require admin privileges and appropriate API key scopes (`group` for write operations, group or group.readonly for read operations).
Group CRUD Operations
List Groups
GET /api/v1/groups
Lists all groups for the authenticated user's organization with optional filtering and pagination.
Query Parameters:
filter(optional): Filter expression for groupslimit(optional): Maximum number of groups to returnoffset(optional): Number of groups to skip for pagination
Response:
{
"groups": [
{
"id": "uuid",
"orgId": "uuid",
"name": "string",
"description": "string",
"type": "STATIC|DYNAMIC",
"owners": [/* User objects */],
"filter": {/* Trigger object for dynamic groups */},
"isDeleted": false,
"createdAt": "timestamp",
"updatedAt": "timestamp",
"createdById": "uuid",
"createdBy": {/* User object */},
"updatedById": "uuid"
}
],
"total": 0
}Get Group
GET /api/v1/group/:id
Retrieves a specific group by ID.
Path Parameters:
id: Group UUID
Response:
{
"group": {
"id": "uuid",
"orgId": "uuid",
"name": "string",
"description": "string",
"type": "STATIC|DYNAMIC",
"owners": [/* User objects */],
"filter": {/* Trigger object for dynamic groups */},
"isDeleted": false,
"createdAt": "timestamp",
"updatedAt": "timestamp",
"createdById": "uuid",
"createdBy": {/* User object */},
"updatedById": "uuid"
}
}Create Group
POST /api/v1/groups
Creates a new group.
Request Body:
{
"name": "string",
"description": "string",
"filter": {/* Trigger object - for dynamic groups */},
"type": "STATIC|DYNAMIC",
"owners": ["uuid", "uuid"]
}Response:
{
"group": {
"id": "uuid",
"orgId": "uuid",
"name": "string",
"description": "string",
"type": "STATIC|DYNAMIC",
"owners": [/* User objects */],
"filter": {/* Trigger object for dynamic groups */},
"isDeleted": false,
"createdAt": "timestamp",
"updatedAt": "timestamp",
"createdById": "uuid",
"createdBy": {/* User object */},
"updatedById": "uuid"
}
}Update Group
PUT /api/v1/group/:id
Updates an existing group.
Path Parameters:
id: Group UUID
Request Body:
{
"name": "string",
"owners": ["uuid", "uuid"],
"description": "string",
"filter": {/* Trigger object - for dynamic groups */}
}Response:
{
"group": {
"id": "uuid",
"orgId": "uuid",
"name": "string",
"description": "string",
"type": "STATIC|DYNAMIC",
"owners": [/* User objects */],
"filter": {/* Trigger object for dynamic groups */},
"isDeleted": false,
"createdAt": "timestamp",
"updatedAt": "timestamp",
"createdById": "uuid",
"createdBy": {/* User object */},
"updatedById": "uuid"
}
}Delete Group
DELETE /api/v1/group/:id
Deletes a group.
Path Parameters:
id: Group UUID
Response:
{}Group Member Management
List Group Members
GET /api/v1/group/:id/members
Lists all members of a specific group.
Path Parameters:
id: Group UUID
Response:
{
"members": [
{
"id": "uuid",
"groupId": "uuid",
"userId": "uuid",
"user": {/* User object */}
}
]
}Add Group Members
POST /api/v1/group/:id/members
Adds users to a group.
Path Parameters:
id: Group UUID
Request Body:
{
"additions": ["user-uuid", "user-uuid"]
}Response:
{}Remove Group Members
DELETE /api/v1/group/:id/members
Removes users from a group.
Path Parameters:
id: Group UUID
Request Body:
{
"removals": ["user-uuid", "user-uuid"]
}
Response:
{}Utility Operations
List User Groups
GET /api/v1/user/:id/groups
Lists all groups that a specific user belongs to.
Path Parameters:
id: User UUID
Response:
{
"groups": [
{
"id": "uuid",
"orgId": "uuid",
"name": "string",
"description": "string",
"type": "STATIC|DYNAMIC",
"owners": [/* User objects */],
"filter": {/* Trigger object for dynamic groups */},
"isDeleted": false,
"createdAt": "timestamp",
"updatedAt": "timestamp",
"createdById": "uuid",
"createdBy": {/* User object */},
"updatedById": "uuid"
}
]
}Evaluate Group Filter
POST /api/v1/groups/evaluate-filter
Evaluates a dynamic group filter to see which users would be included, useful for testing dynamic group rules before creating the group.
Request Body:
{
"filter": {/* Trigger object representing the filter logic */}
}Response:
{
"users": [
{
/* UserInfo objects for users that match the filter */
}
]
}Notes
All routes require admin privileges within the organization
Group types can be either
STATIC(manually managed membership) orDYNAMIC(membership determined by filter rules)Dynamic groups use a
filterfield containing trigger logic to automatically determine membershipStatic groups require manual addition/removal of members via the member management endpoints
Group owners have administrative rights over the group
All UUIDs in path parameters and request/response bodies are standard UUID format
API key scopes: Use
groupfor write operations,grouporgroup.readonlyfor read operations