Users

Updates a user, addressed by user_ tag, username, or the reserved id me for the authenticated user. A user token updates their own global profile; an API key updates the user's profile override for the account in account_id.

patch/users/{id}

Request

  • Base URL: https://api.whop.com/api/v1
  • URL: https://api.whop.com/api/v1/users/{id}
  • Auth: HTTP bearer

Query parameters

account_idstring

The account whose profile override to update. Required for API key callers.

Request body

biostring
namestring
usernamestring

Example request

{
  "banner": {
    "direct_upload_id": "eyJfcmFpbHMiOnsiZGF0YSI6MSwicHVyIjoiYmxvYl9pZCJ9fQ==--xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "id": "file_xxxxxxxxxxxxxx"
  },
  "bio": "Interior specialist. Leather, upholstery, and odor removal.",
  "name": "Tanya Cole",
  "profile_picture": {
    "direct_upload_id": "eyJfcmFpbHMiOnsiZGF0YSI6MSwicHVyIjoiYmxvYl9pZCJ9fQ==--xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "id": "file_xxxxxxxxxxxxxx"
  },
  "username": "tanyacole"
}

Response

user updated

biostring nullable required

The user's biography

created_atstring required

When the user was created, as an ISO 8601 timestamp

emailstring 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.

idstring required

User ID, prefixed user_.

namestring nullable required

The user's display name

total_usdstring nullable required

Total USD value of the user's personal holdings in balances, across those with known exchange rates. Computed only on the self view (retrieved with the reserved id me) for callers with balance-read scope; null otherwise, when include_balance=false, or when the balance source is unavailable.

usernamestring required

The user's unique username

verificationobject 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_atstring nullable required

When the user became an enrolled Whop Partner, as an ISO 8601 timestamp. null if never enrolled.

whop_partner_onboarded_accounts_countinteger nullable required

Number of accounts the user referred to Whop as a Whop Partner that have processed more than $1 in volume attributed to the user. Populated only when retrieving a single user who is a Verified Whop Partner; null otherwise.

whop_partner_verified_atstring nullable required

When the user became a Verified Whop Partner, as an ISO 8601 timestamp. null for users who are not Verified Whop Partners, including partners who left the program and suspended users.

Example response

{
  "balance": {
    "businesses": [
      {
        "balance_usd": "18940.25",
        "id": "biz_xxxxxxxxxxxxxx",
        "logo_url": "https://assets.whop.com/logos/shine-time-auto-detailing.png",
        "name": "Shine Time Auto Detailing"
      }
    ],
    "businesses_total_usd": "18940.25",
    "cash": [
      {
        "balance": 4385.75,
        "balance_usd": 4385.75,
        "currency": "usd",
        "pending_balance_usd": 310,
        "reserve_balance_usd": 125,
        "total_withdrawable_balance": 4385.75
      }
    ],
    "cash_usd": "4820.75",
    "crypto": [
      {
        "balance": "1500.0",
        "breakdown": {
          "available": "1500.0",
          "in_transit": "0",
          "pending": "0",
          "pending_settlements": [
            {
              "amount": "0.0",
              "date": "2026-01-01"
            }
          ],
          "reserve": "0"
        },
        "icon_url": "https://assets.whop.com/tokens/usdt.png",
        "name": "Tether USD",
        "price_usd": 1,
        "symbol": "USDT",
        "value_usd": 1500
      }
    ],
    "crypto_usd": "1500.00",
    "pending_usd": "310.00",
    "total_usd": "6320.75",
    "treasury_pending_usd": "0.00"
  },
  "balance_history": {
    "data": [
      {
        "t": 1767268800,
        "v": 2400
      }
    ],
    "last": 6320.75,
    "max": 6320.75,
    "min": 2400
  },
  "balances": [
    {
      "balance": "1500.0",
      "breakdown": {
        "available": "1500.0",
        "in_transit": "0",
        "pending": "0",
        "pending_settlements": [
          {
            "amount": "0.0",
            "date": "2026-01-01"
          }
        ],
        "reserve": "0"
      },
      "icon_url": "https://assets.whop.com/tokens/usdt.png",
      "name": "Tether USD",
      "price_usd": 1,
      "symbol": "USDT",
      "value_usd": "1500.00"
    }
  ],
  "banner": {
    "url": "https://whop-assets-example.s3.amazonaws.com/uploads/image/2026-01-01/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
  },
  "bio": "Ceramic coating specialist. Detailing cars in Austin since 2016.",
  "cards": {
    "kind": "individual",
    "status": "approved"
  },
  "created_at": "2026-01-01T12:00:00.000Z",
  "earnings_usd": {
    "first_earned_at": "2026-01-01T12:00:00.000Z",
    "owned_accounts": {
      "last_24_hours": "0.00",
      "last_30_days": "260.00",
      "last_7_days": "60.00",
      "lifetime": "4120.25"
    },
    "partners": {
      "last_24_hours": "0.00",
      "last_30_days": "260.00",
      "last_7_days": "60.00",
      "lifetime": "4120.25"
    },
    "personal": {
      "last_24_hours": "0.00",
      "last_30_days": "260.00",
      "last_7_days": "60.00",
      "lifetime": "4120.25"
    },
    "total": {
      "last_24_hours": "0.00",
      "last_30_days": "260.00",
      "last_7_days": "60.00",
      "lifetime": "4120.25"
    }
  },
  "email": "marcus@shinetime.example",
  "id": "user_xxxxxxxxxxxxxx",
  "level": {
    "current": 1,
    "points": 41000,
    "points_by_source": {
      "cards": 40000,
      "trading": 1000
    },
    "points_to_next": 59000,
    "resets_at": "2026-01-01T12:00:00.000Z"
  },
  "name": "Marcus Webb",
  "profile_picture": {
    "url": "https://ui-avatars.com/api/"
  },
  "social_links": [
    {
      "url": "https://www.instagram.com/tanyacole.details",
      "username": "tanyacole.details",
      "verified": true,
      "website": "instagram"
    }
  ],
  "total_usd": "6320.75",
  "trading": {
    "hyperliquid": {
      "websocket_subscriptions": [
        {
          "channel": "clearinghouse_state"
        }
      ]
    },
    "object": "trading_account",
    "provider": "hyperliquid"
  },
  "username": "marcuswebb",
  "verification": {
    "business": null,
    "individual": null
  },
  "whop_partner_enabled_at": "2026-01-01T12:00:00.000Z",
  "whop_partner_onboarded_accounts_count": 1,
  "whop_partner_verified_at": "2026-01-01T12:00:00.000Z"
}

Changes

    • info

      added the required property to the response with the status

    • info

      added the required property to the response with the status

    • breaking

      removed the required property from the response with the status