Skip to main content
Transfer Ownership
Reassigns a workspace’s ownerId. Doable by the workspace’s own owner OR any ancestor owner (owners only — never a capability or reach). Runs in one transaction with a row lock to serialize concurrent transfers.
  • The new owner must be a verified user (any verified user in the tenant — need not already be a member).
  • The new owner’s existing member row (if any) is removed to keep ownerId and member rows disjoint (fires workspace.member.removed).
  • The previous owner is either demoted into a fresh member row (fires workspace.member.added) or removed. It defaults to removed when an ancestor owner reassigns; on a voluntary self-transfer the outgoing owner chooses. On demote, rank defaults to 0 unless specified.
Ancestor-owner transfer is what makes offboarding resolvable — a manager can reassign a fired member’s owned sub-workspace without that member’s access.

Path Parameters

string
required
The workspace UUID.

Body Parameters

string
required
The new owner — any verified user in the tenant.
string
"demote" or "remove". Defaults server-side (ancestor-owner reassign → remove; self-transfer → chosen).
number
On demote, the ex-owner’s rank. Defaults to 0.
string[]
On demote, the ex-owner’s capabilities.
string
Service/master keys only — the user to act as (must be own owner or an ancestor owner).

Response

Returns the updated Workspace object with the new ownerId.

Error Responses