---
title: "List users"
method: GET
path: "/users"
tags: ["user"]
---

# List users

`GET /users`

List users in the same workspace. Administrators & operators with `legacyViewAll` set to `true` can see the full list, other users can only see themselves.

## Query parameters

- `page` integer — Which page to fetch
- `pageSize` integer — Page size to use
- `role` 'ADMIN' | 'OPERATOR' | 'READ_ONLY_API_KEY' — User role
- `deviceType` 'PSD' | 'SOFT_PSD' | 'API' — User's device type
- `status` 'ACTIVE' | 'INACTIVE' — User status
- `sortBy` 'name' | 'role' | 'status' | 'createdAt' | 'updatedAt' — Sort by attribute
- `sortOrder` 'asc' | 'desc' — Sort order
- `ids` string[] — List of user IDs to filter by
- `portfolioIds` string[] — Filter users by portfolio membership

## Response `200`

Successful response

- object
  - `page` number, required — Current page
  - `next` number, required — Next page or null if there is none
  - `prev` number, required — Previous page or null if there is none
  - `pageSize` number, required — Max count of items per page
  - `total` number, required — Total count of items
  - `results` object[], required — Array of results
    - `id` string, required — Internal unique identifier
    - `legacyId` number, required — Legacy internal unique identifier (for retro-compatibility)
    - `legacyViewAll` boolean, required — If true, user can read all resources on the workspace
    - `workspaceName` string, required — User's workspace name
    - `name` string, required — User name
    - `deviceUserId` string, required — User's device ID (for non-API users)
    - `deviceType` 'PSD' | 'SOFT_PSD' | 'API', required — User's device type
    - `role` 'ADMIN' | 'OPERATOR' | 'READ_ONLY_API_KEY', required — User role
    - `pubKey` string, required — User public key
    - `status` 'ACTIVE' | 'INACTIVE', required — User status
    - `isSuspended` boolean, required — Whether the user is suspended
    - `createdAt` string, required — Creation timestamp
    - `updatedAt` string, required — Last modification timestamp

## Other responses

- `400` — Invalid input data
- `401` — Authorization not provided
- `403` — Insufficient access
- `404` — Not found
- `500` — Internal server error

---

[API](https://skmtc.net/ledgerhq/apis/vault-api.md) · [All operations](https://skmtc.net/ledgerhq/apis/vault-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/ledgerhq/vault-api/revisions/c88faa17bc25/schema)
