# Whatnot Data Scraper (`devcake/whatnot-data-scraper`) Actor

Extract product listings and discover live auction streams from Whatnot.com

- **URL**: https://apify.com/devcake/whatnot-data-scraper.md
- **Developed by:** [devcake](https://apify.com/devcake) (community)
- **Categories:** E-commerce, Lead generation
- **Features:** Limited permissions
- **Stats:** 69 total users, 1 monthly users, 100.0% runs succeeded, 2 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Whatnot Product & Live Stream Scraper

🛒 **Extract product listings and discover live auction streams from [Whatnot.com](https://www.whatnot.com)** — the popular live shopping marketplace for trading cards, sneakers, collectibles, and more.

No coding required. Just enter your search terms or select categories, and get structured data ready for analysis, research, or business intelligence.

***

### 🔍 What can this Whatnot scraper do?

🃏 **Search Products by Keywords** — Find any products across Whatnot's marketplace using search queries like "Pokemon cards", "Nike Jordans", or "vintage comics"

📺 **Find Live Streams by Keywords** — Search for specific live broadcasts using keywords like "Pokemon", "sneakers", or "vintage" to find exactly what's currently live

🔍 **Browse Live Streams by Category** — Explore live and upcoming auction streams from 30+ categories to see what's trending now

📊 **Get Seller Intelligence** — Extract seller verification status, ratings, review counts, follower counts, and sales history

🏷️ **Access Product Details** — Collect titles, descriptions, prices, conditions, images, and direct product links

***

### 💡 Why scrape Whatnot data?

📈 **Price Research** — Monitor market prices for trading cards, sneakers, and collectibles to find the best deals

🏪 **Seller Analysis** — Identify top-rated, verified sellers with strong sales history and good reviews

💰 **Arbitrage Opportunities** — Discover underpriced items across categories for resale profit

📊 **Market Trends** — Track what's selling, what's trending, and where buyer attention is focused

🔍 **Product Discovery** — Find specific items, rare collectibles, or inventory for your business

***

### 🚀 How to use Whatnot scraper

1. **Choose your mode** — Select one of three modes:
   - **Search Products** — Find listings by keywords
   - **Find Live Streams** — Search live broadcasts by keywords
   - **Browse Live Streams** — Explore streams by category

2. **Enter your criteria** — Add search keywords (e.g., "PSA 10", "Charizard") or select categories from the dropdown

3. **Set your limits** — Choose how many results you want (1-1000 per run)

4. **Run the scraper** — Click start and let it collect your data

5. **Export results** — Download as JSON, CSV, Excel, or connect via API

***

### 📋 What data can you extract from Whatnot?

#### 🛍️ Product Data

| Field | Description |
|-------|-------------|
| type | Record type ("product") |
| product_id | Unique Whatnot listing identifier |
| title | Product listing title |
| description | Full product description |
| condition | Item condition (Graded, New, Used, Not Specified) |
| price | Current listing price in USD |
| currency | Price currency (USD) |
| image | Primary product image URL |
| images | All product images as array |
| category | Product category |
| status | Listing status (ACTIVE, SOLD, etc.) |
| url | Direct link to product page |
| seller | Complete seller profile data |
| search_query | The search keyword used |
| scraped_at | ISO timestamp when scraped |

#### 👤 Seller Data (nested in products and streams)

| Field | Description |
|-------|-------------|
| seller_id | Unique seller identifier |
| username | Seller's Whatnot username |
| verified | Is seller verified by Whatnot |
| rating | Seller's overall rating (0-5) |
| review_count | Number of reviews received |
| follower_count | How many followers |
| sold_count | Total items sold |
| is_live | Currently streaming live |
| is_premier_shop | Premier seller status |
| profile_image_url | Seller's profile image |
| profile_url | Link to seller profile |

#### 📺 Live Stream Data

| Field | Description |
|-------|-------------|
| type | Record type ("live_stream") |
| stream_id | Unique stream identifier |
| title | Stream title |
| status | PLAYING, CREATED, or ENDED |
| is_live | Currently broadcasting (true if status=PLAYING) |
| viewer_count | Number of active viewers |
| watchlist_count | Users with stream on watchlist |
| start_time | When stream started (ISO timestamp) |
| category | Stream category |
| thumbnail | Stream preview image URL |
| seller | Complete seller profile data |
| url | Direct link to watch stream |
| scraped_at | ISO timestamp when scraped |

***

### 🎯 Available Categories (30)

Choose from all Whatnot categories:

| Category | Category |
|----------|----------|
| Trading Card Games | Sneakers & Streetwear |
| Entertainment Cards | Electronics |
| Sports Cards | Coins & Money |
| Sports Memorabilia | Jewelry |
| Sports & Outdoors | Beauty |
| Anime & Manga | Women's Fashion |
| Comics | Men's Fashion |
| Video Games | Bags & Accessories |
| Toys & Hobbies | Home & Garden |
| Pets | Antiques & Vintage Decor |
| Food & Drink | Arts & Handmade |
| Music | Baby & Kids |
| Books & Movies | Rocks & Crystals |
| and Whatnot | Knives & Hunting |
| Wholesale & Deals | Estate Sales & Storage Units |

***

### 📤 Output Examples

#### 🛍️ Sample Product

```json
{
  "type": "product",
  "product_id": "TGlzdGluZ05vZGU6MTQxNzQ4Njk4MQ==",
  "title": "Pokemon - Mimikyu - #1013",
  "description": "Pokemon - Mimikyu - #1013",
  "condition": "Not Specified",
  "price": 9.0,
  "currency": "USD",
  "image": "https://images.whatnot.com/....",
  "images": [
    "https://images.whatnot/...."
  ],
  "seller": {
    "seller_id": "VXNlcjoxMjM0NTY3OA==",
    "username": "tagteamtrading",
    "verified": false,
    "rating": 5.0,
    "review_count": 0,
    "follower_count": 1500,
    "sold_count": 5000,
    "is_live": false,
    "is_premier_shop": false,
    "profile_image_url": "https://images.whatnot.com/...",
    "profile_url": "https://www.whatnot.com/user/tagteamtrading"
  },
  "category": "Trading Card Games",
  "status": "ACTIVE",
  "url": "https://www.whatnot.com/listing/TGlzdGluZ05vZGU6MTQxNzQ4Njk4MQ==",
  "search_query": "Pokemon",
  "scraped_at": "2026-02-13T12:00:00Z"
}
```

#### 📺 Sample Live Stream

```json
{
  "type": "live_stream",
  "stream_id": "TGl2ZVN0cmVhbToxMjM0NTY3OA==",
  "title": "LIVE Pokemon Card Breaks!",
  "status": "PLAYING",
  "is_live": true,
  "viewer_count": 450,
  "watchlist_count": 1200,
  "start_time": "2026-02-13T10:00:00Z",
  "category": "Trading Card Games",
  "thumbnail": "https://images.whatnot.com/....",
  "seller": {
    "seller_id": "VXNlcjoxMjM0NTY3OA==",
    "username": "card_breaker",
    "verified": true,
    "rating": 4.9,
    "review_count": 1200,
    "follower_count": 8500,
    "sold_count": 15000,
    "is_live": true,
    "is_premier_shop": true,
    "profile_image_url": "https://images.whatnot.com/...",
    "profile_url": "https://www.whatnot.com/user/card_breaker"
  },
  "url": "https://www.whatnot.com/live/TGl2ZVN0cmVhbToxMjM0NTY3OA==",
  "scraped_at": "2026-02-13T12:00:00Z"
}
```

***

### 🌐 Whatnot Scraper + Apify Platform

When you use this scraper, you get all the Apify platform benefits:

⚡ **No Infrastructure** — Runs in the cloud, no servers needed

🔄 **Scheduling** — Set up automated daily or weekly scrapes

🔌 **API Access** — Connect scraped data to your apps via REST API

🔗 **Integrations** — Works with Make, Zapier, n8n, and more

📊 **Monitoring** — Track your scraping jobs in real-time

🔒 **Proxy Rotation** — Built-in proxy support to avoid blocking

***

### ❓ FAQ

#### What is Whatnot?

[Whatnot](https://www.whatnot.com) is a live shopping marketplace where sellers host livestream auctions and sell fixed-price products. It's especially popular for trading cards (Pokemon, Magic: The Gathering), sneakers, collectibles, and vintage items.

#### How do I search for specific products?

Enter your search terms in the **Search Queries** field. Use specific keywords like "PSA 10 Charizard", "Jordan 1 Chicago", or "Vintage Nintendo" for best results.

#### Can I scrape live auction streams?

Yes! There are two ways to find live streams:

- **Find Live Streams** — Search by keywords like "Pokemon" or "sneakers" to see what's currently live matching your search
- **Browse Live Streams** — Select categories to explore all live and upcoming streams in that category

You'll get data about live, upcoming, and recently ended streams including viewer counts and seller information.

#### How many results can I get?

Set any limit from 1 to 1,000 results per search query or category. For larger datasets, run multiple times with different searches.

#### Why do I need a proxy?

Whatnot has API protections that may block direct requests. Apify Proxy is included and ensures reliable, uninterrupted scraping.

#### What format is the output?

Data comes as structured JSON with clearly labeled fields. Export to CSV, Excel, or use the Apify API to connect directly to your applications.

#### Is it legal to scrape Whatnot?

This scraper extracts publicly available data from Whatnot listings and streams. It's intended for market research, price analysis, and competitive intelligence. Always respect Whatnot's Terms of Service and use data responsibly.

***

### 🔗 Related Actors

Need more Whatnot data? Check out our other scrapers:

| Actor | What It Does |
|-------|--------------|
| 👤 [**Whatnot Seller Profile Scraper**](https://apify.com/devcake/whatnot-seller-scraper) | Deep dive into seller profiles — get products, reviews, livestreams, and complete seller intelligence |

***

# Actor input Schema

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

Choose what you want to scrape

## `searchKeywords` (type: `array`):

Used for: Search Products mode OR Find Live Streams mode. Enter keywords to find specific items (e.g., Pokemon cards, Nike sneakers, Vintage comics)

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

Used for: Browse Live Streams mode only. Select categories to explore live streams. Not used for keyword search modes.

## `maxResults` (type: `integer`):

Maximum items to extract per query (search mode) or per category (browse mode)

## `enrichSellerData` (type: `boolean`):

Enhance results with additional seller information (followers, sold count, verified status). Adds 1 API call per unique seller.

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

Maximum number of unique sellers to enrich per keyword/category. Set to a lower number to avoid timeouts when scraping large result sets. 0 = no limit.

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

Configure proxy settings for accessing Whatnot (required to avoid 403 errors)

## Actor input object example

```json
{
  "mode": "searchProducts",
  "searchKeywords": [
    "Pokemon cards"
  ],
  "categories": [
    "Trading Card Games"
  ],
  "maxResults": 30,
  "enrichSellerData": true,
  "maxSellerEnrichment": 20,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `products` (type: `string`):

View product listings (search mode)

## `liveStreams` (type: `string`):

View live streams (live streams mode)

## `summary` (type: `string`):

Run statistics and metadata

# 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": "searchProducts",
    "searchKeywords": [
        "Pokemon cards"
    ],
    "categories": [
        "Trading Card Games"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("devcake/whatnot-data-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": "searchProducts",
    "searchKeywords": ["Pokemon cards"],
    "categories": ["Trading Card Games"],
}

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

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).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": "searchProducts",
  "searchKeywords": [
    "Pokemon cards"
  ],
  "categories": [
    "Trading Card Games"
  ]
}' |
apify call devcake/whatnot-data-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,devcake/whatnot-data-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/bXnR1XU61wbUYFD9w/builds/AzQCzH3YuA0bq7Hxn/openapi.json
