Amazon Deals Scraper
Pricing
from $3.00 / 1,000 results
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. Filter by category, brand, rating, price range and discount range across 20+ Amazon marketplaces.
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
2 days ago
Last modified
Categories
Share
Scrape Amazon's Today's Deals grid (/deals) across 23 Amazon marketplaces. Get every discounted product's ASIN, title, images, brand, department/category, variation options and pinned status. Filter by category, brand, price range, discount range and deal type (see FAQ for the current status of the minRating filter). No login required.
What this actor does
- 23 marketplaces — amazon.com, .co.uk, .de, .fr, .it, .es, .ca, .com.au, .co.jp, .in, .com.br, .com.mx, .nl, .se, .pl, .com.tr, .ae, .sa, .sg, .eg, .ie, .com.be, .co.za
- Filters: category/department, brand, deal price range, discount percent range, deal type (real collection bubbles Amazon shows on the page); a
minRatinginput also exists but currently has no effect since Amazon's Deals grid never exposes per-deal ratings (see FAQ) - Deal fields: title, images, deal/list price, savings amount/percent, deal badge text/messaging, countdown-badge expiry timestamp, claim progress, deal state/promotion type, lightning-deal flag, brand name/ID, department names/IDs, category, variation options, pinned flag
- Pagination: walks the deals grid page by page up to your limits
- Empty fields are omitted
Output per deal
asin— Amazon Standard Identification Numbertitle— product titlesourceUrl— canonical product URLimages[]— product image URLs (hi-res and low-res variants)dealPrice,listPrice—{value, currency, display}— included whenever Amazon's Deals grid carries live pricing for that specific deal (a real subset of deals — typically roughly half on any given fetch — genuinely have no price data attached, e.g. brand-level coupon promos; never fabricated, see FAQ)savingsAmount,savingsPercent— included whenever Amazon exposes them (derived from the deal's own price fields and/or its badge percentage, whichever is present)dealBadgeText— the deal grid's own badge label (e.g."15% off"), when showndealBadgeMessage— the badge's messaging line (e.g."Limited time deal"), when showndealEndsAt— ISO-8601 UTC expiry timestamp for a Lightning-Deal-style countdown badge (e.g."Ends in"), when Amazon exposes one for that dealpercentClaimed,percentClaimedMessage— live claim-progress for the deal (e.g.34.0,"34% claimed"), when Amazon exposes it for that dealdealState— the deal's live state as Amazon reports it (e.g.AVAILABLE)dealPromotionType— Amazon's internal promotion classification for the deal (e.g.BEST_DEAL,LIGHTNING_DEAL)isLightningDeal— boolean, whether Amazon's own cart data flags this as a Lightning DealbrandId,brandName— Amazon's internal brand ID and its resolved display namedepartmentIds[],departmentNames[]— Amazon's internal department/category IDs and resolved namescategorySymbol,productType— Amazon's internal category taxonomy codesbrandLogoUrl— the brand's logo image, when shownvariationDimensions— variant/size/color options and their ASINs (when present)isPinned— whether Amazon pinned this dealdealId— stable deal/promotion ID (when exposed by the widget)position— 1-based rank in the deals gridrecordType: "deal",scrapedAt
Input
| Field | Type | Default | Description |
|---|---|---|---|
marketplace | string | amazon.com | Which Amazon domain's Deals page to scrape |
dealType | string | (any) | Real collection bubble Amazon shows on the page — Lightning Deals / Coupons / Outlet / Customers' Most-Loved / Lowest Price in 365 Days / plus 30+ per-category bubbles (Electronics, Beauty, Fashion, Home, Toys & Games, etc.), all live-verified against amazon.com/deals |
category | string | – | Free-text filter matched against department name / category taxonomy code |
brand | string | – | Free-text brand substring filter |
minRating | int | – | Minimum star rating (1-5) — currently a no-op; see FAQ |
priceMin / priceMax | int | – | Deal price range (local currency, when price data is available — see FAQ) |
discountMin / discountMax | int | – | Discount percent range (when available — see FAQ) |
maxItems | int | 30 | Hard cap on emitted deals (1-2000) |
maxPages | int | 5 | Hard cap on grid pages walked (1-50) |
proxyConfiguration | object | AUTO | Apify proxy — AUTO by default, auto-escalates to residential on repeated blocks |
Example: default US deals grid
{"marketplace": "amazon.com","maxItems": 30}
Example: home & kitchen deals from a specific brand
{"marketplace": "amazon.com","category": "Home & Kitchen","brand": "Bissell","maxItems": 60}
Example: UK Customers' Most-Loved deals with a 4-star minimum
{"marketplace": "amazon.co.uk","dealType": "deals-collection-cml","minRating": 4,"maxItems": 50}
Use cases
- Deal aggregators — build a curated "today's deals" catalog feed
- Competitive intelligence — see which brands/categories Amazon is currently discounting
- Merchandising research — track which products get pinned/featured in the Deals grid
- Shopping assistants — surface deals matching a user's category/brand interest
- Catalog enrichment — pull variation options (size/color) and brand metadata for deal ASINs
FAQ
Does this require an Amazon account or cookies? No. The Deals page is publicly browsable; the actor scrapes it directly with no login.
Why don't I see dealPrice, listPrice, savingsPercent, dealBadgeText or percentClaimed on every record? Amazon's own Deals grid data genuinely omits price/badge/claim-progress information for a real subset of deals on any given fetch (commonly brand-level coupon promos with no single "deal price" to show). The actor never fabricates these fields — it populates them whenever Amazon's page includes them for that specific deal, and omits them entirely otherwise. All the catalog/structural fields (title, images, brand, category, variations) are always populated when Amazon shows them.
Why do a few records occasionally show an implausibly large dealPrice/listPrice? On rare fetches, Amazon's own Deals grid data itself carries an inflated numeric value for a handful of deals — independently confirmed live by inspecting the raw page data byte-for-byte, not an actor parsing/arithmetic error (the actor's savingsPercent math on these records is still internally correct — e.g. a genuinely-computed "30% off" — only the absolute base price is implausible). This appears tied to sessions Amazon treats as higher-risk/automated (the same class of session-dependent behavior that can also cause Amazon to render a different regional currency than expected); the actor does not attempt to "correct" these values since there is no reliable way to distinguish a genuinely expensive real deal from an inflated one without fabricating a number. If you filter downstream by price, treat an outlier far outside a category's normal range with appropriate skepticism.
Why is dealType filtering only "best effort" for some values? Amazon's Deals page groups deals into filter "bubbles". Category-style bubbles (e.g. Customers' Most-Loved) are backed by an explicit department list, so the actor can verify membership per deal. Promotion-style bubbles (Lightning Deals, Coupons, Outlet) aren't tagged per-item in the grid data the actor can see, so those filters pass every deal through rather than risk wrongly excluding a real match. Additionally, not every dealType value is guaranteed to render as a live bubble on every one of the 23 supported marketplaces on a given day (e.g. a smaller marketplace's Deals page may simply not have a "Jewelry" bubble today) — when this happens the actor logs a warning and passes every deal through unfiltered rather than silently returning zero results; check the run log if a dealType filter appears to have had no effect.
Why does sourceUrl return a 503 if I curl it directly? Amazon's edge (CloudFront) aggressively blocks plain, cookie-less, non-browser requests — a bare curl from a clean shell with no session/cookies/JS will get a 503 "Service Unavailable" even though the same URL loads fine for a real shopper's browser. This actor itself reaches the Deals grid successfully using a real browser session and proxy rotation; the URLs in the output are the correct, canonical Amazon product URLs and will render normally when opened in a browser or fetched with an equivalent session.
Does minRating actually filter anything? Not currently, in practice. Amazon's Deals grid data (the same page payload documented above) never includes a per-deal star rating — only structural/catalog fields do. Since the actor never excludes a deal on the absence of rating evidence (per its no-fabrication rule), minRating currently passes every deal through unfiltered rather than risk wrongly dropping real matches. The input is kept because a future/differently-trusted session could expose rating data the way it can expose pricing; if you need rating-based filtering today, filter the output dataset by stars after the run (it will simply be absent on every current record).
How many deals can I get per run? Amazon's Deals grid returns up to 30 items per page (occasionally fewer, depending on catalog/session state). The actor attempts to walk further pages by reproducing the grid's own "load more" request live in-browser; if Amazon doesn't expose a further page in a given session, the actor stops cleanly rather than guessing. Each deal's position is always a gapless, 1-based rank across the full run regardless of how many items any individual page actually returned.
What if my category/brand filter returns 0 results? These are free-text substring filters matched against the department name / category code / brand name Amazon exposes on each deal. If nothing matches, widen or clear the filter.
Is this affiliated with Amazon? No, this is an independent third-party actor that scrapes Amazon's public Deals page.
How fresh is the data? As fresh as the live page at run time — Amazon refreshes its Deals grid continuously throughout the day.
More Amazon Actors
Part of a full Amazon scraper suite — also check out:
- Amazon Category Scraper
- Amazon Product Scraper
- Amazon Best Sellers & Rankings Scraper
- Amazon Reviews Scraper
- Amazon Reviews Scraper Pro
- Amazon Offers Scraper (All Offers Display)
- Amazon Seller & Shop Scraper
- Amazon Brand Store Scraper
- Amazon Creator Shop Scraper
- Amazon Wishlist & Registry Scraper
- Amazon Keyword Suggestions Scraper