Skip to main content
List Members
Returns the roster as a single unified array, one entry per distinct user, each carrying a reasons array explaining why the user appears. Requires roster visibilityany relation to the workspace (owner, ancestor-owner, member, or reach-holder). A caller with no relation gets a 404. Always returned in full — never paginated. include flags only add entries; they never change the shape. countOnly is the numbers-only escape hatch.

Path Parameters

string
required
The workspace UUID.

Query Parameters

string
Comma-separated add-on buckets. Default returns owner + direct members. Options: ancestorOwners, reachHolders, descendants.
boolean
When true, returns per-reason counts + a distinct-user total instead of the array (never materializes the roster). Honors the same includes.

Reasons

Each entry’s reasons[] contains { type, ...detail } objects. A user present for several reasons is one entry carrying multiple reasons.
The authority-bearing detail fields are fenced. capabilities, permissions and rank are omitted from a reason (absent — not null) on other users’ entries unless the caller:
  • holds one of the four people-operating capabilities on this workspace — invite, remove-member, edit-member-access, edit-member-profile; or
  • is the workspace’s owner or an ancestor-owner; or
  • is a service/master key.
The caller’s own entry always carries them in full, so anyone can discover their own access. Who is on the roster — user, the reason types, title, metadata, viaWorkspaceId, workspaceId — stays visible to any relation. Treat the three fields as optional in your types.

Response (array mode)

The same roster read by a caller who cannot manage people here — the member reason keeps its identity fields but drops the authority-bearing ones:

Response (countOnly=true)

total is the distinct-user seat number (owner + direct members), not the sum of buckets (buckets overlap). Ancestor-owners and reach-holders are never counted as seats. See also: useFetchWorkspaceMembers · Fetch Member Standing