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

# List users

`GET /v2/users`

List users in the account with cursor-based pagination. Results are sorted by
creation date ascending (oldest first).

Requires account admin role, account member role, or USER_READ permission at the
account level.

<Note>This endpoint is in beta, read more [here](https://arize.com/docs/ax/rest-reference#api-version-stages).</Note>

## Query parameters

- `limit` integer
- `cursor` string
- `email` string
- `status` UserStatus[]

## Response `200`

Returns a list of account user objects

- ListUsersResponse
  - `users` User[], required — A list of account users
    - `id` string, required — A universally unique identifier (base64-encoded opaque string).
    - `name` string, required — Display name of the user
    - `email` string, email, required — An email address
    - `created_at` string, date-time, required — Timestamp for when the user was created
    - `status` 'ACTIVE' | 'INVITED' | 'EXPIRED', required — Current status of the user in the account. - `ACTIVE`: User has verified their email and can access the platform. - `INVITED`: User has been invited and their verification token is still valid. - `EXPIRED`: User was invited but their verification token has expired or is missing. A new invite is required.
    - `role` union, required — An account-level role assignment. Discriminated by `type`: - `PREDEFINED`: one of the predefined roles (`admin`, `member`, `annotator`) - `CUSTOM`: a custom RBAC role identified by its ID Note: `CUSTOM` role assignments are not yet supported and are reserved for future use.
      - PredefinedUserRoleAssignment — A predefined account-level role assignment.
        - `type` 'PREDEFINED' | 'CUSTOM', required
        - `name` 'ADMIN' | 'MEMBER' | 'ANNOTATOR', required — Account-level role of the user. These are pre-defined roles in Arize.
      - CustomUserRoleAssignment — A custom RBAC role assignment.
        - `type` 'PREDEFINED' | 'CUSTOM', required
        - `id` string, required — A universally unique identifier (base64-encoded opaque string).
        - `name` string — Human-readable name of the custom role. Returned in responses only; ignored on input.
    - `is_developer` boolean, required — Whether the user has developer permissions (can use the Arize API)
  - `pagination` PaginationMetadata, required — Cursor-based pagination metadata. Use `next_cursor` in the subsequent request's `cursor` query parameter.
    - `next_cursor` string — Opaque cursor for fetching the next page. Treat as an unreadable token. Present when `has_more` is true; omitted when `has_more` is false.
    - `has_more` boolean, required — True if another page of results is available.

## Other responses

- `400` — Invalid request
- `401` — Authentication is required
- `403` — Insufficient permissions to access this resource
- `429` — Rate limit exceeded

---

[API](https://skmtc.net/arize-ai/apis/arize-rest-api.md) · [All operations](https://skmtc.net/arize-ai/apis/arize-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/arize-ai/arize-rest-api/versions/2ce448f1de13/schema)
