Whatnot
Whatnot Scraper: Scrape Listings, Sellers, Shows and Categories
Scrape Whatnot without code or via API: search listings and livestreams, pull seller profiles and reviews, and rank categories. Inputs, output and examples.
Whatnot
Scrape Whatnot without code or via API: search listings and livestreams, pull seller profiles and reviews, and rank categories. Inputs, output and examples.
Whatnot mixes a marketplace, live auctions and a social feed, so there’s a lot of useful data on it: asking prices, current bids, seller ratings, viewer counts and category leaderboards. Whatnot doesn’t offer a public API for any of that. You either copy it out by hand or use a scraper.
This guide shows how to get structured Whatnot data in a few minutes with the Whatnot Scraper on Apify. You can run it from a form or call it through the API. It covers three modes (search, seller and category) and explains when one of the two lighter, single-purpose actors is a better fit.
| Mode | What you get | Typical use |
|---|---|---|
search |
Listings, product catalog entries, livestreams, users and category tags for a keyword or a Whatnot search URL | Product discovery, asking-price research, finding sellers |
seller |
Profile metrics (followers, sold count, rating, review count, verification status, average shipping days), shows, buyer reviews and shop listings | Vetting sellers, competitor tracking |
category |
Category lists, trending categories by viewer count, deep-dives with subcategories, live shows and seller rankings | Choosing a niche, planning shows, finding top sellers |
The actor collects public marketplace data only. You won’t get private orders, payouts or buyer contact details. Live prices and bids are current asking prices, not confirmed sale prices.
Everything goes to the run’s default dataset, and each record shows which mode produced it.
Paste this into the JSON editor:
{
"mode": "search",
"searchQueries": ["pokemon cards", "one piece booster box"],
"searchUrls": [],
"vertical": "PRODUCT",
"includeListings": true,
"includeProducts": true,
"maxResultsPerQuery": 20
}
vertical can be PRODUCT, LIVESTREAM, USER, CATEGORY or UNIVERSAL. User results and category tags are off by default, so turn on includeUsers or includeCategories when you search those verticals. includeLivestreams is on by default.
If you’ve already set up a search on whatnot.com, paste its URL into searchUrls, for example https://www.whatnot.com/search?query=pokemon&searchVertical=PRODUCT. A URL keeps its own vertical and sort settings, and the include* toggles only apply to text queries.
maxResultsPerQuery is a cap per query and per URL. It doesn’t limit the whole run, so three queries at 100 each can return up to 300 records.
Each search result is its own record, with a type of listing, product, livestream, user or tag. Here’s a trimmed listing:
{
"type": "listing",
"title": "Pokemon - Cards Dunsparce GG23/GG70 Crown Zenith",
"subtitle": "Mint ∙ Crown Zenith",
"transactionType": "BUY_IT_NOW",
"quantity": 1,
"price": { "amount": 500, "currency": "GBP" },
"currentBid": null,
"currentBidCount": null,
"isLive": false,
"user": {
"username": "mysteryraiders",
"sellerRating": { "overall": 5, "numReviews": 145 }
},
"searchQuery": "pokemon cards",
"vertical": "PRODUCT",
"scrapedAt": "2026-05-17T18:31:44.674Z"
}
product records are catalog entries with name, listingPrice, lastSalePrice and numListings. They’re the closest thing to sold-price data on Whatnot, and they’re what you’d use for Whatnot price tracking. livestream records include title, status, activeViewers, user and tags.
To see which streams are live for a niche right now, search the livestream vertical:
{
"mode": "search",
"searchQueries": ["sports cards"],
"vertical": "LIVESTREAM",
"includeLivestreams": true,
"maxResultsPerQuery": 50
}
Sort the output by activeViewers to see which streams are pulling the most viewers.
If you already know the usernames, use seller mode:
{
"mode": "seller",
"usernames": ["ah_sneakers"],
"includeProfile": true,
"includeShows": true,
"includeReviews": true,
"includeShop": true,
"showStatus": "all",
"maxShows": 10,
"maxReviews": 20,
"maxListings": 20
}
You get one record per seller, containing seller, profileMetrics and arrays of shows, reviews and listings, plus fetchedAt. includeShop is off by default. showStatus takes live, upcoming or all. If you have numeric IDs, use userIds instead of usernames. To search inside one seller’s shop, set query.
The seller reviews guide shows how to turn the reviews into a quick check of a seller.
Category mode has four views, set with categoryView:
list: every top-level category.trending: categories sorted by current viewer count (sortBy: VIEWER_COUNT or TITLE).deep-dive: details, subcategories, live or upcoming shows and the seller leaderboard for the categories you choose.explore: walks through categories and pulls details and a few shows for each (maxCategories, maxShowsPerCategory).Trending categories:
{
"mode": "category",
"categoryView": "trending",
"sortBy": "VIEWER_COUNT",
"maxCategories": 10
}
Deep-dive with seller rankings:
{
"mode": "category",
"categoryView": "deep-dive",
"categoryTagId": ["Trading Card Games > Pokémon Cards", "Sports Cards > Basketball Cards"],
"fetchDetails": true,
"fetchShows": true,
"fetchRankings": true,
"showStatus": "live",
"interval": "CURRENT_WEEK",
"maxShows": 10,
"maxRankedSellers": 20
}
categoryTagId takes the labels exactly as they appear in the input form’s dropdown, such as "Sneakers & Shoes > Sneakers" or "Coins & Money (All)". fetchRankings is off by default. interval can be CURRENT_DAY, CURRENT_WEEK or LIVE. Not every category has a leaderboard for every interval, so try CURRENT_WEEK if one comes back empty.
Viewer counts and live shows change by the minute. To find the best time to go live, schedule the same deep-dive several times a day for a week and compare the results.
The all-in-one actor is the right choice when one workflow needs several modes. Three smaller actors each handle a single job with fewer inputs:
searchQueries, searchUrls, vertical and maxResultsPerQuery, and returns the same result types. Use it for keyword monitoring and scheduled price snapshots.sellerUsername, ratingOverall, ratingShipping, overallReview, reviewedBy, sellerResponse). Use it for spreadsheet review analysis, with no nested arrays to flatten.liveUrls, with maxDurationMinutes and maxComments as stop limits) and saves each message with username, message, role flags like isHost and isModerator, and scrapedAt. Use it to see what viewers ask during a show. It captures chat while the show is live, so start it during the stream.cURL, with a synchronous run that returns the dataset items directly:
curl -X POST \
"https://api.apify.com/v2/acts/epicscrapers~whatnot-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"mode":"search","searchQueries":["pokemon cards"],"vertical":"PRODUCT","maxResultsPerQuery":20}'
Python with apify-client:
import os
from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("epicscrapers/whatnot-scraper").call(run_input={
"mode": "category",
"categoryView": "trending",
"sortBy": "VIEWER_COUNT",
"maxCategories": 10,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)
For long runs, start the actor asynchronously and read from defaultDatasetId once it finishes. You can also save any of the inputs above as an Apify task and put it on a schedule.
lastSalePrice across sets and products before buying inventory.If you also track other resale platforms, see the Vinted scraper guide.
There’s no public API for marketplace-wide search, seller or category data. Whatnot’s built-in seller tools, like the livestream report and Seller Analytics, only cover your own sales. A scraper fills the gap for public marketplace data.
The actor collects publicly visible data and doesn’t log in. Use it for research, follow Whatnot’s terms and privacy law such as GDPR, and don’t build profiles of individual buyers. This isn’t legal advice.
You can get some. Product catalog entries can include lastSalePrice, but there’s no complete sold-item archive. For trends, schedule runs and keep the snapshots.
No. The optional cookies field is only needed for personalized results.
Pick one mode, run it with small limits, check the output, then scale up or schedule it. Open the Whatnot Scraper on Apify to start your first run.