Dataspryva

Amazon Deals Grid Tracker by Category & Discount

Pull Amazon's Today's Deals grid across 23 marketplaces, with deal price, list price, savings amount/percent, deal type, brand, and department for each product. Filter by category, brand, price range, and discount range.

Input schema

Input fields, types, required flags, descriptions, defaults, and prefills come from the published definition. Prefill examples are distinct from defaults.

FieldTypeRequiredDescription
marketplacestringrequiredWhich Amazon domain's Today's Deals page to scrape.
categoriesarrayoptionalAmazon departments to scan. Common names: Electronics, Home & Kitchen, Kitchen, Beauty & Personal Care, Clothing Shoes & Jewelry, Toys & Games, Sports & Outdoors, Books, Pet Supplies, Automotive, Health & Household, Computers & Accessories, Cell Phones & Accessories, Video Games, Tools & Home Improvement, Patio Lawn & Garden, Baby Products, Office Products, Musical Instruments, Camera & Photo, Grocery & Gourmet Food, Amazon Devices & Accessories. Add several categories to scan past Amazon's 500-deal window.
collectionstringoptionalRestrict to one of Amazon's curated deal collections. The collection names differ by marketplace; unsupported collections return a clear status record instead of unfiltered data.
Show all input fields
FieldTypeRequiredDescription
marketplacestringrequiredWhich Amazon domain's Today's Deals page to scrape.
categoriesarrayoptionalAmazon departments to scan. Common names: Electronics, Home & Kitchen, Kitchen, Beauty & Personal Care, Clothing Shoes & Jewelry, Toys & Games, Sports & Outdoors, Books, Pet Supplies, Automotive, Health & Household, Computers & Accessories, Cell Phones & Accessories, Video Games, Tools & Home Improvement, Patio Lawn & Garden, Baby Products, Office Products, Musical Instruments, Camera & Photo, Grocery & Gourmet Food, Amazon Devices & Accessories. Add several categories to scan past Amazon's 500-deal window.
collectionstringoptionalRestrict to one of Amazon's curated deal collections. The collection names differ by marketplace; unsupported collections return a clear status record instead of unfiltered data.
brandstringoptionalCase-insensitive brand name substring (e.g. Anker, Samsung). Leave empty for all brands.
minRatingintegeroptionalKeep only deals whose product rating is at least this value. Deals without a rating are excluded when this is set.
priceMinintegeroptionalKeep deals at or above this price in the marketplace's local currency.
priceMaxintegeroptionalKeep deals at or below this price in the marketplace's local currency.
discountMinintegeroptionalKeep deals with at least this percentage off, filtered by Amazon itself.
discountMaxintegeroptionalKeep deals with at most this percentage off, filtered by Amazon itself.
primeExclusiveOnlybooleanoptionalOnly return deals in Amazon's Prime Exclusive collection.
sortBystringoptionalFeatured keeps Amazon's order. Other sorts read the fetched deal window before returning, so they may take longer.
maxItemsintegeroptionalHard cap on emitted deal records. Amazon exposes up to 500 deals per category/collection query; add categories to partition the window.

Download the published input schema

View complete JSON
{
  "description": "Scrape Amazon's Today's Deals grid by category, discount, price, collection and Prime status across 23 marketplaces. Includes rating, deal window and product details.",
  "properties": {
    "brand": {
      "default": "",
      "description": "Case-insensitive brand name substring (e.g. Anker, Samsung). Leave empty for all brands.",
      "editor": "textfield",
      "prefill": "",
      "title": "Brand",
      "type": "string"
    },
    "categories": {
      "default": [],
      "description": "Amazon departments to scan. Common names: Electronics, Home & Kitchen, Kitchen, Beauty & Personal Care, Clothing Shoes & Jewelry, Toys & Games, Sports & Outdoors, Books, Pet Supplies, Automotive, Health & Household, Computers & Accessories, Cell Phones & Accessories, Video Games, Tools & Home Improvement, Patio Lawn & Garden, Baby Products, Office Products, Musical Instruments, Camera & Photo, Grocery & Gourmet Food, Amazon Devices & Accessories. Add several categories to scan past Amazon's 500-deal window.",
      "editor": "stringList",
      "items": {
        "type": "string"
      },
      "prefill": [],
      "title": "Categories / departments",
      "type": "array"
    },
    "collection": {
      "default": "",
      "description": "Restrict to one of Amazon's curated deal collections. The collection names differ by marketplace; unsupported collections return a clear status record instead of unfiltered data.",
      "editor": "select",
      "enum": [
        "",
        "lightning-deals",
        "coupons",
        "outlet",
        "customers-most-loved",
        "new-arrivals",
        "trending",
        "prime-exclusive",
        "refurbished",
        "premium-brands",
        "amazon-brands"
      ],
      "enumTitles": [
        "Any collection",
        "Lightning Deals",
        "Coupons",
        "Outlet",
        "Customers' Most-Loved",
        "New Arrivals",
        "Trending",
        "Prime Exclusive",
        "Refurbished",
        "Premium Brands",
        "Amazon Brands"
      ],
      "prefill": "",
      "title": "Deal collection",
      "type": "string"
    },
    "discountMax": {
      "description": "Keep deals with at most this percentage off, filtered by Amazon itself.",
      "maximum": 100,
      "minimum": 0,
      "title": "Maximum discount (%)",
      "type": "integer"
    },
    "discountMin": {
      "description": "Keep deals with at least this percentage off, filtered by Amazon itself.",
      "maximum": 100,
      "minimum": 0,
      "title": "Minimum discount (%)",
      "type": "integer"
    },
    "marketplace": {
      "default": "amazon.com",
      "description": "Which Amazon domain's Today's Deals page to scrape.",
      "editor": "select",
      "enum": [
        "amazon.com",
        "amazon.co.uk",
        "amazon.de",
        "amazon.fr",
        "amazon.it",
        "amazon.es",
        "amazon.ca",
        "amazon.com.au",
        "amazon.co.jp",
        "amazon.in",
        "amazon.com.br",
        "amazon.com.mx",
        "amazon.nl",
        "amazon.se",
        "amazon.pl",
        "amazon.com.tr",
        "amazon.ae",
        "amazon.sa",
        "amazon.sg",
        "amazon.eg",
        "amazon.ie",
        "amazon.com.be",
        "amazon.co.za"
      ],
      "enumTitles": [
        "United States (amazon.com)",
        "United Kingdom (amazon.co.uk)",
        "Germany (amazon.de)",
        "France (amazon.fr)",
        "Italy (amazon.it)",
        "Spain (amazon.es)",
        "Canada (amazon.ca)",
        "Australia (amazon.com.au)",
        "Japan (amazon.co.jp)",
        "India (amazon.in)",
        "Brazil (amazon.com.br)",
        "Mexico (amazon.com.mx)",
        "Netherlands (amazon.nl)",
        "Sweden (amazon.se)",
        "Poland (amazon.pl)",
        "Turkey (amazon.com.tr)",
        "United Arab Emirates (amazon.ae)",
        "Saudi Arabia (amazon.sa)",
        "Singapore (amazon.sg)",
        "Egypt (amazon.eg)",
        "Ireland (amazon.ie)",
        "Belgium (amazon.com.be)",
        "South Africa (amazon.co.za)"
      ],
      "prefill": "amazon.com",
      "title": "Amazon marketplace",
      "type": "string"
    },
    "maxItems": {
      "default": 30,
      "description": "Hard cap on emitted deal records. Amazon exposes up to 500 deals per category/collection query; add categories to partition the window.",
      "maximum": 2000,
      "minimum": 1,
      "prefill": 3,
      "title": "Max items",
      "type": "integer"
    },
    "minRating": {
      "description": "Keep only deals whose product rating is at least this value. Deals without a rating are excluded when this is set.",
      "maximum": 5,
      "minimum": 1,
      "title": "Minimum rating",
      "type": "integer"
    },
    "priceMax": {
      "description": "Keep deals at or below this price in the marketplace's local currency.",
      "maximum": 100000,
      "minimum": 0,
      "title": "Maximum deal price",
      "type": "integer"
    },
    "priceMin": {
      "description": "Keep deals at or above this price in the marketplace's local currency.",
      "maximum": 100000,
      "minimum": 0,
      "title": "Minimum deal price",
      "type": "integer"
    },
    "primeExclusiveOnly": {
      "default": false,
      "description": "Only return deals in Amazon's Prime Exclusive collection.",
      "prefill": false,
      "title": "Prime Exclusive deals only",
      "type": "boolean"
    },
    "sortBy": {
      "default": "featured",
      "description": "Featured keeps Amazon's order. Other sorts read the fetched deal window before returning, so they may take longer.",
      "editor": "select",
      "enum": [
        "featured",
        "priceLow",
        "priceHigh",
        "discountHigh",
        "ratingHigh"
      ],
      "enumTitles": [
        "Amazon featured",
        "Price: low to high",
        "Price: high to low",
        "Biggest discount",
        "Highest rating"
      ],
      "prefill": "featured",
      "title": "Sort results",
      "type": "string"
    }
  },
  "required": [
    "marketplace"
  ],
  "schemaVersion": 1,
  "title": "Amazon Deals Grid Tracker Input",
  "type": "object"
}

Output schema

Published result links and storage locations. This schema is not an exhaustive contract for every field in a dataset record.

FieldTypeRequiredDescription
dealsstringoptionalDataset containing all scraped Amazon deals.

Download the published output schema

View complete JSON
{
  "actorOutputSchemaVersion": 1,
  "description": "One record per discounted product on Amazon's Today's Deals grid: ASIN, title, images, local-currency deal/list price, savings, rating and review histogram, deal window, collection, brand and category.",
  "properties": {
    "deals": {
      "description": "Dataset containing all scraped Amazon deals.",
      "template": "{{links.apiDefaultDatasetUrl}}/items",
      "title": "Amazon deals",
      "type": "string"
    }
  },
  "title": "Amazon Deals Grid Tracker Output"
}

Dataset schema

Published dataset views and any declared field definitions. A view can select only a subset of the returned record fields.

Download the published dataset schema

View complete JSON
{
  "actorSpecification": 1,
  "views": {
    "overview": {
      "display": {
        "component": "table",
        "properties": {}
      },
      "title": "Deals",
      "transformation": {
        "fields": [
          "asin",
          "title",
          "dealPrice",
          "savingsPercent",
          "averageRating",
          "dealEndsAt",
          "category",
          "sourceUrl"
        ]
      }
    }
  }
}

Key-value schema

Published key-value store definitions, when provided by this build.

This definition is not present in the default published build. See the published README for available documentation.

Published README

Read the full published documentation

Amazon Deals Grid Tracker by Category & Discount

Turn Amazon's Today's Deals grid into a clean dataset of discounted products — ASIN, title, images, local-currency deal and list price, discount, rating and review histogram, deal window, collection, brand and category. Filter by department, discount, price, collection and Prime status across 23 marketplaces. No login, cookies or proxy setup.

What this actor does

  • 23 Amazon 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. 20 of 23 answered during testing; amazon.com.br, amazon.com.tr and amazon.co.za returned 503 and remain best-effort.
  • Amazon-applied filters — department/category, discount range, price range and Prime Exclusive deals are filtered by Amazon before the rows are read.
  • Deal collections — Lightning Deals, Coupons, Outlet, Customers' Most-Loved, New Arrivals, Trending, Prime Exclusive, Refurbished, Premium Brands and Amazon Brands.
  • Ratings and reviews summary — average rating, ratings count and the full 5→1 star histogram, from Amazon's own product summary.
  • Deal urgency — deal start and end time, badge text, deal state, promotion type and percent claimed (when Amazon exposes it, especially on Lightning Deals).
  • Local prices — prices are returned in the marketplace's local currency. When Amazon only serves a converted display price in another currency, the price is omitted instead of being mislabelled.
  • Multi-category runs — add several categories to move past Amazon's 500-deal window for a single query.
  • Empty fields are omitted — never null, never a fabricated zero.

Output per deal

  • asin — Amazon Standard Identification Number
  • title — product title
  • sourceUrl — canonical product URL
  • images[] — product image URLs
  • marketplace — the Amazon domain
  • dealPrice, listPrice — {value, currency, display} in the marketplace's local currency
  • currency — ISO code shared by the price fields, when a price is present
  • dealPriceLabel, listPriceLabel — Amazon's own labels (Deal Price, List, Typical, Was, RRP, …), when shown
  • savingsAmount, savingsPercent — money and percent saved
  • dealBadgeText, dealBadgeMessage — badge label and messaging (25% off, Limited time deal, Ends in, …)
  • dealStartsAt, dealEndsAt — ISO-8601 UTC promotion window, when Amazon exposes it
  • percentClaimed, percentClaimedMessage — live claim progress for limited offers
  • dealState, dealPromotionType, dealId — Amazon's deal state/type/id
  • isLightningDeal — whether the row is a Lightning Deal
  • averageRating, ratingsCount, ratingHistogram — product rating summary; histogram keys are "5"…"1" percentages
  • ratingCountByStar — derived counts from the histogram and total ratings (rounded)
  • isPrimeExclusive — present and true when Amazon labels the deal a Prime deal (Limited Prime deal) or the Prime filter is active
  • brandId, brandName, brandLogoUrl — brand metadata
  • departmentIds[], departmentNames[], category — Amazon's department taxonomy and a readable category
  • categorySymbol, glProductGroup, productType — Amazon taxonomy codes
  • variationDimensions — size/colour/variant options when present
  • isPinned, position, recordType: "deal", scrapedAt

When no deals are emitted

If a run ends with zero deal rows, it pushes exactly one recordType: "status" row so an empty dataset is never ambiguous:

  • success: false — the grid could not be reached (BLOCKED), the widget was missing (WIDGET_NOT_FOUND), the grid was empty (NO_ENTRIES), or the requested collection is not shown on this marketplace today (COLLECTION_NOT_FOUND)
  • success: true, reason: "NO_MATCHES" — the grid was read successfully but every deal was filtered out

Every status row also carries marketplace, message and scrapedAt.

Input

Field Type Default Description
marketplace select amazon.com Which Amazon domain's Deals page to read
categories list – Departments such as Electronics, Home & Kitchen, Kitchen, Beauty & Personal Care, Toys & Games, Sports & Outdoors. Add several to scan past the 500-deal window
collection select any Lightning Deals, Coupons, Outlet, Customers' Most-Loved, New Arrivals, Trending, Prime Exclusive, Refurbished, Premium Brands, Amazon Brands
brand string – Case-insensitive brand substring
minRating int – Keep products rated at least this value; unrated products are excluded when set
priceMin / priceMax int – Deal-price range in local currency
discountMin / discountMax int – Discount percentage range
primeExclusiveOnly boolean false Only Prime Exclusive deals
sortBy select featured Amazon featured, price low/high, biggest discount, highest rating
maxItems int 30 Hard cap on emitted deals (1–2000)

Example: US Electronics deals with at least 25% off

{
  "marketplace": "amazon.com",
  "categories": ["Electronics"],
  "discountMin": 25,
  "minRating": 4,
  "maxItems": 100
}

Example: UK Lightning Deals

{
  "marketplace": "amazon.co.uk",
  "collection": "lightning-deals",
  "maxItems": 60
}

Example: three categories in one run

{
  "marketplace": "amazon.com",
  "categories": ["Electronics", "Home & Kitchen", "Kitchen"],
  "discountMin": 20,
  "maxItems": 300
}

Use cases

  • Deal feeds and newsletters — a fresh, structured snapshot of today's discounts by category and collection.
  • Competitive intelligence — which brands and categories Amazon is discounting, and how deep.
  • Price and promotion monitoring — track deal windows, Lightning Deal urgency and changes between scheduled runs.
  • Shopping assistants — surface highly rated deals that meet a price and discount floor.
  • Market research — compare discount depth and category mix across Amazon marketplaces.

FAQ

Does this require an Amazon account or cookies? No. The Deals grid and its product summaries are public. The actor works cookielessly, and no proxy setup is required.

How many deals can I get? Amazon exposes up to 500 deals per category/collection query. Add more categories to partition that window; maxItems can go up to 2,000 across categories. A single query stops honestly when Amazon's window is exhausted. Amazon can also reshuffle the grid between pages, so after de-duplication one window may return fewer than 500 unique deals.

Why do some rows have no dealPrice or discount? Amazon genuinely omits price and discount data for a subset of deals (for example, some coupon-only promotions), and it omits a local price when only a converted display price is available. The actor never guesses, converts or fills a zero. Price and discount filters exclude rows that cannot be verified.

How does minRating work now? Ratings come from Amazon's own product summary, so minRating filters real values. If a product has no rating, it is excluded when minRating is set.

Why is percentClaimed missing on many rows? Amazon exposes claim progress mainly for limited/urgent offers such as Lightning Deals. It is populated when present and omitted otherwise.

Why don't I see shipping, seller, stock, Best Sellers Rank or review text? Those fields are not part of the Deals grid or its product-summary data. This actor stays focused on deals; use a product-details or reviews actor for those fields.

Why is the currency different from what I see on Amazon? Amazon can show a converted price based on the visitor's location. This actor reports the marketplace's local price (for example, GBP on amazon.co.uk) so rows from different marketplaces stay comparable.

Why does a collection sometimes return a COLLECTION_NOT_FOUND status? Amazon's collections differ by marketplace and change seasonally. The actor reports the missing collection plainly instead of silently returning unfiltered deals.

Why can sortBy take longer? Amazon has no server-side sort for the Deals grid. To return the cheapest or highest-rated deals, the actor reads the available window first, then sorts it.

Why does sourceUrl return 503 in a plain script? Amazon blocks bare non-browser requests on product pages. The URL is the canonical product page and opens normally in a browser.

Is this affiliated with Amazon? No. This is an independent third-party actor that reads Amazon's public Deals pages.

How fresh is the data? As fresh as the live Deals grid at run time. Deals rotate throughout the day, so schedule the actor as often as your use case needs.

Python quickstart

Use a schema-derived input and the Python standard library to start a run. An Apify account and token are required for execution.

Open the step-by-step Python guide →

Source build jBUJUe5UwT4agcDX0. Documentation is regenerated from the default published build; private drafts are not included.