List Collaborator Group Members
Returns a paginated list of members for a single collaborator group, scoped to the parent group and filterable by collaborator.
Last updated: June 7, 2026
GET /siren/v1/collaborator-groups/{id}/members
Returns the group’s members, paginated and filterable. Results are wrapped in a pagination envelope with items, total, page, perPage, and totalPages. The supplied {id} always scopes the result to that group, so this listing never returns rows from another group. Requires authentication and the Read capability on the CollaboratorGroup resource.
The fields value selects from the registered member field resolvers. See Collaborator Groups (REST) for the full member field reference and the metadata shape for each structure. A name with no registered resolver (for example a typo, or a field a plugin has not added) is dropped from the response rather than returning an error.
Query Parameters:
| Parameter | Type | Default | Description |
|---|---|---|---|
fields | string | — | Comma-separated list of fields to include (required) |
collaboratorId | string | — | Filter by collaborator id (exact match or comma-separated IN) |
number | integer | 10 | Results per page |
offset | integer | 0 | Pagination offset |
orderBy | string | id | Sort field |
order | string | ASC | Sort direction: ASC or DESC |
Response Headers:
x-siren-estimated-count. Total matching records (exposed viaAccess-Control-Expose-Headers).
Example Request:
GET /siren/v1/collaborator-groups/12/members?fields=id,groupId,collaboratorId,metadata
Example Response:
{
"items": [
{
"id": 87,
"groupId": 12,
"collaboratorId": 41,
"metadata": { "position": 1 }
},
{
"id": 88,
"groupId": 12,
"collaboratorId": 42,
"metadata": { "position": 2 }
}
],
"total": 2,
"page": 1,
"perPage": 10,
"totalPages": 1
}
Responds 200 with the resolved members in the items array. When the group has no matching members, items is empty and total is 0. The same empty envelope comes back when the supplied {id} matches no group at all, so an unknown group id is not a separate 404. Returns 500 when the datastore fails to fetch member data.
The envelope is derived from your number and offset query parameters. perPage echoes number, page is floor(offset / number) + 1, and totalPages is ceil(total / number). The total is the same value carried in the x-siren-estimated-count response header, and totalPages is derived from it, so both are estimates rather than exact counts. Do not use either as a loop bound. To page through every member, hold number fixed, advance offset by number, and stop when a page returns fewer than number items.
Events: broadcasts CollaboratorGroupMemberResolverRegistryInitiated so listeners can register additional member field resolvers before the response is built.