Skip to content
StraventaDocs
Now in Sandbox.

List users in the caller's tenant

Returns a paginated list of users (identities) in the caller's tenant. Supports free-text search on email and display_name, plus an optional status filter.

GET
/v1/admin/users

Returns a paginated list of users (identities) in the caller's tenant. Supports free-text search on email and display_name, plus an optional status filter.

Authorization

bearerAuth
AuthorizationBearer <token>

JWT Bearer access token. Clock skew tolerance is ±60 seconds.

In: header

Query Parameters

page?integer
Default1
Range1 <= value
limit?integer
Default20
Range1 <= value <= 100
search?string
status?string

Optional filter by user status. Omit for all users. Deleted users are never returned, so deleted is not accepted.

Value in"active" | "suspended"
sort?string

Column to order users by. Defaults to created_at descending. The aggregated role and group columns are not sortable and return 400 invalid_sort_key.

Value in"created_at" | "email" | "display_name" | "status"
order?string

Sort direction. Ignored unless sort is supplied; an unrecognised value returns 400 invalid_sort_order.

Value in"asc" | "desc"

Response Body

application/json

application/json

curl -X GET "https://example.com/v1/admin/users?status=active&sort=email&order=asc"
{
  "users": [
    {
      "id": "018f1a2b-0001-7000-8000-000000000001",
      "email": "[email protected]",
      "display_name": "Alice",
      "status": "active",
      "created_at": "2026-01-15T08:00:00Z",
      "roles": [
        {
          "role_id": "018f1a2b-0001-7000-8000-000000000020",
          "role_key": "tenant_admin",
          "role_name": "Tenant Admin"
        }
      ],
      "groups": [
        {
          "group_id": "018f1a2b-0001-7000-8000-000000000030",
          "group_name": "Finance"
        }
      ]
    }
  ],
  "total": 0
}
{
  "error": "unauthenticated",
  "message": "missing or invalid bearer token",
  "request_id": "req_01abc123"
}

Was this page helpful?