Whatnot Search Scraper
Pricing
from $1.00 / 1,000 results
Whatnot Search Scraper
Scrape Whatnot.com search results, unofficial API. Extract listings, livestreams, products, and users.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
Epic Scrapers
Actor stats
0
Bookmarked
1
Total users
1
Monthly active users
7 hours ago
Last modified
Categories
Share
Whatnot Search Scraper is a powerful Apify Actor that extracts listings, livestreams, products, and users from Whatnot.com — the fastest-growing live shopping marketplace for collectibles, trading cards, comics, and more. Whether you're a reseller tracking prices, a collector monitoring rare items, or a market researcher analyzing trends, this scraper gives you direct access to Whatnot's data via their GraphQL API without writing a single line of code.
With built-in proxy rotation, pagination handling, and optional authentication, you can scrape thousands of results reliably and export them in JSON, CSV, or Excel format for further analysis.
✨ What can Whatnot Search Scraper do?
- 🔍 Search by any keyword — Find listings, livestreams, products, or users across the entire Whatnot marketplace
- 📦 Extract multiple data types — Get structured data for listings, livestreams, products, users, categories, and tags in a single run
- 📄 Automatic pagination — Handles pagination automatically to retrieve all results (respecting your
maxResultslimit) - 🌐 Built-in proxy support — Uses Apify Proxy rotation to avoid IP blocking and rate limits
- 🔐 Optional authentication — Add browser cookies to access restricted or personalized content
- ⚡ Fast & efficient — Direct GraphQL API calls for maximum speed and reliability
- 🎯 Filter by vertical — Narrow results to specific types: Universal, Livestreams, Products, Users, or Categories
- 📊 Export anywhere — Download results as JSON, CSV, Excel, or connect to 1000+ integrations via Zapier, Make, n8n
📋 What data can you extract from Whatnot?
The Actor extracts rich, structured data across 6 entity types. Each result includes the full object data plus metadata about the search.
Common Fields (All Types)
| Field | Type | Description |
|---|---|---|
type | string | Entity type: listing, livestream, product, user, category, tag |
id | string | Unique identifier (GraphQL node ID) |
searchQuery | string | The search query used |
vertical | string | Search vertical: UNIVERSAL, LIVESTREAM, PRODUCT, USER, CATEGORY |
cursor | string | Pagination cursor for this result |
scrapedAt | string | ISO timestamp when data was extracted |
Listing Fields
| Field | Type | Description |
|---|---|---|
title | string | Listing title |
subtitle | string | Condition or variant info (e.g., "Light Played") |
description | string | Full description |
publicStatus | string | Status: ACTIVE, SOLD, etc. |
transactionType | string | BUY_IT_NOW, AUCTION, etc. |
quantity | number | Available quantity |
price | object | {amount, currency, amountSafe} — Price in cents (divide by 100 for dollars) |
currentBid | object | Current auction bid (if applicable) |
currentBidCount | number | Number of bids |
isLive | boolean | Whether item is being sold in a livestream |
livestreamStartTime | number | Unix timestamp for live sale |
user | object | Seller info: id, username, sellerRating (overall + numReviews), profileImage |
images | array | Product images with url, key, bucket, label |
labels | array | Listing labels/tags |
Livestream Fields
| Field | Type | Description |
|---|---|---|
title | string | Stream title |
status | string | created, playing, ended, etc. |
startTime | number | Unix timestamp |
activeViewers | number | Current viewer count |
thumbnail | object | Image URLs: smallImage (414×640), biggerImage (642×992) |
user | object | Streamer info: id, username, profileImage |
tags | array | Stream tags with id, label, name |
streamToken | string | Stream token |
isAutoplayEnabled | boolean | Autoplay status |
trailerUrl | string | Trailer video URL |
Product Fields
| Field | Type | Description |
|---|---|---|
name | string | Product name |
image | object | Product image with url, key, bucket |
listingPrice | object | Current listing price: {amount, currency, amountSafe} |
lastSalePrice | object | Last sold price |
numListings | number | Count of active listings for this product |
User Fields
| Field | Type | Description |
|---|---|---|
username | string | Username |
isFollowing | boolean | Whether you follow them |
isFollower | boolean | Whether they follow you |
followerCount | number | Total followers |
soldCount | number | Items sold |
isLive | boolean | Currently streaming |
canGoLive | boolean | Streamer eligibility |
sellerRating | object | {overall, numReviews} — Rating 1-5 |
profileImage | object | Profile picture URL |
Category Fields
| Field | Type | Description |
|---|---|---|
type | string | Category type |
label | string | Display name |
isFollowing | boolean | Whether you follow this category |
image | object | Category images: smallImage (316×244), biggerImage (632×488) |
🚀 How to scrape Whatnot with Whatnot Search Scraper
Follow these steps to start extracting data from Whatnot in minutes:
Step 1: Open the Actor
Go to apify.com/epicscrapers/whatnot-scraper and click "Try for free" or "Start Run".
Step 2: Configure Your Search
Fill in the input fields:
- Search Query (required): Enter what you're looking for (e.g.,
pokemon cards,funko pop,comic books) - Search Vertical: Choose
Universal(all types) or narrow toLivestreams,Products,Users, orCategories - Maximum Results: Set a limit (default 100, or 0 for unlimited)
Step 3: (Optional) Configure Advanced Options
- Include Listings/Livestreams/Products/Users: Toggle which data types to extract
- Cookies: Add browser cookies if you need authenticated access (see Authentication section)
- Proxy Configuration: Leave as default for automatic proxy rotation
Step 4: Run the Scraper
Click "Start Run". The Actor will:
- Paginate through all results
- Extract and normalize data
- Save to your Apify Dataset
Step 5: Download Your Data
Once complete, go to the Dataset tab and export as:
- JSON (default)
- CSV
- Excel
- HTML Table
Or access via API for integration with your tools.
🔧 Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
query | string | ✅ Yes | — | Search term (e.g., "pokemon", "funko pop", "marvel comics") |
vertical | string | No | UNIVERSAL | Search type: UNIVERSAL, LIVESTREAM, PRODUCT, USER, CATEGORY |
maxResults | integer | No | 100 | Max results to return. Use 0 for unlimited |
cookies | string | No | — | Browser cookies for authenticated requests (secret field) |
includeListings | boolean | No | true | Include listing items in results |
includeLivestreams | boolean | No | true | Include livestream items |
includeProducts | boolean | No | true | Include product items |
includeUsers | boolean | No | true | Include user items |
proxyConfiguration | object | No | {useApifyProxy: true} | Proxy settings |
Example Input — Basic Search
{"query": "pokemon cards","maxResults": 100}
Example Input — Livestreams Only
{"query": "funko pop","vertical": "LIVESTREAM","maxResults": 50,"includeListings": false,"includeProducts": false,"includeUsers": false}
Example Input — With Authentication
{"query": "rare comics","cookies": "usid=xxx; device=yyy; __Secure-access-token=zzz","maxResults": 200}
📤 Output Example
Here's a sample listing result for a Pokémon card search:
{"type": "listing","__typename": "ListingNode","id": "TGlzdGluZ05vZGU6MTY0MzM2MTA0MQ==","title": "Pokemon Vaporeon Holo EX Unseen Forces 19/115 Pokemon TCG","subtitle": "","description": "Pokemon Vaporeon Holo EX Unseen Forces 19/115 Pokemon TCG","publicStatus": "ACTIVE","transactionType": "BUY_IT_NOW","quantity": 1,"price": {"amount": 9500,"currency": "USD","amountSafe": 9500},"currentBid": null,"currentBidCount": null,"isLive": false,"livestreamStartTime": null,"user": {"id": "UHVibGljVXNlck5vZGU6MjM2NzcyMDQ=","username": "theparadisecards","sellerRating": {"overall": 5,"numReviews": 1207},"profileImage": {"url": "https://images.whatnot.com/..."}},"images": [{"id": "UHJvZHVjdEltYWdlOjExNjE4NDU4Mzg=","url": "https://images.whatnot.com/...","key": "listings/0-2c36277b-49d0-48d6-80f7-e1c68fdff1a8-a03605c3-c234-4672-ab62-a13f4a23300e.jpeg","bucket": "whatnot-images","label": "2c36277b-49d0-48d6-80f7-e1c68fdff1a8"}],"labels": null,"isMyListing": false,"version": "01KNG1NRWR8CCVA5VA8DB01T3P","searchQuery": "pokemon","vertical": "UNIVERSAL","cursor": "YXJyYXljb25uZWN0aW9uOjA=","scrapedAt": "2026-04-07T15:17:39.659Z"}
Export Formats
Results are stored in Apify Dataset and can be exported as:
- JSON (newline-delimited JSON)
- CSV (flattened structure)
- Excel (.xlsx)
- HTML Table
- XML
- RSS
⚖️ Is it legal to scrape Whatnot?
What data is collected?
This Actor only scrapes publicly available data from Whatnot.com:
- Public listings and their details
- Public livestreams
- Public product information
- Public user profiles and seller ratings
- Public categories and tags
This Actor does NOT collect:
- ❌ Private user data (emails, phone numbers)
- ❌ Private messages or communications
- ❌ Non-public account information
- ❌ Data behind login walls (unless you provide valid cookies)
Legal Considerations
- Whatnot's Terms of Service apply to platform usage
- This tool uses Whatnot's public GraphQL API (the same endpoint their web app uses)
- Users are responsible for complying with applicable laws and Whatnot's ToS
- The Actor includes rate limiting (500ms delay between requests) to be respectful
Disclaimer: This Actor is for informational purposes. Always ensure your use case complies with local laws and Whatnot's Terms of Service.
🔐 Authentication (Optional)
Some content may require authentication or may show different results when logged in. To use authenticated requests:
- Open Whatnot.com in your browser and log in to your account
- Open DevTools (F12 or Cmd+Option+I)
- Go to Application (Chrome) or Storage (Firefox) → Cookies
- Find cookies for
whatnot.com - Copy the cookie string (or specific cookies like
usid,device,__Secure-access-token) - Paste into the Cookies input field in the Actor (this field is marked as secret — it won't be logged)
Note: Cookies expire. If you get authentication errors, refresh your cookies.
🔗 Apify Platform Features
This Actor benefits from the full Apify platform:
| Feature | How It Helps |
|---|---|
| ⏰ Scheduling | Run the scraper daily/hourly to monitor prices or new listings |
| 🔌 API Access | Trigger runs via REST API and get JSON results programmatically |
| 🔄 Integrations | Connect to Zapier, Make, n8n, Google Sheets, Airtable, Slack, and 1000+ tools |
| 🌐 Proxy Rotation | Automatic IP rotation via Apify Proxy to avoid blocking |
| 💾 Cloud Storage | Results stored in Datasets with permanent URLs |
| 📊 Monitoring | Get alerts when runs succeed, fail, or hit thresholds |
| 🪝 Webhooks | Trigger external services when scraping completes |
Popular Integrations
- Google Sheets — Auto-import results to spreadsheets
- Airtable — Build databases of products/listings
- Slack/Discord — Get alerts for new items
- Zapier/Make — Connect to 5000+ apps
- SQL databases — Sync results to PostgreSQL, MySQL
❓ FAQ
Q: How many results can I get?
A: There's no hard limit. The Actor handles pagination automatically. Use maxResults: 0 for unlimited, but be mindful of your compute credits.
Q: Can I search for specific sellers?
A: Yes! Use the USER vertical with a search query like the seller's username.
Q: Why are prices shown as "9500" instead of "$95.00"?
A: Whatnot stores prices in cents. Divide by 100 to get the dollar amount (e.g., 9500 = $95.00).
Q: Do I need proxies?
A: The Actor uses Apify Proxy by default. You can disable it, but it's recommended for reliable scraping.
Q: Can I scrape sold/out-of-stock items?
A: The Actor captures whatever Whatnot's search returns.
Q: Is there an official Whatnot API?
A: Whatnot does not currently offer a public API for marketplace data. This Actor provides programmatic access via their internal GraphQL endpoint.
Q: How do I get only livestreams happening now?
A: Use vertical: "LIVESTREAM" and filter results where status === "playing" in your analysis.
Q: Can I get historical price data?
A: This Actor captures current snapshot data. For historical tracking, schedule runs daily and store results in your own database.
🛠️ Tips & Best Practices
For Resellers & Flippers
- Schedule runs every hour for hot categories
- Monitor
lastSalePricevslistingPriceto identify deals - Track
sellerRatingto avoid risky transactions
For Collectors
- Use specific queries like
"charizard 1st edition"for rare items - Filter by
transactionTypeto find auctions vs buy-it-now - Set up alerts for new listings via webhooks
For Researchers
- Export to CSV for Excel/Tableau analysis
- Combine with scheduling for time-series data
- Use
vertical: "PRODUCT"to analyze market trends
Power User Tips
- Start small: Test with
maxResults: 25before large runs - Use specific queries:
"2023 panini prizm"is better than"cards" - Filter on your side: Export all data, then filter in Excel/Python
- Handle rate limits: If you see 429 errors, increase delays or use residential proxies
📞 Support & Feedback
Need Help?
- Issues: Open an issue or contact via jwlben11@gmail.com
- Email: Contact me via jwlben11@gmail.com
- Discord: Join the Apify Discord community
Feature Requests
Have an idea for improvement? I'm open to custom solutions and feature requests. Contact me via:
- jwlben11@gmail.com
- Issues tab
Found a Bug?
Please include:
- Your input configuration (remove sensitive cookies)
- Error message or unexpected behavior
- Expected vs actual output
- Post it in the issues
📚 Related Actors
Check out my other Apify Actors for marketplace and e-commerce scraping: Vinted Scraper
License
ISC License — See package.json for details.
Ready to scrape Whatnot? Start your first run →