---
title: "Get a user"
method: GET
path: "/v2/users/{user_id}"
tags: ["Users"]
---

# Get a user

`GET /v2/users/{user_id}`

Get a specific user by their ID.

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

Returns 404 if the user does not exist, does not belong to the caller's account, or the caller lacks read permission.

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

## Path parameters

- `user_id` string, required — A universally unique identifier (base64-encoded opaque string).

## Response `200`

An account user object

- User — An account user represents a member of the account. Users can be listed, updated, or removed from the account.
  - `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)

## Other responses

- `400` — Invalid request
- `401` — Authentication is required
- `404` — Not found
- `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)
