Skip to main content

Users (platform admin)

Cross-organization user search and single-user reads for operators, plus an MFA reset for account recovery. These are low-frequency operator endpoints and use offset pagination ({ items, total, page, page_size }).

::: tip Auth

  • GET /v1/admin/users — any platform admin.
  • GET /v1/users/:id — a platform admin, or the user reading their own record.
  • POST /v1/admin/users/:id/mfa/reset — platform Admin or higher. :::

GET /v1/admin/users

Search users across every organization.

Request

GET /v1/admin/users?q=<term>&page=<n>&page_size=<n>

Query paramTypeNotes
qstringFree-text term matched case-insensitively against email and display_name. Blank/absent lists all users.
pageint1-indexed. Defaults to 1.
page_sizeintDefaults to 25, clamped to [1, 100].

Response

200 OK

{
"items": [
{
"id": "a3f1…",
"email": "alice@example.com",
"display_name": "Alice",
"organization_id": "f47a…",
"job_title": null,
"phone_number": null,
"avatar_url": null,
"bio": null,
"preferences": null,
"mfa_enabled": true,
"passkey_enabled": false,
"email_verified": true,
"last_password_change": "2026-05-01T09:00:00Z"
}
],
"total": 1,
"page": 1,
"page_size": 25
}

Each items[] element is the same ProfileView returned by GET /v1/users/me. The envelope fields:

FieldTypeMeaning
itemsarrayUsers on this page.
totalintTotal matches across all pages.
pageint1-indexed page returned.
page_sizeintPage size used.

GET /v1/users/:id

Fetch a single user by id. A platform admin may read any user; a non-admin may only read their own record (any other id returns 403).

Request

GET /v1/users/:id

Path paramTypeNotes
idUUIDThe user id.

Response

200 OK

A single ProfileView object (same shape as an items[] element above).


POST /v1/admin/users/:id/mfa/reset

Clear a user's MFA enrollment — the account-recovery path when a user loses their authenticator. Platform Admin only. The reset is recorded in the audit log, attributed to the acting admin and scoped to the target's organization.

Request

POST /v1/admin/users/:id/mfa/reset

Path paramTypeNotes
idUUIDThe user whose MFA to clear.

No body.

Response

204 No Content

MFA is cleared. The user can re-enroll on next sign-in. Idempotent — resetting a user who has no MFA is a no-op.


Error responses

StatusCodeWhen
401authentication_requiredNo valid auth credential.
403forbiddenNot a platform admin (or, for GET /v1/users/:id, reading someone else's record without admin rights).
403csrf_failedCookie-authed POST without a valid X-IdentSphere-CSRF header.
404not_foundNo such user.