List organization members
const url = 'http://localhost:3000/api/v1/organizations/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/members?search=john&email=john.doe%40example.com&active=true&isSuperAdmin=false&include=organizations&limit=50&offset=0';const options = {method: 'GET', headers: {'X-API-Key': '<X-API-Key>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'http://localhost:3000/api/v1/organizations/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/members?search=john&email=john.doe%40example.com&active=true&isSuperAdmin=false&include=organizations&limit=50&offset=0' \ --header 'X-API-Key: <X-API-Key>'Retrieves a list of members in the organization.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Organization UUID
Query Parameters
Section titled “Query Parameters”Example
johnSearch term for user name or email
Example
john.doe@example.comFilter by exact email address
Example
trueFilter by active status
Example
falseFilter by super admin status
Example
organizationsInclude related data. Use “organizations” to include organization memberships.
Example
50Maximum number of results to return
Example
0Number of results to skip for pagination
Header Parameters
Section titled “Header Parameters”UUID of the organization (tenant) the request acts in. It selects the tenant and grants nothing: the server checks membership or an open tenant switch. Not needed for global operations. A malformed value returns 400. API keys are fixed to their own organization; another organization returns 403. The x-organization-source header grants nothing.
Responses
Section titled “Responses”Members retrieved successfully
object
List of users
object
Unique user identifier
User email address
User display name
Whether the user account is active
Whether the user email has been verified
Whether the user is a super admin with platform-wide privileges
When the user was created
When the user was last updated
When the user last logged in
FM-1069: the Keycloak identity-provider alias the user last authenticated through (e.g. the Entra broker alias), or null for a local realm login.
FM-1069: whether the user authenticates through an external identity provider (federated). The UI hides the password-reset action when true, since federated users have no local password to reset.
True when this account cannot sign in to its organizations because its e-mail address is unverified AND it is not yet bound to a Keycloak identity. Both conditions matter: an unverified address only blocks the e-mail-keyed binding (FM-837), which is never attempted for an account that is already bound. An already-bound account with an unverified address signs in perfectly well, so flagging it would be a false alarm.
FM-1286: whether this account is bound to a Keycloak identity (users.keycloakId is set). A Super Admin can clear the binding when the Keycloak account was re-created, so the account re-links on its next sign-in with memberships intact. The Keycloak id itself is not exposed.
Total number of users matching the query
Number of results returned
Number of results skipped
Example
{ "items": [ { "id": "550e8400-e29b-41d4-a716-446655440000", "email": "john.doe@example.com", "name": "John Doe", "active": true, "emailVerified": true, "isSuperAdmin": false, "createdAt": "2024-01-15T10:30:00Z", "updatedAt": "2024-06-20T14:45:00Z", "lastLoginAt": "2024-12-20T09:15:00Z", "identityProvider": "entra", "isFederated": false, "pendingEmailVerification": false, "hasKeycloakLink": true } ], "total": 100, "limit": 50, "offset": 0}Unauthorized
Forbidden - Insufficient permissions
Organization not found