Whatnot Seller Reviews Scraper
Export the written reviews of any Whatnot seller, one row per seller with up to 500 reviews or one per review: ratings, text, dates, reviewers and replies.
How it works
- 1Open it on Apify
Hit Run on Apify — it opens the tool in the cloud, no install.
- 2Set the inputs
Adjust
sellers,oneRowPer,maxReviewsPerSeller(sensible defaults are pre-filled). - 3Click Run
The tool runs on Apify’s cloud and collects the data for you.
- 4Export the results
Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.
Pricing
$0.00093 per seller = $0.93 per 1,000
| You are charged for | When | Price |
|---|---|---|
| Seller | One seller row with up to 500 of that seller's reviews inside. A seller with no reviews gets a free note instead. | $0.00093 |
| Review | One review row, when you choose one row per review. Notes, the sample row and repeats are not charged. | $0.00095 |
Pay-per-event pricing: you are billed per result, not per subscription. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-10-03, and they are what you are actually charged.
Inputs
| Field | What it does | Type |
|---|---|---|
sellers | Whatnot usernames, with or without the @, or links to a seller's profile or reviews page. Up to 100 in one run. | array |
oneRowPer | Seller: one row for each seller, holding its newest reviews, up to 500. Reviews per seller sets how many. You pay per seller row, however many reviews it holds. Review: one row for each review, and you pay per review. | string |
maxReviewsPerSeller | The most reviews from one seller, newest first. A seller row holds up to 500, so a bigger number fills it to 500. With one row per review, big sellers have thousands, so this is your main spending cap. | integer |
maxReviews | With one row per review: the most reviews in the whole run, across every seller. Each review returned is one charge. Seller rows don't use it, since each seller is one row. | integer |
reviewsSince | Only reviews written on or after this date. Write a date such as 2026-09-01, or a span back from today such as 30 days, 2 weeks, 6 months or 1 year. A date in any other format is refused before the run starts. Leave it empty for every review. | string |
What you get
A structured dataset — each result includes fields like:
sellerUsernamereviewsInRowsellerRatingsellerRatingCountsellerReviewsUrlreviewscodemessageoverallRatingtextreviewedAtreviewerUsernamesellerResponseshippingRatingpackagingRatingaccuracyRatingExport every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.
Related tools in Developer & Research Tools
Other ready-to-run tools in the same category — all pay-per-use on the Apify cloud.
GitHub Scraper
Search GitHub repos and users: stars, forks, language, topics, licence, plus user bio, company and followers. No token needed. $0.90 per 1,000 rows.
Stack Overflow / Stack Exchange Scraper
Search Stack Overflow and Stack Exchange by keyword or tag. Score, answer count, views, reputation and body text. $2 per 1,000 questions.
Package Registry Scraper (npm + PyPI)
Get npm and PyPI package metadata as JSON. Version, license, author, repo, keywords and npm monthly downloads. $2 per 1,000 packages.
arXiv Scraper
Search arXiv papers by title, author, abstract or category. Get full abstracts, authors, categories, DOI, dates and PDF links. $2 per 1,000 papers.
OpenAlex Scholarly Works Scraper
Search 250M+ OpenAlex papers with no API key. Get titles, authors, venue, year, citations, DOI, OA links and full abstracts. $2.00 per 1,000 papers.
Crossref Scholarly Works Scraper
Search 150M+ papers on Crossref: DOI, title, authors, journal, publisher, date, citations and abstract. No API key. $1.00 per 1,000 works.
Where this tool sits
- Categories
- Developer & Research Tools
Paste Whatnot usernames or profile links and get each seller's written reviews: one row per seller with up to 500 of its newest reviews inside, or one row per review if you'd rather. Every review carries its overall, shipping, packaging and accuracy stars, what the buyer wrote and when, who wrote it, and the seller's reply.
Whatnot only lists reviews that have text. The rating count on a seller's profile also counts ratings left without a word, so expect far fewer reviews than that number: a seller showing 6,747 ratings had 1,791 written reviews.
| Input | Whatnot usernames or profile links, up to 100 per run |
| Output | One row per seller holding up to 500 reviews (the default), or one row per review: overall, shipping, packaging and accuracy stars, text, date, reviewer and the seller's reply |
| Ceiling | 500 reviews in a seller row and 100 sellers a run; 20,000 reviews a run with one row per review |
| Speed | About 5 to 7 seconds for a seller row of 500 reviews; 4,700 to 5,700 reviews a minute one row each |
| Account needed | None from you |
| Price | $0.93 per 1,000 seller rows, each holding up to 500 reviews, or $0.95 per 1,000 reviews one row each. Flat on every plan. The free plan's $5 a month covers about 5,370 seller rows or about 5,260 reviews |
🔍 What Whatnot Seller Reviews Scraper does
You give it sellers and pick a shape. With One row per on Seller, each seller is a single row: its username, rating and rating count once, then up to 500 of its newest reviews in a reviews list. That row costs the same whether it holds 8 reviews or 500. On Review, every review is a row of its own with the seller's fields repeated on it, priced per review.
Each review is checked before it goes in. It has to belong to the seller you asked for, it can't be a repeat, and with a date set it has to be on or after it.
Big sellers have thousands of written reviews. One with about 66,000 ratings had 11,877, going back to August 2022. A seller row takes the newest 500; one row per review goes as far back as you let it.
📋 What data you get from each Whatnot seller
| What you get | Field |
|---|---|
| The seller's username, overall rating, and how many ratings that rests on | sellerUsername, sellerRating, sellerRatingCount |
| A link to the seller's reviews page | sellerReviewsUrl |
| How many reviews the seller row holds, and the reviews themselves, newest first | reviewsInRow, reviews |
| The buyer's overall stars, and the shipping, packaging and accuracy questions | overallRating, shippingRating, packagingRating, accuracyRating |
| Whatnot's average of those four | averageRating |
| What the buyer wrote, and the seller's public reply | text, sellerResponse |
| When the review was left, and by whom | reviewedAt, reviewerUsername |
| Whatnot's own id for the review | reviewId |
| When the row was read | scrapedAt |
▶️ How to scrape Whatnot seller reviews
1. Open Whatnot Seller Reviews Scraper and click Try for free. 2. Paste usernames or profile links into Sellers, one per line. 3. Leave One row per on Seller, or switch it to Review. 4. Set Reviews per seller (500 fills a seller row), and Reviews since if you only want recent ones. Click Start. 5. Download the dataset as JSON, or read it through the Apify API.
Start it with no sellers to see the row shape first: one labelled sample row, not charged.
💰 How much does it cost to scrape Whatnot seller reviews?
$0.93 per 1,000 seller rows, each holding up to 500 reviews, and $0.95 per 1,000 reviews when you take one row per review. Flat on every Apify plan, no volume tiers. On the free plan, the $5 Apify gives you each month covers about 5,370 seller rows, or about 5,260 reviews.
Note rows and the sample row are free, and so are sellers with no written reviews or none since your date. If you set a maximum charge for the run, it stops before anything it couldn't pay for.
On big sellers the shape decides the bill. The newest 500 reviews of that 66,000-rating seller cost $0.00093 as one seller row and about $0.48 as 500 review rows. All 11,877 of them come to about $11.28.
📥 What you give it
{
"sellers": ["pokemonwizard", "unovagirls", "cardson6th"],
"oneRowPer": "seller",
"maxReviewsPerSeller": 500
}
| Field | Default | What it is |
|---|---|---|
sellers | none, box starts at pokemonwizard | Usernames with or without the @, or links to a profile or its reviews page. Up to 100. The same seller twice is read once. |
oneRowPer | seller | seller: one row per seller with its newest reviews inside. review: one row per review. |
maxReviewsPerSeller | 100, box starts at 50 | The most reviews from one seller, newest first, up to 20,000. A seller row holds 500 at most, so a bigger number counts as 500 there. |
maxReviews | 1000, box starts at 200 | One row per review only: the most reviews in the whole run, up to 20,000. Seller rows don't use it, since each seller is one row. |
reviewsSince | none | Only reviews written on or after this. A date such as 2026-09-01, or a span back from today: 30 days, 2 weeks, 6 months, 1 year. |
Another date format is refused before the run starts, so "last week" or "09/01/2026" won't run. A date like 2026-04-31, or one in the future, stops the run before anything is fetched. A link to a listing or a show isn't a seller, so it's skipped with a note and the run goes on.
📤 What you get back
A real seller row from a test run on 3 October 2026, cut to two of its 500 reviews:
{
"sellerUsername": "unovagirls",
"sellerRating": 5,
"sellerRatingCount": 6747,
"sellerReviewsUrl": "https://www.whatnot.com/user/unovagirls/reviews",
"reviewsInRow": 500,
"scrapedAt": "2026-10-03T05:56:32.502Z",
"reviews": [
{
"reviewId": "U2VsbGVyUmV2aWV3Tm9kZTo0ODgwMTc2NDA6NjgyMzExOToyNDQxNTM0MA==",
"overallRating": 5,
"averageRating": 5,
"shippingRating": 5,
"packagingRating": 5,
"accuracyRating": 5,
"text": "Card came in as shown & well protected during transport.",
"sellerResponse": null,
"reviewedAt": "2026-10-02T13:59:06.000Z",
"reviewerUsername": "spacecowboy99"
},
{
"reviewId": "U2VsbGVyUmV2aWV3Tm9kZTozNDQwNzQyODM6NjgyMzExOTo0MDcwOTYx",
"overallRating": 5,
"averageRating": 5,
"shippingRating": 5,
"packagingRating": 5,
"accuracyRating": 5,
"text": "Great cards, quality as stated, and quick shipping!! and they make some awesome lenticulars",
"sellerResponse": "Thank you so much for your kind words. So glad you like the lenticular.",
"reviewedAt": "2026-04-25T20:42:54.000Z",
"reviewerUsername": "packm4n"
}
]
}
One row per review gives rows like this one, from the same morning:
{
"reviewId": "U2VsbGVyUmV2aWV3Tm9kZTo0Mzc0OTA3Mzc6NjgyMzExOToxMzExNjMz",
"sellerUsername": "unovagirls",
"overallRating": 5,
"averageRating": 5,
"shippingRating": 5,
"packagingRating": 5,
"accuracyRating": 5,
"text": "always a joy spending the evening with the unovagirls! thanks for always packaging my items with care and always having unique items for us buyers!",
"sellerResponse": "Thank you & we appreciate you so much!!",
"reviewedAt": "2026-08-18T22:40:27.000Z",
"reviewerUsername": "zoayna",
"sellerRating": 5,
"sellerRatingCount": 6747,
"sellerReviewsUrl": "https://www.whatnot.com/user/unovagirls/reviews",
"scrapedAt": "2026-10-03T05:54:32.766Z"
}
| Field | How to read it |
|---|---|
reviewsInRow | How many reviews the seller row holds. Fewer than you asked for means that's every written review the seller has, or every one since your date, unless a note row says the seller stopped short. |
sellerRatingCount | Every rating the seller has, written or not, so it's well above the reviews you get. |
averageRating | Whatnot's average of the four ratings, to one decimal. A review rating 2 overall, 4 for shipping, 1 for packaging and 5 for accuracy reads 3. |
text | null on the rare review whose text is blank: 20 of 11,877 on one seller. |
sellerResponse | The seller's public reply, or null. |
reviewedAt | When the review was left, in UTC. |
reviewId | Whatnot's own id for the review. It stays the same from run to run, so you can drop reviews you already have. |
🧾 Reading the output
| Row | How to spot it | Charged |
|---|---|---|
| A seller row | a reviews list and reviewsInRow, no _diagnostic or _sample | yes, once per row |
| A review row | a reviewId at the top level, no _diagnostic or _sample | yes, once per review |
| A note about a seller or an entry | _diagnostic: true, with a code and a message | no |
| The sample row | _sample: true | no |
The sample row is a real review in the shape you picked, and only turns up when you give no sellers.
code | What happened |
|---|---|
SELLER_NOT_FOUND | No Whatnot account has that username. |
NO_WRITTEN_REVIEWS | The seller exists but has no reviews with text. |
NO_REVIEWS_SINCE | Nothing was written on or after your date. |
STOPPED_EARLY | Whatnot stopped handing over that seller's older reviews. What came before is in the dataset. |
PAGE_NOT_READ | Part of the seller's list couldn't be read, so that seller stopped there. |
NOT_READ | The seller couldn't be read at all this time. Try again later. |
INVALID_SELLER | An entry that isn't a username or a profile link. |
BAD_INPUT | The input can't work as given, so nothing was fetched. |
To keep only the data, drop the rows where _diagnostic is true. RUN_REPORT in the run's key-value store lists each seller with its status, and why the run stopped.
Seller rows are made for JSON and the API. A CSV or Excel download stops at 2,000 columns, which cuts a seller row off after its 199th review. For a spreadsheet, pick one row per review, or add unwind=reviews to the dataset's API link to get one line per review with the seller's fields beside it.
💡 What people use it for
- Checking a seller before a big buy or a box break: their last 500 reviews and the replies, in one row.
- Comparing every seller in a category on shipping, packaging and accuracy. A hundred sellers is a hundred rows.
- Watching your own shop. Schedule it daily with Reviews since at
2 daysand keep thereviewIds you haven't
seen.
- Feeding review text into sentiment analysis, one row per review.
From a search to a shortlist, in three runs:
1. Run Whatnot Scraper on a search word in your category and copy the sellerUsername column of its listing rows. 2. Paste those usernames here and sort the seller rows on sellerRating and sellerRatingCount. 3. Put the sellers you keep into Whatnot Scraper's sellerUsernames to see what each has listed now.
🚧 What it does not do
- No ratings without words. Whatnot doesn't list them. They are counted in
sellerRatingCount. - No more than 500 reviews in a seller row. For a full history, take one row per review, up to 20,000 a run.
- No item or order. A Whatnot review doesn't say what was bought or what it cost.
- Nothing about the reviewer beyond the username.
- No rating filter. Whatnot lists newest first and no other way, so filter on
overallRatingafterwards. - Not reviews a user left for others. Only the reviews a seller received.
- The very largest sellers can stop short. Now and then Whatnot won't hand over the older reviews of a seller with
hundreds of thousands of ratings. A free note row says how far it got; a short seller row is still charged as a row.
🧭 Which Whatnot scraper do you need?
| If you want | Use |
|---|---|
| Written reviews of Whatnot sellers, one row per seller or per review | This one |
| Whatnot listings, live shows, or seller profiles with followers and items sold | Whatnot Scraper |
| What things actually sold for on eBay | eBay Sold Listings Scraper |
| Reviews of an online shop on Trustpilot | Trustpilot Scraper |
❓ Questions people ask
Do I need a Whatnot account to get seller reviews?
No. No login and no API key, just the usernames.
Why are there fewer reviews than the rating count on the profile?
Whatnot's count covers every rating; its list holds the written ones, a sixth to a third of the ratings on the sellers we tried. Open the seller's reviews page in a private browser window: what a logged-out visitor sees there is what comes back.
Should I get one row per seller or one row per review?
Seller rows for many sellers at little cost. One row per review for more than 500 from one seller, for a spreadsheet, or for just a few reviews.
Can I call it from code or connect it to an AI assistant?
Yes. The API tab has code for Python, JavaScript and the command line. For Claude, ChatGPT or another MCP client, connect https://mcp.apify.com/?tools=fetch-actor-details,dami_studio/whatnot-reviews-scraper. Either way it runs on your Apify account at the same price.
Is scraping Whatnot reviews legal?
The reviews are public, but reviewer usernames are personal data under GDPR and similar laws, and Whatnot's terms restrict automated use, so have a reason and read them. Apify's write-up on scraping and the law is a starting point; we are not lawyers.
🆘 If something breaks
Open the Issues tab on the actor page and send the run ID and the usernames you used. The status message and RUN_REPORT say which seller fell short.