Change a member's workspace role
Sets the built-in role on one membership and then re-syncs the billable seat count to the billing provider. Requires `members:manage`, and only owners may promote to or demote from the owner role. Fails when the member is unknown, when it would demote the last owner, and when promoting a free viewer into an editor role would exceed the plan's editor seats.
Authorization
apiKey Workspace API key created in Workspace settings → API keys. Scopes on the key bound what it can read and write.
In: header
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
curl -X PATCH "https://example.com/v1/workspaces/string/members/string" \ -H "Content-Type: application/json" \ -d '{ "role": "owner" }'{ "data": { "id": "string", "workspaceId": "string", "userId": "string", "effectiveRoleId": "string", "clerkUserId": "string", "role": "owner", "primaryEmail": "string", "displayName": "string", "avatarUrl": "string", "createdAt": "string", "updatedAt": "string" }}{ "_tag": "ApiNotFound", "error": "not_found", "message": "That item does not exist, or this key cannot see it.", "status": 404}{ "_tag": "ApiNotFound", "error": "not_found", "message": "That item does not exist, or this key cannot see it.", "status": 404}List workspace members
Returns every member of the workspace with their role and profile summary. Requires `members:read`, which every built-in role including viewer holds.
Remove a member from the workspace
Deletes the membership, drops that user's per-item grants in the workspace, and re-syncs billable seats. Requires `members:manage`; non-owners cannot remove an owner, and removing the last owner is rejected as a conflict. An unknown member id is not found.