Users

Update Current User

Updates the authenticated user's global profile, or their profile override for an account when account_id is given. Not available to API keys.

patch/users/me

Query parameters

account_idstring

When set, updates the authenticated user's profile override for this account instead of their global profile.

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

current 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

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.

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": "0.00",
    "crypto": [
      {
        "balance": "1500.0",
        "breakdown": {
          "available": "1500.0",
          "in_transit": "0",
          "pending": "0",
          "pending_settlements": [
            {
              "amount": "12.5",
              "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": "0.00",
    "pending_usd": "0.00",
    "total_usd": "0.00",
    "treasury_pending_usd": "0.00"
  },
  "balance_history": {
    "data": [
      {
        "t": 1767268800,
        "v": 2400
      }
    ]
  },
  "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.",
  "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"
    },
    "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",
  "name": "Marcus Webb",
  "profile_picture": {
    "url": "https://ui-avatars.com/api/"
  },
  "social_accounts": [
    {
      "error": "You don't have permission to share this account. Ask an admin of its Meta Business Portfolio to grant you full control, then share it again.",
      "external_id": "1234567891",
      "id": "sacc_xxxxxxxxxxxxxx",
      "name": "Shine Time Auto Detailing",
      "parent_social_account": {
        "external_id": "555111",
        "id": "sacc_xxxxxxxxxxxxxx",
        "name": "Shine Time Auto Detailing",
        "platform": "facebook",
        "profile_picture_url": "https://shinetime.example/logo.png",
        "username": "shinetimedetailing",
        "verified": true
      },
      "platform": "instagram",
      "profile_picture_url": "https://shinetime.example/logo.png",
      "scopes": [
        "advertise"
      ],
      "url": "https://instagram.com/shinetimedetail",
      "username": "shinetimedetail",
      "verified": true
    }
  ],
  "staff": {
    "admin": true,
    "investigation_access": true
  },
  "username": "marcuswebb",
  "verification": {
    "business": null,
    "individual": null
  },
  "whop_partner_enabled_at": "2026-01-01T12:00:00.000Z"
}

Changes

Changed in 6 of the 41 revisions of this API.12

    • added the required property balance/oneOf[UserBalance]/cash/items/in_transit_balance_usd to the response with the 200 status

      response-required-property-added

    • added the required property balance/oneOf[UserBalance]/cash/items/price_usd to the response with the 200 status

      response-required-property-added

    • added the required property balance/oneOf[UserBalance]/crypto/items/breakdown to the response with the 200 status

      response-required-property-added

    This revision also has 1 change that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog

    • added the required property social_accounts/items/parent_social_account to the response with the 200 status

      response-required-property-added

    • added the new optional request property banner

      new-optional-request-property

    • added the required property banner to the response with the 200 status

      response-required-property-added

    • added the required property profile_picture/url to the response with the 200 status

      response-required-property-added

    • added the optional property error/code to the response with the 400 status

      response-optional-property-added

    This revision also has 9 changes that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog

    • added the required property email to the response with the 200 status

      response-required-property-added

    • added the required property social_accounts to the response with the 200 status

      response-required-property-added

    • added the required property staff to the response with the 200 status

      response-required-property-added

    This revision also has 1 change that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog

    • added the required property whop_partner_enabled_at to the response with the 200 status

      response-required-property-added