
TikTok Shop Scraper
scrape.ly/store/shelfbright/tiktok-shop-scraperE-commerceSocial media
1 monthly user

Scrape the Whop marketplace: search results, discover feeds (trending, newest, top rated, top earning), category pages, whop and product pages. Get prices and plans, members, reviews, rankings, category and seller details. No login.
Export the Whop marketplace to clean spreadsheets. Search by keyword, follow the discover feeds (trending, newest, top rated, top earning) or paste category, whop and product pages, and get every product's price and billing period, members, rating, review count, Whop ranking, category and seller. Turn on details for all price plans, FAQ, features, seller profile and the latest reviews. No Whop account needed.
| Field | What it does |
|---|---|
searchQueries | Keywords, e.g. trading, notion templates |
startUrls | whop.com search, category (/discover/browse/...), whop (/discover/<whop>/) or product (/discover/<whop>/<product>/) links |
discoverFeed | trending, trending_3_hours, newest_arrivals, average_review_rating, most_reviews_7_days, most_money_made_24_hours, global_affiliate_percentage |
maxResults | Hard cap on products for each keyword, URL and feed (counted per input, not per run): 1 keyword plus the trending feed with maxResults 10 returns up to 20 products. A product found by two inputs is saved once. |
includeDetails | All plans, full description, FAQ, features, affiliate program and seller details |
maxReviewsPerProduct | Latest reviews of the whop added to each detailed product |
{
"searchQueries": ["trading", "notion templates"],
"startUrls": ["https://whop.com/discover/browse/education/"],
"discoverFeed": "newest_arrivals",
"maxResults": 100,
"includeDetails": true,
"maxReviewsPerProduct": 5
}
| Field | Description |
|---|---|
id, title, headline, description, url | The product |
price, currency, billingPeriod, planType, initialPrice, renewalPrice, trialPeriodDays, isFree | Default plan pricing (price is what a buyer pays each period, or once) |
reviewsAverage, reviewsCount, members, whopRanking, usdGmv, verified | Popularity and trust signals as Whop shows them |
category, businessType, industryType, industry | Marketplace category |
companyName, companyRoute, companyUrl, companyMembers | The whop (business) selling it |
createdAt, firstApprovedAt | When the product was created and first approved for the marketplace |
imageUrl, images, logoUrl | Media |
searchQuery, discoverFeed, sourceCategory, sourceCompany | Which input found the product |
With details: plans[], plansCount, minPlanPrice, maxPlanPrice, fullDescription, faq[], features[], affiliateProgram, affiliatePercentage, sellerName, sellerUsername, sellerLocation, socialLinks[], companyReviewsAverage, companyReviewsCount, reviews[] |
{
"id": "prod_Ab12Cd34Ef56G",
"title": "Pro",
"headline": "Every tool, on 5,000+ tickers, with 1:1 support.",
"url": "https://whop.com/discover/example-trading/pro/",
"price": 699.0,
"currency": "USD",
"billingPeriod": "/month",
"planType": "renewal",
"initialPrice": 0.0,
"renewalPrice": 699.0,
"reviewsAverage": 4.87,
"reviewsCount": 571,
"whopRanking": 53,
"category": "Trading",
"industry": "Options trading",
"companyName": "Example Trading",
"companyMembers": 3789,
"createdAt": "2025-05-21T13:09:07Z",
"searchQuery": "trading",
"plans": [
{"planType": "renewal", "price": 699.0, "currency": "USD", "period": "/ month"},
{"planType": "renewal", "price": 4999.0, "currency": "USD", "period": "/ year"}
],
"affiliateProgram": "enabled",
"affiliatePercentage": 15.0,
"sellerName": "Alex Example",
"scrapedAt": "2026-10-16T09:05:37.070Z"
}
Example: 1,000 products from a keyword search ≈ $0.90 plus about a cent of usage. 100 detailed products ≈ $0.15.
Set a maximum charge per run and the actor stops cleanly when it is reached.
Is it legal to scrape Whop? The actor reads the publicly visible marketplace, the same pages anyone can open without an account. You are responsible for how you use the data, including Whop's terms and privacy laws such as GDPR.
Do I need a Whop account or proxies? No. No login, and the built-in datacenter proxy is used by default. If it is ever refused, the run switches to residential exits by itself.
How many products can I get? A keyword search returns as many products as Whop reports for it (usually a few hundred). Discover feeds go much deeper. Category pages list the products of the most popular whops in that category.
Why is members 0 or empty for some products? Sellers can hide their member count; the actor returns exactly what Whop shows. companyMembers is the whop-wide count.
Why is price different from initialPrice? For subscriptions with no up-front fee, initialPrice is 0 and price is the recurring renewal price a buyer pays each period.
Can I schedule it or use the API? Yes. Save your input as a task, schedule it, and fetch results through the API or an integration.
Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
searchQueriesarrayOptionalSearch keywords
Keywords to search on the Whop marketplace, e.g. "trading", "notion templates" or "fitness coaching".
startUrlsarrayOptionalWhop URLs
Paste whop.com links: search pages (/discover/search/?q=...), category pages (/discover/browse/...), whop pages (/discover//) or product pages (/discover///).
discoverFeedenumOptionaldefault "none"Discover feed
Also collect the marketplace-wide product feed in this order.
maxResultsintegerOptionaldefault 20Max products per input
Hard cap on products for each keyword, URL and feed, counted per input (1 keyword plus a discover feed with 10 returns up to 20 products; duplicates are saved once). Search returns as many products as Whop reports for the keyword.
Extra data per product. Each detailed product is billed as a detailed product instead of a basic one.
includeDetailsbooleanOptionaldefault falseInclude product details
All price plans, full description, FAQ, features, affiliate program, plus whop details: seller name and username, location, social links, member count and review score.
maxReviewsPerProductintegerOptionaldefault 0Latest reviews per product
With details on: add up to this many of the whop's latest reviews (stars, text, reviewer, date) to each product. At most 100, because the reviews are stored inside each product row and kept in memory for the run.
proxyobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy configuration
Datacenter exits work well for Whop. If they are refused, the run switches to US residential exits on its own.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| imageUrl | any | Image |
| title | any | Product |
| headline | any | Headline |
| companyName | any | Whop |
| price | any | Price |
| currency | any | Currency |
| billingPeriod | any | Billing |
| planType | any | Plan type |
| reviewsAverage | any | Rating |
| reviewsCount | any | Reviews |
| members | any | Members |
| companyMembers | any | Whop members |
| whopRanking | any | Whop rank |
| category | any | Category |
| industry | any | Industry |
| createdAt | any | Created |
| url | any | URL |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Product | One Whop product saved (details off). | $0.0009 |
| Detailed product | One Whop product saved with details: all plans, FAQ, features, seller and reviews. | $0.0015 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('shelfbright/whop-scraper').call({
"searchQueries": [
"trading"
],
"maxResults": 20,
"proxy": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"DATACENTER"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run shelfbright/whop-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=shelfbright/whop-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Whop products for a keyword with full details.
Products from the trending feed.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.