{
  "openapi": "3.0.1",
  "info": {
    "title": "Whatnot Scraper: Listings, Shows, Sellers, Reviews & Monitoring",
    "description": "Scrape Whatnot listings, live auctions with current bids, live and upcoming shows, seller profiles with reviews, and daily seller leaderboards. Schedule it to get only new and changed items. No Whatnot account, cookie or API key needed. Pay per result, priced below other Whatnot scrapers.",
    "version": "1.1",
    "x-build-id": "B6mhVcrlKnZweLbwx"
  },
  "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",
        "properties": {
          "mode": {
            "title": "Pick a Mode",
            "enum": [
              "search",
              "seller",
              "category",
              "liveStreams",
              "leaderboard"
            ],
            "type": "string",
            "description": "Search finds listings, shows, sellers or categories by keyword or URL. Seller looks up sellers by username (profile, reviews, shows, shop). Browse Categories lists categories with live viewers. Live & Upcoming Shows lists shows per category. Seller Leaderboard ranks top sellers per category.",
            "default": "search"
          },
          "searchUrls": {
            "title": "Search URLs",
            "type": "array",
            "description": "Paste Whatnot search URLs (one per line), for example https://www.whatnot.com/search?query=pokemon&searchVertical=PRODUCT. The keyword and result type are read from each URL. Profile links (whatnot.com/user/name) are treated as sellers. Search mode only.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "searchQueries": {
            "title": "Search Keywords",
            "type": "array",
            "description": "Words or phrases to search for, one per line. Example: pokemon cards, jordan 1, funko pop. Each keyword is searched separately. Search mode only.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "sellerUsernames": {
            "title": "Seller Usernames",
            "type": "array",
            "description": "Whatnot usernames (the handle in the profile link), for example pokemonwizard. A full profile URL or an @name also works. Seller mode only.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "categories": {
            "title": "Categories",
            "type": "array",
            "description": "Category names such as Pokémon Cards, Sneakers, Comics or a category code like pokemon_cards. In Search mode this limits listings and shows to those categories. In Browse Categories, Live & Upcoming Shows and Seller Leaderboard it selects which categories to use. Leave empty for the most-watched categories (Shows and Leaderboard) or all categories (Browse).",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "vertical": {
            "title": "What Type Of Results",
            "enum": [
              "UNIVERSAL",
              "PRODUCT",
              "LIVESTREAM",
              "USER",
              "CATEGORY"
            ],
            "type": "string",
            "description": "Everything mixes all result types. Products For Sale returns listings. Live Shows returns shows. Seller Profiles returns sellers. Categories returns category pages. Search mode only.",
            "default": "PRODUCT"
          },
          "buyingFormat": {
            "title": "Purchase Type",
            "enum": [
              "",
              "BUY_NOW",
              "ASYNC_AUCTION",
              "LIVE_AUCTION"
            ],
            "type": "string",
            "description": "Any Format keeps everything. Buy It Now returns fixed-price listings. Auction (either auction option) returns listings that sell by live auction. Search mode, products only.",
            "default": ""
          },
          "minPrice": {
            "title": "Lowest Price",
            "minimum": 0,
            "type": "integer",
            "description": "Skip listings cheaper than this, in the listing's own currency. 0 turns the filter off. Use Shipped From to keep one currency.",
            "default": 0
          },
          "maxPrice": {
            "title": "Highest Price",
            "minimum": 0,
            "type": "integer",
            "description": "Skip listings more expensive than this, in the listing's own currency. 0 turns the filter off.",
            "default": 0
          },
          "shipsFrom": {
            "title": "Shipped From",
            "enum": [
              "",
              "US",
              "GB",
              "CA",
              "AU",
              "DE",
              "FR",
              "NL",
              "BE",
              "JP",
              "AT"
            ],
            "type": "string",
            "description": "Only listings shipped from this country. Keeps prices in one currency.",
            "default": ""
          },
          "minSellerRating": {
            "title": "Minimum Seller Rating",
            "enum": [
              "",
              "4.0",
              "4.5",
              "5.0"
            ],
            "type": "string",
            "description": "Only listings from sellers rated at least this high.",
            "default": ""
          },
          "premierShopOnly": {
            "title": "Premier Shops Only",
            "type": "boolean",
            "description": "Only listings from Whatnot Premier Shops.",
            "default": false
          },
          "gradedOnly": {
            "title": "Graded Items Only",
            "type": "boolean",
            "description": "Only graded collectibles.",
            "default": false
          },
          "sortBy": {
            "title": "Sort Results By",
            "enum": [
              "NEWEST",
              "PRICE_ASC",
              "PRICE_DESC",
              "VIEWER_COUNT"
            ],
            "type": "string",
            "description": "Newest First and the price sorts apply to product searches. Most Viewers First and Newest First sort shows in Live & Upcoming Shows mode.",
            "default": "NEWEST"
          },
          "showStatus": {
            "title": "Which Shows",
            "enum": [
              "live",
              "upcoming",
              "all"
            ],
            "type": "string",
            "description": "Live Now keeps shows streaming right now. Upcoming keeps scheduled shows. All keeps both. Applies to Live & Upcoming Shows mode and to show results in search. Seller mode always returns both live and upcoming shows.",
            "default": "live"
          },
          "includeListings": {
            "title": "Include Products For Sale",
            "type": "boolean",
            "description": "Keep listings in keyword search results. Search mode.",
            "default": true
          },
          "includeLivestreams": {
            "title": "Include Live Shows",
            "type": "boolean",
            "description": "Keep shows in keyword search results. Search mode.",
            "default": true
          },
          "includeSellers": {
            "title": "Include Seller Profiles",
            "type": "boolean",
            "description": "Keep seller accounts in keyword search results. Search mode.",
            "default": false
          },
          "includeReviews": {
            "title": "Include Seller Reviews",
            "type": "boolean",
            "description": "Add each seller's recent reviews as separate records, with star ratings for shipping, packaging and accuracy. Seller mode.",
            "default": false
          },
          "maxReviews": {
            "title": "Max Reviews Per Seller",
            "minimum": 0,
            "maximum": 500,
            "type": "integer",
            "description": "How many reviews to collect per seller when reviews are on.",
            "default": 20
          },
          "includeShows": {
            "title": "Include Seller Shows",
            "type": "boolean",
            "description": "Add the seller's live and upcoming shows as separate records, with start time. Seller mode.",
            "default": false
          },
          "maxShows": {
            "title": "Max Shows Per Seller",
            "minimum": 0,
            "maximum": 200,
            "type": "integer",
            "description": "How many shows to collect per seller when shows are on.",
            "default": 10
          },
          "includeShop": {
            "title": "Include Seller Shop Listings",
            "type": "boolean",
            "description": "Add the seller's current shop listings as separate records. Seller mode.",
            "default": false
          },
          "maxListings": {
            "title": "Max Shop Listings Per Seller",
            "minimum": 0,
            "maximum": 500,
            "type": "integer",
            "description": "How many shop listings to collect per seller when the shop is on.",
            "default": 25
          },
          "includeSellerEnrichment": {
            "title": "Add Seller Info To Each Product",
            "type": "boolean",
            "description": "Look up each seller's follower count, total sales and average ship days and add them to every product. Uses one extra request per seller. Off by default.",
            "default": false
          },
          "maxSellerEnrichment": {
            "title": "Max Sellers To Look Up",
            "minimum": 0,
            "maximum": 500,
            "type": "integer",
            "description": "Limit how many sellers are looked up when seller info is on.",
            "default": 20
          },
          "includePriceStats": {
            "title": "Add Price Summary",
            "type": "boolean",
            "description": "Add one summary record per keyword and currency with the lowest, median and highest asking price of the listings collected in the run. Needs at least 10 listings. These are asking prices, not sold prices.",
            "default": false
          },
          "monitorMode": {
            "title": "Only Return Changes",
            "type": "boolean",
            "description": "Remember what earlier runs saw and return only new items and changes (new, price change, bid change, went live, rank change, vanished). The first run returns everything as new. Schedule the same input to track a niche, a seller or a leaderboard.",
            "default": false
          },
          "monitorName": {
            "title": "Monitor Name",
            "type": "string",
            "description": "Name of the saved memory for this monitor. Use a different name for each tracked list. Letters, numbers and dashes.",
            "default": "default"
          },
          "maxItems": {
            "title": "Max Results",
            "minimum": 0,
            "maximum": 1000000,
            "type": "integer",
            "description": "The most records returned across the whole run. 0 means no limit. Free-plan runs are capped at 25.",
            "default": 25
          },
          "maxResultsPerQuery": {
            "title": "Max Results Per Keyword Or Category",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "How many items to read for each keyword, category or leaderboard.",
            "default": 25
          },
          "proxyConfiguration": {
            "title": "Proxy Fallback",
            "type": "object",
            "description": "Requests go out directly first. Only if Whatnot refuses the connection does the Actor switch to this proxy for the rest of the run. The default is fine for almost everyone.",
            "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}