Shopping · Amazon
Amazon Deals API
The Amazon Deals API gets you live Amazon data the moment you ask, as clean, structured data – ready for your own app, a spreadsheet or an AI assistant. No scraping, nothing to maintain.
100 free requests every month · no credit card · one API key for all platforms
Key facts
Updated
Amazon's deals page concentrates the marketplace's time-limited discounts: Lightning Deals with a countdown, Best Deals, Prime-exclusive offers and the seasonal events built on them. The everydata.io Amazon Deals API reads that grid live for any marketplace and returns each deal with current price, reference price, saving and deal state. Filters for department, discount range, star rating, price range and Prime access map directly to the refinements on the page, and a companion endpoint tells you which filter values are valid right now.
- Platform
- Amazon
- Main endpoint
- /amazon-search-deals-v2
- Quota per call
- 1 request
- Free plan
- 100 req / monththen from €30 / month
Amazon data, ready to use
A deals response contains currentPage, lastPage, countDeals, domainCode and usedFilter – an echo of the refinement state that was applied, so you can verify your filters took effect. deals is the array of deal cards: id and dealType (BEST_DEAL, LIGHTNING_DEAL …), title, url, asin, price, retailPrice, savingAmount, savingPercentage, currency, dealState (AVAILABLE, and later states as the deal progresses), badgeMessage ("Limited time deal"), productRating, countReview, imgUrls and brand where Amazon shows one.
GET /amz/amazon-deal-filter-v2 returns the live filter vocabulary for a marketplace: departments as label/value pairs ("Appliances" → 2619526011), discountRange steps ("10% off or more" → 1), minProductStarRating, priceRange bands, accessType for Prime Exclusive and Prime Early Access, brands and active collections such as Lightning deals. Feed these values into the deals endpoint rather than hard-coding them – department IDs and bands differ per marketplace.
- Deal price, list price, savingAmount and savingPercentage as numbers with currency
- dealType, dealState and badgeMessage to distinguish Lightning Deals from ongoing Best Deals
- ASIN, product URL, images, rating, review count and brand per deal card
- Filters: departments, discountRange (1–5), minProductStarRating (1–4), priceRange (1–5), primeEarly, primeExclusive
- Filter-discovery endpoint with valid department IDs, bands and active collections per marketplace
- 30 deals per page, mirroring Amazon's own grid
- Every marketplace by domainCode – com, de, co.uk, fr, it, es, ca, co.jp and more
What teams build with this
Deal aggregator and alert services
Poll the deals grid every few minutes on Prime Day or Black Friday, filter on savingPercentage and productRating, and push new Lightning Deals to subscribers before they sell out.
Competitive promotion monitoring
Brands watch which competitors run deals in their department, how deep the discount goes and how long a deal stays AVAILABLE – input for their own promo calendar.
Affiliate content
Generate daily "best deals under 25 in Electronics" pages from priceRange and departments filters, linking each ASIN with your tag.
Price-anomaly research
Store retailPrice alongside the price-history endpoint to check whether deal reference prices reflect real recent prices.
Example request and response
Call GET /amz/amazon-search-deals-v2 with domainCode and page. Add departments with one or more IDs from the filter endpoint (comma separated), discountRange, minProductStarRating, priceRange as single digits, and primeEarly or primeExclusive as booleans. The example requests deals in the Appliances department with at least 25 % off and a 4-star minimum.
GET /amz/amazon-search-deals-v2
curl "https://api.everydata.io/amz/amazon-search-deals-v2?domainCode=com&page=1&departments=2619526011&discountRange=2&minProductStarRating=4" \
-H "x-api-key: YOUR_API_KEY"Response (shortened)
{
"responseStatus": "PRODUCT_FOUND_RESPONSE",
"responseMessage": "Product successfully found!",
"currentPage": 1,
"lastPage": 2,
"countDeals": 30,
"domainCode": "com",
"usedFilter": {
"state": {
"refinementFilters": {
"departments": [
"2619526011"
],
"reviewRating": [
"4"
],
"percentOff": [
"2"
]
}
},
"version": 1
},
"deals": [
{
"id": "35911091",
"dealType": "BEST_DEAL",
"title": "Ultra Pain Relief Cooling Pillow for Neck Support, Adjustable Cervical Pillow, Odorless Ergonomic Contour Memory Foam",
"url": "https://www.amazon.com/Adjustable-Cervical-Sleeping-Ergonomic-Orthopedic/dp/B0C1GQ54QD",
"price": 31.32,
"retailPrice": 52.22,
"savingAmount": 20.9,
"savingPercentage": 40,
"asin": "B0C1GQ54QD",
"badgeMessage": "Limited time deal",
"productRating": "4.2",
"countReview": 23511,
"currency": "USD",
"dealState": "AVAILABLE"
}
]
}Paging follows the deals grid one-to-one: 30 cards per page. lastPage is what Amazon's pagination showed at fetch time, but the deals page is a moving target – deals sell out, new Lightning Deals start – so the safe loop is to increment page until the deals array comes back empty rather than stopping at lastPage. Deduplicate by id or asin, because a card can shift from page 2 to page 1 between two calls.
Not every card carries every field. Cards that Amazon renders without a deal badge – often "related" products at the end of a grid – arrive without price, retailPrice or dealType. Treat savingPercentage as the authoritative discount and retailPrice as Amazon's reference price, which may be a list price or a recent typical price depending on the marketplace.
productRating is a bare string like "4.2" on deal cards, unlike the "4.2 out of 5 stars" form on product pages. A department ID that does not exist for the marketplace returns an empty deals array with your filter echoed in usedFilter.
Related endpoints
Deals. Today's deals for a marketplace, 30 per page, with department, discount, price and rating filters.
Deal filters. Valid filter values (departments, discount ranges, price ranges) for the deals endpoint.
Product details by ASIN. Same payload as product details, addressed by ASIN and marketplace.
Price history. Historical prices collected by this API.
Pay per request, every platform included
Each deals page and each filter lookup is one request; the filter vocabulary changes rarely, so fetch it once a day per marketplace. A tracker polling five departments every ten minutes across two pages uses about 43,000 requests a month – the Production plan (50,000 requests, €80) covers it, with event-day bursts billed as overage at €3 per 1,000. Upstream 5xx responses are never billed.
- Free
- 100 req / month
- Starter
- 5,000 req · €30
- Production
- 50,000 req · €80
- Business
- 300,000 req · €300
Amazon Deals API: frequently asked questions
How do I find valid department IDs?
Call GET /amz/amazon-deal-filter-v2 with the domainCode. departments lists label/value pairs such as "Appliances" → 2619526011; pass the value to the deals endpoint. IDs differ between marketplaces, so look them up per domainCode.
What do discountRange and priceRange values mean?
They are the ordinal positions of the bands Amazon offers – for example discountRange 1 is "10% off or more" and 2 is "25% off or more"; priceRange 1 is "Under 25". The filter endpoint returns the current labels for each value.
Why does page 3 return an empty array although lastPage said 4?
The deals grid changes continuously as deals expire and start, so the page count at your first call may not hold a minute later. Loop until the deals array is empty and deduplicate by id.
Can I request only Lightning Deals?
Not by a dedicated parameter, but each card carries dealType and badgeMessage, so filter client-side for LIGHTNING_DEAL. The filter endpoint's collections field shows whether a Lightning-deals collection is currently active.
Does the API return the deal countdown?
No. dealState tells you whether the deal is currently AVAILABLE, but the countdown timer and claimed-percentage bar are not included. Poll at short intervals to detect sell-outs quickly.
Related use cases
Start pulling Amazon deals
Create a free account, fetch the filter vocabulary for your marketplace and read the live deals grid as JSON – 100 requests a month included.