Skip to content

List Team Members

GET
/team-members

Everyone in the organisation’s roster.

On the app’s DIRECTORY router, not its admin one: this is what every deal owner and task assignee picker resolves names through, so it is gated on settings:read OR team:read rather than on administrator access.

Authorizations

Parameters

Query Parameters

status
Any of:
string

Filter by status.

source
Any of:
string

Filter by how the record was created: propelauth, manual or clone.

search
Any of:
string

Match on name or email.

include_clones

Include AI clone records.

boolean

Include AI clone records.

sync

Pull the identity provider’s membership list before answering. Slower, and it WRITES: it creates a member row for anyone in the organisation who has none yet.

boolean

Pull the identity provider’s membership list before answering. Slower, and it WRITES: it creates a member row for anyone in the organisation who has none yet.

limit
integer
default: 100 >= 1 <= 500
offset
integer

Header Parameters

X-Target-Org-Id
Any of:
string

Responses

200

Successful Response

object
data
required

An open envelope for a LIST result, so a bare list keeps its shape.

Most of these handlers return a bare list[...]; a few return a named envelope ({"team_members": [...], "total": n}). Both are reachable as items, and a named envelope KEEPS its own key as well so a caller already reading the app’s shape is not broken by the wrapper.

object
items
Array
key
additional properties
any
pagination
Any of:
object
has_next
required

Whether there are more pages

boolean
limit
required

Items per page

integer
next_cursor
Any of:
string
notes
Any of:
Array<string>
page
required

Current page number (1-indexed)

integer
total
required

Total number of items

integer
total_available
Any of:
integer
total_is_lower_bound
Any of:
boolean

422

Validation Error

object
detail
Array<object>
object
loc
required
Array
msg
required
string
type
required
string