# Whop Products Scraper (whop.com) - Prices & Reviews (`confidential_gnat/whop-products-scraper`) Actor

Scrapes the Whop marketplace (whop.com): digital products, courses, communities and software with price, billing plans, rating, reviews, category, seller, FAQ and social links. Search by keyword or paste search, store or product URLs. Also lists businesses.

- **URL**: https://apify.com/confidential_gnat/whop-products-scraper.md
- **Developed by:** [ActorFlow](https://apify.com/confidential_gnat) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.90 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Whop Products Scraper (whop.com) - Prices & Reviews

**Scrape digital products from the Whop marketplace (whop.com)**: title, headline, description, category, seller, price and billing period, every plan, rating, review count, star breakdown, GMV, latest reviews, FAQ, social links and creation dates. Export **Whop product data** as **JSON, CSV or Excel**, or call the actor as a **Whop API**. Type a keyword or paste a Whop search, store or product URL, press Start, and get clean data. Switch to business mode to list Whop sellers with member counts, views and owners instead.

**Target website:** [whop.com](https://whop.com/discover/)

### ✨ Features of this Whop products scraper

- **Whop product extraction** — title, headline, description, category, seller, price, billing period, trial days, rating, review count, Whop ranking, active users and dates.
- **Full product details** — every pricing plan, owner, FAQ, social links, included features (Discord, courses, forums and other apps), affiliate commission and the 10 latest reviews.
- **Whop business search** — switch **Search for** to Businesses to get sellers with member count, total views, rating, owner, logo and banner.
- **Pagination support** — keeps paging through Whop search results until Max items is reached.
- **Keyword and URL input** — search by keyword, paste a Whop search URL, or pass single store or product URLs.
- **Incremental runs, no repeat charges** — with a cache project name, products you already scraped are skipped on every later run, so scheduled runs return only new products.
- **Sales and review signals** — GMV in USD, app sessions and a 1-5 star review breakdown for each product.
- **Proxy support** — optional Apify Proxy, off by default.
- **No browser required** — plain HTTP requests keep runs fast and cheap.

### 🚀 How to scrape Whop products in 5 steps

1. [Sign up](https://apify.com/sign-up) for a free Apify account — includes **$5 monthly credit**.
2. Open the actor page and click **Try for free**.
3. Fill in the **Input** fields (a search query, search URL or product URL is required).
4. Click **Start** and wait for the run to complete.
5. Download results from the **Output** tab in JSON, CSV, or Excel format.

You can also run this actor via the [Apify API](https://docs.apify.com/api/v2) or integrate it directly into your workflows using [Zapier](https://zapier.com/apps/apify), [Make](https://www.make.com/), or [n8n](https://n8n.io/).

### 💰 Whop scraper pricing

This actor uses **pay-per-result** billing: you pay for each product or business saved to the dataset.

- New Apify accounts include **$5 of free monthly credit**.
- The actor uses plain HTTP requests, so it costs significantly less to run than browser-based scrapers.
- The proxy is disabled by default; leaving it off keeps runs cheapest.
- Items skipped by the cache are not charged, so repeated and scheduled runs cost only for genuinely new products.

### 🔧 Whop scraper input configuration

![Whop scraper input form with start URLs, max items, scrape details and cache project name](https://i.postimg.cc/4dnGB349/image.png)

| Field | Type | Required | Default | Description |
| ----- | ---- | -------- | ------- | ----------- |
| Search, store or product URLs (`startUrls`) | array | — | — | Whop search URLs, store URLs or product URLs. |
| Max items per search (`maxItems`) | integer | — | `5` | Maximum unique items saved for each search query or search URL. |
| Scrape product details (`scrapeDetails`) | boolean | — | `true` | Adds every plan, owner, FAQ, social links, features, affiliate rate and latest reviews. Turn off for faster runs. Product URLs always include details. |
| Cache project name (`cacheProjectName`) | string | — | — | Use the same name on each run to get only new items. Cached items are skipped, not charged and not counted towards Max items. Records get `changeType: new`. |
| Search queries (`searchQueries`) | array | — | — | Keywords to search the Whop marketplace for. Each query is searched separately. |
| Search for (`searchType`) | string | — | `products` | `products` (one record per product with prices and plans) or `businesses` (one record per seller). Applies to searches. |
| Proxy configuration (`proxyConfiguration`) | object | — | no proxy | Whop works without a proxy. Enable Apify Proxy only if you get blocked. |

**Supported URL types:**

- Search: `https://whop.com/discover/search/?q=trading`
- Store: `https://whop.com/heatseeker/`
- Product: `https://whop.com/discover/merov/merovclub-adhesion/` or `https://whop.com/merov/merovclub-adhesion/`

### 📦 Whop products scraper output data

Each product is saved as one dataset item with the fields `id`, `url`, `title`, `headline`, `description`, `category`, `companyId`, `companyName`, `companyRoute`, `companyUrl`, `companyLogo`, `companyMemberCount`, `businessType`, `industryType`, `reviewsAverage`, `reviewsCount`, `verified`, `activeUsersCount`, `whopRanking`, `gmvUsd`, `appSessionsCount`, `reviewStarCounts`, `planId`, `planName`, `planType`, `priceText`, `price`, `initialPrice`, `renewalPrice`, `currency`, `billingPeriod`, `trialDays`, `free`, `releaseMethod`, `plansCount`, `plans`, `cta`, `ctaUrl`, `affiliatePercentage`, `ownerId`, `ownerUsername`, `ownerName`, `ownerBio`, `features`, `socialLinks`, `faq`, `media`, `latestReviews`, `createdAt`, `firstApprovedAt`, `updatedAt`, `scrapedAt` and, when caching is on, `changeType`. Business mode returns `id`, `url`, `title`, `route`, `description`, `verified`, `memberCount`, `reviewsAverage`, `reviewsCount`, `totalViews`, `isLive`, `logo`, `bannerImage`, `ownerId`, `ownerUsername`, `ownerName`, `ownerBio`, `createdAt` and `scrapedAt`. The dataset has **1 view**, **Overview**, a table of the product, seller, category, price, rating and URL.

**Output at a glance:**

| Product | Seller | Category | Price | Rating | Reviews |
| ------- | ------ | -------- | ----- | ------ | ------- |
| [Crystal Academy Membership](https://whop.com/discover/crystal-academy/crystal-academy/) | Crystal Academy | Trading | $65 / month | 4.82 | 3,549 |
| [Pro](https://whop.com/discover/heatseeker/heatseeker/) | Skylit | Trading | $699 / month | 4.87 | 571 |
| [Elite Options Pro](https://whop.com/discover/elite-options/elite-options/) | Elite Options Trader | Trading | $189 / month | 4.87 | 1,449 |
| [Dr. Profit Premium](https://whop.com/discover/drprofit-trading/drprofit-trading/) | Dr. Profit Premium | Trading | $149 / month | 4.83 | 1,580 |
| [Wealth Group Credit Card Pay](https://whop.com/discover/wealthgroup/wealthgroup/) | Wealth Group | Trading | $250 / month | 4.89 | 1,989 |

**Sample output (raw JSON):**

```json
{
    "id": "prod_lKFZeyJbhvigU",
    "url": "https://whop.com/discover/crystal-academy/crystal-academy/",
    "title": "Crystal Academy Membership",
    "headline": "Making trading crystal clear!",
    "description": "Daily live trading, webinars, exclusive Q&As, and a supportive trading community. Perfect for all levels!",
    "category": "Trading",
    "companyId": "biz_G9MiyhDVcIBWMK",
    "companyName": "Crystal Academy",
    "companyRoute": "crystal-academy",
    "companyUrl": "https://whop.com/crystal-academy/",
    "companyLogo": "https://assets-2-prod.whop.com/public/uploads/2024-03-27/user_1079589_56bbdde8-114d-4cd5-8b71-83a2c2b11b7b.png",
    "companyMemberCount": 0,
    "businessType": "education",
    "industryType": "options_trading",
    "reviewsAverage": 4.82,
    "reviewsCount": 3549,
    "verified": true,
    "activeUsersCount": 0,
    "reviewStarCounts": { "star5": 2144, "star4": 268, "star3": 5, "star2": 8, "star1": 22 },
    "whopRanking": 7,
    "gmvUsd": 0,
    "appSessionsCount": 0,
    "planId": "plan_TERwo3R6R2dSj",
    "planName": null,
    "planType": "renewal",
    "priceText": "$65.00 / month",
    "price": 65,
    "initialPrice": 0,
    "renewalPrice": 65,
    "currency": "USD",
    "billingPeriod": "month",
    "trialDays": null,
    "free": false,
    "releaseMethod": "buy_now",
    "plansCount": 1,
    "plans": [
        {
            "planId": "plan_TERwo3R6R2dSj",
            "planName": null,
            "planType": "renewal",
            "priceText": "$65.00 / month",
            "price": 65,
            "initialPrice": 0,
            "renewalPrice": 65,
            "currency": "USD",
            "billingPeriod": "month",
            "trialDays": null,
            "free": false,
            "releaseMethod": "buy_now"
        }
    ],
    "cta": "join",
    "ctaUrl": null,
    "affiliatePercentage": 30,
    "ownerId": "user_qVL7oBK9JDPOg",
    "ownerUsername": "sierraaaliyah",
    "ownerName": "Sierra Smith",
    "ownerBio": null,
    "features": ["Discord: Claim Diamond Membership", "Forums: Announcements"],
    "socialLinks": [{ "website": "instagram", "url": "crystalacademytrades" }],
    "faq": [
        {
            "question": "Do you teach beginners?",
            "answer": "Absolutely! Crystal Academy is beginner-friendly, and many of our members join with little to no trading experience."
        }
    ],
    "media": [
        "https://assets-2-prod.whop.com/public/uploads/2024-10-16/user_6684692_9cf9d6a1-9650-430f-b790-a7e94cdc1478.mp4"
    ],
    "latestReviews": [
        {
            "id": "rev_j2ADmRSXMPsF7X",
            "stars": 5,
            "title": null,
            "text": "Love love love",
            "author": "Timaayaaa",
            "paidForProduct": true,
            "createdAt": "2026-10-13T12:19:27.000Z"
        }
    ],
    "createdAt": "2023-04-23T17:14:20.000Z",
    "firstApprovedAt": "2023-12-29T07:49:08.000Z",
    "updatedAt": "2026-10-14T18:57:39.000Z",
    "scrapedAt": "2026-10-14T19:14:51.156Z"
}
```

### 🔁 Scrape only new Whop products with the cache

Set the same **Cache project name** (`cacheProjectName`) on every scheduled run and the actor remembers which Whop products and businesses it has already saved under that name.

- **Old data is skipped** — a product saved in an earlier run is not scraped, saved or charged again.
- **Max items counts new items only** — skipped products do not use up **Max items per search**, so each run reaches further into the results instead of re-reading the same top matches.
- **Every new row is labelled** — records saved while caching is on carry `changeType: "new"`.
- **Separate caches per name** — use one name per niche (for example `whop-trading` and `whop-fitness`) and each keeps its own history. Use a new name to start from scratch.
- **Cheaper runs** — you only pay for genuinely new products, and cached items never trigger the extra detail request.

Combine it with an Apify Schedule (daily or weekly) and a list of search URLs in **Search, store or product URLs** to get a feed of newly listed Whop products.

### 🐍 How to scrape Whop with Python, JavaScript or the API

Run the actor programmatically with the official Apify clients. Replace `<YOUR_API_TOKEN>` with the token from your [Apify Console](https://console.apify.com/account/integrations).

**Python** (`pip install apify-client`):

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_API_TOKEN>")

run = client.actor("confidential_gnat/whop-products-scraper").call(run_input={
    "searchQueries": ["trading"],
    "maxItems": 20,
})

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
```

**JavaScript** (`npm install apify-client`):

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });

const run = await client.actor('confidential_gnat/whop-products-scraper').call({
    searchQueries: ['trading'],
    maxItems: 20,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

**cURL** — start a run and wait for the dataset:

```bash
curl -X POST "https://api.apify.com/v2/acts/confidential_gnat~whop-products-scraper/run-sync-get-dataset-items?token=<YOUR_API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"searchQueries": ["trading"], "maxItems": 20}'
```

### 💡 What you can use Whop product data for

- **Pricing research** — compare subscription prices, billing periods and trials across trading, fitness, e-commerce and AI communities.
- **Competitor tracking** — watch rival products' ratings, review counts, plans and Whop ranking over time.
- **Lead generation** — find Whop sellers, their owners and social links in a niche.
- **Market sizing** — count products and businesses per keyword and category, with member counts and views.
- **Review monitoring** — collect the latest reviews and star ratings for products you sell or resell.

Creators, affiliate marketers, agencies and market researchers in the creator economy, online education and trading communities use this data to price products, pick affiliate offers and spot growing niches.

### ⚠️ Whop scraper limitations

- **Hidden counters** — sellers can hide member and active user counts; these then come back as `0`.
- **Search depth** — Whop returns at most the number of matches it reports for a query (usually a few hundred), 50 per page.
- **Leaderboards and Content Rewards pages** — not supported; use a search query, store or product URL.
- **Reviews** — the 10 latest reviews per product are included, not the full review history.

### ❓ Whop scraper FAQ

#### Can I scrape Whop legally?

The actor only collects data that is publicly visible on whop.com without logging in. Scraping publicly available data is generally considered lawful (see *hiQ Labs v. LinkedIn*), but you are responsible for following Whop's Terms of Service and laws such as GDPR or CCPA when you handle personal data like owner names.

#### What data does the Whop scraper return?

Every product comes with title, headline, description, category, seller, default price and billing period, rating, review count, Whop ranking and dates. With **Scrape product details** on (the default) you also get every plan, the owner, FAQ, social links, included features, affiliate commission and the latest reviews.

#### How many Whop products can I scrape from one search?

**Max items per search** limits the unique items saved for each search query or search URL. The actor pages through results 50 at a time until that limit or the end of Whop's results, which is usually a few hundred matches per keyword.

#### Do I need a proxy to scrape whop.com?

No. The proxy is off by default and Whop answers plain requests. Turn on an Apify datacenter proxy only if you start seeing failed requests on very large runs.

#### How do I scrape Whop with Python?

Use the Python example above: start the actor with your search queries, then iterate over the dataset items of the finished run.

#### Can I run this Whop scraper on a schedule?

Yes. Create an Apify Schedule and set a **Cache project name**. Products already scraped under that name are skipped, are not charged and do not count towards Max items, so each scheduled run returns only new Whop products marked with `changeType: new`. See the cache section above for details.

#### What output formats are supported?

JSON, CSV, Excel, XML and RSS, either from the **Output** tab or through the Apify API.

#### How do I get only new Whop products on each run?

Set the same **Cache project name** on every run. Items saved in earlier runs are skipped before they are scraped or charged, so the dataset holds only new products.

#### Can I scrape Whop sellers instead of products?

Yes. Set **Search for** to Businesses and each record is a Whop seller with member count, total views, rating, review count, owner, logo and banner image.

### 🔗 Relevant actors for Whop and marketplace product data

| Scraper | Description |
| ------- | ----------- |
| [🛍️ Carousell Products Scraper](https://apify.com/confidential_gnat/carousell-products-scraper) | Carousell.sg product listings: prices, seller ratings and deal methods. |
| [🇯🇵 Mercari Japan Scraper](https://apify.com/confidential_gnat/mercari-japan-listings-scraper) | Mercari Japan listings: price in JPY, sold status, condition and category. |
| [📦 Tokopedia Product Scraper](https://apify.com/confidential_gnat/tokopedia-products-scraper) | Tokopedia products: title, shop, price in IDR, stock, category and images. |
| [✉️ Substack Scraper](https://apify.com/confidential_gnat/substack-newsletter-scraper) | Substack posts and comments by keyword, publication or post URL. |
| [▶️ YouTube Channel Info and Stats Scraper](https://apify.com/confidential_gnat/youtube-channel-info-and-stats) | YouTube channel info and statistics from channel About pages. |

### 🔗 Other actors you may find useful

| Scraper | Description |
| ------- | ----------- |
| [📅 Facebook Events Scraper](https://apify.com/confidential_gnat/facebook-events-scraper) | Public Facebook events by keyword, location and date, without logging in. |
| [📈 Kalshi Markets Scraper](https://apify.com/confidential_gnat/kalshi-markets-scraper) | Kalshi prediction markets: yes/no prices, implied probability and volume. |
| [💼 Dice Jobs Scraper](https://apify.com/confidential_gnat/dice-jobs-scraper) | Tech job listings from Dice by keyword or URL: company, salary and location. |
| [🎬 TikTok Ad Library Scraper](https://apify.com/confidential_gnat/tiktok-ads-scraper) | TikTok Ad Library ads by keyword, advertiser or ad ID. |
| [🥾 AllTrails Scraper](https://apify.com/confidential_gnat/alltrails-scraper) | Hiking, biking and running trails by park, city, state or coordinates. |

### 💬 Support & contact

If you encounter any issues or have questions, please [open an issue](https://apify.com/confidential_gnat/whop-products-scraper/issues/open).

You can also find more of our actors on the [Actor Flow](https://apify.com/confidential_gnat) page.

# Actor input Schema

## `startUrls` (type: `array`):

Whop search URLs (https://whop.com/discover/search/?q=trading), store URLs (https://whop.com/heatseeker/) or product URLs (https://whop.com/discover/merov/merovclub-adhesion/).

## `maxItems` (type: `integer`):

Maximum unique items saved for each search query or search URL.

## `scrapeDetails` (type: `boolean`):

Get every plan, owner, FAQ, social links, features, affiliate rate and the latest reviews for each product. Turn off for faster runs with search data only. Product URLs always include the details.

## `cacheProjectName` (type: `string`):

Use the same name on each scheduled run to get only new products. Items already scraped under this name are skipped and not charged, and they do not count towards Max items. Each record gets changeType: new.

## `searchQueries` (type: `array`):

Keywords to search the Whop marketplace for, for example trading, fitness or ai tools. Each query is searched separately.

## `searchType` (type: `string`):

Products returns one record per product with prices and plans. Businesses returns one record per seller with member count, views and owner. Applies to search queries and search URLs.

## `proxyConfiguration` (type: `object`):

Whop works without a proxy. Enable Apify Proxy only if you get blocked.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://whop.com/discover/search/?q=trading"
    }
  ],
  "maxItems": 5,
  "scrapeDetails": true,
  "searchQueries": [],
  "searchType": "products",
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        {
            "url": "https://whop.com/discover/search/?q=trading"
        }
    ],
    "maxItems": 5,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("confidential_gnat/whop-products-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "startUrls": [{ "url": "https://whop.com/discover/search/?q=trading" }],
    "maxItems": 5,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("confidential_gnat/whop-products-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://whop.com/discover/search/?q=trading"
    }
  ],
  "maxItems": 5,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call confidential_gnat/whop-products-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,confidential_gnat/whop-products-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/fRrtiwsjcGmKHJ5g7/builds/bULl2qxmL0LzKR53d/openapi.json
