# Whatnot Scraper: Live Shows, Products & Sellers (`getascraper/whatnot-scraper`) Actor

Get every Whatnot live show, product listing, and seller profile across 30+ categories. Every record includes price, condition, viewer count, seller rating, and lifetime sales. Works with Slack, Zapier, Google Sheets, Make. $1.50 per 1,000 records,

- **URL**: https://apify.com/getascraper/whatnot-scraper.md
- **Developed by:** [GetAScraper](https://apify.com/getascraper) (community)
- **Categories:** E-commerce, Lead generation, Automation
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.50 / 1,000 whatnot records

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Whatnot Scraper: Live Shows, Products & Sellers

**Get every Whatnot live show, product listing, and seller profile across 30+ categories. 20+ fields per record. $1.50 per 1,000 records, 50 free.**

Whatnot is the biggest livestream shopping marketplace in the US, with billions of dollars of trading cards, sneakers, comics, vintage, and electronics moving through the platform every year. This scraper pulls the data you need: live shows streaming right now, products for sale, seller profiles, and reviews. Every record is clean, structured, and ready to load into a spreadsheet, a database, or your favorite app. The first 50 records of every run are free. After that, pay only for what you use.

---

### What can you do with it?

- **You are a reseller or flipper.** Track what is selling and for how much across categories. Spot trending items before they peak. Get alerts for new listings on the products you watch.
- **You are a live shopping analyst.** Pull live show viewer counts, watchlist numbers, and seller data across all 30+ categories. Build reports on the livestream commerce market.
- **You are a card, sneaker, or vintage collector.** Search by keyword, condition, or price range. Find underpriced auctions ending soon. Track specific sellers and their full inventory.
- **You are a seller doing competitor research.** Pull any seller's full inventory, ratings, and reviews. See what similar sellers list, at what price, and how fast it sells.
- **You are a brand or marketplace operator.** Track how the livestream commerce market is moving. Compare seller performance across categories. Find partnership opportunities.
- **You are an AI or ML team.** Build training data for livestream commerce models: product images, descriptions, prices, seller behavior, viewer engagement. The output is structured, normalized, and ready for pipelines.

---

### Why this scraper?

- **All 4 data types in one actor.** Most Whatnot scrapers handle one thing: listings, or sellers, or shows. This one handles all of them in a single run. Mix and match: 200 products, 50 sellers, 30 live shows, in one dataset.
- **Fast.** Most web scrapers need a real browser to load a page. This one goes straight to the data source and skips the slow parts. You get your results in minutes, not hours.
- **20+ fields per record.** Price, condition, viewer count, seller rating, follower count, lifetime sales, category, image, status, and more. Everything you need to analyze, filter, or join to your own data.
- **Always works.** Whatnot blocks most automated tools. We handle the blocking in the background, so you do not have to think about it. Your run finishes. Your data shows up.
- **62% cheaper than the closest paid competitor.** The next-cheapest full-feature Whatnot scraper on the Apify Store charges $4.00 per 1,000 results. We charge $1.50. That is $2.50 in your pocket on every 1,000 records.
- **Use it like a regular API.** If you already have a website or an app, send a request and get back JSON in milliseconds. No SDK to install, no schedule to manage.

---

### How to use it

1. **Open the actor** in the Apify Store and click "Try for free".
2. **Pick a mode.** Search by keyword, browse a seller, scan a category, or list live and upcoming shows. Each mode shows only the inputs it needs.
3. **Fill in your filters.** Add keywords, seller usernames, category names, or pick a show status. Defaults work for most runs.
4. **Click Start.** The actor pulls the live data in a few minutes.
5. **Download your dataset** in JSON, CSV, or Excel. Or send it straight to Google Sheets, BigQuery, Slack, Make, Zapier, or your own app.

---

### Input

| Field | Type | Required | Description |
| --- | --- | :---: | --- |
| `mode` | enum | Yes | Pick what to scrape: `search`, `seller`, `category`, or `liveStreams`. |
| `searchQueries` | array | No | Keywords to search. Up to 50. Example: `["pokemon cards", "jordan 1"]`. |
| `searchUrls` | array | No | Full Whatnot search URLs. Query, vertical, and sort are auto-detected. |
| `sellerUsernames` | array | No | Whatnot @-handles. Example: `["ah_sneakers"]`. |
| `categories` | array | No | Pick from 30+ categories. Empty means all. |
| `vertical` | enum | No | `UNIVERSAL`, `PRODUCT`, `LIVESTREAM`, `USER`, `CATEGORY`. Default `PRODUCT`. |
| `buyingFormat` | enum | No | `BUY_NOW`, `ASYNC_AUCTION`, `LIVE_AUCTION`, or any. |
| `minPrice` / `maxPrice` | integer | No | USD price range. 0 skips the filter. |
| `sortBy` | enum | No | `VIEWER_COUNT`, `NEWEST`, `PRICE_ASC`, `PRICE_DESC`. |
| `showStatus` | enum | No | `live`, `upcoming`, or `all`. Live Streams mode only. |
| `includeListings` | boolean | No | Include products for sale. Default true. |
| `includeLivestreams` | boolean | No | Include live and upcoming shows. Default true. |
| `includeSellers` | boolean | No | Include seller profiles. Default false. |
| `includeReviews` | boolean | No | Pull reviews per seller. Default true. |
| `maxReviews` | integer | No | Reviews per seller. Default 50. Max 500. |
| `includeSubcategories` | boolean | No | Return subcategory tree. Default true. |
| `includeSellerEnrichment` | boolean | No | Add seller rating, followers, sales to every product. Default false. |
| `maxSellerEnrichment` | integer | No | Cap on seller lookups. Default 20. Max 500. |
| `maxItems` | integer | No | Max records to return. Default 100. Max 1,000,000. |
| `maxResultsPerQuery` | integer | No | Results per keyword or seller. Default 100. |
| `cookies` | text | No | Optional. Whatnot login cookies for personalized data. |
| `maxConcurrency` | integer | No | Parallel requests. Default 5. |
| `debugLogging` | boolean | No | Verbose logs. Default false. |
| `proxyConfiguration` | object | Yes | Residential proxy. Whatnot blocks most automated traffic. |

---

### Output

Each row in the dataset is one Whatnot record. The shape depends on the mode. Here is what a real product record looks like:

```json
{
    "type": "product",
    "id": "1417486981",
    "title": "1999 Pokemon Base Set Holo Charizard #4 PSA 7",
    "description": "Beautiful holo Charizard from the original Base Set. Lightly played corners, sharp edges. Ships in a top loader with penny sleeve.",
    "price": 12500.00,
    "currency": "USD",
    "condition": "USED_VERY_GOOD",
    "buyingFormat": "ASYNC_AUCTION",
    "category": "Trading Card Games",
    "status": "ACTIVE",
    "imageUrl": "https://images.whatnot.com/abc123.jpg",
    "sellerUsername": "cardking_99",
    "sellerVerified": true,
    "sellerRating": 4.92,
    "reviewCount": 1820,
    "followerCount": 24500,
    "soldCount": 8930,
    "url": "https://www.whatnot.com/live/abc123",
    "scrapedAt": "2026-06-18T15:30:00.000Z"
}
````

Live show records add `viewerCount`, `watchlistCount`, `startTime`, `isLive`, and `thumbnail`. Seller records add `isPremierShop`, `joinedAt`, and the seller's full review history. You can download the dataset in JSON, CSV, Excel, or HTML, or send it directly to Google Sheets, BigQuery, Slack, or your own app.

***

### Data table

| Field | Type | Description |
| --- | :---: | --- |
| `type` | text | One of `product`, `live_stream`, `seller`, or `category`. |
| `title` | text | Listing title or live show title. |
| `description` | text | Full product description (products only). |
| `price` | number | Listed price in USD. |
| `currency` | text | Currency code. Always `USD` on Whatnot. |
| `condition` | text | `NEW`, `USED_LIKE_NEW`, `USED_VERY_GOOD`, `USED_GOOD`, `USED_ACCEPTABLE`. |
| `buyingFormat` | text | `BUY_NOW`, `ASYNC_AUCTION`, or `LIVE_AUCTION`. |
| `category` | text | Top-level Whatnot category, fully spelled out. |
| `status` | text | `ACTIVE`, `SOLD`, `EXPIRED`, or `DRAFT`. |
| `imageUrl` | image | Primary listing or show thumbnail. |
| `sellerUsername` | text | The seller's @-handle. |
| `sellerVerified` | boolean | True if Whatnot has verified the seller. |
| `sellerRating` | number | Seller's average star rating, 0 to 5. |
| `reviewCount` | number | Total reviews the seller has received. |
| `followerCount` | number | Seller's follower count. |
| `soldCount` | number | Lifetime sales count for the seller. |
| `isLive` | boolean | True if the show is streaming right now. |
| `isPremierShop` | boolean | True if the seller is a Whatnot Premier shop. |
| `viewerCount` | number | Current live viewers (live shows only). |
| `watchlistCount` | number | Users watching the upcoming show. |
| `startTime` | date | Scheduled start time of the show. |
| `joinedAt` | date | When the seller joined Whatnot. |
| `url` | link | Canonical Whatnot URL for the record. |
| `scrapedAt` | date | Timestamp of when the data was extracted. |

***

### Pricing

**$1.50 per 1,000 records. The first 50 records of every run are free.** No monthly fee.

| Volume | What you pay |
| :--- | :---: |
| 50 records (free trial) | $0.00 |
| 1,000 records | $1.50 |
| 10,000 records | $15.00 |
| 100,000 records | $150.00 |
| 1,000,000 records | $1,500.00 |

The next-cheapest full-feature Whatnot scraper on the Apify Store charges $4.00 per 1,000 records and gives you no free trial. We charge 62% less and give you 50 free records on every run. For a 100,000-record pull, that is $250 in your pocket.

***

### Tips and advanced options

- **Use the seller enrichment option** if you want seller rating, followers, and sold count attached to every product record. Off by default to keep small pulls cheap. Cap it so a runaway search does not cost more than expected.
- **Use your own Whatnot account for personalized data.** Paste your login cookies. The actor will use your session for higher rate limits, your followed sellers, and any data behind your login. Cookies are never logged or stored.
- **Use search URLs to mix different searches.** Paste full URLs with different queries, verticals, and sort orders. Each URL is processed separately, all in one run.
- **Lower the parallel request count** if you start seeing errors. The default works for most runs.
- **Use the live streams filter** to scrape only live and upcoming shows. The Output tab filters out products and sellers automatically.
- **Schedule hourly or daily runs** to track price changes, new listings, and live show starts over time.
- **Use the live API mode** for real-time access. Send a request and get back JSON in milliseconds, no schedule needed.

***

### FAQ

**Is scraping Whatnot legal?**
This actor retrieves publicly visible data that anyone can see without logging in. You are responsible for ensuring your use case complies with Whatnot's Terms of Service and applicable laws. Do not scrape private messages, follow lists, or data behind a login unless you have permission.

**Why do I need a proxy?**
Whatnot blocks most automated traffic at the edge. The actor handles proxy rotation and blocking for you in the background, so you do not have to think about it. Just leave the default settings.

**Why is this so much faster than other scrapers?**
Most web scrapers load the full page in a real browser before pulling data. This one goes straight to the data source and skips the slow parts. You get your results in minutes, not hours.

**Can I scrape my own account?**
Yes. Paste your login cookies. The actor will use your session for higher rate limits, your followed sellers, and any data behind your login.

**What if a field is empty?**
Some fields depend on the mode and the seller's profile completeness. `description` only exists for products. `viewerCount` only exists for live shows. `joinedAt` only exists for sellers. The Output tab filters records by type, so empty fields stay in the right view.

**How does the free trial work?**
Every new Apify user gets $5 of platform credit. The first 50 records of every run are free, so you can evaluate data quality before spending anything. After the free tier, billing is $1.50 per 1,000 records.

**What categories are supported?**
All 30+ Whatnot categories: Trading Card Games, Entertainment Cards, Sports Cards, Sports Memorabilia, Sports & Outdoors, Anime & Manga, Comics, Video Games, Toys & Hobbies, Sneakers & Streetwear, Electronics, Coins & Money, Jewelry, Beauty, Women's Fashion, Men's Fashion, Bags & Accessories, Home & Garden, Antiques & Vintage Decor, Arts & Handmade, Baby & Kids, Pets, Food & Drink, Music, Books & Movies, Rocks & Crystals, Knives & Hunting, Wholesale & Deals, Estate Sales & Storage Units.

***

### Disclaimers and support

- **Disclaimer**: This actor retrieves publicly available data on Whatnot.com. Make sure your usage complies with Whatnot's terms of service and applicable laws. This actor is not affiliated with, endorsed by, or sponsored by Whatnot.
- **Support**: Open an issue from the [Issues tab](https://apify.com/actorstack/whatnot-scraper/issues) for bug reports or feature requests.

# Actor input Schema

## `mode` (type: `string`):

What kind of data do you want? Search looks up keywords across products, shows, sellers, and categories. Seller pulls one seller's profile, shows, and reviews. Category browses 30+ Whatnot categories. Live Streams shows what's streaming now (and what's coming up).

## `searchQueries` (type: `array`):

Words or phrases to search for on Whatnot. Add up to 50. Each one is searched separately. Example: 'pokemon cards', 'jordan 1', 'funko pop'. Leave this empty if you're using Search URLs or another mode.

## `searchUrls` (type: `array`):

Paste full Whatnot search URLs (one per line). Each URL's query, vertical, and sort are auto-detected, so you can mix different searches in one run. Example: 'https://www.whatnot.com/search?query=pokemon\&searchVertical=PRODUCT'. The vertical and include\* filters in the section below do NOT apply to URLs.

## `sellerUsernames` (type: `array`):

The Whatnot usernames (the @-style handles) of the sellers you want to look up. Example: 'ah\_sneakers'. Don't use their display name, use the handle shown in their profile URL. Leave this empty if you're not scraping a specific seller.

## `categories` (type: `array`):

Pick the categories you want to browse. Leave empty for all categories. Available: Trading Card Games, Entertainment Cards, Sports Cards, Sports Memorabilia, Sports & Outdoors, Anime & Manga, Comics, Video Games, Toys & Hobbies, Sneakers & Streetwear, Electronics, Coins & Money, Jewelry, Beauty, Women's Fashion, Men's Fashion, Bags & Accessories, Home & Garden, Antiques & Vintage Decor, Arts & Handmade, Baby & Kids, Pets, Food & Drink, Music, Books & Movies, Rocks & Crystals, Knives & Hunting, Wholesale & Deals, Estate Sales & Storage Units.

## `vertical` (type: `string`):

Filter results to a single type. Everything returns all types mixed together. Products For Sale returns only items listed for sale. Live Shows returns only live or upcoming streams. Seller Profiles returns only seller accounts. Categories returns only category pages. Only used in Search mode.

## `buyingFormat` (type: `string`):

Only show items in a specific format. Any Format keeps everything. Buy It Now is fixed-price listings. Async Auction ends at a set time. Live Auction ends while a show is streaming. Only used in Search mode.

## `minPrice` (type: `integer`):

Skip anything cheaper than this. Set to 0 to skip the filter. Only used in Search mode.

## `maxPrice` (type: `integer`):

Skip anything more expensive than this. Set to 0 to skip the filter. Only used in Search mode.

## `sortBy` (type: `string`):

How to order the results. Most Viewers First works best for live shows. Newest First for recent listings. Price: Low To High or High To Low for price-sorted listings.

## `showStatus` (type: `string`):

Pick which shows to get. Live Now returns only shows streaming right now. Upcoming returns shows scheduled to start later. All returns both. Only used in Live & Upcoming Shows mode.

## `includeListings` (type: `boolean`):

Include items that sellers have listed for sale. Turn off if you only want live shows and sellers. Only used in Search mode.

## `includeLivestreams` (type: `boolean`):

Include live and upcoming shows in the results. Turn off if you only want products and sellers. Only used in Search mode.

## `includeSellers` (type: `boolean`):

Include seller accounts in the results. Off by default since most people want products, not profiles. Only used in Search mode.

## `includeReviews` (type: `boolean`):

Pull in each seller's recent reviews and star rating. Only used in Seller Profile mode.

## `maxReviews` (type: `integer`):

How many reviews to grab from each seller. Only matters if you turned on Include Seller Reviews. Default 50 is plenty for most uses.

## `includeSubcategories` (type: `boolean`):

Also return the subcategory tree under each parent category (for example, 'Basketball Cards' under 'Sports Cards'). Only used in Browse Categories mode.

## `includeSellerEnrichment` (type: `boolean`):

Look up each seller's rating, follower count, and total sales for every product. Makes results richer but costs more. Off by default.

## `maxSellerEnrichment` (type: `integer`):

Limit how many sellers to look up in this run. Only matters if you turned on Add Seller Info above. Stops the run from looking up thousands of sellers by accident.

## `maxItems` (type: `integer`):

The most results you'll get back across all types (products, shows, sellers). Set to 0 for no limit. Higher numbers mean longer runs and higher cost.

## `maxResultsPerQuery` (type: `integer`):

How many results to pull per keyword or per seller. Lower this for faster runs when searching for popular terms.

## `cookies` (type: `string`):

OPTIONAL. If you have a Whatnot account, paste your login cookies here to get personalized data (your followed sellers, watchlist, higher rate limits). Most people should leave this blank. To find your cookies: log into Whatnot in your browser, press F12 to open Developer Tools, then copy the 'Cookie' value from any request.

## `maxConcurrency` (type: `integer`):

How many requests the Actor runs in parallel. The default (5) is safe. Don't change this unless you're hitting errors.

## `debugLogging` (type: `boolean`):

Turn on to see exactly what the Actor is doing step by step. Useful if something goes wrong, but makes logs noisy. Off by default.

## `proxyConfiguration` (type: `object`):

Whatnot blocks automated traffic, so this Actor needs to use a residential proxy (real home internet connections, not data center IPs). The default uses Apify's residential proxy and works for most people. Only change this if you know what you're doing.

## Actor input object example

```json
{
  "mode": "search",
  "searchQueries": [
    "pokemon cards",
    "jordan 1"
  ],
  "searchUrls": [
    {
      "url": "https://www.whatnot.com/search?query=pokemon&searchVertical=PRODUCT"
    }
  ],
  "sellerUsernames": [],
  "categories": [
    "Trading Card Games",
    "Sneakers & Streetwear"
  ],
  "vertical": "PRODUCT",
  "buyingFormat": "",
  "minPrice": 0,
  "maxPrice": 0,
  "sortBy": "NEWEST",
  "showStatus": "live",
  "includeListings": true,
  "includeLivestreams": true,
  "includeSellers": false,
  "includeReviews": true,
  "maxReviews": 50,
  "includeSubcategories": true,
  "includeSellerEnrichment": false,
  "maxSellerEnrichment": 20,
  "maxItems": 100,
  "maxResultsPerQuery": 100,
  "cookies": "",
  "maxConcurrency": 5,
  "debugLogging": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `results` (type: `string`):

All scraped records (products, livestreams, sellers, categories) pushed to the dataset.

## `runSummary` (type: `string`):

JSON metadata describing the run: counts by record type, proxy strategy used, Cloudflare challenges resolved, runtime.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "mode": "search",
    "searchQueries": [
        "pokemon cards",
        "jordan 1"
    ],
    "searchUrls": [
        {
            "url": "https://www.whatnot.com/search?query=pokemon&searchVertical=PRODUCT"
        }
    ],
    "sellerUsernames": [],
    "categories": [
        "Trading Card Games",
        "Sneakers & Streetwear"
    ],
    "vertical": "PRODUCT",
    "buyingFormat": "",
    "minPrice": 0,
    "maxPrice": 0,
    "sortBy": "NEWEST",
    "showStatus": "live",
    "includeListings": true,
    "includeLivestreams": true,
    "includeSellers": false,
    "includeReviews": true,
    "maxReviews": 50,
    "includeSubcategories": true,
    "includeSellerEnrichment": false,
    "maxSellerEnrichment": 20,
    "maxItems": 100,
    "maxResultsPerQuery": 100,
    "cookies": "",
    "maxConcurrency": 5,
    "debugLogging": false,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("getascraper/whatnot-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "mode": "search",
    "searchQueries": [
        "pokemon cards",
        "jordan 1",
    ],
    "searchUrls": [{ "url": "https://www.whatnot.com/search?query=pokemon&searchVertical=PRODUCT" }],
    "sellerUsernames": [],
    "categories": [
        "Trading Card Games",
        "Sneakers & Streetwear",
    ],
    "vertical": "PRODUCT",
    "buyingFormat": "",
    "minPrice": 0,
    "maxPrice": 0,
    "sortBy": "NEWEST",
    "showStatus": "live",
    "includeListings": True,
    "includeLivestreams": True,
    "includeSellers": False,
    "includeReviews": True,
    "maxReviews": 50,
    "includeSubcategories": True,
    "includeSellerEnrichment": False,
    "maxSellerEnrichment": 20,
    "maxItems": 100,
    "maxResultsPerQuery": 100,
    "cookies": "",
    "maxConcurrency": 5,
    "debugLogging": False,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("getascraper/whatnot-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "mode": "search",
  "searchQueries": [
    "pokemon cards",
    "jordan 1"
  ],
  "searchUrls": [
    {
      "url": "https://www.whatnot.com/search?query=pokemon&searchVertical=PRODUCT"
    }
  ],
  "sellerUsernames": [],
  "categories": [
    "Trading Card Games",
    "Sneakers & Streetwear"
  ],
  "vertical": "PRODUCT",
  "buyingFormat": "",
  "minPrice": 0,
  "maxPrice": 0,
  "sortBy": "NEWEST",
  "showStatus": "live",
  "includeListings": true,
  "includeLivestreams": true,
  "includeSellers": false,
  "includeReviews": true,
  "maxReviews": 50,
  "includeSubcategories": true,
  "includeSellerEnrichment": false,
  "maxSellerEnrichment": 20,
  "maxItems": 100,
  "maxResultsPerQuery": 100,
  "cookies": "",
  "maxConcurrency": 5,
  "debugLogging": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call getascraper/whatnot-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=getascraper/whatnot-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Whatnot Scraper: Live Shows, Products & Sellers",
        "description": "Get every Whatnot live show, product listing, and seller profile across 30+ categories. Every record includes price, condition, viewer count, seller rating, and lifetime sales. Works with Slack, Zapier, Google Sheets, Make. $1.50 per 1,000 records,",
        "version": "0.1",
        "x-build-id": "Ad1qpBWgtfDG9BhZ0"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/getascraper~whatnot-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-getascraper-whatnot-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/getascraper~whatnot-scraper/runs": {
            "post": {
                "operationId": "runs-sync-getascraper-whatnot-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/getascraper~whatnot-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-getascraper-whatnot-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "mode",
                    "proxyConfiguration"
                ],
                "properties": {
                    "mode": {
                        "title": "Pick a Mode",
                        "enum": [
                            "search",
                            "seller",
                            "category",
                            "liveStreams"
                        ],
                        "type": "string",
                        "description": "What kind of data do you want? Search looks up keywords across products, shows, sellers, and categories. Seller pulls one seller's profile, shows, and reviews. Category browses 30+ Whatnot categories. Live Streams shows what's streaming now (and what's coming up).",
                        "default": "search"
                    },
                    "searchQueries": {
                        "title": "Search Keywords",
                        "type": "array",
                        "description": "Words or phrases to search for on Whatnot. Add up to 50. Each one is searched separately. Example: 'pokemon cards', 'jordan 1', 'funko pop'. Leave this empty if you're using Search URLs or another mode.",
                        "default": []
                    },
                    "searchUrls": {
                        "title": "Search URLs",
                        "type": "array",
                        "description": "Paste full Whatnot search URLs (one per line). Each URL's query, vertical, and sort are auto-detected, so you can mix different searches in one run. Example: 'https://www.whatnot.com/search?query=pokemon&searchVertical=PRODUCT'. The vertical and include* filters in the section below do NOT apply to URLs.",
                        "default": [],
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "sellerUsernames": {
                        "title": "Seller Usernames",
                        "type": "array",
                        "description": "The Whatnot usernames (the @-style handles) of the sellers you want to look up. Example: 'ah_sneakers'. Don't use their display name, use the handle shown in their profile URL. Leave this empty if you're not scraping a specific seller.",
                        "default": []
                    },
                    "categories": {
                        "title": "Whatnot Categories",
                        "type": "array",
                        "description": "Pick the categories you want to browse. Leave empty for all categories. Available: Trading Card Games, Entertainment Cards, Sports Cards, Sports Memorabilia, Sports & Outdoors, Anime & Manga, Comics, Video Games, Toys & Hobbies, Sneakers & Streetwear, Electronics, Coins & Money, Jewelry, Beauty, Women's Fashion, Men's Fashion, Bags & Accessories, Home & Garden, Antiques & Vintage Decor, Arts & Handmade, Baby & Kids, Pets, Food & Drink, Music, Books & Movies, Rocks & Crystals, Knives & Hunting, Wholesale & Deals, Estate Sales & Storage Units.",
                        "default": []
                    },
                    "vertical": {
                        "title": "What Type Of Results",
                        "enum": [
                            "UNIVERSAL",
                            "PRODUCT",
                            "LIVESTREAM",
                            "USER",
                            "CATEGORY"
                        ],
                        "type": "string",
                        "description": "Filter results to a single type. Everything returns all types mixed together. Products For Sale returns only items listed for sale. Live Shows returns only live or upcoming streams. Seller Profiles returns only seller accounts. Categories returns only category pages. Only used in Search mode.",
                        "default": "PRODUCT"
                    },
                    "buyingFormat": {
                        "title": "Purchase Type",
                        "enum": [
                            "",
                            "BUY_NOW",
                            "ASYNC_AUCTION",
                            "LIVE_AUCTION"
                        ],
                        "type": "string",
                        "description": "Only show items in a specific format. Any Format keeps everything. Buy It Now is fixed-price listings. Async Auction ends at a set time. Live Auction ends while a show is streaming. Only used in Search mode.",
                        "default": ""
                    },
                    "minPrice": {
                        "title": "Lowest Price (USD)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Skip anything cheaper than this. Set to 0 to skip the filter. Only used in Search mode.",
                        "default": 0
                    },
                    "maxPrice": {
                        "title": "Highest Price (USD)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Skip anything more expensive than this. Set to 0 to skip the filter. Only used in Search mode.",
                        "default": 0
                    },
                    "sortBy": {
                        "title": "Sort Results By",
                        "enum": [
                            "VIEWER_COUNT",
                            "NEWEST",
                            "PRICE_ASC",
                            "PRICE_DESC"
                        ],
                        "type": "string",
                        "description": "How to order the results. Most Viewers First works best for live shows. Newest First for recent listings. Price: Low To High or High To Low for price-sorted listings.",
                        "default": "NEWEST"
                    },
                    "showStatus": {
                        "title": "Which Shows",
                        "enum": [
                            "live",
                            "upcoming",
                            "all"
                        ],
                        "type": "string",
                        "description": "Pick which shows to get. Live Now returns only shows streaming right now. Upcoming returns shows scheduled to start later. All returns both. Only used in Live & Upcoming Shows mode.",
                        "default": "live"
                    },
                    "includeListings": {
                        "title": "Include Products For Sale",
                        "type": "boolean",
                        "description": "Include items that sellers have listed for sale. Turn off if you only want live shows and sellers. Only used in Search mode.",
                        "default": true
                    },
                    "includeLivestreams": {
                        "title": "Include Live Shows",
                        "type": "boolean",
                        "description": "Include live and upcoming shows in the results. Turn off if you only want products and sellers. Only used in Search mode.",
                        "default": true
                    },
                    "includeSellers": {
                        "title": "Include Seller Profiles",
                        "type": "boolean",
                        "description": "Include seller accounts in the results. Off by default since most people want products, not profiles. Only used in Search mode.",
                        "default": false
                    },
                    "includeReviews": {
                        "title": "Include Seller Reviews",
                        "type": "boolean",
                        "description": "Pull in each seller's recent reviews and star rating. Only used in Seller Profile mode.",
                        "default": true
                    },
                    "maxReviews": {
                        "title": "Max Reviews Per Seller",
                        "minimum": 0,
                        "maximum": 500,
                        "type": "integer",
                        "description": "How many reviews to grab from each seller. Only matters if you turned on Include Seller Reviews. Default 50 is plenty for most uses.",
                        "default": 50
                    },
                    "includeSubcategories": {
                        "title": "Include Subcategories",
                        "type": "boolean",
                        "description": "Also return the subcategory tree under each parent category (for example, 'Basketball Cards' under 'Sports Cards'). Only used in Browse Categories mode.",
                        "default": true
                    },
                    "includeSellerEnrichment": {
                        "title": "Add Seller Info To Each Product",
                        "type": "boolean",
                        "description": "Look up each seller's rating, follower count, and total sales for every product. Makes results richer but costs more. Off by default.",
                        "default": false
                    },
                    "maxSellerEnrichment": {
                        "title": "Max Sellers To Look Up",
                        "minimum": 0,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Limit how many sellers to look up in this run. Only matters if you turned on Add Seller Info above. Stops the run from looking up thousands of sellers by accident.",
                        "default": 20
                    },
                    "maxItems": {
                        "title": "Max Results",
                        "minimum": 0,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "The most results you'll get back across all types (products, shows, sellers). Set to 0 for no limit. Higher numbers mean longer runs and higher cost.",
                        "default": 100
                    },
                    "maxResultsPerQuery": {
                        "title": "Max Results Per Keyword",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "How many results to pull per keyword or per seller. Lower this for faster runs when searching for popular terms.",
                        "default": 100
                    },
                    "cookies": {
                        "title": "Login Cookies (Optional)",
                        "type": "string",
                        "description": "OPTIONAL. If you have a Whatnot account, paste your login cookies here to get personalized data (your followed sellers, watchlist, higher rate limits). Most people should leave this blank. To find your cookies: log into Whatnot in your browser, press F12 to open Developer Tools, then copy the 'Cookie' value from any request.",
                        "default": ""
                    },
                    "maxConcurrency": {
                        "title": "Requests At The Same Time",
                        "minimum": 1,
                        "maximum": 20,
                        "type": "integer",
                        "description": "How many requests the Actor runs in parallel. The default (5) is safe. Don't change this unless you're hitting errors.",
                        "default": 5
                    },
                    "debugLogging": {
                        "title": "Show Detailed Logs",
                        "type": "boolean",
                        "description": "Turn on to see exactly what the Actor is doing step by step. Useful if something goes wrong, but makes logs noisy. Off by default.",
                        "default": false
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Settings",
                        "type": "object",
                        "description": "Whatnot blocks automated traffic, so this Actor needs to use a residential proxy (real home internet connections, not data center IPs). The default uses Apify's residential proxy and works for most people. Only change this if you know what you're doing.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ]
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
