Amazon Deals Scraper
Pricing
$1.50 / 1,000 deals
Amazon Deals Scraper
Scrapes Amazon Today's Deals / Coupons grids per marketplace — deal price, list price, discount %, badge (lightning/coupon/best-deal), deal end. Errors never charged.
Pricing
$1.50 / 1,000 deals
Rating
0.0
(0)
Developer
Torchtechnology LTD
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
an hour ago
Last modified
Categories
Share
What does this Actor do?
Amazon Deals Scraper harvests the Today's Deals grid of any Amazon marketplace — including Lightning deals (with live countdown and computed deal end) and Coupon deals (with the effective coupon price) — across eighteen verified marketplaces: amazon.de, .com, .co.uk, .fr, .it, .es, .ca, .com.au, .co.jp, .in, .nl, .se, .pl, .com.be, .com.mx, .com.br, .ae, and .sa. For every deal you get ASIN, title, deal price and list price as structured numbers with the marketplace's own currency, discount percentage, the deal badge, deal end time when Amazon renders a countdown, and full provenance (marketplace, source URL, scrape timestamp).
It is designed for both humans and AI agents: deterministic JSON output, documented error semantics, and pay-per-result pricing where errors are never charged.
When to use this Actor
- Deal monitoring — pull the current deals of one or all marketplaces on a schedule and feed your price-comparison, alerting, or affiliate pipeline.
- Lightning-deal tracking —
dealType: "lightning"returns only time-boxed deals, each withdealEndsIn(raw countdown) anddealEndsAt(computed UTC timestamp). - Coupon harvesting —
dealType: "coupons"returns coupon offers with the effective after-coupon price (dealPrice) and the pre-coupon price (priceBeforeCoupon). - Category-scoped research —
categorySlugscopes the grid to a deals collection such asbeauty,toys, orcomputers-and-software.
When not to use it: you need full product detail pages (use a product-data actor), historical price charts (use a price-monitor actor), or review texts (use a reviews actor).
Quickstart (API)
curl -X POST "https://api.apify.com/v2/acts/YOUR_USERNAME~amazon-deals/run-sync-get-dataset-items?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"marketplaces": ["com", "co.uk", "de"],"dealType": "all","maxItemsPerMarketplace": 50}'
Or in the Console: pick the marketplaces, click Start, download as JSON/CSV/Excel/XML.
Input reference
| Field | Type | Default | Description |
|---|---|---|---|
marketplaces | string[] | ["com"] | Marketplace codes: com, de, co.uk, fr, it, es, ca, com.au, co.jp, in, nl, se, pl, be, mx, br, ae, sa. Several per run are fine. |
dealType | string | all | all | lightning | coupons — filters the grid by deal kind. Ignored when categorySlug is set. |
categorySlug | string | — | Optional deals-collection category filter (locale-independent slug from the deals-page filter bubbles), e.g. beauty, toys, electronics, computers-and-software. Available slugs vary per marketplace; an unknown slug yields an uncharged no_results_found error item. |
maxItemsPerMarketplace | integer | 10 | Cap of unique deals per marketplace (the grid lazy-loads while scrolling; max 500). |
minDiscountPercent | integer | — | Keep only deals discounted by at least this many percent (0–95, parsed from the deal badge). Fail-closed: a deal whose badge carries no discount value does not match. |
priceRange | object | — | Keep only deals whose effective deal price is inside {"min": …, "max": …} (marketplace currency, inclusive bounds, either side optional). Fail-closed: a deal with no parsed deal price does not match. |
primeOnly | boolean | false | Keep only deals the card marks as Prime (Prime badge/icon or Prime-exclusive badge). Fail-closed: a deal without a Prime marker does not match. |
proxyConfiguration | object | bundled geo proxies | Optional — the actor ships with bundled geo proxies per marketplace (no setup needed, we cover the cost). Enable this only to force your own or Apify proxies instead. |
proxiesByMarketplace | object | — | Bring-your-own geo-pinned proxies per marketplace ({"co.uk": ["http://…"]}). Overrides the bundled pool for the listed marketplaces. |
All filters (minDiscountPercent, priceRange, primeOnly) apply after parsing but before charging: filtered-out deals never appear in the dataset and are never charged.
Output
One dataset item per unique deal:
{"asin": "B0D3J7CKFR","dealId": "019c2bdd","itemId": "amzn1.asin.B0D3J7CKFR:amzn1.deal.019c2bdd","dealType": "best-deal","title": "Apple Pencil Pro: Advanced tools, pixel-perfect precision …","url": "https://www.amazon.com/dp/B0D3J7CKFR","thumbnailUrl": "https://m.media-amazon.com/images/I/…jpg","dealPrice": { "value": 99.0, "currency": "USD" },"listPrice": { "value": 129.0, "currency": "USD" },"priceBeforeCoupon": null,"discountPercent": 23,"primeExclusive": false,"badgeText": "Limited time deal","dealEndsIn": null,"dealEndsAt": null,"marketplace": "com","sourceUrl": "https://www.amazon.com/deals","collection": null,"input": "com","scrapedAt": "2026-08-18T17:45:12.543773+00:00"}
A lightning deal additionally carries the countdown:
{"dealType": "lightning","badgeText": "Endet in 04:27:08","dealEndsIn": "04:27:08","dealEndsAt": "2026-08-18T16:27:08+00:00"}
A coupon deal carries the effective price in dealPrice and the regular price in priceBeforeCoupon:
{"dealType": "coupon","dealPrice": { "value": 22.02, "currency": "EUR" },"priceBeforeCoupon": { "value": 24.47, "currency": "EUR" },"listPrice": { "value": 29.99, "currency": "EUR" }}
You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.
Field reference
| Field | Description |
|---|---|
asin | Amazon Standard Identification Number. |
dealId | Amazon's deal/coupon id when rendered (amzn1.deal.* / promo id). |
itemId | Full provenance id of the card (amzn1.asin…:amzn1.deal…); used for dedupe. |
dealType | lightning (countdown rendered), coupon (coupon card), best-deal (discounted deal without countdown), or null when no badge is rendered. |
dealPrice | Effective deal price, structured: value + marketplace currency. For coupons: the after-coupon price. |
listPrice | Strike-through reference price (e.g. UVP/RRP) when rendered. |
priceBeforeCoupon | Coupon cards only: the price before the coupon is applied. |
discountPercent | Parsed from the badge label (e.g. "27 % Rabatt" → 27). |
primeExclusive | true when the card renders a Prime marker (Prime icon or Prime-exclusive badge); used by the primeOnly filter. |
badgeText | Raw localized badge message (e.g. "Befristetes Angebot", "Endet in …"). |
dealEndsIn / dealEndsAt | Lightning deals: raw remaining time (HH:MM:SS) and the computed UTC end timestamp. |
marketplace / sourceUrl / collection / input / scrapedAt | Provenance: which marketplace, which page, which filter, and when. |
How much does it cost?
The Actor uses pay-per-event pricing: you pay one deal event per unique deal item delivered. Error items (blocked, transport, no_results_found, deals_page_unavailable) are pushed for transparency and are never charged. Duplicate deals are deduplicated before charging, and filters are applied before charging as well.
Tips
- The deals grid lazy-loads while scrolling; the Actor scrolls until the requested number of unique deals is reached (or the grid is exhausted). Large
maxItemsPerMarketplacevalues simply take longer. - Deal inventory changes during the day (lightning deals expire) — schedule runs for stable snapshots.
- Use
categorySlugto avoid paying for deals outside your niche.
FAQ, disclaimers, and support
- Is this legal? The Actor scrapes publicly visible data only — no login, no personal data, no circumvention of technical protection measures. You are responsible for complying with applicable law and Amazon's terms in your jurisdiction.
- Known limitations: Amazon renders deals client-side; rare hydration failures surface as an uncharged
no_results_founderror — just retry. Some marketplaces offer fewer deal collections than others; an unknowncategorySlugis reported, never silently ignored. On some marketplaces (observed: it, es, se, be) Amazon currently serves a grid variant without prices — those deal items still carry ASIN, title, badge and discount %, withdealPrice/listPriceasnull. - Price accuracy: prices are parsed from the localized card markup into typed numbers (
value+ marketplacecurrency);dealPriceStringalways keeps the raw text for auditing. - Feedback: please use the Issues tab of this Actor. Custom solutions (other marketplaces, other fields) are available on request.