· 15 min read
Woot Scraper: 65 Data Fields, Up to 1,000 Free Results/Month (2026)
Each record retrieved by this scraper carries 65 output fields, exposing essential pricing and retail details including the discount percentage, sale price, remaining stock levels, and historical purchase volumes. Running this tool requires no authentication, cookies, or complex session handling. It is designed specifically for e-commerce developers, retail arbitrage practitioners, and product researchers who need clean, structured data on active flash sales. It is not for anyone who needs the full text of customer reviews, which the platform's public endpoints do not expose.
Try it: open Woot Scraper on Apify, sign in on the free plan and run the prefilled example.
Can you try Woot Scraper before paying?
Yes. Apify's free plan includes $5.00 of prepaid usage every month and asks for no credit card. At $0.005 per result, that covers up to 1,000 results of Woot Scraper a month, before run-start charges and platform usage.
The example request further down caps maxItems at 40, so a first run returns at most 40 results and costs at most $0.20 in result charges. That is enough to see the real shape of the data before deciding anything.
Woot Scraper was last updated on 2026-08-03. It is one of 1,724 Actors CrawlerBros publishes on Apify, which together have 734,650 lifetime public runs and an average rating of 4.63 out of 5 across 416 reviews.
What does it cost to run Woot Scraper?
Each result costs $0.005 on Apify's free plan, which is $5.00 per 1,000 results. Starting a run is charged separately at $0.005 per GB of Actor memory. Apify also bills the platform usage each run consumes, at the rates of your Apify plan, on top of these charges.
| Apify plan | Per result | Per 1,000 results |
|---|---|---|
| FREE | $0.005 | $5.00 |
| BRONZE | $0.00433 | $4.33 |
| SILVER | $0.00367 | $3.67 |
| GOLD | $0.003 | $3.00 |
| PLATINUM | $0.003 | $3.00 |
| DIAMOND | $0.003 | $3.00 |
The result charge is driven entirely by the number of deals written to your dataset. Adjusting the maxItems input is your primary lever for controlling charges, allowing you to cap the size of any given run. To safely test your setup without running up a bill, run a search query with maxItems set to 40, which limits your result costs to a maximum of $0.20.
How do you run Woot Scraper from the API?
The schema marks 1 of its 13 controls as required: mode. Nothing in the payload below is illustrative. Those are the schema's prefilled defaults for Woot Scraper, so the request works once your token is in place.
Call the synchronous endpoint to start a run and receive dataset items in one request:
curl -X POST "https://api.apify.com/v2/acts/crawlerbros~woot-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"mode":"search","keyword":"headphones","category":"all","sortBy":"BestSelling","soldOutFilter":"excludeSoldOut","offerSlugs":[],"eventSlugs":[],"maxItems":40}'
The same run from Python, using the official client:
from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run_input = {
"mode": "search",
"keyword": "headphones",
"category": "all",
"sortBy": "BestSelling",
"soldOutFilter": "excludeSoldOut",
"offerSlugs": [],
"eventSlugs": [],
"maxItems": 40
}
run = client.actor("crawlerbros~woot-scraper").call(run_input=run_input)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)
And from Node.js:
import { ApifyClient } from 'apify-client'
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' })
const input = {
"mode": "search",
"keyword": "headphones",
"category": "all",
"sortBy": "BestSelling",
"soldOutFilter": "excludeSoldOut",
"offerSlugs": [],
"eventSlugs": [],
"maxItems": 40
}
const run = await client.actor('crawlerbros~woot-scraper').call(input)
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)
Because the call is synchronous, your client waits for the whole run. Keep it for exploration. For scheduled work, start the run without waiting and collect the dataset afterwards, so network trouble costs you a retry rather than the results.
Which Woot Scraper inputs matter, and which can you skip?
The key control is the mode parameter, which determines whether you are executing a keyword search, looking up specific listings, or scanning active promotional events. For most search runs, configure the category and sortBy parameters to narrow your focus, and leave more specific attributes like the color or condition filters empty until you need to refine your results.
mode(string): What to fetch. Default:"search".keyword(string): Free-text search across offer titles (e.g.headphones,air fryer). Leave empty to browse a category or all deals. Default:"".category(string): Restrict to one Woot category/sub-site.allsearches every category. Also used as the category for mode=activeEvents. Default:"all".sortBy(string): Result ordering. Applied within each fetch pass; whensoldOutFilterisany, sold-out and in-stock offers are fetched as two separate passes (sold-out first) and each pass is independently sorted, so the combined output is not one continuous global sort across the sold-out/in-stock boundary. WithexcludeSoldOutoronlySoldOut(a single pass) the sort is fully global. Default:"BestSelling".soldOutFilter(string): Whether to include sold-out offers. Default:"excludeSoldOut".offerSlugs(array): Woot offer slugs (e.g.philips-g3-wired-over-ear-gaming-headphones) or full offer URLs. Default:[].eventSlugs(array): Woot event slugs (e.g.samsung-hw-q990f) or full event URLs (woot.com/events/<slug>). Returns every individual offer that belongs to that event/Woot-Off/multi-item sale -- useful for grabbing a whole themed sale in one call instead of guessing offer slugs. Default:[].maxItems(integer): Hard cap on emitted records. Default:40.minPrice(integer): Drop offers whose sale price is below this.maxPrice(integer): Drop offers whose sale price is above this.minDiscountPercentage(integer): Drop offers discounted less than this percentage off list price.condition(string): Only keep offers whose condition contains this text (case-insensitive), e.g.New,Refurbished,Reconditioned. Offers without a condition attribute always pass.
The other 1 controls, with their defaults, are listed in the input schema on Woot Scraper on Apify.
Fixed-choice controls: mode accepts search (Search / browse deals), byOfferSlugs (Lookup offers by slug or URL), activeEvents (Active site-wide events (Woot-Offs, sales)), byEventSlugs (Lookup all offers within a specific event by slug or URL); category accepts 11 values (default all), including all (All categories), tech (Electronics), pc (Computers), home (Home & Kitchen); sortBy accepts BestSelling (Best selling), DiscountPercentage (Biggest discount %), NewestFirst (Newest first), PriceHighToLow (Price: high to low), PriceLowToHigh (Price: low to high); soldOutFilter accepts excludeSoldOut (Exclude sold-out), any (Include all (any stock state)), onlySoldOut (Only sold-out).
What does Woot Scraper return?
The extracted dataset is ideal for building deal aggregators, comparing retail pricing, or identifying arbitrage opportunities because it includes exact sale prices, stock counts, and variant details. It conspicuously lacks customer review text, so you cannot use it to build sentiment analysis tools or localized product feedback loops.
offerIdtitlesubtitleslugofferUrlsoldOutisFeaturedisAppFeaturedisWootOffdiscountPercentagesalePricesalePriceMaxlistPricelistPriceMaxitemCountstockQuantitytotalUnitsSoldfirstOrderedAtlastOrderedAtimageUrleventTypeeventSlugsiteHostnamesiteNameendDatestartDatetagspurchaseLimitskufeaturesspecswriteUpteaserreviewStarsreviewCountasinconditioncolormodelitemVariantstaxonomyCategorytaxonomyProductCategorytaxonomyProductGroupshippingOptionsrecordTypescrapedAtAccessoriesTECHBatteriescategoryStandardattributesColorSizeModelCapacityCarrierStyleCountFitGenderConditioneventIdeventUrlbyOfferSlugs
These are the documented fields. Optional ones can be empty on a given record, so measure how often each field your deliverable depends on is populated across a real sample before automating the handoff.
How do you build the workflow end to end?
Open Woot Scraper and work through these in order. Each step ends with something to check, so a bad configuration surfaces on a small run rather than a scheduled one.
- Select the operation type by setting the mode parameter; choose search to browse general listings or activeEvents to discover ongoing flash sales.
- Define your target inventory by selecting a category such as tech or tools to focus the data extraction on a specific sub-site.
- Add a search query inside the keyword field when looking for specific inventory like headphones or air fryer in search mode.
- Establish price thresholds using minPrice and maxPrice to filter out low-margin items or extremely expensive listings from your dataset.
- Configure the soldOutFilter setting to excludeSoldOut to ensure you only collect active deals that consumers can purchase immediately.
- Set a reasonable maxItems value to control the size of your dataset and keep track of your estimated platform result charges.
- Run the scraper and inspect the returned dataset to ensure essential fields like salePrice, discountPercentage, and stockQuantity are populated.
How do you apply it? Three worked playbooks
These are Woot Scraper's own documented use cases, each worked through as an operating pattern rather than a description.
Use case 1: Deal aggregation
Outcome: Pull live daily deals for a deals-alert site, newsletter, or browser extension.
Configure: Set mode to "search", category to "all", sortBy to "BestSelling", soldOutFilter to "excludeSoldOut", and maxItems to 100.
Working method: Execute the scraper on a 24-hour cron schedule to capture the daily rotation of deals. For each run, parse the resulting JSON dataset and identify items with a discountPercentage above 40%. Compare the scrapedAt timestamp with your previous database entries to detect newly added listings, then push these fresh opportunities to your email campaign or web platform.
Deliverable: A structured JSON or CSV file containing current active deals, complete with the title, salePrice, discountPercentage, and clean affiliate-ready offerUrl strings.
Stop condition: The run emits an empty dataset or the siteHostname field consistently returns null, indicating a change in Woot's API structure.
Use case 2: Reseller sourcing
Outcome: Find deeply discounted inventory (minDiscountPercentage) worth flipping.
Configure: Set mode to "search", category to "tech", sortBy to "DiscountPercentage", minDiscountPercentage to 30, and soldOutFilter to "excludeSoldOut".
Working method: Run the Actor using these targeted settings to isolate high-discount electronics. Examine the returned itemVariants array for each item to identify the specific color, size, or capacity options that carry the lowest prices. Use the stockQuantity field to evaluate the urgency of the deal, prioritizing items with low remaining inventory that are likely to sell out quickly.
Deliverable: A list of heavily discounted products featuring title, salePrice, listPrice, discountPercentage, stockQuantity, and the itemVariants breakdown.
Stop condition: The stockQuantity field is missing from all returned listings, leaving you unable to verify inventory levels before buying.
Use case 3: Market research
Outcome: Analyze category mix, pricing, and Amazon review signals across Woot's daily catalog.
Configure: Set mode to "search", category to "all", sortBy to "NewestFirst", and soldOutFilter to "any".
Working method: Initiate a wide-scope run across all categories to capture a snapshot of the current catalog. Group the resulting records by taxonomyCategory and taxonomyProductGroup to map the product distribution. Analyze the relationship between reviewStars, reviewCount, and totalUnitsSold to determine if highly-rated Amazon items correlate with stronger sales velocity on Woot.
Deliverable: A aggregate dataset detailing the inventory breakdown by category, average discount rates, and corresponding Amazon review performance metrics.
Stop condition: The Amazon review metadata fields, specifically reviewStars and reviewCount, return empty for more than 90% of the retrieved listings.
What breaks, and how do you design around it?
- Woot's site-wide text search box redirects to category browsing in the UI; this actor uses the same
Keywordfilter the site's own search-as-you-browse feature uses, which matches offer titles. - Per-offer customer reviews (full review text) are not exposed by the public API - only the aggregate Amazon star rating and review count are available.
activeEventsreflects currently-running site-wide sales/Woot-Offs; Woot does not run one on every category at all times, so an empty result for a given category is expected and reported via a status message, not an error.- Woot's
sellout(clearance) category and other high-turnover offers can genuinely sell out and disappear from the site within minutes of being scraped - every field reflects the exact moment the run executed, so anofferUrlmay occasionally 404 by the time you visit it. This is normal churn on a flash-deal site, not a broken link. - The
categoryfilter narrows by Woot's own internal category grouping, not strictly by which sub-site (siteHostname) hosts the offer -- Woot itself occasionally cross-lists an offer under a category (e.g.home) while hosting it on another sub-site's domain (e.g.electronics.woot.com). This is confirmed live against Woot's own GraphQL API (not an artifact of this actor), so ahome-filtered run can legitimately include a handful ofsiteHostnamevalues other thanhome.woot.com.
When encountering a high-turnover category like clearance where items sell out in minutes, schedule frequent runs with smaller maxItems limits to catch fresh deals before they disappear. If an item url returns a 404 error shortly after extraction, integrate a rapid fallback check into your pipeline to filter out expired listings before they reach your front end.
When should you not use Woot Scraper?
Do not use this Actor if your target is a standard, full-price retail catalog rather than timed flash sales, as Woot is fundamentally built around limited-time daily deals. If you need to monitor a massive inventory of stable consumer electronics in Russia, run VseInstrumenti.ru Scraper or Regard Scraper instead. If your business model depends on tracking regional grocery flyers and weekly supermarket discounts across North America, you should use Flipp Grocery Deals Scraper rather than scraping a centralized online-only storefront like Woot. Finally, if you need a comprehensive, continuous monitoring system for the entire Amazon marketplace rather than its daily deal subsidiary, you will be better served by a dedicated tool like Amazon Deals Scraper.
What should you check before trusting the output?
- Confirm that the discountPercentage field is populated and greater than your minDiscountPercentage value.
- Verify that the salePrice field is a positive integer and does not exceed the limit specified in your maxPrice configuration.
- Check that stockQuantity is present and greater than zero when soldOutFilter is set to excludeSoldOut.
- Ensure that each product item in multi-option deals contains the itemVariants array containing individual ASINs and specific attributes.
- Inspect the eventSlug field in the output to confirm it aligns with the expected thematic sale when running in byEventSlugs mode.
None of this proves a record is correct. It gives a scheduled Woot Scraper run defined points where it should stop instead of quietly passing bad data downstream.
Frequently asked questions
How much does it cost to run this scraper on a daily basis?
Each result returned by the scraper costs $0.005 on the free-plan tier, which works out to $5.00 per 1,000 results. If you run a daily search capped at 40 items using the example configuration, you will spend at most $0.20 in result charges per run, plus any minimal platform usage consumed during execution.
Can I try this scraper before committing to a paid Apify plan?
Yes. Apify's free plan provides $5.00 of monthly usage without requiring a credit card. This budget is enough to cover up to 1,000 results from this Actor, allowing you to run several testing and optimization cycles entirely free of charge.
Does this tool require residential proxies or account logins?
No. The scraper accesses Woot's public APIs anonymously. You do not need to provide Woot account credentials, session cookies, or pay for expensive residential proxies to pull the live daily deals.
Why do some product URLs return a 404 page when I try to visit them?
Woot specializes in high-turnover flash deals and clearance events. This means items can sell out completely and be removed from the live website within minutes of your scrape run. A 404 error indicates expected inventory turnover rather than a bug in the scraping process.
Can I scrape the full text of customer reviews for these products?
No. The underlying public endpoints only expose the aggregate Amazon star rating and the overall review count. The full text of individual user reviews is not included in the 65 output fields returned by this Actor.
Where to go next
When you are ready to run it, open Woot Scraper on Apify; the free plan covers up to 1,000 results a month.
Start with the Woot Scraper Actor page for the current input schema, pricing tier, and run history.
Other Actors we maintain for related data:
- Regard Scraper: Scrape Regard.ru, a Russian computer/electronics retailer since 1992.
- Conrad Electronic Scraper: Scrape Conrad Electronic (conrad.com) - Europe's largest electronics, tools and industrial-supplies marketplace.
- Flipp Grocery Deals Scraper: Scrape real store-level weekly-ad prices near any US or Canadian postal code - Kroger, Publix, ALDI, Walmart, Target, Costco, CVS, Walgreens and dozens more retailers.
- Wegmans Grocery Scraper: Scrape live Wegmans grocery products - search by keyword, browse 30+ categories (dairy, meat, produce, seafood, frozen, bakery), or pull featured collections.
- Amazon Deals Scraper: Scrape Amazon's Today's Deals grid (/deals) - discounted products with deal price, list price, savings amount/percent, deal type, brand and department IDs.
- Loaded (CDKeys) Game Key Store Scraper: Scrape Loaded.com (formerly CDKeys.com) - search game keys, browse by platform (PC/PlayStation/Xbox/Nintendo), deals, new releases, gift cards and franchises.
- VseInstrumenti.ru Scraper: Scrape VseInstrumenti.ru - Russia's largest tools & equipment e-tailer.
- JD Sports Scraper: Scrape JD Sports UK (jdsports.co.uk) -- search or browse sneakers, streetwear, and sportswear by category or brand.
Related guides:
- Flipp Grocery Deals Scraper: Up to 1,000 Free Results a Month (2026)
- Flipp Weekly Deals & Grocery Ad Scraper: 25 Data Fields per Record
- FlashScore Live Sports Scraper: 3 Practical Use Cases
- Trolley Grocery Price Comparison Scraper: $5.00 per 1,000 Results
Resources
Actor documentation, input schema, and pricing: verified against the published Actor on 2026-10-04.
Actor last updated by its maintainers on 2026-08-03.
Run outcome figures cover the 30 day public window ending 2026-10-04.
Featured actors
Woot Scraper
Scrape Woot.com daily deals - browse or search live offers across Electronics, Computers, Home, Tools, Sport, Grocery, Shirt.Woot and Clearance, fetch offer detail by slug/URL, and pull active site-wide events. Prices, discounts, images, stock status, ratings.
Run on Apify ↗