Create, list, and update groups using the same OAuth client credentials (API key) used for Employee Sync, Asset Sync, and Sites. All operations are scoped to your organization. Use groups to assign users and to scope work orders, tasks, and schedules.
All endpoints require the same API key (Bearer token or Basic auth) you use for Employee Sync, Asset Sync, and Sites. See Authentication for how to obtain and use credentials.
Returns all groups in your organization. Use activeOnly=true to exclude inactive groups (e.g. for assignment pickers).
GET /api/v1/groups
Authorization: Bearer <your_token>
# Optional: only active groups
GET /api/v1/groups?activeOnly=trueReturns a single group by ID. The group must belong to your organization. Response includes memberCount.
GET /api/v1/groups/{groupId}
Authorization: Bearer <your_token>name is required and must be unique within the organization. description is optional. New groups are created as active.
POST /api/v1/groups
Authorization: Bearer <your_token>
Content-Type: application/json
{
"name": "Maintenance Team",
"description": "Field technicians and supervisors"
}PUT updates the full group (send all fields you want to keep). PATCH updates only the fields you send (e.g. { "isActive": false } to mark a group inactive). Inactive groups are hidden from assignment pickers; existing memberships are preserved.
PUT /api/v1/groups/{groupId}
Authorization: Bearer <your_token>
Content-Type: application/json
{
"name": "Maintenance Team (Updated)",
"description": "Field technicians and supervisors",
"isActive": true
}PATCH /api/v1/groups/{groupId}
Authorization: Bearer <your_token>
Content-Type: application/json
# Mark group as inactive (soft delete)
{ "isActive": false }Each group object includes: id, name, description, isActive, organizationId, organization (id, name), memberCount, createdAt, updatedAt.
Same as other v1 APIs (per API key). See Error Handling for details.