Skip to main content
Remove Member
Removes a member from a workspace. Requires the remove-member capability and is rank-bounded (act only on strictly-lower ranks). Fires workspace.member.removed.
Owners have no member row, so removal targets member rows only. Sole-owner protection: the owner cannot be removed while sole owner — they must transfer ownership first.

Path Parameters

string
required
The workspace UUID.
string
required
The member to remove.

Body Parameters

string
required
Service/master keys only — the acting user (sent in the body so the act-as-user path works on DELETE; the path :userId is the target). Required for a key: this route has no unbounded path, so a key that names nobody is refused with 400 workspace/missing-user-id. The remove-member capability and the rank bound are enforced against the named user — act as the owner for an unrestricted removal.A plain user token omits it — the actor is the token’s own user. The field is not ignored for such a token: sending your own user id is a harmless no-op, but sending anyone else’s is a 403 workspace/unauthorized. See Acting on behalf of a user.

Response

204 No Content on success.

Error Responses

A service/master key called this route without naming an actingUserId. Removal is rank-bounded against the remover’s own standing, so it must be performed as somebody — act as the owner for an unrestricted removal.
A plain user token sent an actingUserId naming a different user. Only a service/master key may act as someone else.
Every path id on the workspaces bundle is checked for UUID shape before the route runs, so a malformed one is a plain 400 rather than a 500 from the database.