List Memberships
Changed onLists every membership the caller can read: an account API key its account's; a user credential their own plus those of every account they manage. account_id and user_id only narrow that list — values outside the caller's reach return fewer results, not an error.
Request
- Base URL: https://api.whop.com/api/v1
- URL: https://api.whop.com/api/v1/memberships
- Auth: HTTP bearer
Query parameters
Narrow to one account (biz_ tag). With read access to the account this lists all of its memberships; without, only the caller's own memberships in it.
Narrow to one user's memberships (user_ tag, or me for the caller). A user outside the caller's visible set returns an empty list.
Narrow to one member's memberships (mber_ tag), including memberships bought by another business. A member outside the caller's visible set returns an empty list.
Filter by billing state. trialing, active, past_due, completed, canceled, and expired match the membership's status; active, trialing, and past_due exclude memberships set to cancel at period end. The other values are derived buckets that never appear as a status: canceling matches memberships set to cancel at period end; paused matches memberships with payment collection paused; expiring matches one-time purchases that have not yet expired; one_time matches one-time purchases that never expire; unclaimed matches memberships with no buyer user, including memberships bought by another business; banned matches memberships whose buyer is banned from the account.
Filter to memberships matching any of these billing states, with the same meanings as status. Repeat the parameter to pass several. Combined with status when both are sent.
[ "canceled" ]
Filter to memberships of this product (prod_ tag).
Filter to memberships of any of these products, each prefixed prod_. Repeat the parameter to pass several.
[ "prod_xxxxxxxxxxxxx" ]
Filter to memberships of this variant (plan_ tag).
Filter to memberships of any of these variants, each prefixed plan_. Repeat the parameter to pass several.
[ "plan_xxxxxxxxxxxxx" ]
Filter to memberships discounted by any of these promo codes, each prefixed promo_. Repeat the parameter to pass several.
[ "promo_xxxxxxxxxxxxxx" ]
Only memberships created after this ISO 8601 timestamp.
Only memberships created before this ISO 8601 timestamp.
Sort field.
Sort direction.
Number of results to return from the start of the range.
Return results after this cursor. Use page_info.end_cursor from the previous response to fetch the next page.
Number of results to return from the end of the range.
Return results before this cursor. Use page_info.start_cursor from the previous response to fetch the previous page.
Response
memberships listed
Example response
{
"data": [
{
"account": {
"id": "biz_xxxxxxxxxxxxxx",
"logo_url": "https://whop-assets-example.s3.amazonaws.com/uploads/image/2026-01-01/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"route": "shine-time-auto-detailing",
"title": "Shine Time Auto Detailing"
},
"affiliate": {
"applies_to_payments": "first_payment",
"commission_amount": {
"amount": "-1234.56",
"currency": "usd",
"decimals": 2,
"display_decimals": 2
},
"commission_type": "flat_fee"
},
"billing_period_days": 30,
"cancel_at_period_end": true,
"cancel_option": "too_expensive",
"canceled_at": "2026-01-01T12:00:00.000Z",
"cancellation_reason": "Too expensive",
"collection_method": "send_invoice",
"created_at": "2026-01-01T12:00:00.000Z",
"current_period_end": "2026-01-01T12:00:00.000Z",
"current_period_start": "2026-01-01T12:00:00.000Z",
"expires_at": "2026-01-01T12:00:00.000Z",
"feedback_option": {
"label": "The wash club costs more than I can spend"
},
"id": "mem_xxxxxxxxxxxxxx",
"initial_price": {
"amount": "-1234.56",
"currency": "usd",
"decimals": 2,
"display_decimals": 2
},
"license_key": "WHOP-XXXX-XXXX-XXXX",
"manage_url": "https://whop.com/billing/manage/mber_xxxxxxxxxxxxxx",
"member": {
"access_level": "customer",
"last_accessed_at": "2026-01-01T12:00:00.000Z",
"position": 1767268800000
},
"member_id": "mber_xxxxxxxxxxxxxx",
"metadata": {},
"most_recent_action": "renewing_on",
"most_recent_action_at": "2026-01-01T12:00:00.000Z",
"phone_number": "+xxxxxxxxxxx",
"plan_id": "plan_xxxxxxxxxxxxxx",
"product": {
"id": "prod_xxxxxxxxxxxxxx",
"logo_url": "https://whop-assets-example.s3.amazonaws.com/uploads/image/2026-01-01/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"title": "Ceramic Coating Package"
},
"product_id": "prod_xxxxxxxxxxxxxx",
"promo_code_id": "promo_xxxxxxxxxxxxxx",
"renewal_price": {
"amount": "-1234.56",
"currency": "usd",
"decimals": 2,
"display_decimals": 2
},
"status": "active",
"updated_at": "2026-01-01T12:00:00.000Z",
"user_id": "user_xxxxxxxxxxxxxx"
}
],
"page_info": {
"start_cursor": "WyJjdXJzb3IiLDFd"
}
}Changes
- info
added the new optional
queryrequest parametermember_id - info
added the new optional
queryrequest parameterplan_ids - info
added the new optional
queryrequest parameterproduct_ids - info
added the new optional
queryrequest parameterpromo_code_ids - info
added the new optional
queryrequest parameterstatuses - info
added the new enum value
bannedto thequeryrequest parameterstatus - info
added the new enum value
expiringto thequeryrequest parameterstatus - info
added the new enum value
one_timeto thequeryrequest parameterstatus - info
added the new enum value
unclaimedto thequeryrequest parameterstatus - info
added the required property
//to the response with the status - info
added the required property
//to the response with the status - info
added the required property
//to the response with the status - info
added the required property
//to the response with the status - info
added the required property
//to the response with the status - info
added the required property
//to the response with the status - info
added the required property
//to the response with the status - info
added the required property
//to the response with the status - info
added the required property
//to the response with the status - info
added the required property
//to the response with the status - info
added the required property
//to the response with the status - info
added the required property
//to the response with the status
- info
- info
added the required property
//to the response with the status
- info