Amazon deals API
GET /deals returns the first page of Amazon’s Today’s Deals for one marketplace, about 30 deals. Each deal has a deal ID, ASIN, title, image, deal price, list price, savings percent, Amazon’s deal badge text such as “31% off”, and the percent already claimed.
Part of Amazon Data API, sold on RapidAPI with a free plan of 100 requests a month. Endpoint details checked 2026-11-03.
What GET /deals returns
The first page of Amazon's Today's Deals for one marketplace (about 30 deals), each with deal ID, ASIN, title, image, deal price, list price, savings percent, Amazon's deal badge text, percent claimed and end time. Null where Amazon shows no value; ends_at is usually null because the deals page does not publish end times. Only page 1 is available: Amazon serves the same deals for later pages. Every response is checked to come from the requested marketplace; a page from another country is never returned.
Parameters
| Name | Required | Values | Notes |
|---|---|---|---|
page | no | 1 to 1 (default 1) | Only 1 is accepted: Amazon serves the same deals for later pages. |
country | no | US, CA, MX, BR, GB, DE, FR, IT, ES, NL, SE, PL, BE, TR, AE, SA, EG, IN, JP, SG, AU, IE, ZA | Amazon marketplace, as an ISO country code. GB is amazon.co.uk. Default US (amazon.com). |
Example request
Every parameter that has an example, with country set explicitly. Send your key in X-RapidAPI-Key.
curl --request GET \
--url 'https://amazon-data-api-search-product-reviews-best-sellers.p.rapidapi.com/deals?country=US' \
--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY' \
--header 'X-RapidAPI-Host: amazon-data-api-search-product-reviews-best-sellers.p.rapidapi.com'import requests
resp = requests.get(
"https://amazon-data-api-search-product-reviews-best-sellers.p.rapidapi.com/deals",
params={"country": "US"},
headers={
"X-RapidAPI-Key": "YOUR_RAPIDAPI_KEY",
"X-RapidAPI-Host": "amazon-data-api-search-product-reviews-best-sellers.p.rapidapi.com",
},
timeout=30,
)
resp.raise_for_status()
body = resp.json()
if "error" in body: # bad input or not found: HTTP 200 with an error body
raise RuntimeError(f"{body['error']['code']}: {body['error']['message']}")
print(body["data"])const url = new URL('https://amazon-data-api-search-product-reviews-best-sellers.p.rapidapi.com/deals');
url.search = new URLSearchParams({ country: 'US' });
const res = await fetch(url, {
headers: {
'X-RapidAPI-Key': process.env.RAPIDAPI_KEY,
'X-RapidAPI-Host': 'amazon-data-api-search-product-reviews-best-sellers.p.rapidapi.com',
},
});
const { data, meta } = await res.json();
console.log(data, meta.fetched_at);Example response
A recorded response, shortened to 3 items per list.
{
"data": {
"page": 1,
"deals": [
{
"deal_id": "6395c5e8",
"asin": "B07MJL8NXR",
"title": "Premier Protein 30g High Protein Shake, Chocolate, 12 Pack | 160 Calories, 24 Vitamins & Minerals, No Added Sugar, Supports Muscle Health, Gluten-Free, 11.5 oz",
"image": "https://m.media-amazon.com/images/I/71Y8GT3GYvL.jpg",
"deal_price": 19.99,
"list_price": 28.92,
"currency": "USD",
"savings_percent": 31,
"deal_badge": "31% off",
"percent_claimed": null,
"ends_at": null,
"url": "https://www.amazon.com/dp/B07MJL8NXR"
},
{
"deal_id": "7d887165",
"asin": "B079H53D2B",
"title": "Physician's CHOICE Probiotics 60 Billion CFU - 10 Strains + Organic Prebiotics - Immune, Digestive & Gut Health - Supports Occasional Constipation, Diarrhea, Gas & Bloating - for Women & Men - 30ct",
"image": "https://m.media-amazon.com/images/I/81WwpFusoAL.jpg",
"deal_price": 17.49,
"list_price": 29.97,
"currency": "USD",
"savings_percent": 42,
"deal_badge": "42% off",
"percent_claimed": null,
"ends_at": null,
"url": "https://www.amazon.com/dp/B079H53D2B"
}
]
},
"meta": {
"country": "US",
"cached": false,
"fetched_at": "2026-10-26T14:05:11.000Z"
}
}What people use it for
Deal sites and Telegram or Discord bots that post Amazon discounts.
Price-history tools that flag when a tracked product shows up in deals.
Comparing discount depth across marketplaces on the same day.
FAQ
- Can I page through more deals?
- No. Only page 1 is accepted, because Amazon serves the same deals on later pages.
- Does it return when a deal ends?
- ends_at exists but is usually null, because Amazon’s deals page does not publish end times.
Related endpoints
See all 17 endpoints and 23 marketplaces on the Amazon product API page.