Add Collaborator Group Members
Bulk-adds collaborators to an existing collaborator group, skipping any that are already members.
Last updated: June 7, 2026
POST /siren/v1/collaborator-groups/{id}/members
Bulk-adds one or more collaborators to an existing group. The operation is idempotent. Collaborator ids that already have a row in this group are skipped, and only the newly-added rows are returned.
Request Body:
| Field | Type | Required | Description |
|---|---|---|---|
members | object[] | No | Array of member entries to add. Each entry is { "collaboratorId": <int>, "metadata": <object> }. Entries without a non-zero collaboratorId are ignored. |
members[].collaboratorId | integer | Yes | The collaborator to add. Required on each entry. |
members[].metadata | object | No | Structure-specific data for the member. Shape depends on the group’s structure (for example { "position": <int> } for linearChain). Defaults to an empty object. |
Query Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
id | integer | Yes | Path parameter. The id of the collaborator group to add members to. |
Example Request:
{
"members": [
{ "collaboratorId": 43, "metadata": { "position": 3 } }
]
}
Example Response:
[
{
"id": 89,
"groupId": 12,
"collaboratorId": 43,
"metadata": { "position": 3 }
}
]
Returns 200 on success. The response is the array of newly-added member rows. Collaborator ids that already belonged to the group are silently skipped and do not appear in the response, so an entirely redundant request returns an empty array. Responds 404 when no group matches the supplied id, and 500 if the members cannot be written.
Each returned row includes id, groupId, collaboratorId, metadata, dateCreated, and dateModified. The example above shows the first four for brevity. The joined collaborator name, email, and status are not part of this response, so call List Collaborator Group Members if you need those.
An empty or omitted members array is valid and returns 200 with an empty array. The endpoint only ever creates rows, and it never updates a member who is already present, so the metadata you send for a collaborator who is already in the group is ignored rather than applied. To change an existing member’s position or parent, use Set Collaborator Group Members, the full-replace endpoint.
Requires authentication and the update capability on the CollaboratorGroup resource.
Events: Each newly-added row broadcasts a CollaboratorAddedToCollaboratorGroup event for downstream listeners.