Woot Scraper
Pricing
from $3.00 / 1,000 results
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.
Pricing
from $3.00 / 1,000 results
Rating
0.0
(0)
Developer
Crawler Bros
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Scrape live deals from Woot.com — Amazon's daily-deals site. Search or browse offers across Electronics, Computers, Home & Kitchen, Sports & Outdoors, Tools & Garden, Grocery, Shirt.Woot, Wine.Woot, and Clearance; fetch a specific offer by its slug or URL; or list active site-wide events (Woot-Offs, seasonal sales). HTTP-only, no login, no cookies, no residential proxy.
What this actor does
- Four modes:
search(keyword + category browse),byOfferSlugs(exact offer lookup),activeEvents(site-wide sales/Woot-Offs currently running),byEventSlugs(every individual offer within one specific event/Woot-Off) - Full category coverage: all 10 Woot categories/sub-sites (or search across all of them at once)
- Sort options: best selling, biggest discount, newest, price high→low, price low→high
- Filters: min/max sale price, min discount %, sold-out inclusion, item color (server-side facet)
- Rich offer data: title, sale/list price, discount %, images, stock status, Amazon review stars/count, event info, item condition/color/model, SKU, and a full per-purchase-option breakdown (size/color/model/capacity/etc.) for multi-option offers
- Empty fields are omitted — no null/placeholder values in the output
Output per offer
offerId, title, subtitle, slug, offerUrl, soldOut, isFeatured, isAppFeatured, isWootOff, discountPercentage, salePrice, salePriceMax, listPrice, listPriceMax, itemCount, stockQuantity, totalUnitsSold, firstOrderedAt, lastOrderedAt, imageUrl, eventType, eventSlug, siteHostname, siteName, endDate, startDate, tags, purchaseLimit, sku, features, specs, writeUp, teaser, reviewStars, reviewCount, asin, condition, color, model, itemVariants, taxonomyCategory, taxonomyProductCategory, taxonomyProductGroup, shippingOptions, recordType, scrapedAt.
taxonomyCategory / taxonomyProductCategory / taxonomyProductGroup — Woot's own internal category taxonomy for the offer (e.g. Accessories / TECH / Batteries), more granular than the top-level category search filter.
shippingOptions — the real shipping cost tiers Woot charges for this offer ([{name, itemCost, eventCost, orderCost}], e.g. Standard/Two-Day/One-Day); cost components are only included when non-zero.
itemVariants — full per-purchase-option breakdown ([{asin, imageUrl, salePrice, listPrice, quantity, attributes}]) for offers with more than one buyable option (e.g. different sizes/colors/capacities/models bundled under one offer). imageUrl is that specific variant's own product photo when Woot has one (often differs from the offer's main imageUrl, e.g. each color option's own photo). attributes is a free-form key/value map since Woot has no fixed schema (observed keys include Color, Size, Model, Capacity, Carrier, Screen Size, Style, Count, Fit, Gender, Condition). Omitted for single-option offers.
stockQuantity is the total remaining units across all SKU variants of the offer (summed from Woot's own per-item inventory count) — a useful signal for deal urgency alongside soldOut.
totalUnitsSold is the cumulative number of units Woot has sold for this offer to date (its own running order count); firstOrderedAt/lastOrderedAt are the timestamps of the first and most recent purchase — together a real popularity signal independent of reviewCount/reviewStars.
Event records (mode=activeEvents) use a subset: eventId, title, subtitle, slug, eventType, eventUrl, startDate, endDate, siteHostname, siteName, imageUrl, recordType, scrapedAt.
mode=byEventSlugs returns full offer records (same fields as mode=search/byOfferSlugs, recordType: "offer") for every individual offer that belongs to the given event(s) — useful for grabbing an entire themed multi-item sale or Woot-Off in one call instead of enumerating individual offer slugs by hand. Every returned offer also carries eventSlug echoing which event it came from.
Input
| Field | Type | Default | Description |
|---|---|---|---|
mode | string | search | search / byOfferSlugs / activeEvents / byEventSlugs |
keyword | string | headphones | Free-text search across offer titles (mode=search) |
category | string | all | One of 10 Woot categories, or all — also used for mode=activeEvents |
sortBy | string | BestSelling | BestSelling / DiscountPercentage / NewestFirst / PriceHighToLow / PriceLowToHigh (mode=search) |
soldOutFilter | string | excludeSoldOut | excludeSoldOut / any / onlySoldOut |
minPrice / maxPrice | integer | – | Sale-price bounds in USD |
minDiscountPercentage | integer | – | Minimum discount off list price |
condition | string | – | Only keep offers whose condition contains this text, e.g. New, Refurbished |
color | string | – | Exact item color/finish (case-insensitive, e.g. Black, Blue) — server-side facet (mode=search) |
offerSlugs | array | – | Offer slugs or full URLs (mode=byOfferSlugs) |
eventSlugs | array | – | Event slugs or full URLs (mode=byEventSlugs) |
maxItems | integer | 40 | Cap on emitted records (1-500) |
Example: search deals by keyword
{"mode": "search","keyword": "headphones","category": "all","sortBy": "BestSelling","soldOutFilter": "excludeSoldOut","maxItems": 40}
Example: browse biggest discounts in a category
{"mode": "search","category": "tech","sortBy": "DiscountPercentage","minDiscountPercentage": 30,"maxItems": 40}
Example: fetch specific offers by slug
{"mode": "byOfferSlugs","offerSlugs": ["philips-g3-wired-over-ear-gaming-headphones"]}
Example: list active Woot-Offs / site-wide sales
{"mode": "activeEvents","category": "all"}
Use cases
- Deal aggregation — pull live daily deals for a deals-alert site, newsletter, or browser extension.
- Price-drop tracking — monitor
discountPercentage,salePrice, andstockQuantityfor target products. - Reseller sourcing — find deeply discounted inventory (
minDiscountPercentage) worth flipping. - Market research — analyze category mix, pricing, and Amazon review signals across Woot's daily catalog.
- Event/Woot-Off coverage — grab every offer in a themed multi-item sale in one call via
byEventSlugs.
FAQs
Do I need Woot login or cookies? No. This actor reads Woot's own public deals API anonymously, exactly like a signed-out visitor's browser does.
Does it include sold-out deals?
By default, sold-out offers are excluded. Set soldOutFilter to any or onlySoldOut to include/target them. Note: with soldOutFilter=any, sold-out and in-stock offers are fetched as two separate passes (sold-out first) and sortBy is applied independently within each pass, so the combined output is not one continuous global sort across the sold-out/in-stock boundary; with excludeSoldOut or onlySoldOut the sort is fully global.
Can I look up one specific deal?
Yes — use mode=byOfferSlugs with the offer's slug (from its URL, e.g. philips-g3-wired-over-ear-gaming-headphones) or the full woot.com/offers/... URL.
How current is the data? Every run reads Woot's live deals feed — prices, stock, and discounts reflect what's on the site at run time. Woot rotates its "deal of the day" offers roughly every 24 hours.
Limitations
- 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.