List Variants
Lists an account’s variants. To list a product’s public, buyable variants without authentication, omit account_id and pass product_ids.
Authorizations
An Account API key, an App API key, an account access token, an account-scoped user token, or a user OAuth token. Prepend the key or token with Bearer, for example Bearer ***************************. See Auth & API keys for how to get each one.
Headers
Pins the request to a dated API version.
"2026-10-15-1"
Query Parameters
The unique identifier of the account to list variants for. Required unless product_ids is provided for a public product-variant read.
The sort direction for results. Defaults to descending.
asc, desc The field to sort results by. Defaults to created_at.
id, active_members_count, created_at, internal_notes, expiration_days Filter to only variants matching these release methods.
Filter to only variants matching these visibility states.
Filter to only variants matching these billing types.
Filter to only variants belonging to these product identifiers. When account_id is omitted, this is required and the response is publicly readable: only visible, non-invoice variants are returned.
Only return variants created before this timestamp.
Only return variants created after this timestamp.
The currency to state each variant's prices in. Omit it, or send null, for each variant's own currency. auto states them in the currency of the country Whop places the buyer in: by ip_address when your server sends one, and by the request's own IP address otherwise. To choose that country instead, send presentment_country in place of this. A three-letter ISO 4217 code, such as eur, states them in that currency. A variant converts only where a payment quote for it would be priced in that currency, and stays in its own currency otherwise: a renewing variant, one with adaptive pricing off, a currency no payment method can collect, or auto for a buyer Whop cannot place in a country. Converted prices are an estimate at the current exchange rate. Nothing is held: the payment quote the buyer pays from fixes the rate.
"auto"
The buyer's IP address, when your server reads on their behalf. Needs an API key; any other caller is placed by its own request. Where presentment_currency auto finds the buyer's local currency, and where a payment method must be able to collect it.
"203.0.113.7"
The country to state each variant's prices for, as an ISO 3166-1 alpha-2 code such as JP, when the buyer chose one: a store's country picker. States them in the currency auto would for a buyer in that country, so send it instead of presentment_currency, never with it. Whether a payment method can collect that currency is still judged where the buyer is: by ip_address, else by the request's own IP address. A country Whop has no currency for is ignored, and the prices are stated as auto would state them.
"JP"
Number of results to return from the start of the range.
x <= 100Return 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.
x <= 100Return results before this cursor. Use page_info.start_cursor from the previous response to fetch the previous page.

