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.
apiKeyAuthorizationBearer <snoze_sk_…>Workspace API key created in Workspace settings → API keys. Scopes on the key bound what it can read and write.
workspaceId*stringmemberId*stringapplication/json- body
role*string"owner""admin""builder""member""operator""viewer"Success
application/json- response
data*curl -X PATCH 'https://api.snoze.dev/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" }}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.