Whatnot Seller Scraper
Pricing
from $0.69 / 1,000 listings
Whatnot Seller Scraper
Scrape Whatnot sellers, listings, live shows and categories: seller ratings, followers, sold count, buyer reviews, shop listings, prices, bids, viewers and seller leaderboards. Search by keyword, URL, username or category. Export JSON, CSV or Excel.
Pricing
from $0.69 / 1,000 listings
Rating
0.0
(0)
Developer
ParseBird
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
9 days ago
Last modified
Categories
Share
Whatnot Seller Scraper
Whatnot Seller Scraper extracts public data from Whatnot, the live shopping marketplace: seller profiles with ratings, followers, sold count and buyer reviews, shop listings with prices, live shows with viewer counts, and category insights with seller leaderboards.
| Search by keyword, paste search, listing, show, seller or category URLs, enter seller usernames, or pick a category. Filter listings by sale format, price and live status, and track price and stock changes between runs. |
Copy to your AI assistant
Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.
Use the Apify actor "parsebird/whatnot-seller-scraper" via the ApifyClient to scrape public Whatnot data. Example: client.actor("parsebird/whatnot-seller-scraper").call(run_input={"resultType": "sellerProfiles", "findBy": "sellerUsernames", "sellerUsernames": ["pokemonwizard"], "includeReviews": true, "includeShowHistory": true}). Inputs: resultType (string, default "listings"; one of listings, liveShows, sellerProfiles, categoryInsights, mixedSearch), findBy (string, default "keywords"; one of keywords, searchUrls, directUrls, sellerUsernames, category), keywords (array of strings; with sellerUsernames/seller URLs they search inside each seller's shop), searchUrls (array of {url}, whatnot.com/search URLs; filters and sort in the URL are kept), directUrls (array of {url}: /listing/, /live/, /user/ or /tag/ pages), sellerUsernames (array of usernames or seller IDs), category (string, category name or slug such as "Trading Card Games" or "pokemon_cards"), maxItems (integer, empty = all; split evenly across the three record types in mixedSearch), saleFormats (array: "auction", "buyNow"), minPrice / maxPrice (number), liveOnly (boolean), listingOrder (relevance, newest, priceLowToHigh, priceHighToLow), monitorChanges (boolean, marks listings new/changed/unchanged vs the previous run of the same search), includeReviews (boolean), maxReviewsPerSeller (integer, default 50), includeShowHistory (boolean), maxShowHistoryPerSeller (integer, default 20), maxShopListingsPerSeller (integer, default 20), categoryFilters (array of filter names from the category page such as "Live", "Upcoming", "Auction", "Breaks", "Singles", "Premier Shop", "United States"), categoryOrder (popular, viewerCount, livestreamCount, name, newest), leaderboardPeriod (today, week, live), maxShowsPerCategory (integer, default 20). Output records have recordType listing (listingId, title, description, condition, attributes, price {amount, currency, catalog}, currentBid, bidCount, quantity, availability, saleFormat, isLive, offersAvailable, createdAt, updatedAt, images, seller, category, listingUrl), liveShow (showId, title, status, startTime, viewerCount, watchlistCount, thumbnailUrl, tags, category, seller, showUrl), sellerProfile (sellerId, username, displayName, biography, followerCount, followingCount, soldCount, rating, reviewCount, averageShipDays, shipsFromCountry, isVerified, isPremierShop, isLive, shopListingCount, shopListings, reviews {items, distribution}, showCount, showHistory) or categoryInsight (category, parentCategory, rank, viewerCount, livestreamCount, subcategories, shows, sellerLeaderboard). In mixedSearch, live shows and seller profiles go to the "live-shows" and "seller-profiles" datasets. Pricing: pay per listing, live show and seller profile. Full API spec: https://apify.com/parsebird/whatnot-seller-scraper/api. Get an API token at https://console.apify.com/settings/integrations.
What is Whatnot Seller Scraper?
Whatnot Seller Scraper is a Whatnot scraping tool and Whatnot API alternative. It collects four kinds of public Whatnot data in one Actor:
- Seller profiles: followers, sold count, seller rating, review count, average shipping days, Premier Shop status, shop listings, show history and buyer reviews with overall, shipping, packaging and accuracy stars
- Listings: title, description, condition, item attributes, price, current bid, quantity, sale format (auction or Buy It Now), images, seller and category
- Live shows: title, status (live or upcoming), start time, live viewer count, watchlist count, tags, category and host
- Category insights: viewer and live show counts per category, subcategories, the shows running now, and the seller leaderboard for today, this week or live
The easiest way to try it: click Start with the prefilled keyword trading cards. To look at a seller, set What to scrape to Seller profiles, Find by to Seller usernames and enter a username such as pokemonwizard.
What can Whatnot Seller Scraper do?
- 🔎 Five ways to find data: keywords, Whatnot search URLs, direct page URLs, seller usernames, or a category name
- 🧑💼 Seller research: profile stats, the seller's shop, upcoming and recent shows, and up to 5,000 written buyer reviews per seller with a star distribution
- 🏷️ Listing filters: auction or Buy It Now, minimum and maximum price, only listings in a live show, and four sort orders (best match, newest, lowest and highest price)
- 📺 Live show tracking: live viewer counts and watchlist counts for shows running now and upcoming shows
- 📊 Category insights: every top-level Whatnot category ranked the way Whatnot ranks them, or one category with its subcategories, current shows and seller leaderboard
- 🔁 Change monitoring: run the same search on a schedule and get each listing marked
new,changed(with the old price, quantity, status or bid) orunchanged, plus a list of listings that disappeared - 🧩 Mixed search: listings, live shows and seller profiles for one keyword in a single run
- ⚙️ Runs on Apify: schedule recurring runs, call it through the API, connect it to integrations like Google Sheets, Slack, Zapier or Make, and export results as JSON, CSV, Excel, XML or HTML
What data can you extract from Whatnot?
Seller profiles (recordType: "sellerProfile")
| Field | Description |
|---|---|
username, displayName, sellerId, profileUrl | Seller identity and profile link |
followerCount, followingCount, soldCount | Audience size and number of items sold, as shown on Whatnot |
rating, reviewCount | Seller rating and Whatnot's total review count |
averageShipDays, shipsFromCountry | Average days to ship and the country the seller ships from |
isVerified, isPremierShop, isLive, onVacation, badges | Seller status flags and badges |
shopListingCount, shopListings | Size of the seller's shop and its listings with price, format, quantity and status |
reviews.items | Buyer reviews: overall, shipping, packaging and accuracy stars, text, seller reply, date and reviewer |
reviews.distribution | Count and share of 1-5 star reviews among the collected written reviews |
showCount, showHistory | The seller's shows with status, start time, viewers and watchlist count |
Listings (recordType: "listing")
| Field | Description |
|---|---|
title, subtitle, description, listingUrl | Listing text and link |
condition, attributes | Condition and item attributes such as set, grade, grading service or language |
price.amount, price.currency, price.catalog | Asking price in the listing currency, and the linked catalog product |
currentBid, bidCount | Highest bid and number of bids on auction listings |
saleFormat, quantity, availability, isLive, offersAvailable | Auction or Buy It Now, stock, status, live status and whether offers are allowed |
createdAt, updatedAt | When the listing was created and last updated |
seller, category, images | Seller username, rating and review count, category, image URLs |
Live shows (recordType: "liveShow"): title, status (PLAYING = live, CREATED = upcoming), startTime, viewerCount, watchlistCount, tags, tagLabels, category, seller, thumbnailUrl, showUrl.
Category insights (recordType: "categoryInsight"): category, parentCategory, rank, viewerCount, livestreamCount, subcategories (each with viewers and show count), shows, sellerLeaderboard (rank, username, followers, sold count, live status), leaderboardPeriod.
How to scrape Whatnot
- Open Whatnot Seller Scraper in Apify Console.
- Choose What to scrape: listings, live shows, seller profiles, category insights, or mixed search.
- Choose Find by and fill in the matching field, for example keywords, a search URL from your browser, seller usernames, or a category name.
- Set Max results, and optionally the listing filters, seller profile options or category options.
- Click Start and wait for the run to finish.
- Download the results from the Output tab as JSON, CSV, Excel, XML or HTML, or read them with the API.
Input combinations that work
| What to scrape | Find by | What you get |
|---|---|---|
| Listings | Keywords or search URLs | Search results for each query |
| Listings | Seller usernames or seller URLs | Each seller's shop (keywords search inside the shop) |
| Listings | Category | Listings in the category and its subcategories |
| Listings | Direct URLs | Listing pages, seller shops and category listings |
| Live shows | Keywords, search URLs, seller usernames or category | Show search results, a seller's shows, or a category's live and upcoming shows |
| Seller profiles | Keywords | Sellers from Whatnot's user search |
| Seller profiles | Seller usernames or direct URLs | The sellers you list, or the sellers of the listings and shows you link |
| Seller profiles | Category | Hosts of the shows in the category |
| Category insights | Category, keywords or category URLs | One record per category; leave the category empty to get every top-level category |
| Mixed search | Any | Listings, live shows and seller profiles for the same input |
Input parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
resultType | string | No | listings | listings, liveShows, sellerProfiles, categoryInsights or mixedSearch |
findBy | string | No | keywords | keywords, searchUrls, directUrls, sellerUsernames or category |
keywords | array | Depends on findBy | — | Search terms. With seller usernames or seller URLs they search inside each seller's shop |
searchUrls | array | Depends on findBy | — | whatnot.com/search URLs. Filters and sort order in the URL are kept |
directUrls | array | Depends on findBy | — | Listing, live show, seller or category page URLs |
sellerUsernames | array | Depends on findBy | — | Usernames (the part after whatnot.com/user/) or seller IDs |
category | string | Depends on findBy | — | Category name or slug, e.g. Trading Card Games, pokemon_cards, Sneakers |
maxItems | integer | No | all | Maximum records. In mixed search it is split evenly between the three record types |
saleFormats | array | No | — | auction, buyNow |
minPrice, maxPrice | number | No | — | Price range for listings |
liveOnly | boolean | No | false | Only listings being sold in a live show right now |
listingOrder | string | No | relevance | relevance, newest, priceLowToHigh, priceHighToLow |
monitorChanges | boolean | No | false | Compare listings with the previous run of the same search |
includeReviews | boolean | No | false | Add buyer reviews to seller profiles |
maxReviewsPerSeller | integer | No | 50 | Reviews per seller (up to 5,000) |
includeShowHistory | boolean | No | false | Add the seller's shows |
maxShowHistoryPerSeller | integer | No | 20 | Shows per seller |
maxShopListingsPerSeller | integer | No | 20 | Shop listings per seller profile; 0 skips the shop |
categoryFilters | array | No | — | Filter names from the category page, e.g. Live, Upcoming, Auction, Breaks, Singles, Graded, Premier Shop, United States, a subcategory or a tag |
categoryOrder | string | No | popular | popular (Whatnot's order), viewerCount, livestreamCount, name, newest |
leaderboardPeriod | string | No | today | today, week, live |
maxShowsPerCategory | integer | No | 20 | Shows listed inside each category insight |
proxyConfiguration | object | No | — | Optional. The Actor connects directly and moves to Apify Proxy on its own if Whatnot refuses requests |
Output example
A seller profile with buyer reviews and show history (shortened: shop listings, reviews and shows trimmed to one item each):
{"recordType": "sellerProfile","sellerId": "UHVibGljVXNlck5vZGU6MTExMjQ1","username": "pokemonwizard","displayName": "Wiz","biography": "Yelling & Selling with thousands of CGC and PSA graded Pokemon Cards. Welcome to my page!","followerCount": 306835,"followingCount": 775,"soldCount": 370288,"rating": 5,"reviewCount": 67075,"averageShipDays": 1,"shipsFromCountry": "US","isVerified": false,"isPremierShop": true,"isLive": false,"onVacation": false,"profileUrl": "https://www.whatnot.com/user/pokemonwizard","shopListingCount": 0,"shopListings": [],"reviews": {"items": [{"reviewId": "U2VsbGVyUmV2aWV3Tm9kZTo1MDkxMzU4OTI6MTExMjQ1OjM2MjU1OTY=","rating": {"average": 5,"overall": { "value": 5, "label": "Overall" },"shipping": { "value": 5, "label": "Shipping" },"packaging": { "value": 5, "label": "Packaging" },"accuracy": { "value": 5, "label": "Accuracy" }},"text": "Arrived well packaged!","reviewedAt": "2026-10-27T06:10:36.000Z","reviewer": { "username": "luckbucket", "profileUrl": "https://www.whatnot.com/user/luckbucket" }}],"distribution": {"cohort": "public_written_reviews","reviewCount": 50,"sourceReportedReviewCount": 67075,"bins": [{ "rating": 1, "count": 1, "share": 0.02 },{ "rating": 2, "count": 0, "share": 0 },{ "rating": 3, "count": 0, "share": 0 },{ "rating": 4, "count": 1, "share": 0.02 },{ "rating": 5, "count": 48, "share": 0.96 }]}},"showCount": 3,"showHistory": [{"showId": "010db4e6-6157-4d12-a9b9-8402b2d2c56e","title": "Rapid Fire Sudden Death Pokemon Slabs 🔥 ☠️","status": "CREATED","startTime": "2026-10-27T19:30:00.000Z","viewerCount": 0,"watchlistCount": 360,"showUrl": "https://www.whatnot.com/live/010db4e6-6157-4d12-a9b9-8402b2d2c56e"}],"retrievedAt": "2026-10-27T10:54:03.696Z"}
A listing (image URL list shortened):
{"recordType": "listing","listingId": "TGlzdGluZ05vZGU6MjQ1MzEwNDY5NA==","title": "Zapdos- Pokemon Rumble (2009) Stamp [RAW] 8/16","subtitle": "Heavily Played ∙ Pokemon Rumble","condition": "Heavily Played","attributes": { "Condition": "Heavily Played", "Set": "Pokemon Rumble", "Language": "English", "Product Type": "Card" },"price": {"amount": 150,"currency": "USD","catalog": { "productId": "UHJvZHVjdE5vZGU6NjM5MjQ1NzU3", "name": "Zapdos- Pokemon Rumble (2009) Stamp [RAW] 8/16" }},"quantity": 1,"availability": "ACTIVE","saleFormat": "BUY_IT_NOW","isLive": false,"offersAvailable": true,"createdAt": "2026-10-17T23:48:02.000Z","updatedAt": "2026-10-17T23:48:03.000Z","images": ["https://images.whatnot.com/eyJidWNrZXQiOi..."],"seller": {"username": "realpizzaking","displayName": "rpk","profileUrl": "https://www.whatnot.com/user/realpizzaking","rating": 5,"reviewCount": 3381,"isVerified": false,"isPremierShop": true},"category": { "name": "Pokémon Cards", "slug": "pokemon_cards", "url": "https://www.whatnot.com/tag/pokemon_cards" },"listingUrl": "https://www.whatnot.com/listing/TGlzdGluZ05vZGU6MjQ1MzEwNDY5NA==","retrievedAt": "2026-10-27T10:55:02.242Z"}
A category insight (subcategories, shows and leaderboard trimmed):
{"recordType": "categoryInsight","category": { "name": "Pokémon Cards", "slug": "pokemon_cards", "url": "https://www.whatnot.com/tag/pokemon_cards" },"parentCategory": { "name": "Trading Card Games", "slug": "trading_card_games", "url": "https://www.whatnot.com/tag/trading_card_games" },"rank": 1,"viewerCount": 12777,"livestreamCount": 294,"leaderboardPeriod": "week","sellerLeaderboard": [{ "rank": 1, "username": "spacenarwhalz", "displayName": "Michael Granlund", "followerCount": 385584, "soldCount": 243571, "isLive": true },{ "rank": 2, "username": "legacy_auction_house", "displayName": "Legacy Auction House", "followerCount": 453344, "soldCount": 1052643, "isLive": true }],"retrievedAt": "2026-10-27T10:53:34.172Z"}
Use Whatnot Seller Scraper from Python or JavaScript
Install the client with pip install apify-client or npm install apify-client, and get your API token from Apify Console.
Python
from apify_client import ApifyClientclient = ApifyClient("<APIFY_TOKEN>")run = client.actor("parsebird/whatnot-seller-scraper").call(run_input={"resultType": "sellerProfiles","findBy": "keywords","keywords": ["graded pokemon"],"maxItems": 25,"includeReviews": True,})for seller in client.dataset(run["defaultDatasetId"]).iterate_items():print(seller["username"], seller["followerCount"], seller["soldCount"], seller["rating"])
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<APIFY_TOKEN>' });const run = await client.actor('parsebird/whatnot-seller-scraper').call({resultType: 'listings',findBy: 'keywords',keywords: ['psa 10'],saleFormats: ['buyNow'],minPrice: 50,listingOrder: 'newest',maxItems: 200,});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach((l) => console.log(l.price.amount, l.price.currency, l.title, l.seller.username));
Use cases
- Competitor research for Whatnot sellers: compare followers, sold counts, ratings, shipping speed and review sentiment of sellers in your niche.
- Price research: collect asking prices and current bids for cards, sneakers, comics or toys, sorted by newest or price.
- Lead lists: build lists of active sellers in a category from the category leaderboard and show hosts.
- Category and trend tracking: see which categories have the most viewers and live shows, and which sellers lead each one.
- Reputation monitoring: schedule a weekly run of your own profile to track new buyer reviews and the star distribution.
- Stock and price alerts: turn on change monitoring for a search or a seller's shop and get the listings whose price, quantity or status changed.
How it works
- The Actor reads the same public data the Whatnot website shows to visitors who aren't logged in.
- Searches return up to 50 results per page. Whatnot's listing search stops near 1,000 results per query, so when you ask for more, the Actor continues the same search in other sort orders and skips listings it already saved.
- Seller profiles are filled with the shop, reviews and shows in parallel, up to the limits you set.
- Category insights combine the category's viewer and show counts, subcategories, the shows on the category page (with your filters) and the seller leaderboard.
- With change monitoring on, each listing is compared with the copy saved by the previous run of the same search in a named key-value store, and a
MONITOR_SUMMARYrecord lists new, changed, unchanged and no-longer-found listings. - The run stops at Max results, when Whatnot has no more results, or when your spending limit is reached.
How much does it cost to scrape Whatnot?
Whatnot Seller Scraper uses pay-per-event pricing. You pay for each listing, live show and seller profile saved. Platform usage (compute and proxy) is included in the event price, so it isn't billed separately.
| Event | Free | Bronze | Silver | Gold |
|---|---|---|---|---|
| Listing | $0.99 / 1,000 | $0.89 / 1,000 | $0.79 / 1,000 | $0.69 / 1,000 |
| Live show | $0.99 / 1,000 | $0.89 / 1,000 | $0.79 / 1,000 | $0.69 / 1,000 |
| Seller profile | $0.99 / 1,000 | $0.89 / 1,000 | $0.79 / 1,000 | $0.69 / 1,000 |
A seller profile is one charge, including its shop listings, reviews and show history. Category insight records are not charged. At Free plan prices, the prefilled run of 50 listings costs about $0.05, and 1,000 seller profiles cost $0.99. To control spending, use Max results. The run also stops when it reaches the maximum cost per run you set in Apify Console.
Is it legal to scrape Whatnot?
Whatnot Seller Scraper only collects data that Whatnot shows publicly to visitors who aren't logged in: listings, shows, seller profiles and buyer reviews. It doesn't log in and doesn't access private account data, orders or messages. Seller profiles and reviews contain personal data, such as names and usernames. If you store or process that data you're responsible for complying with the GDPR, other privacy laws and Whatnot's terms of service. Consult a lawyer if you're unsure. For more background, read Apify's article Is web scraping legal?
Other marketplace scrapers from ParseBird
| Actor | What it does |
|---|---|
| eBay Sold Listings Scraper | Sold prices and completed listings from eBay |
| TCGplayer Scraper | Trading card prices and listings from TCGplayer |
| Goldin Auction Scraper | Sports card and collectibles auction lots from Goldin |
| Facebook Marketplace Scraper | Listings and sellers from Facebook Marketplace |
| Mercari US Scraper | Listings from Mercari US |
| Depop Scraper | Listings, shops, sellers and reviews from Depop |
| Vinted Scraper | Search, category and seller listings from Vinted |
FAQ
Do I need a Whatnot account or API key? No. The Actor reads the same public data the Whatnot website loads for logged-out visitors, so no login, cookies or API key are needed.
Why does a seller have fewer reviews in reviews.items than reviewCount?
reviewCount is Whatnot's total of all ratings. Only reviews with written text are listed publicly, so reviews.items holds the written ones, and reviews.distribution shows both numbers (reviewCount and sourceReportedReviewCount).
Are prices in US dollars?
Each listing keeps the currency of its seller, for example USD, GBP, EUR, CAD, AUD or JPY, in price.currency. The minimum and maximum price filters use Whatnot's own price filter, which compares listings across currencies.
Does the live show record include the current bid?
No. Whatnot sends live bids to viewers of the stream in real time, not in the public page data. Auction listings in search results do include currentBid and bidCount.
Why does showHistory contain mostly upcoming shows?
It holds the shows Whatnot lists on the seller's profile, which are mainly scheduled shows and the current one.
What does rank mean in category insights?
It is the category's position in Whatnot's own popularity order among its sibling categories. Whatnot doesn't rank purely by the current viewer count, so set Category order to Most viewers if you want that order.
Where are the live shows and sellers in a mixed search?
Listings go to the default dataset. Live shows and seller profiles go to the live-shows and seller-profiles datasets of the same run, so each table has its own columns. Open them from the run's Storage tab or through the API.
How does change monitoring know what changed?
It keeps the last seen title, price, quantity, status, sale format, live status, current bid, bid count and offer setting of each listing per search. The next run with the same search and filters marks each listing new, changed (with changedFields and the previous values) or unchanged. Listings not seen for 30 days are forgotten.
Can I schedule runs or send results to other tools? Yes. Use Apify schedules for recurring runs, and integrations to send results to Google Sheets, Slack, Zapier, Make, webhooks and more. Every run is also available through the API.
Something isn't working. What should I do? Open an issue on the Issues tab with the input you used. We read every report.