When to use this. Groups are optional admin-defined labels that organise
styles (e.g. Woven, Knitwear, Denim) and compliance certificates (e.g.
Sustainability, Chain of Custody) by fabric type, product purpose, or
compliance focus. You create them once in Admin and users then select from
them in the style header and the compliance module. Use these endpoints to
build and maintain that library programmatically: for example when syncing
with an ERP or migrating a client’s existing group taxonomy.
The workflow
Groups are organisation-scoped reference data. The typical path is to create your group taxonomy, then reference groups from styles or certificates through the respective style/compliance endpoints.1
Create groups
POST /api/groups with an array of one or more groups: name is required,
userDefinedId is optional but strongly recommended for ERP alignment.
All items are created in a single all-or-nothing transaction.2
Find groups
GET /api/groups with filters (State, Names, UserDefinedId, or
free-text Search) to look up group IDs before referencing them on styles
or in bulk operations. GET /api/groups/{id} reads a single group by its id.3
Update or deactivate
PATCH /api/groups/{id} to change only the fields you send (for example
state to inactive so the group no longer appears in new-style dropdowns)
or PUT /api/groups/{id} to replace the group in full. Use the bulk PUT /api/groups to
update many groups at once, including soft-deleting individual items within
the same call.4
Delete when unused
DELETE /api/groups/{id} soft-deletes a group. The call returns 400 if
the group is still assigned to one or more styles (usedInStyles > 0);
reassign those styles first.Walkthrough
Create two groups in a single request. The body is an array: Knitwear and Denim are created together in one all-or-nothing transaction.id: styles and compliance certificates reference groups by it.
Field reference
The bulk
PUT /api/groups endpoint accepts an array of GroupBulkUpdateCommand
objects. Setting state: "deleted" on an item within the array triggers the
same delete-time rules as DELETE /api/groups/{id}: the group must not be
in use on any style.PUT /api/groups/{id} is a full replace: name and state are required, and a userDefinedId
sent as null is cleared. PATCH /api/groups/{id} accepts an RFC 6902 JSON Patch document
(Content-Type: application/json-patch+json) and touches only the paths you send: an omitted
name or userDefinedId keeps its current value, and replace /userDefinedId with null
clears it. Neither route accepts state: "deleted"; use DELETE /api/groups/{id} so the
delete-time rules run.Roles & permissions
Managing groups requires admin-level access to thegroups permission on a
designer (brand) account: by default the CompanyAdmin role. Supplier
accounts cannot create or modify groups.
When things go wrong
Errors use the standard envelope (status: "error", a code, and
error.details[]). See Errors & responses for the full list
of codes and how to resolve them.
Common cases to handle:
- 400
validation_error.*:namemissing, orstate: deletedsent toPUT /api/groups/{id}orPATCH /api/groups/{id}(useDELETEinstead). - 400 on
DELETE /api/groups/{id}: the group is still assigned to one or more styles (usedInStyles > 0). Reassign those styles to a different group first. - 403
authorization_error.group_access_denied: your account lacks thegroupspermission, orGET,PUTorPATCHon/api/groups/{id}targets a group that belongs to another organisation. - 404
resource_error.group_not_found: the id does not exist.DELETE /api/groups/{id}also returns 404 for a group that belongs to another organisation. - 409
resource_conflict_error.*:nameoruserDefinedIdalready exists in the organisation, aPATCHoperation tried to change/idto a different value, or aPATCHtestoperation did not match. - 422: a
PATCHoperation could not be applied, for example a path that is not on the group (such as/organizationId).
What to call next
Style categories
Organise styles by product type (e.g. T-shirts, Dresses): complements groups.
Seasons
The top-level structure every style is filed under; create seasons before styles.
Size ranges
Define the size sets that styles and items reference.
Styles
Create and manage styles that reference groups:
POST /api/styles.