Whatnot Seller Scraper
Pricing
from $0.80 / 1,000 listings
Whatnot Seller Scraper
Collect public Whatnot listings, live shows, seller profiles, and category insights by keyword, URL, seller username, or category. Get source fields such as prices, ratings, viewer counts, reviews, and source URLs in structured dataset rows.
Pricing
from $0.80 / 1,000 listings
Rating
0.0
(0)
Developer
Maxime Dupré
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
🛍️ Explore Whatnot marketplace data
For collectors, resellers, marketplace researchers, and developers, this Actor collects public Whatnot listings, live shows, seller profiles, and category insights. It returns structured prices, sale formats, viewer counts, seller signals, reviews, and source URLs, so you can compare marketplace activity without copying pages by hand.
Use it to:
- Compare public listing titles, prices, sellers, and source URLs with Whatnot Listings.
- Check live show titles, statuses, start times, viewer counts, tags, and sellers with Whatnot Live Shows.
- Compare public seller profiles, follower counts, sold counts, ratings, and live status with Whatnot Sellers.
- Collect public buyer ratings, review text, dates, and reviewer identities with Whatnot Reviews.
- Rank public categories by viewer and livestream counts with Whatnot Category Insights.
- Find public trading card listings and related sellers with Whatnot Trading Cards.
- Find public sneaker listings and related sellers with Whatnot Sneakers.
📦 Public listings, shows, sellers, and categories
The default dataset has four row shapes. The recordType field tells you whether a row is a listing, liveShow, sellerProfile, or categoryInsight. Saved rows include a public sourceUrl and a retrievedAt time. Some fields appear only when the public source provides them.
If the same source item appears again through another keyword, URL, username, ID, or similar submitted value, only the first eligible occurrence is saved. The row reflects that first saved match and does not combine later matches.
🔎 Choose a Whatnot search
Choose a resultType and a findBy method. You can search by keywords or a public search URL, read supported public direct URLs, find seller profiles by username, or work with a category. Mixed search uses the product, live-show, and seller search surfaces. Fields that do not match your choices are ignored.
Use one configured search in each run. Seller profiles can include public Whatnot reviews and historical or scheduled shows when you turn on those options. Listings and mixed search can use sale, price, live-only, order, and change-monitoring options. Category insights can use source-supported filters and ordering.
This Actor reads public Whatnot data and does not require a customer-supplied Whatnot login or API key. Public pages can change, disappear, or show fewer fields than expected.
⚙️ Input
Input fields
| Field | Type | What it does |
|---|---|---|
resultType | string | Chooses listings, liveShows, sellerProfiles, categoryInsights, or mixedSearch. |
findBy | string | Chooses keywords, a search URL, a direct URL, a seller username, or a category. Use the method that matches the result type. |
keywords | array of strings | Supplies one or more keywords for one configured search. |
searchUrls | array of objects | Supplies one or more public Whatnot search URLs. Each URL uses the selected result type and search surface. |
searchUrls[].url | string | Gives one public Whatnot search URL. |
directUrls | array of objects | Supplies supported public listing, seller, live-show, or category URLs. |
directUrls[].url | string | Gives one supported public Whatnot page URL. |
sellerUsernames | array of strings | Supplies one or more public Whatnot seller usernames for seller profiles. |
includeReviews | boolean | For seller profiles, requests public buyer reviews with ratings, text, dates, and reviewer identity. Source-provided review totals are included when available. |
includeShowHistory | boolean | For seller profiles, requests public historical or scheduled shows when available. |
category | string | Supplies one public Whatnot category name or slug for category insights or category-based listings, live shows, or seller results. |
categoryFilters | array of strings | For category insights, supplies filter values supported by the public Whatnot category page. |
categoryOrder | string | For category insights, chooses a source-supported order such as viewer count, livestream count, or name. |
saleFormats | array of strings | For listings and mixed search, keeps only submitted sale formats supported by Whatnot, such as auction or buy now. |
minPrice | number | For listings and mixed search, keeps listings at or above this price. |
maxPrice | number | For listings and mixed search, keeps listings at or below this price. |
liveOnly | boolean | For listings and mixed search, keeps only listings marked live by the source. |
listingOrder | string | For listings and mixed search, chooses a source-supported listing order. |
maxItems | integer | Caps the number of records. Leave it empty to return all available results until the source is exhausted. |
monitorChanges | boolean | For listings and mixed search, compares new public listing observations with prior observations for the same submitted target. |
Example input
This example is copied from the public input of the successful current-beta run used for the listing example:
{"resultType": "listings","findBy": "keywords","keywords": ["trading cards"],"includeReviews": false,"includeShowHistory": false,"liveOnly": false,"maxItems": 100,"monitorChanges": false}
🧾 Output
Run output
| Field | Type | What it does |
|---|---|---|
dataset | string | Opens the accepted public Whatnot records in the default dataset. |
Some values can be absent when Whatnot does not provide them. The tables below list every field in each public dataset shape. Dotted paths show nested objects and array elements.
Listing record fields
| Field | Type | What it does |
|---|---|---|
recordType | string | Identifies this row as a listing. |
listingId | string | Gives the stable Whatnot listing identifier. |
title | string | Gives the public listing title. |
description | string | Gives the public listing description. |
condition | string | Gives the condition shown by the seller. |
price | object | Groups the public listing price and currency. |
price.amount | number | Gives the numeric listing price. |
price.currency | string | Gives the currency code for the listing price. |
quantity | integer | Gives the quantity shown by the source. |
availability | string | Gives the availability state shown by the source. |
saleFormat | string | Gives the sale format shown by the source, such as auction or buy now. |
isLive | boolean | Says whether the source marks the listing as live. |
images | array of strings | Lists public image URLs for the listing. |
images[] | string | Gives one listing image URL. |
seller | object | Groups seller details shown with the listing. |
seller.username | string | Gives the seller's public Whatnot username. |
seller.displayName | string | Gives the seller's public display name. |
seller.profileUrl | string | Links to the seller's public profile. |
category | object | Groups category details shown with the listing. |
category.name | string | Gives the public category name. |
category.slug | string | Gives the public category slug when supplied. |
category.url | string | Links to the public category page. |
sourceUrl | string (URI) | Links to the public Whatnot source for the listing. |
retrievedAt | string (date-time) | Gives the time when the Actor retrieved the listing. |
Listing row example
This unshortened row is copied from a successful current-beta run:
{"recordType": "listing","title": "UNEEKAUCTIONS Thrift Shop by THRIFTWORX trading card","sourceUrl": "https://www.whatnot.com/search?query=trading+cards&searchVertical=PRODUCT","retrievedAt": "2026-09-03T10:48:27.693Z","listingId": "TGlzdGluZ05vZGU6MjIwNDQyMzY5NA==","description": "UNEEKAUCTIONS Thrift Shop by THRIFTWORX trading card","price": {"amount": 7,"currency": "USD"},"quantity": 74,"availability": "ACTIVE","saleFormat": "BUY_IT_NOW","isLive": false,"images": ["https://images.whatnot.com/eyJidWNrZXQiOiAid2hhdG5vdC1pbWFnZXMiLCAia2V5IjogImxpc3RpbmdzLzAtZDMxNjQyMTktNTA2My00NjBhLWJjYWEtMDVmZjM5NzdiMTMyLWJiNWE4OTFmLTA0YTctNDA2My04OGYyLWIwMmQzNTQyMThhMy5qcGVnIiwgImVkaXRzIjogeyJyZXNpemUiOiB7IndpZHRoIjogbnVsbCwgImhlaWdodCI6IG51bGwsICJmaXQiOiAiY29udGFpbiIsICJiYWNrZ3JvdW5kIjogeyJyIjogMjU1LCAiZyI6IDI1NSwgImIiOiAyNTUsICJhbHBoYSI6IDF9fX19?signature=0c18a58581678718158e528059d1ba4689a5cd9eeabd6a378065b971b45487fb"],"seller": {"username": "uneekauctions","displayName": "Don Wedd","profileUrl": "https://www.whatnot.com/user/uneekauctions"},"category": {"name": "Stickers","slug": "stickers","url": "https://www.whatnot.com/tag/stickers"}}
Live show record fields
| Field | Type | What it does |
|---|---|---|
recordType | string | Identifies this row as a live show. |
showId | string | Gives the stable Whatnot show identifier. |
title | string | Gives the public show title. |
status | string | Gives the show status shown by the source, such as live or scheduled. |
startTime | string (date-time) | Gives the public show start time. |
viewerCount | integer | Gives the viewer count shown by the source. |
thumbnailUrl | string (URI) | Links to the public show thumbnail. |
tags | array of strings | Lists public tags shown for the show. |
tags[] | string | Gives one show tag. |
category | object | Groups category details shown for the show. |
category.name | string | Gives the public category name. |
category.slug | string | Gives the public category slug when supplied. |
category.url | string | Links to the public category page. |
seller | object | Groups seller details shown for the show. |
seller.username | string | Gives the seller's public Whatnot username. |
seller.displayName | string | Gives the seller's public display name. |
seller.profileUrl | string | Links to the seller's public profile. |
sourceUrl | string (URI) | Links to the public Whatnot source for the show. |
retrievedAt | string (date-time) | Gives the time when the Actor retrieved the show. |
Live show row example
This unshortened row is copied from a successful current-beta run:
{"recordType": "liveShow","title": "SPANISH BASE SET NO ZARD PULLED POP 0 w/ Zack","status": "PLAYING","sourceUrl": "https://www.whatnot.com/search?query=pokemon","retrievedAt": "2026-09-03T10:50:58.293Z","showId": "88b639c0-cea1-4789-be6b-a4212aebde5d","startTime": "2026-09-03T07:28:42.644Z","viewerCount": 510,"thumbnailUrl": "https://images.whatnot.com/eyJidWNrZXQiOiAid2hhdG5vdC1pbWFnZXMiLCAia2V5IjogImxpdmVzdHJlYW1fdGh1bWJuYWlscy9lYjk4MjIyNi1iYmQ0LTQzZjctYTViYy1hNTQwNmY0Y2Y1YjcuanBlZyIsICJlZGl0cyI6IHsicmVzaXplIjogeyJ3aWR0aCI6IDQxNCwgImhlaWdodCI6IDY0MCwgImZpdCI6ICJjb3ZlciIsICJiYWNrZ3JvdW5kIjogeyJyIjogMjU1LCAiZyI6IDI1NSwgImIiOiAyNTUsICJhbHBoYSI6IDF9fX0sICJvdXRwdXRGb3JtYXQiOiAid2VicCJ9?signature=d5682bd9fcc29c494d6783aba8e477adafba99abb9ee10b8940c71529d547e51","tags": ["Pokémon","$1 Starts","Vintage"],"category": {"name": "Pokémon Cards","slug": "pokemon_cards","url": "https://www.whatnot.com/tag/pokemon_cards"},"seller": {"username": "collectibletags","profileUrl": "https://www.whatnot.com/user/collectibletags"}}
Seller profile record fields
| Field | Type | What it does |
|---|---|---|
recordType | string | Identifies this row as a seller profile. |
sellerId | string | Gives the stable Whatnot seller identifier. |
username | string | Gives the seller's public Whatnot username. |
displayName | string | Gives the seller's public display name. |
followerCount | integer | Gives the follower count shown by the source. |
soldCount | integer | Gives the sold-item count shown by the source. |
rating | number | Gives the seller rating shown by the source. |
reviewCount | integer | Gives the public buyer review count shown for the seller. |
isVerified | boolean | Says whether the source marks the seller as verified. |
isLive | boolean | Says whether the source marks the seller as live. |
shippingPerformance | string | Gives shipping performance information shown on the profile. |
reviews | array of objects | Lists public buyer reviews shown for the seller. |
reviews[] | object | Gives one public buyer review. |
reviews[].reviewId | string | Gives the stable review identifier. |
reviews[].rating | number | Gives the star rating shown for the review. |
reviews[].text | string | Gives the public review text when supplied. |
reviews[].reviewedAt | string (date-time) | Gives the review date and time shown by the source. |
reviews[].reviewer | object | Groups public reviewer identity details. |
reviews[].reviewer.username | string | Gives the reviewer's public Whatnot username. |
reviews[].reviewer.displayName | string | Gives the reviewer's public display name. |
reviews[].reviewer.profileUrl | string (URI) | Links to the reviewer's public profile. |
shopListings | array of objects | Lists public listings shown in the seller shop. |
shopListings[] | object | Gives one shop listing. |
shopListings[].listingId | string | Gives the stable shop listing identifier. |
shopListings[].title | string | Gives the public shop listing title. |
shopListings[].listingUrl | string (URI) | Links to the public shop listing. |
shopListings[].price | object | Groups the shop listing price and currency. |
shopListings[].price.amount | number | Gives the numeric shop listing price. |
shopListings[].price.currency | string | Gives the currency code for the shop listing price. |
shopListings[].saleFormat | string | Gives the sale format shown for the shop listing. |
shopListings[].quantity | integer | Gives the quantity shown for the shop listing. |
shopListings[].status | string | Gives the shop listing status shown by the source. |
shopListings[].updatedAt | string (date-time) | Gives the last update time shown for the shop listing. |
showHistory | array of objects | Lists public historical or scheduled shows shown for the seller. |
showHistory[] | object | Gives one seller show. |
showHistory[].showId | string | Gives the stable seller show identifier. |
showHistory[].title | string | Gives the public seller show title. |
showHistory[].status | string | Gives the status shown for the seller show. |
showHistory[].startTime | string (date-time) | Gives the public seller show start time. |
showHistory[].viewerCount | integer | Gives the viewer count shown for the seller show. |
showHistory[].thumbnailUrl | string (URI) | Links to the public seller show thumbnail. |
showHistory[].showUrl | string (URI) | Links to the public seller show. |
sourceUrl | string (URI) | Links to the public Whatnot profile for the seller. |
retrievedAt | string (date-time) | Gives the time when the Actor retrieved the seller profile. |
Seller profile row example
This genuine row is shortened. The reviews and showHistory values use "..." where the source row contains more nested data. The shop listing is shown in full.
{"recordType": "sellerProfile","username": "smj1az","sourceUrl": "https://www.whatnot.com/user/smj1az","retrievedAt": "2026-09-03T10:50:56.922Z","sellerId": "UHVibGljVXNlck5vZGU6MjcyNjgxNjE=","displayName": "Greenway Vault","followerCount": 65899,"soldCount": 65778,"rating": 4.9,"reviewCount": 8036,"isVerified": false,"isLive": false,"shippingPerformance": "0 days","reviews": "...","showHistory": "...","shopListings": [{"title": "Sealed Gengar 151C Booster Pack","listingId": "TGlzdGluZ05vZGU6MjIxMTgxNTU0Ng==","listingUrl": "https://www.whatnot.com/listing/TGlzdGluZ05vZGU6MjIxMTgxNTU0Ng%3D%3D","price": {"amount": 8,"currency": "USD"},"saleFormat": "BUY_IT_NOW","quantity": 250,"status": "ACTIVE","updatedAt": "2026-08-25T13:04:06.000Z"}]}
Category insight record fields
| Field | Type | What it does |
|---|---|---|
recordType | string | Identifies this row as a category insight. |
category | object | Groups the public category details. |
category.name | string | Gives the public category name. |
category.slug | string | Gives the public category slug when supplied. |
category.url | string (URI) | Links to the public category page. |
rank | integer | Gives the category rank shown in the source results. |
viewerCount | integer | Gives the viewer count shown for the category. |
livestreamCount | integer | Gives the livestream count shown for the category. |
subcategories | array of objects | Lists public subcategories shown for the category. |
subcategories[] | object | Gives one public subcategory. |
subcategories[].name | string | Gives the public subcategory name. |
subcategories[].slug | string | Gives the public subcategory slug when supplied. |
subcategories[].url | string (URI) | Links to the public subcategory page. |
subcategories[].viewerCount | integer | Gives the viewer count shown for the subcategory. |
subcategories[].livestreamCount | integer | Gives the livestream count shown for the subcategory. |
shows | array of objects | Lists public shows discovered in the category. |
shows[] | object | Gives one category show. |
shows[].showId | string | Gives the stable category show identifier. |
shows[].title | string | Gives the public category show title. |
shows[].status | string | Gives the status shown for the category show. |
shows[].startTime | string (date-time) | Gives the public category show start time. |
shows[].viewerCount | integer | Gives the viewer count shown for the category show. |
shows[].thumbnailUrl | string (URI) | Links to the public category show thumbnail. |
shows[].showUrl | string (URI) | Links to the public category show. |
shows[].seller | object | Groups seller details shown for the category show. |
shows[].seller.username | string | Gives the seller's public Whatnot username. |
shows[].seller.displayName | string | Gives the seller's public display name. |
shows[].seller.profileUrl | string (URI) | Links to the seller's public profile. |
sellerLeaderboard | array of objects | Lists public seller leaderboard entries shown for the category. |
sellerLeaderboard[] | object | Gives one category leaderboard entry. |
sellerLeaderboard[].rank | integer | Gives the seller rank shown by the source. |
sellerLeaderboard[].username | string | Gives the seller's public Whatnot username. |
sellerLeaderboard[].displayName | string | Gives the seller's public display name. |
sellerLeaderboard[].profileUrl | string (URI) | Links to the seller's public profile. |
sellerLeaderboard[].followerCount | integer | Gives the follower count shown for the seller. |
sellerLeaderboard[].soldCount | integer | Gives the sold-item count shown for the seller. |
sellerLeaderboard[].activeShowCount | integer | Gives the active show count shown for the seller. |
sourceUrl | string (URI) | Links to the public Whatnot source for the category. |
retrievedAt | string (date-time) | Gives the time when the Actor retrieved the category record. |
Category insight row example
This unshortened row is copied from a successful current-beta run:
{"recordType": "categoryInsight","category": {"name": "pokemon_cards","slug": "pokemon_cards","url": "https://www.whatnot.com/tag/pokemon_cards"},"sourceUrl": "https://www.whatnot.com/search?query=pokemon&searchVertical=CATEGORY","retrievedAt": "2026-09-03T10:50:57.441Z","rank": 1,"viewerCount": 9803}
💳 Pricing
This Actor uses pay-per-event pricing. A saved public listing, live show, or seller profile row charges its matching Listing, Live show, or Seller profile event. Current prices and user tiers appear in the Store pricing panel. Category insights have no separate buyer-facing event title in the current pricing configuration.
🔌 Integrations
Use the Apify Console or API to start runs and read the default dataset. The Output tab links to the same dataset for export and follow-up processing.
Watch the walkthrough:
❓ FAQ
Do I need a Whatnot login or API key?
No. The Actor reads public Whatnot pages and does not need a customer-supplied Whatnot login or API key.
Which fields are used for each search?
Choose the resultType and findBy values that match your target. For example, use keywords or a search URL for search surfaces, seller usernames for seller profiles, and a category for category-based results. Fields for other choices are ignored.
What happens when the same listing matches more than one keyword?
The Actor saves the first eligible occurrence and ignores later matches for the same source listing. The saved row reflects the first match and does not combine later matches.
What if Whatnot does not show a field?
That field can be absent from the row. The Actor keeps public source values and does not guess a missing value.
Can I request seller reviews and past shows?
Yes. Select seller profiles and turn on includeReviews or includeShowHistory. The Actor returns public reviews and historical or scheduled shows when the source provides them.
Why did my run return fewer rows than maxItems?
maxItems is a cap, not a promise. The public source may return fewer eligible rows because listings, shows, sellers, or categories can be unavailable or filtered out.
How current are prices and viewer counts?
They reflect what Whatnot showed when the Actor retrieved the row. Use retrievedAt to see that time. The source can change after the run finishes.
Does this collect private data or place orders?
No. It does not collect private or account-only data, capture live video or audio, buy or bid, or change Whatnot accounts or listings.
📝 Changelog
v0.0 (03-09-2026)
- Initial release.
🆘 Support
For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡
🔗 Related Actors
- Facebook Marketplace Listing Scraper. Collect public local listings and compare prices, availability, locations, images, and source links.
- TikTok Shop Scraper No Cookies. Collect public TikTok Shop products with seller, price, demand, variant, and shipping data.
- eBay Seller Scraper. Review public eBay seller profiles, listing snippets, feedback summaries, and optional feedback reviews.
- Whatnot Listings Scraper. Compare public Whatnot listing prices, sale formats, conditions, seller ratings, and source links.
- Whatnot Seller Scraper. Collect public Whatnot seller profiles, products, reviews, and livestreams for seller research.
Made with ❤️ by Maxime Dupré