---
title: "Search and list users"
method: GET
path: "/public/v1/users"
tags: ["Users"]
---

# Search and list users

`GET /public/v1/users`

### Overview
Retrieve a comprehensive list of all users within your customer's scope. This endpoint is ideal for auditing, synchronization, or building user-management dashboards.

### Use Cases
- **Auditing**: Regularly export user lists to verify access levels.
- **Synchronization**: Keep an external user directory in sync with Prewave.
- **Management**: Build custom internal dashboards for your organization.

### Filtering
Refine your results using the following optional parameters:
- **Search**: Matches against name or email (fuzzy matching).
- **Active**: Filter by account status (active/deactivated).
- **Confirmed**: Filter by whether the user has verified their account via email.

### Pagination
This endpoint returns a paginated result. You can control the page size and offset using the `page` and `size` parameters.
- **Default Size**: 100
- **Max Size**: 1000

    ### Related Operations
    - **Retrieve Detail**: [GET /public/v1/users/{userId}](#operations-Users-getById)
    - **Onboard User**: [POST /public/v1/users](#operations-Users-create)
    - **Manage Roles**: [GET /public/v1/users/{userId}/roles](#operations-Users_-_Roles-read)
    - **Update User**: [PATCH /public/v1/users/{userId}](#operations-Users-update)

### Required Permission
`access_public_users`

## Query parameters

- `search` string
- `active` boolean
- `confirmed` boolean
- `page` integer
- `size` integer

## Response `200`

Successfully retrieved the paginated list of users.

- object
  - `content` PublicUserResponse[]
    - `id` integer, required
    - `active` boolean, required
    - `confirmed` boolean, required
    - `firstname` string, nullable
    - `lastname` string, nullable
    - `email` string, nullable
    - `customer` PublicUserResponseCustomerDTO, required
      - `id` integer, required
      - `name` string, required
    - `organization` PublicUserResponseOrganizationDTO
      - `id` integer, required
      - `name` string, required
    - `plan` PublicUserResponsePlanDTO
      - `id` integer, required
      - `name` string, required
      - `validFrom` string, date-time, nullable
    - `teams` PublicUserResponseTeamDTO[], required
      - `id` integer, required
      - `name` string, required
    - `roles` PublicUserRoleDTO[], required
      - `id` integer, required
      - `name` string, required
      - `description` string, nullable
  - `size` integer
  - `number` integer
  - `totalElements` integer
  - `totalPages` integer
  - `numberOfElements` integer
  - `first` boolean
  - `last` boolean
  - `empty` boolean

## Other responses

- `403` — 403 Forbidden - Authentication or authorization failure. This status code is returned when: (1) the request lacks valid authentication credentials (missing or invalid X-Auth-Token header), or (2) the authenticated user does not have the required permission to access this resource.
- `429` — 429 Too Many Requests - API rate limit exceeded. The request has been rejected because the rate limit for this endpoint has been exceeded. Default rate limits: GET requests - 100 per 10 seconds, 500 per minute; POST/PUT/PATCH/DELETE requests - 20 per 10 seconds, 100 per minute. For increased access, please contact customer success.
- `500` — 500 Internal Server Error - An unexpected error occurred on the server. The request may or may not have been processed.

---

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