For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
Update the role of multiple workspace members and invites in one request. An invite can be updated regardless of status — pending, declined, or expired.
This answers `200` once the batch is applied, even when every item failed — a per-item problem is reported in `results` rather than failing the whole request. IDs are deduplicated before processing, so `results` can be shorter than the request; match a result back to your input by `id`, not by position.
<Warning title="Enterprise Only">This endpoint requires an Enterprise workspace.</Warning>
Required scope | `workspace_members:write`
`role` and `defaultSiteRole` together decide what every id in the batch can do and what role the dashboard shows for them. Submit only one of the combinations below — the dashboard's own role picker never produces any other pairing.
| `role` | `defaultSiteRole` | Shown in the dashboard as |
|---|---|---|
| `admin` | `site_manager` | Admin |
| `member` | `site_manager` | Site manager |
| `member` | `designer` | Designer |
| `member` | `marketer` | Marketer |
| `member` | `content_editor` | Content editor |
| `member` | `custom` | The custom Site Role's own name. Requires `defaultSiteRoleId`. |
| `reviewer` | `reviewer` | Reviewer |
Authentication
AuthorizationBearer
Bearer authentication of the form Bearer <token>, where token is your auth token.
Path parameters
workspace_idstringRequiredformat: "objectid"
Unique identifier for a Workspace
Request
Requires at least one of `memberIds` or `inviteIds`. Their combined length is capped at 100. `role: reviewer` only pairs with `defaultSiteRole: reviewer`; any other pairing fails a member id with `invalid_workspace_role` and fails an invite id with `cannot_update_user_role`. On a Workspace not enrolled in Workspace Seats, moving a member (not an invite) to or from `reviewer` also fails with `cannot_update_user_role`, regardless of `defaultSiteRole`.
roleenumRequired
The Workspace Role to assign to every id in the batch
Allowed values:
defaultSiteRoleenumRequired
The default Site Role to assign to every id in the batch
memberIdslist of stringsOptional
IDs of active Members to update
inviteIdslist of stringsOptional
IDs of invites to update, regardless of status
defaultSiteRoleIdstringOptionalformat: "objectid"
ID of the custom Site Role named by defaultSiteRole. Requires defaultSiteRole to be custom, and rejected with any other defaultSiteRole. Rejected if the id doesn’t name a custom Site Role belonging to this workspace.
Response
Request was successful
summaryobject
Counts of updated and failed items
resultslist of objects
Result for each id. Match results to the request by id, not by position.
Errors
400
Bad Request Error
401
Unauthorized Error
403
Forbidden Error
404
Not Found Error
409
Conflict Error
429
Too Many Requests Error
500
Internal Server Error
Update the role of multiple workspace members and invites in one request. An invite can be updated regardless of status — pending, declined, or expired.
This answers 200 once the batch is applied, even when every item failed — a per-item problem is reported in results rather than failing the whole request. IDs are deduplicated before processing, so results can be shorter than the request; match a result back to your input by id, not by position.
Enterprise Only
This endpoint requires an Enterprise workspace.
Required scope | workspace_members:write
role and defaultSiteRole together decide what every id in the batch can do and what role the dashboard shows for them. Submit only one of the combinations below — the dashboard’s own role picker never produces any other pairing.
role
defaultSiteRole
Shown in the dashboard as
admin
site_manager
Admin
member
site_manager
Site manager
member
designer
Designer
member
marketer
Marketer
member
content_editor
Content editor
member
custom
The custom Site Role’s own name. Requires defaultSiteRoleId.
reviewer
reviewer
Reviewer
Requires at least one of memberIds or inviteIds. Their combined length is capped at 100. role: reviewer only pairs with defaultSiteRole: reviewer; any other pairing fails a member id with invalid_workspace_role and fails an invite id with cannot_update_user_role. On a Workspace not enrolled in Workspace Seats, moving a member (not an invite) to or from reviewer also fails with cannot_update_user_role, regardless of defaultSiteRole.