> ## Documentation Index
> Fetch the complete documentation index at: https://mintlify.com/open-webui/open-webui/llms.txt
> Use this file to discover all available pages before exploring further.

# Get User

Retrieves detailed information about a specific user, including their groups and active status.

## Authentication

Requires admin authentication.

## Path Parameters

<ParamField path="user_id" type="string" required>
  The unique identifier of the user. Can also accept `shared-{chat_id}` format to retrieve the user from a shared chat.
</ParamField>

## Response

<ResponseField name="id" type="string">
  Unique user identifier
</ResponseField>

<ResponseField name="email" type="string">
  User email address
</ResponseField>

<ResponseField name="username" type="string" optional>
  Username (optional)
</ResponseField>

<ResponseField name="role" type="string">
  User role: `admin`, `user`, or `pending`
</ResponseField>

<ResponseField name="name" type="string">
  User display name
</ResponseField>

<ResponseField name="profile_image_url" type="string" optional>
  URL to user's profile image
</ResponseField>

<ResponseField name="profile_banner_image_url" type="string" optional>
  URL to user's profile banner image
</ResponseField>

<ResponseField name="bio" type="string" optional>
  User biography
</ResponseField>

<ResponseField name="gender" type="string" optional>
  User gender
</ResponseField>

<ResponseField name="date_of_birth" type="string" optional>
  User date of birth (ISO date format)
</ResponseField>

<ResponseField name="timezone" type="string" optional>
  User timezone
</ResponseField>

<ResponseField name="presence_state" type="string" optional>
  User presence state
</ResponseField>

<ResponseField name="status_emoji" type="string" optional>
  Status emoji
</ResponseField>

<ResponseField name="status_message" type="string" optional>
  Status message text
</ResponseField>

<ResponseField name="status_expires_at" type="integer" optional>
  Unix timestamp when status expires
</ResponseField>

<ResponseField name="info" type="object" optional>
  Additional user information (JSON)
</ResponseField>

<ResponseField name="settings" type="object" optional>
  User settings object

  <Expandable title="Settings Object">
    <ResponseField name="ui" type="object" default="{}">
      UI-specific settings
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="oauth" type="object" optional>
  OAuth authentication data
</ResponseField>

<ResponseField name="scim" type="object" optional>
  SCIM provisioning data
</ResponseField>

<ResponseField name="last_active_at" type="integer">
  Unix timestamp of last activity
</ResponseField>

<ResponseField name="updated_at" type="integer">
  Unix timestamp of last update
</ResponseField>

<ResponseField name="created_at" type="integer">
  Unix timestamp of creation
</ResponseField>

<ResponseField name="groups" type="array">
  Array of groups the user belongs to

  <Expandable title="Group Object">
    <ResponseField name="id" type="string">
      Group identifier
    </ResponseField>

    <ResponseField name="name" type="string">
      Group name
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="is_active" type="boolean">
  Whether the user is currently active (last active within 3 minutes)
</ResponseField>

## Example Request

```bash theme={null}
curl -X GET "https://your-domain.com/api/users/user-123" \
  -H "Authorization: Bearer YOUR_TOKEN"
```

## Example Response

```json theme={null}
{
  "id": "user-123",
  "email": "user@example.com",
  "username": "johndoe",
  "role": "user",
  "name": "John Doe",
  "profile_image_url": "/api/v1/users/user-123/profile/image",
  "bio": "Software developer",
  "timezone": "America/New_York",
  "status_emoji": "💻",
  "status_message": "Working on a project",
  "last_active_at": 1709424000,
  "updated_at": 1709424000,
  "created_at": 1709337600,
  "groups": [
    {
      "id": "group-1",
      "name": "Engineering"
    },
    {
      "id": "group-2",
      "name": "Admins"
    }
  ],
  "is_active": true
}
```

## Notes

* Active status is determined by last activity within 3 minutes
* Can resolve user from shared chats using `shared-{chat_id}` format
* Returns 400 error if user not found
* Returns 403 error if action is prohibited (e.g., accessing primary admin)
