import Whop from '@whop/sdk';
const client = new Whop({
apiKey: process.env['WHOP_API_KEY'], // This is the default and can be omitted
});
// Automatically fetches more pages as needed.
for await (const account of client.accounts.list()) {
console.log(account.id);
}curl --request GET \
--url https://api.whop.com/api/v1/accounts \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.whop.com/api/v1/accounts"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.whop.com/api/v1/accounts",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.whop.com/api/v1/accounts"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.whop.com/api/v1/accounts")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.whop.com/api/v1/accounts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"balances": [
{
"balance": "<string>",
"breakdown": {
"available": "<string>",
"pending": "<string>",
"pending_settlements": [
{
"amount": "<string>",
"date": "<string>"
}
],
"reserve": "<string>"
},
"icon_url": "<string>",
"name": "<string>",
"price_usd": 123,
"symbol": "<string>",
"value_usd": "<string>"
}
],
"banner_image_url": "<string>",
"business_address": {},
"business_type": "education_program",
"can_transfer_pending_balance_to_children": true,
"capabilities": {
"accept_bank_payments": "active",
"accept_bnpl_payments": "active",
"accept_card_payments": "active",
"bank_deposit": "active",
"card_deposit": "active",
"card_issuing": "active",
"crypto_deposit": "active",
"crypto_payout": "active",
"instant_payout": "active",
"run_ads": "active",
"standard_payout": "active",
"transfer": "active"
},
"cards": {
"kind": "individual",
"status": "approved"
},
"collect_vat_id": true,
"company_formation": {
"documents": [
{
"id": "<string>",
"name": "<string>",
"type": "<string>",
"url": "<string>"
}
],
"ein_registered": true,
"legal_name": "<string>",
"signatures": {
"form8821": {
"status": "pending",
"expires_at": "<string>",
"url": "<string>"
},
"ss4": {
"status": "pending",
"expires_at": "<string>",
"url": "<string>"
}
},
"state_registered": true
},
"country": "<string>",
"created_at": "<string>",
"description": "<string>",
"email": "<string>",
"home_preferences": [
"hide_member_count"
],
"id": "<string>",
"industry_group": "academic_and_test_prep",
"industry_type": "trading",
"invoice_prefix": "<string>",
"logo_url": "<string>",
"metadata": {},
"onboarding_type": "platform",
"opengraph_image_url": "<string>",
"opengraph_image_variant": "white",
"other_business_description": "<string>",
"other_industry_description": "<string>",
"owner": {
"id": "<string>",
"name": "<string>",
"profile_picture": {
"url": "<string>"
},
"username": "<string>"
},
"parent_account": {
"id": "<string>",
"logo_url": "<string>",
"route": "<string>",
"title": "<string>"
},
"payment_controls": {
"dispute_alert_auto_refund": {
"locked": true,
"threshold_usd": 123
},
"dispute_alert_fee_usd": 123,
"enforce_3ds": true,
"financing_disabled": true,
"high_risk_processing_fee_percentage": 123,
"pending_auto_topup_fee_percentage": 123,
"pending_balance_delay_days": 123,
"reserve": {
"hold_period_days": 123,
"percentage": 123
},
"resolution_center_auto_refund": {
"card_threshold_usd": 123,
"financing_threshold_usd": 123,
"locked": true,
"paypal_threshold_usd": 123
},
"restricted_payment_methods": [
"card_visa"
]
},
"product_tax_code": {},
"recommended_actions": [
{
"action": "theme_business",
"blocked_capabilities": [
"<string>"
],
"cta": "<string>",
"cta_label": "<string>",
"description": "<string>",
"icon_url": "<string>",
"impact_score": 123,
"reasoning": "<string>",
"status": "optional",
"title": "<string>"
}
],
"require_2fa": true,
"required_actions": [
{
"action": "deposit_funds",
"blocked_capabilities": [
"<string>"
],
"cta": "<string>",
"cta_label": "<string>",
"description": "<string>",
"icon_url": "<string>",
"status": "required",
"title": "<string>"
}
],
"route": "<string>",
"send_customer_emails": true,
"show_joined_whops": true,
"show_reviews_dtc": true,
"show_user_directory": true,
"social_links": [
{
"id": "<string>",
"title": "<string>",
"url": "<string>",
"website": "x"
}
],
"stablecoin_rails": true,
"status": "<string>",
"status_reason": "<string>",
"store_page_config": {
"accent_color": "ruby",
"layout": "featured",
"profile_variant": "personal",
"whop_affiliate_link": true
},
"target_audience": "<string>",
"tax_collection_enabled_states": [
"<string>"
],
"tax_identifiers": [
{
"id": "<string>",
"tax_id_type": "ad_nrt",
"tax_id_value": "<string>"
}
],
"tax_remitted_by": "whop",
"tax_type": "inclusive",
"title": "<string>",
"total_earned_usd": 123,
"total_usd": "<string>",
"use_logo_as_opengraph_image_fallback": true,
"verification": {},
"volume_usd": 123,
"wallet": {
"address": "<string>",
"id": "<string>",
"network": "solana"
}
}
],
"page_info": {
"end_cursor": "<string>",
"has_next_page": true,
"has_previous_page": true,
"start_cursor": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "<string>",
"code": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "<string>",
"code": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "<string>",
"code": "<string>"
}
}List Accounts
Lists accounts visible to the credential. User tokens return the user’s business accounts; Account API keys return the requesting account and its connected accounts. Pass parent_account_id to return only that parent account’s connected accounts.
import Whop from '@whop/sdk';
const client = new Whop({
apiKey: process.env['WHOP_API_KEY'], // This is the default and can be omitted
});
// Automatically fetches more pages as needed.
for await (const account of client.accounts.list()) {
console.log(account.id);
}curl --request GET \
--url https://api.whop.com/api/v1/accounts \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.whop.com/api/v1/accounts"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.whop.com/api/v1/accounts",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.whop.com/api/v1/accounts"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.whop.com/api/v1/accounts")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.whop.com/api/v1/accounts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"balances": [
{
"balance": "<string>",
"breakdown": {
"available": "<string>",
"pending": "<string>",
"pending_settlements": [
{
"amount": "<string>",
"date": "<string>"
}
],
"reserve": "<string>"
},
"icon_url": "<string>",
"name": "<string>",
"price_usd": 123,
"symbol": "<string>",
"value_usd": "<string>"
}
],
"banner_image_url": "<string>",
"business_address": {},
"business_type": "education_program",
"can_transfer_pending_balance_to_children": true,
"capabilities": {
"accept_bank_payments": "active",
"accept_bnpl_payments": "active",
"accept_card_payments": "active",
"bank_deposit": "active",
"card_deposit": "active",
"card_issuing": "active",
"crypto_deposit": "active",
"crypto_payout": "active",
"instant_payout": "active",
"run_ads": "active",
"standard_payout": "active",
"transfer": "active"
},
"cards": {
"kind": "individual",
"status": "approved"
},
"collect_vat_id": true,
"company_formation": {
"documents": [
{
"id": "<string>",
"name": "<string>",
"type": "<string>",
"url": "<string>"
}
],
"ein_registered": true,
"legal_name": "<string>",
"signatures": {
"form8821": {
"status": "pending",
"expires_at": "<string>",
"url": "<string>"
},
"ss4": {
"status": "pending",
"expires_at": "<string>",
"url": "<string>"
}
},
"state_registered": true
},
"country": "<string>",
"created_at": "<string>",
"description": "<string>",
"email": "<string>",
"home_preferences": [
"hide_member_count"
],
"id": "<string>",
"industry_group": "academic_and_test_prep",
"industry_type": "trading",
"invoice_prefix": "<string>",
"logo_url": "<string>",
"metadata": {},
"onboarding_type": "platform",
"opengraph_image_url": "<string>",
"opengraph_image_variant": "white",
"other_business_description": "<string>",
"other_industry_description": "<string>",
"owner": {
"id": "<string>",
"name": "<string>",
"profile_picture": {
"url": "<string>"
},
"username": "<string>"
},
"parent_account": {
"id": "<string>",
"logo_url": "<string>",
"route": "<string>",
"title": "<string>"
},
"payment_controls": {
"dispute_alert_auto_refund": {
"locked": true,
"threshold_usd": 123
},
"dispute_alert_fee_usd": 123,
"enforce_3ds": true,
"financing_disabled": true,
"high_risk_processing_fee_percentage": 123,
"pending_auto_topup_fee_percentage": 123,
"pending_balance_delay_days": 123,
"reserve": {
"hold_period_days": 123,
"percentage": 123
},
"resolution_center_auto_refund": {
"card_threshold_usd": 123,
"financing_threshold_usd": 123,
"locked": true,
"paypal_threshold_usd": 123
},
"restricted_payment_methods": [
"card_visa"
]
},
"product_tax_code": {},
"recommended_actions": [
{
"action": "theme_business",
"blocked_capabilities": [
"<string>"
],
"cta": "<string>",
"cta_label": "<string>",
"description": "<string>",
"icon_url": "<string>",
"impact_score": 123,
"reasoning": "<string>",
"status": "optional",
"title": "<string>"
}
],
"require_2fa": true,
"required_actions": [
{
"action": "deposit_funds",
"blocked_capabilities": [
"<string>"
],
"cta": "<string>",
"cta_label": "<string>",
"description": "<string>",
"icon_url": "<string>",
"status": "required",
"title": "<string>"
}
],
"route": "<string>",
"send_customer_emails": true,
"show_joined_whops": true,
"show_reviews_dtc": true,
"show_user_directory": true,
"social_links": [
{
"id": "<string>",
"title": "<string>",
"url": "<string>",
"website": "x"
}
],
"stablecoin_rails": true,
"status": "<string>",
"status_reason": "<string>",
"store_page_config": {
"accent_color": "ruby",
"layout": "featured",
"profile_variant": "personal",
"whop_affiliate_link": true
},
"target_audience": "<string>",
"tax_collection_enabled_states": [
"<string>"
],
"tax_identifiers": [
{
"id": "<string>",
"tax_id_type": "ad_nrt",
"tax_id_value": "<string>"
}
],
"tax_remitted_by": "whop",
"tax_type": "inclusive",
"title": "<string>",
"total_earned_usd": 123,
"total_usd": "<string>",
"use_logo_as_opengraph_image_fallback": true,
"verification": {},
"volume_usd": 123,
"wallet": {
"address": "<string>",
"id": "<string>",
"network": "solana"
}
}
],
"page_info": {
"end_cursor": "<string>",
"has_next_page": true,
"has_previous_page": true,
"start_cursor": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "<string>",
"code": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "<string>",
"code": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "<string>",
"code": "<string>"
}
}Authorizations
An Account API key, account-scoped JWT, App API key, or user OAuth token. Prepend the key or token with Bearer, for example Bearer ***************************.
Headers
Pins the request to a dated API version.
"2026-08-05-1"
Query Parameters
The number of accounts to return (default 10, max 50).
A cursor; returns accounts after this position.
The number of accounts to return from the end of the range.
A cursor; returns accounts before this position.
The field to sort accounts by. volume requires stats:read on the parent account.
created_at, volume Sort direction.
asc, desc Return only accounts with this status: active (includes accounts that have not entered payments review) or suspended.
active, suspended Free-text filter on account title or ID. % and _ match literally.
Return only accounts created after this ISO 8601 timestamp.
Return only accounts created before this ISO 8601 timestamp.
Return only accounts whose lifetime USD volume is at least this value. Requires stats:read on the parent account.
Return only accounts whose lifetime USD volume is at most this value. Requires stats:read on the parent account.
For platforms: the parent account ID whose direct connected accounts to return. Requires payout:account:read on the parent account.

