Users

Update User

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 account-specific profile override (account_id required).

patch/users/{id}

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

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"
    },
    "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",
  "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
  },
  "trading": {
    "hyperliquid": {
      "margin_summary": {
        "account_value": {
          "amount": "-2.50",
          "currency": "usd",
          "decimals": 2,
          "display_decimals": 2
        },
        "total_margin_used": {
          "amount": "-2.50",
          "currency": "usd",
          "decimals": 2,
          "display_decimals": 2
        },
        "total_position_notional": {
          "amount": "-2.50",
          "currency": "usd",
          "decimals": 2,
          "display_decimals": 2
        },
        "total_raw_usd": {
          "amount": "-2.50",
          "currency": "usd",
          "decimals": 2,
          "display_decimals": 2
        },
        "withdrawable": {
          "amount": "-2.50",
          "currency": "usd",
          "decimals": 2,
          "display_decimals": 2
        }
      },
      "websocket_subscriptions": [
        {
          "channel": "clearinghouse_state"
        }
      ]
    },
    "object": "trading_account",
    "open_orders": [
      {
        "hyperliquid": {
          "trigger_price": {
            "amount": "-2.50",
            "currency": "usd",
            "decimals": 2,
            "display_decimals": 2
          }
        },
        "object": "trading_order",
        "order_type": "limit",
        "price": {
          "amount": "-2.50",
          "currency": "usd",
          "decimals": 2,
          "display_decimals": 2
        },
        "side": "buy",
        "status": "open",
        "time_in_force": "add_liquidity_only"
      }
    ],
    "positions": [
      {
        "entry_price": {
          "amount": "-2.50",
          "currency": "usd",
          "decimals": 2,
          "display_decimals": 2
        },
        "hyperliquid": {
          "cumulative_funding": {
            "all_time": {
              "amount": "-2.50",
              "currency": "usd",
              "decimals": 2,
              "display_decimals": 2
            },
            "since_change": {
              "amount": "-2.50",
              "currency": "usd",
              "decimals": 2,
              "display_decimals": 2
            },
            "since_open": {
              "amount": "-2.50",
              "currency": "usd",
              "decimals": 2,
              "display_decimals": 2
            }
          },
          "leverage": {
            "type": "cross"
          },
          "liquidation_price": {
            "amount": "-2.50",
            "currency": "usd",
            "decimals": 2,
            "display_decimals": 2
          },
          "margin_used": {
            "amount": "-2.50",
            "currency": "usd",
            "decimals": 2,
            "display_decimals": 2
          }
        },
        "object": "trading_position",
        "position_value": {
          "amount": "-2.50",
          "currency": "usd",
          "decimals": 2,
          "display_decimals": 2
        },
        "side": "long",
        "unrealized_pnl": {
          "amount": "-2.50",
          "currency": "usd",
          "decimals": 2,
          "display_decimals": 2
        }
      }
    ],
    "provider": "hyperliquid"
  },
  "username": "marcuswebb",
  "verification": {
    "business": null,
    "individual": null
  },
  "whop_partner_enabled_at": "2026-01-01T12:00:00.000Z"
}

Changes

Changed in 7 of the 74 revisions of this API.412

    • ●

      added the new snapchat enum value to the /////// response property for the response status

      response-property-enum-value-added

    • ●

      added the new snapchat enum value to the // response property for the response status

      response-property-enum-value-added

  • 7fcefabddb0a21See the full diff
    • ●

      added the new linkedin enum value to the /////// response property for the response status

      response-property-enum-value-added

    • ●

      added the new linkedin enum value to the // response property for the response status

      response-property-enum-value-added

    • ○

      added the required property to the response with the 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 /////// to the response with the status

      response-required-property-added

    • ○

      added the required property /////// to the response with the status

      response-required-property-added

    • ○

      added the required property /////// to the response with the 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 // to the response with the status

      response-required-property-added

    • ○

      added the new optional request property

      new-optional-request-property

    • ○

      added the required property to the response with the status

      response-required-property-added

    • ○

      added the required property / to the response with the status

      response-required-property-added

    • ○

      added the required property to the response with the status

      response-required-property-added

    • ○

      added the required property to the response with the status

      response-required-property-added

    • ○

      added the required property to the response with the 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 to the response with the status

      response-required-property-added

Of the 74 revisions, 1 has no diff computed.