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

# User

A User represents a person on Whop. Users have a public profile and can buy products, join accounts, and access experiences.

Use the Users API to search for users, retrieve or update profiles, and check whether a user has access to an account, product, or experience.

## Endpoints

| Endpoint                                                             | Request                                                                             |
| -------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
| [List Users](/api-reference/beta/users/list-users)                   | <Badge color="blue" size="sm" stroke>GET</Badge> `/users`                           |
| [Retrieve User](/api-reference/beta/users/retrieve-user)             | <Badge color="blue" size="sm" stroke>GET</Badge> `/users/{id}`                      |
| [Update User](/api-reference/beta/users/update-user)                 | <Badge color="orange" size="sm" stroke>PATCH</Badge> `/users/{id}`                  |
| [Check User Access](/api-reference/beta/users/check-user-access)     | <Badge color="blue" size="sm" stroke>GET</Badge> `/users/{id}/access/{resource_id}` |
| [Update Current User](/api-reference/beta/users/update-current-user) | <Badge color="orange" size="sm" stroke>PATCH</Badge> `/users/me`                    |

## Attributes

<Columns cols={2}>
  <Column>
    <ResponseField name="id" type="string" required>
      User ID, prefixed `user_`.
    </ResponseField>

    <ResponseField name="balance" type="object | null" required>
      The user's balance: personal cash + crypto + in-flight treasury deposits, plus
      account balances for accounts they own. Computed only on `GET /users/me`
      self-view for callers with balance-read scope; `null` otherwise.
    </ResponseField>

    <ResponseField name="balance_history" type="object | null" required>
      The user's cumulative wallet balance over time (USD `\{ t, v }` points plus last/min/max), for the balance chart. Opt in with `include_balance_history=true` on `GET /users/me`; populated only for callers with balance-read scope and `null` otherwise. A user with no wallet activity returns an empty series.
    </ResponseField>

    <ResponseField name="bio" type="string | null" required>
      The user's biography
    </ResponseField>

    <ResponseField name="created_at" type="string" required>
      When the user was created, as an ISO 8601 timestamp
    </ResponseField>

    <ResponseField name="earnings_usd" type="object | null" required>
      The user's gross USD income over time. Populated only on single-user self
      reads for callers with balance-read scope; `null` otherwise.
    </ResponseField>

    <ResponseField name="name" type="string | null" required>
      The user's display name
    </ResponseField>

    <ResponseField name="profile_picture" type="object | null" required>
      The user's profile picture, an object with a url
    </ResponseField>

    <ResponseField name="username" type="string" required>
      The user's unique username
    </ResponseField>

    <ResponseField name="verification" type="object" required>
      Identity verification status for the user's `individual` (KYC) and `business`
      (KYB) profiles. Each is `null` until created, otherwise a `status` of
      `not_started`, `pending`, `approved`, or `rejected`.
    </ResponseField>
  </Column>

  <Column>
    <div className="api-resource-sticky-example">
      ```json User theme={null}
      {
      	"id": "user_alex123",
      	"balance": {
      		"businesses": [
      			{
      				"id": "biz_acme123",
      				"name": "Acme Inc",
      				"logo_url": "https://cdn.whop.com/logos/acme.png",
      				"balance_usd": "14325.00"
      			}
      		],
      		"businesses_total_usd": "14325.00",
      		"cash": [
      			{
      				"currency": "usd",
      				"balance": 250,
      				"balance_usd": 250,
      				"pending_balance_usd": 0,
      				"reserve_balance_usd": 0,
      				"total_withdrawable_balance": 250
      			}
      		],
      		"cash_usd": "250.00",
      		"crypto": [
      			{
      				"symbol": "USDT",
      				"name": "Tether USD",
      				"balance": "500.00",
      				"value_usd": 500,
      				"price_usd": 1,
      				"icon_url": "https://cdn.whop.com/tokens/usdt.png"
      			}
      		],
      		"crypto_usd": "500.00",
      		"pending_usd": "0.00",
      		"total_usd": "750.00",
      		"treasury_pending_usd": "0.00"
      	},
      	"balance_history": {
      		"data": [
      			{
      				"t": 1735689600,
      				"v": 500
      			},
      			{
      				"t": 1735776000,
      				"v": 750
      			}
      		],
      		"last": 750,
      		"min": 500,
      		"max": 750
      	},
      	"bio": "Building communities on Whop.",
      	"created_at": "2026-06-01T12:00:00Z",
      	"earnings_usd": {
      		"total": {
      			"lifetime": "15075.00",
      			"last_30_days": "3425.00",
      			"last_7_days": "890.00",
      			"last_24_hours": "120.00"
      		},
      		"personal": {
      			"lifetime": "750.00",
      			"last_30_days": "250.00",
      			"last_7_days": "100.00",
      			"last_24_hours": "25.00"
      		},
      		"owned_accounts": {
      			"lifetime": "14325.00",
      			"last_30_days": "3175.00",
      			"last_7_days": "790.00",
      			"last_24_hours": "95.00"
      		},
      		"first_earned_at": "2026-06-02T15:30:00Z"
      	},
      	"name": "Alex Rivera",
      	"profile_picture": {
      		"url": "https://cdn.whop.com/avatar.png"
      	},
      	"username": "alex",
      	"verification": {
      		"business": null,
      		"individual": {
      			"status": "approved"
      		}
      	}
      }
      ```
    </div>
  </Column>
</Columns>
