Skip to main content
Version: Enterprise (1.2.0)

Groups API (Enterprise)

Endpoints for managing user groups and associating groups with machines. Groups allow you to organize users and control machine access in bulk. Available in Enterprise editions.


List Groups

GET /api/groups

List all groups in the current organization.

Headers:

Authorization: Bearer YOUR_JWT_TOKEN

Response:

{
"groups": [
{
"id": "grp_123",
"name": "devops",
"description": "DevOps team",
"member_count": 5,
"machine_count": 3,
"created_at": "2026-01-01T00:00:00Z"
}
]
}

Get Group

GET /api/groups/:id

Get details of a specific group.

Response:

{
"group": {
"id": "grp_123",
"name": "devops",
"description": "DevOps team",
"member_count": 5,
"machine_count": 3,
"created_at": "2026-01-01T00:00:00Z"
}
}

Create Group

POST /api/groups

Create a new group. Requires company_admin role.

Request Body:

{
"name": "devops",
"description": "DevOps team with production access"
}

Response 201 Created:

{
"group": {
"id": "grp_123",
"name": "devops",
"description": "DevOps team with production access"
}
}

Update Group

PUT /api/groups/:id

Update group name or description. Requires company_admin role.

Request Body:

{
"name": "devops-team",
"description": "Updated description"
}

Delete Group

DELETE /api/groups/:id

Delete a group. Requires company_admin role.

Response:

{
"message": "Group deleted successfully"
}

Group Members

GET /api/groups/:id/members

List all members of a group.

Response:

{
"members": [
{
"user_id": "64f1a2b3c4d5e6f7a8b9c0d1",
"username": "johndoe",
"email": "john@example.com",
"role": "user"
}
]
}

POST /api/groups/:id/members

Add a user to a group. Requires company_admin role.

Request Body:

{
"user_id": "64f1a2b3c4d5e6f7a8b9c0d1"
}

Response:

{
"message": "Member added to group"
}

DELETE /api/groups/:id/members

Remove a user from a group. Requires company_admin role.

Request Body:

{
"user_id": "64f1a2b3c4d5e6f7a8b9c0d1"
}

Response:

{
"message": "Member removed from group"
}

Group Machines

GET /api/groups/:id/machines

List all machines associated with a group. Members of this group have access to these machines.

Response:

{
"machines": [
{
"agent_id": "abc123def456",
"name": "production-server",
"status": "online"
}
]
}

POST /api/groups/:id/machines

Associate machines with a group, granting all group members access. Requires company_admin role.

Request Body:

{
"machine_ids": ["abc123def456", "def789ghi012"]
}

Response:

{
"message": "Machines added to group"
}

DELETE /api/groups/:id/machines/:machine_id

Remove a machine from a group, revoking group-based access. Requires company_admin role.

Response:

{
"message": "Machine removed from group"
}