---
title: "Retrieve Current User"
method: GET
path: "/users/me"
tags: ["Users"]
---

# Retrieve Current User

`GET /users/me`

Retrieves the authenticated user — the self view of the user object. Same shape as `GET /users/{id}`, with the self-only fields populated: `email` (email-read scope), `staff` (Whop staff only, staff-read scope), `balance` and `earnings_usd` (balance-read scope), the opt-in `balance_history`, and every linked social account.

## Query parameters

- `include_trading` boolean
- `account_id` string
- `include_balance` boolean
- `include_balance_history` boolean
- `from` string
- `to` string
- `interval` 'hour' | 'day' | 'week' | 'month'
- `time_zone` string

## Response `200`

current user retrieved

- User
  - `balance` UserBalance, required
    - `businesses` UserBalanceBusiness[], required
      - `balance_usd` string, required — The account's total balance in USD.
      - `id` string, required — The account ID, which looks like biz_*************.
      - `logo_url` string, nullable, required — The account's logo URL.
      - `name` string, nullable, required — The account's display name.
    - `businesses_total_usd` string, required — Combined USD balance across every account the user owns.
    - `cash` UserBalanceCash[], required
      - `balance` number, required — Available balance in the native currency.
      - `balance_usd` number, required — Available balance converted to USD.
      - `currency` string, required — Lowercase ISO currency code, such as `usd` or `eur`.
      - `in_transit_balance_usd` number, required — Balance moving to the user's own wallet or card, converted to USD.
      - `pending_balance_usd` number, required — Pending balance converted to USD.
      - `price_usd` number, nullable, required — USD price per native currency unit, or `null` when no exchange rate is available.
      - `reserve_balance_usd` number, required — Reserved balance converted to USD.
      - `total_withdrawable_balance` number, required — Withdrawable amount in the native currency.
    - `cash_usd` string, required — Fiat cash in USD, including pending, in-transit, and reserve.
    - `crypto` UserBalanceToken[], required
      - `balance` string, required — Amount held in native token units, as a decimal string.
      - `breakdown` AccountBalanceBreakdown, required
        - `available` string, required — Amount you can spend, send, or withdraw now, in native units, as a decimal string.
        - `in_transit` string, required — Amount moving between the account's own destinations, such as a treasury sweep to its crypto wallet or a card top-up. In native units, as a decimal string.
        - `pending` string, required — Amount from recent payments still settling, in native units, as a decimal string.
        - `pending_settlements` AccountBalanceSettlement[], required
          - `amount` string, required — Amount expected that day, in native units, as a decimal string.
          - `date` string, required — The day this money is expected to finish settling, as an ISO 8601 date.
        - `reserve` string, required — Amount held back, in native units, as a decimal string. Retrieve the account's reserves for why it is held and when it unlocks.
      - `icon_url` string, nullable, required — Token icon URL.
      - `name` string, nullable, required — The token's display name.
      - `price_usd` number, nullable, required — USD price per token, or `null` when unknown.
      - `symbol` string, required — Token display symbol, such as `USDT`, `XAUT`, or `cbBTC`.
      - `value_usd` number, required — Holding USD value.
    - `crypto_usd` string, required — Crypto holdings in USD.
    - `pending_usd` string, required — Fiat pending and in-transit balances, plus in-flight treasury deposits, in USD.
    - `total_usd` string, required — The user's personal balance in USD: cash (available + pending + in-transit + reserve) + crypto + in-flight treasury deposits. Excludes account balances (see businesses_total_usd).
    - `treasury_pending_usd` string, required — Balance-to-wallet USDT0 payouts still in flight, in USD.
  - `balance_history` UserBalanceHistory, required
    - `data` UserBalanceHistoryPoint[], required
      - `t` integer, required — Point timestamp, in Unix seconds.
      - `v` number, required — Cumulative wallet balance at this point, in USD.
    - `last` number, required — Value of the most recent point, in USD.
    - `max` number, required — Maximum value across the window, in USD.
    - `min` number, required — Minimum value across the window, in USD.
  - `banner` UserBanner, required
    - `url` string, required — Profile banner image URL.
  - `bio` string, nullable, required — The user's biography
  - `created_at` string, required — When the user was created, as an ISO 8601 timestamp
  - `earnings_usd` UserEarnings, required
    - `first_earned_at` string, nullable, required — The first time the user earned gross income, as an ISO 8601 timestamp.
    - `owned_accounts` UserEarningsAmount, required
      - `last_24_hours` string, required — Gross income in USD over the last 24 hours.
      - `last_30_days` string, required — Gross income in USD over the last 30 days.
      - `last_7_days` string, required — Gross income in USD over the last 7 days.
      - `lifetime` string, required — All-time gross income in USD.
    - `partners` UserEarningsAmount, required
      - `last_24_hours` string, required — Gross income in USD over the last 24 hours.
      - `last_30_days` string, required — Gross income in USD over the last 30 days.
      - `last_7_days` string, required — Gross income in USD over the last 7 days.
      - `lifetime` string, required — All-time gross income in USD.
    - `personal` UserEarningsAmount, required
      - `last_24_hours` string, required — Gross income in USD over the last 24 hours.
      - `last_30_days` string, required — Gross income in USD over the last 30 days.
      - `last_7_days` string, required — Gross income in USD over the last 7 days.
      - `lifetime` string, required — All-time gross income in USD.
    - `total` UserEarningsAmount, required
      - `last_24_hours` string, required — Gross income in USD over the last 24 hours.
      - `last_30_days` string, required — Gross income in USD over the last 30 days.
      - `last_7_days` string, required — Gross income in USD over the last 7 days.
      - `lifetime` string, required — All-time gross income in USD.
  - `email` string, nullable, required — The user's email address. Populated only on the self view (retrieved with the reserved id `me`) for callers with email-read scope; `null` otherwise, or while the account has no confirmed email yet.
  - `id` string, required — User ID, prefixed `user_`.
  - `name` string, nullable, required — The user's display name
  - `profile_picture` UserProfilePicture, required
    - `url` string, required — Avatar image URL. Always present — a generated placeholder when the user set no picture.
  - `social_accounts` SocialAccount[], required
    - `error` string, nullable, required — Why this social account currently can't be used for advertising — a failed share or a Meta-side restriction. Null when the account is healthy.
    - `external_id` string, nullable, required — The platform-specific ID for this social account.
    - `id` string, required — Unique identifier for the social account.
    - `name` string, nullable, required — The display name of the social account on the platform.
    - `parent_social_account` SocialAccountParent, required
      - `external_id` string, nullable, required — The platform-specific ID for the parent social account.
      - `id` string, required — Social account ID, prefixed `sacc_`.
      - `name` string, nullable, required — The display name of the parent social account on the platform.
      - `platform` 'x' | 'instagram' | 'youtube' | 'tiktok' | 'facebook' | 'discord' | 'telegram' | 'linkedin' | 'snapchat', required — The platform the parent social account exists on.
      - `profile_picture_url` string, nullable, required — The URL where the profile picture of the parent social account can be accessed.
      - `username` string, nullable, required — The username of the parent social account on the platform.
      - `verified` boolean, required — Whether the parent social account is verified on the platform.
    - `platform` 'x' | 'instagram' | 'youtube' | 'tiktok' | 'facebook' | 'discord' | 'telegram' | 'linkedin' | 'snapchat', required — The platform the social account exists on.
    - `profile_picture_url` string, nullable, required — The URL where the profile picture of the social account can be accessed.
    - `scopes` string[], required
    - `url` string, nullable, required — The URL where the social account can be accessed on the platform. Null while a Whop-owned account is still being provisioned.
    - `username` string, nullable, required — The username of the social account on the platform. Null while a Whop-owned account is still being provisioned.
    - `verified` boolean, required — Whether the social account is verified on the platform.
  - `staff` UserStaffAccess, required
    - `admin` boolean, required — Whether the user holds the admin staff role with a valid second factor.
    - `investigation_access` boolean, required — Whether the user can open Whop-internal investigation tooling right now: a qualifying staff role plus their investigation toggle switched on.
    - `manager` boolean, required — Whether the user holds the manager staff role with a valid second factor.
    - `support` boolean, required — Whether the user holds the support staff role with a valid second factor.
  - `trading` TradingAccount, required
    - `account_id` string, nullable, required — The account that owns this trading account, prefixed `biz_`. `null` when a user owns it.
    - `hyperliquid` TradingHyperliquidAccount, required
      - `address` string, required — Lowercase wallet address that holds the Hyperliquid account.
      - `builder_fee_bps` string, nullable, required — Builder fee Whop charges on orders, in basis points as a decimal string, or `null` when no fee is configured.
      - `margin_summary` TradingMarginSummary, required
        - `account_value` Money, required
          - `amount` string, required — The amount in major units, as an exact decimal string — `"10.00"` is ten dollars. A string so no float rounds it in transit.
          - `currency` string, required — Three-letter ISO 4217 currency code, lowercase.
          - `decimals` integer, required — How many decimal places the amount CARRIES — the precision the charge itself runs at.
          - `display_decimals` integer, required — How many decimal places to SHOW. Usually equal to `decimals`, and deliberately not always: COP is charged in centavos but written in whole pesos, so it is `2` and `0`. Format the number in your own locale using this.
        - `total_margin_used` Money, required
          - `amount` string, required — The amount in major units, as an exact decimal string — `"10.00"` is ten dollars. A string so no float rounds it in transit.
          - `currency` string, required — Three-letter ISO 4217 currency code, lowercase.
          - `decimals` integer, required — How many decimal places the amount CARRIES — the precision the charge itself runs at.
          - `display_decimals` integer, required — How many decimal places to SHOW. Usually equal to `decimals`, and deliberately not always: COP is charged in centavos but written in whole pesos, so it is `2` and `0`. Format the number in your own locale using this.
        - `total_position_notional` Money, required
          - `amount` string, required — The amount in major units, as an exact decimal string — `"10.00"` is ten dollars. A string so no float rounds it in transit.
          - `currency` string, required — Three-letter ISO 4217 currency code, lowercase.
          - `decimals` integer, required — How many decimal places the amount CARRIES — the precision the charge itself runs at.
          - `display_decimals` integer, required — How many decimal places to SHOW. Usually equal to `decimals`, and deliberately not always: COP is charged in centavos but written in whole pesos, so it is `2` and `0`. Format the number in your own locale using this.
        - `total_raw_usd` Money, required
          - `amount` string, required — The amount in major units, as an exact decimal string — `"10.00"` is ten dollars. A string so no float rounds it in transit.
          - `currency` string, required — Three-letter ISO 4217 currency code, lowercase.
          - `decimals` integer, required — How many decimal places the amount CARRIES — the precision the charge itself runs at.
          - `display_decimals` integer, required — How many decimal places to SHOW. Usually equal to `decimals`, and deliberately not always: COP is charged in centavos but written in whole pesos, so it is `2` and `0`. Format the number in your own locale using this.
        - `withdrawable` Money, required
          - `amount` string, required — The amount in major units, as an exact decimal string — `"10.00"` is ten dollars. A string so no float rounds it in transit.
          - `currency` string, required — Three-letter ISO 4217 currency code, lowercase.
          - `decimals` integer, required — How many decimal places the amount CARRIES — the precision the charge itself runs at.
          - `display_decimals` integer, required — How many decimal places to SHOW. Usually equal to `decimals`, and deliberately not always: COP is charged in centavos but written in whole pesos, so it is `2` and `0`. Format the number in your own locale using this.
      - `websocket_subscriptions` TradingWebsocketSubscription[], required
        - `channel` 'clearinghouse_state' | 'open_orders' | 'order_updates' | 'user_fills' | 'user_events', required — The live update stream this subscription opens.
        - `message` string, required — JSON subscription message to send unchanged over the Hyperliquid WebSocket.
      - `websocket_url` string, required — Hyperliquid WebSocket URL to connect to directly for live updates.
    - `id` string, required — The Whop wallet ID backing this trading account, prefixed `cwal_`.
    - `object` 'trading_account', required
    - `open_orders` TradingOrder[], required
      - `client_order_id` string, nullable, required — Client order ID, prefixed `trdcloid_`, or `null` when the order was placed without one.
      - `created_at` string, nullable, required — When the order was placed, as an ISO 8601 timestamp, or `null` when the provider omits it.
      - `hyperliquid` TradingHyperliquidOrder, required
        - `reduce_only` boolean, nullable, required — Whether the order can only reduce an existing position, or `null` when Hyperliquid omits it.
        - `trigger_price` Money, required
          - `amount` string, required — The amount in major units, as an exact decimal string — `"10.00"` is ten dollars. A string so no float rounds it in transit.
          - `currency` string, required — Three-letter ISO 4217 currency code, lowercase.
          - `decimals` integer, required — How many decimal places the amount CARRIES — the precision the charge itself runs at.
          - `display_decimals` integer, required — How many decimal places to SHOW. Usually equal to `decimals`, and deliberately not always: COP is charged in centavos but written in whole pesos, so it is `2` and `0`. Format the number in your own locale using this.
      - `id` string, required — Trading order ID, prefixed `trdord_`.
      - `market` string, required — Market symbol on the provider, such as `ETH`.
      - `object` 'trading_order', required
      - `order_type` 'limit' | 'market' | 'take_profit' | 'stop_loss', required
      - `original_size` string, nullable, required — Size when the order was placed, as a decimal string, or `null` when the provider omits it.
      - `price` Money, required
        - `amount` string, required — The amount in major units, as an exact decimal string — `"10.00"` is ten dollars. A string so no float rounds it in transit.
        - `currency` string, required — Three-letter ISO 4217 currency code, lowercase.
        - `decimals` integer, required — How many decimal places the amount CARRIES — the precision the charge itself runs at.
        - `display_decimals` integer, required — How many decimal places to SHOW. Usually equal to `decimals`, and deliberately not always: COP is charged in centavos but written in whole pesos, so it is `2` and `0`. Format the number in your own locale using this.
      - `provider_order_id` string, nullable, required — The provider's own order ID, as a string.
      - `side` 'buy' | 'sell', required
      - `size` string, required — Remaining order size as a decimal string.
      - `status` 'open' | 'filled' | 'canceled' | 'triggered' | 'rejected', required
      - `status_updated_at` string, nullable, required — When the status last changed, as an ISO 8601 timestamp, or `null` when the provider omits it.
      - `time_in_force` 'add_liquidity_only' | 'good_til_canceled' | 'immediate_or_cancel' | 'null', nullable, required — How long the order stays active. `null` when the provider omits it or reports a policy outside the supported values.
    - `positions` TradingPosition[], required
      - `entry_price` Money, required
        - `amount` string, required — The amount in major units, as an exact decimal string — `"10.00"` is ten dollars. A string so no float rounds it in transit.
        - `currency` string, required — Three-letter ISO 4217 currency code, lowercase.
        - `decimals` integer, required — How many decimal places the amount CARRIES — the precision the charge itself runs at.
        - `display_decimals` integer, required — How many decimal places to SHOW. Usually equal to `decimals`, and deliberately not always: COP is charged in centavos but written in whole pesos, so it is `2` and `0`. Format the number in your own locale using this.
      - `hyperliquid` TradingHyperliquidPosition, required
        - `cumulative_funding` TradingCumulativeFunding, required
          - `all_time` Money, required
            - `amount` string, required — The amount in major units, as an exact decimal string — `"10.00"` is ten dollars. A string so no float rounds it in transit.
            - `currency` string, required — Three-letter ISO 4217 currency code, lowercase.
            - `decimals` integer, required — How many decimal places the amount CARRIES — the precision the charge itself runs at.
            - `display_decimals` integer, required — How many decimal places to SHOW. Usually equal to `decimals`, and deliberately not always: COP is charged in centavos but written in whole pesos, so it is `2` and `0`. Format the number in your own locale using this.
          - `since_change` Money, required
            - `amount` string, required — The amount in major units, as an exact decimal string — `"10.00"` is ten dollars. A string so no float rounds it in transit.
            - `currency` string, required — Three-letter ISO 4217 currency code, lowercase.
            - `decimals` integer, required — How many decimal places the amount CARRIES — the precision the charge itself runs at.
            - `display_decimals` integer, required — How many decimal places to SHOW. Usually equal to `decimals`, and deliberately not always: COP is charged in centavos but written in whole pesos, so it is `2` and `0`. Format the number in your own locale using this.
          - `since_open` Money, required
            - `amount` string, required — The amount in major units, as an exact decimal string — `"10.00"` is ten dollars. A string so no float rounds it in transit.
            - `currency` string, required — Three-letter ISO 4217 currency code, lowercase.
            - `decimals` integer, required — How many decimal places the amount CARRIES — the precision the charge itself runs at.
            - `display_decimals` integer, required — How many decimal places to SHOW. Usually equal to `decimals`, and deliberately not always: COP is charged in centavos but written in whole pesos, so it is `2` and `0`. Format the number in your own locale using this.
        - `leverage` TradingPositionLeverage, required
          - `type` 'cross' | 'isolated', required — `cross` shares margin across positions; `isolated` limits margin to this position.
          - `value` integer, required — Multiplier applied to the position's margin, such as `10` for 10x.
        - `liquidation_price` Money, required
          - `amount` string, required — The amount in major units, as an exact decimal string — `"10.00"` is ten dollars. A string so no float rounds it in transit.
          - `currency` string, required — Three-letter ISO 4217 currency code, lowercase.
          - `decimals` integer, required — How many decimal places the amount CARRIES — the precision the charge itself runs at.
          - `display_decimals` integer, required — How many decimal places to SHOW. Usually equal to `decimals`, and deliberately not always: COP is charged in centavos but written in whole pesos, so it is `2` and `0`. Format the number in your own locale using this.
        - `margin_used` Money, required
          - `amount` string, required — The amount in major units, as an exact decimal string — `"10.00"` is ten dollars. A string so no float rounds it in transit.
          - `currency` string, required — Three-letter ISO 4217 currency code, lowercase.
          - `decimals` integer, required — How many decimal places the amount CARRIES — the precision the charge itself runs at.
          - `display_decimals` integer, required — How many decimal places to SHOW. Usually equal to `decimals`, and deliberately not always: COP is charged in centavos but written in whole pesos, so it is `2` and `0`. Format the number in your own locale using this.
        - `return_on_equity` string, required — Return on equity as a decimal ratio string, such as `0.1` for 10%.
      - `id` string, required — Trading position ID, prefixed `trdpos_`. Stable for a market within one trading account.
      - `market` string, required — Market symbol on the provider, such as `ETH`.
      - `object` 'trading_position', required
      - `position_value` Money, required
        - `amount` string, required — The amount in major units, as an exact decimal string — `"10.00"` is ten dollars. A string so no float rounds it in transit.
        - `currency` string, required — Three-letter ISO 4217 currency code, lowercase.
        - `decimals` integer, required — How many decimal places the amount CARRIES — the precision the charge itself runs at.
        - `display_decimals` integer, required — How many decimal places to SHOW. Usually equal to `decimals`, and deliberately not always: COP is charged in centavos but written in whole pesos, so it is `2` and `0`. Format the number in your own locale using this.
      - `side` 'long' | 'short', required
      - `size` string, required — Absolute position size as a decimal string.
      - `unrealized_pnl` Money, required
        - `amount` string, required — The amount in major units, as an exact decimal string — `"10.00"` is ten dollars. A string so no float rounds it in transit.
        - `currency` string, required — Three-letter ISO 4217 currency code, lowercase.
        - `decimals` integer, required — How many decimal places the amount CARRIES — the precision the charge itself runs at.
        - `display_decimals` integer, required — How many decimal places to SHOW. Usually equal to `decimals`, and deliberately not always: COP is charged in centavos but written in whole pesos, so it is `2` and `0`. Format the number in your own locale using this.
    - `provider` 'hyperliquid', required — Trading venue that holds the positions and orders.
    - `user_id` string, nullable, required — The user who owns this trading account, prefixed `user_`. `null` when an account owns it.
  - `username` string, required — The user's unique username
  - `verification` 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`.
  - `whop_partner_enabled_at` string, nullable, required — When the user became an enrolled Whop Partner, as an ISO 8601 timestamp. `null` if never enrolled.

## Other responses

- `404` — Resource not found
- `503` — Service Unavailable

## Changes

> 72 revisions in range; 1 not diffed.

- **2026-09-25** `c1dceb26e505` — 2 warning
  - added the new `snapchat` enum value to the `social_accounts/items/parent_social_account/oneOf[#/components/schemas/SocialAccountParent]/platform` response property for the response status `200`
  - added the new `snapchat` enum value to the `social_accounts/items/platform` response property for the response status `200`
- **2026-09-24** `7fcefabddb0a` — 2 warning, 3 info
  - added the new `linkedin` enum value to the `social_accounts/items/parent_social_account/oneOf[#/components/schemas/SocialAccountParent]/platform` response property for the response status `200`
  - added the new `linkedin` enum value to the `social_accounts/items/platform` response property for the response status `200`
  - added the new optional `query` request parameter `include_trading`
  - added the non-success response with the status `503`
  - …1 more
- **2026-09-14** `14e4732f295d` — 1 info
  - added the new optional `query` request parameter `include_balance`
- …earlier changes not shown

[Full history](https://skmtc.dev/whop/apis/whop-api/changes/users/me/get.md)

---

[API](https://skmtc.dev/whop/apis/whop-api.md) · [All operations](https://skmtc.dev/whop/apis/whop-api/llms.txt) · [OpenAPI document](https://skmtc.dev/whop/apis/whop-api/revisions/86b97292852d?raw)
