# List users

Canonical page: https://docs.ovok.com/signals/standalone/api/clients/list-users

{/* Generated from the API Explorer document by scripts/generate-signals-api-pages.mjs. Edit ovok-core, not this page. */}


# List users [#list-users]

| Method | Path |
| --- | --- |
| `GET` | `/v1/signals/api/user` |

<Availability route="GET /v1/signals/api/user" />

The tenant's API clients, newest first, in v1's paginate envelope (`page`, `limit` defaulting to 10) with nest's `nextCursor`. `role` and `name` filter as in v1.

### Through ovok [#through-ovok]

- **Who can call it:** Manager apps, and users whose access policy grants the capabilities.
- **Capabilities, all required:** `signals_clients:read`. Project admins have every capability; client applications get no admin bypass.

## Request [#request]

### Query parameters [#query-parameters]

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `limit` | number | No | Page size. Defaults to 10, as in v1. |
| `role` | `ADMIN`, `MANAGER`, `SUBMITTER`, `SUBSCRIBER`, `SUPER_ADMIN`, `TENANT_PROVISIONER` | No | Only this role: `manager`, `submitter`, `subscriber` (or `admin`), either case. |
| `name` | string | No | Only clients with exactly this name. |
| `page` | number | No | 1-based, as v1 paged. A page may start at most 10000 rows in; walk further with `cursor`. |
| `cursor` | string | No | Opaque keyset cursor: a previous answer's `nextCursor`, passed back verbatim. |

## Responses [#responses]

| Status | Meaning |
| --- | --- |
| `200` | One page of users. |
| `400` | The query carries a raw `#`, or more than 200 parameters. |
| `401` | Your ovok access token, or your client id and secret, are missing or invalid. |
| `403` | ovok refused the call: you lack a capability this route needs, or your session has no project. From Signals: Authenticated, but the client's role does not permit this, or it is not attached to the patient. |
| `409` | Your project has no Signals tenant of its own (`SIGNALS_TENANT_NOT_OWN`), or it is moving to another one. |
| `422` | A query parameter failed validation, or the page starts too deep. |
| `429` | Too many requests. Retry after the seconds in `Retry-After`. |
| `500` | ovok hit an unexpected fault, such as your project having no Signals submitter. |
| `502` | Signals answered with something ovok couldn't use, or refused ovok's own credential. |
| `503` | Signals is unavailable. Retry after the seconds in `Retry-After`. |
| `504` | Signals did not answer in time. |

## Example [#example]

```bash
curl --request GET 'https://api.sandbox.ovok.com/v1/signals/api/user' \
  --user "${OVOK_CLIENT_ID}:${OVOK_CLIENT_SECRET}"
```
