Skip to content

Groups API

The Groups API lets you manage groups (folders) within workspaces.

Get all groups in a workspace.

GET /api/group
ParameterTypeDescription
workspaceIdstringFilter by workspace (uses default if not provided)
parentIdstringFilter by parent group (optional)
searchstringSearch in group names (optional)
sortstringSort field and direction, e.g. name:asc or name:desc
pagenumberPage number (default: 1)
limitnumberResults per page (default: 50, max: 100)
{
"data": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Projects",
"workspaceId": "660e8400-e29b-41d4-a716-446655440001",
"userId": "880e8400-e29b-41d4-a716-446655440003",
"parentId": null,
"icon": null
},
{
"id": "550e8400-e29b-41d4-a716-446655440002",
"name": "Active",
"workspaceId": "660e8400-e29b-41d4-a716-446655440001",
"userId": "880e8400-e29b-41d4-a716-446655440003",
"parentId": "550e8400-e29b-41d4-a716-446655440000",
"icon": null
}
],
"pagination": {
"page": 1,
"limit": 50,
"total": 2,
"totalPages": 1
},
"count": 2,
"filters": {
"workspaceId": "660e8400-e29b-41d4-a716-446655440001",
"parentId": null,
"search": null
}
}
Terminal window
curl -X GET "https://sidvy.com/api/group?workspaceId=660e8400..." \
-H "Authorization: Bearer sidvy_abc123..."

Create a new group.

POST /api/group
{
"name": "New Group",
"workspaceId": "660e8400-e29b-41d4-a716-446655440001",
"parentId": "550e8400-e29b-41d4-a716-446655440000"
}
FieldTypeRequiredDescription
namestringYesGroup name
workspaceIdstringNoTarget workspace (uses default if not provided)
parentIdstringNoParent group ID (for nesting)
{
"data": {
"id": "550e8400-e29b-41d4-a716-446655440003",
"name": "New Group",
"workspaceId": "660e8400-e29b-41d4-a716-446655440001",
"userId": "880e8400-e29b-41d4-a716-446655440003",
"parentId": "550e8400-e29b-41d4-a716-446655440000",
"icon": null
},
"count": 1
}
Terminal window
curl -X POST "https://sidvy.com/api/group" \
-H "Authorization: Bearer sidvy_abc123..." \
-H "Content-Type: application/json" \
-d '{"name": "New Group", "workspaceId": "660e8400..."}'

Update a group’s name or move it in the hierarchy.

PUT /api/group
{
"groupId": "550e8400-e29b-41d4-a716-446655440000",
"name": "Renamed Group",
"parentId": null
}
FieldTypeRequiredDescription
groupIdstringYesGroup ID to update
namestringNoNew group name
parentIdstringNoNew parent group (set to null to move to workspace root)

Returns the updated group object in the same format as create.

Terminal window
curl -X PUT "https://sidvy.com/api/group" \
-H "Authorization: Bearer sidvy_abc123..." \
-H "Content-Type: application/json" \
-d '{"groupId": "550e8400...", "name": "Renamed Group"}'

Delete a group and its contents.

DELETE /api/group
{
"groupId": "550e8400-e29b-41d4-a716-446655440000"
}
FieldTypeRequiredDescription
groupIdstringYesGroup ID to delete
{
"data": {
"deleted": true,
"groupId": "550e8400-e29b-41d4-a716-446655440000",
"deletedChildGroups": 2
},
"count": 1
}
Terminal window
curl -X DELETE "https://sidvy.com/api/group" \
-H "Authorization: Bearer sidvy_abc123..." \
-H "Content-Type: application/json" \
-d '{"groupId": "550e8400-e29b-41d4-a716-446655440000"}'
{
"error": "NOT_FOUND",
"message": "Group not found"
}
{
"error": "NOT_FOUND",
"message": "Parent group not found"
}
{
"error": "VALIDATION_ERROR",
"message": "Group cannot be its own parent"
}
{
"error": "VALIDATION_ERROR",
"message": "name: Required field is missing"
}