Amazon Reviews API for Any ASIN
What the Amazon reviews API returns
The Product Reviews endpoint returns the customer reviews for an ASIN page by page, with the text and the metadata you need to separate one kind of review from another.
Each item in items[] is one review:
| Field | What it tells you |
|---|---|
star, title, content | Star rating and the review text |
date | Review date as a millisecond timestamp (the documented example is 1772380800000) |
skus | The variation the reviewer bought, such as a size or color |
likes | How many shoppers marked the review as helpful |
image, video, images, videos | Whether the review has media, and the media links |
verified | Written after a verified purchase |
vine | Written by an Amazon Vine reviewer |
free, experience | Received free, or written through an early-experience program |
author, authorLabels | Reviewer name and profile labels |
The full field list is in the Product Reviews reference.
See real responses
Saved responses captured from the live API on 2026-10-15, not live calls. Create a key to query any ASIN or keyword.
/v1/amazon/review200 OK{
"marketplace": "US",
"asin": "B08CK5Z5Q1",
"page": 1,
"size": 2,
"stars": [
1,
2
]
}{
"request_id": "3abbd602-e5d3-4372-900a-d7cc927f9a31",
"data": {
"total": 345,
"pages": 173,
"page": 1,
"size": 2,
"items": [
{
"author": "D…",
"title": "Do not buy this piece of crap collar",
"content": "I bought this collar 2 months ago It is falling apart. The stitches are coming apart. Do not buy this piece of crap collar. I wish I could give this collar a 50 below zero rating<br>",
"date": 1788710400000,
"star": 1,
"authorLabels": null,
"skus": [
"Size: Large (Pack of 1)",
"Color: Teal"
],
"likes": 0,
"verified": false,
"vine": false
},
{
"author": "A…",
"title": "D rings are now plastic - not metal! Very unhappy with this change.",
"content": "I have purchased this collar in the past and was satisfied, but am returning the two collars I just purchased because the product is not the same now. The Amazon description still says the D ring is made of metal, but the collars I received have plastic D rings which are not acceptable as I believe they are a safety hazard for my large dogs.<br>",
"date": 1787673600000,
"star": 1,
"authorLabels": [
"Verified Purchase"
],
"skus": [
"Size: Large (Pack of 1)",
"Color: Hotpink"
],
"likes": 0,
"verified": true,
"vine": false
}
]
}
}Request example
curl --request POST \
--url https://ecommercedataapi.com/v1/amazon/review \
--header "Content-Type: application/json" \
--header "X-API-Key: ${ECOMMERCE_DATA_API_KEY}" \
--data '{
"marketplace": "US",
"asin": "B08CK5Z5Q1",
"page": 1,
"size": 20,
"stars": [1, 2, 3]
}'asinis required;marketplaceaccepts US, JP, UK, DE, FR, IT, ES, CA, IN, MX, BR, AU and AE.starslimits results to the listed star ratings.[1, 2, 3]returns only critical reviews, which is usually where analysis starts.- Page through results with
pageandsize; the response carriestotalandpages.
A real response
This is a trimmed response to the request above with "stars": [1, 2] and "size": 2. Reviewer names are shortened here; the API returns them as shown on Amazon.
{
"request_id": "3abbd602-e5d3-4372-900a-d7cc927f9a31",
"data": {
"total": 345,
"pages": 173,
"page": 1,
"size": 2,
"items": [
{
"author": "A…",
"title": "D rings are now plastic - not metal! Very unhappy with this change.",
"content": "I have purchased this collar in the past and was satisfied, but am returning the two collars I just purchased because the product is not the same now. …<br>",
"date": 1787673600000,
"star": 1,
"authorLabels": ["Verified Purchase"],
"skus": ["Size: Large (Pack of 1)", "Color: Hotpink"],
"images": null,
"videos": null,
"likes": 0,
"image": false,
"video": false,
"verified": true,
"vine": false,
"free": false,
"experience": false
}
]
}
}Two things to notice. total counts only the reviews that match stars, so this one call tells you the product has 345 one- and two-star reviews. And the review itself reports a change in the product (metal D rings replaced by plastic) that no rating or sales metric would show. That is the kind of signal the Amazon reviews API exists to surface.
Collecting every critical review for an ASIN
One page holds at most 20 reviews, and page goes up to 100, so a single star filter reaches up to 2,000 reviews. To pull all of them, read pages from the first response and loop:
import os
import requests
URL = "https://ecommercedataapi.com/v1/amazon/review"
HEADERS = {"X-API-Key": os.environ["ECOMMERCE_DATA_API_KEY"]}
def critical_reviews(asin, marketplace="US"):
page, pages = 1, 1
while page <= min(pages, 100):
body = {
"marketplace": marketplace,
"asin": asin,
"stars": [1, 2, 3],
"page": page,
"size": 20,
}
res = requests.post(URL, json=body, headers=HEADERS, timeout=30)
res.raise_for_status()
data = res.json()["data"]
yield from data["items"]
pages = data["pages"]
page += 1Budget it before you run it: every page is one call, so the 345 reviews above take 18 calls. Split the work by star rating ([1], then [2], then [3]) when one filter has more than 2,000 reviews.
Common workflows
- Find what to fix. Pull the 1–3 star reviews for your ASIN and your main competitors (the Amazon search API lists who ranks for your keyword), then sort complaints into product problems, listing problems and one-off issues. How to analyse Amazon reviews walks through the method.
- Split by variation. Group reviews on
skus. When negatives concentrate on one size or color, the problem is probably that SKU, not the whole product line. - Track review history. Store
datewith each review and compare periods, for example before and after a product change or a new listing version. - Weight reviews by source. Keep
verified,vine,freeandexperiencereviews apart before counting sentiment. The four sources of an Amazon review explains why they should not be pooled, and exporting reviews for analysis covers the spreadsheet side.
Limits worth knowing
- One ASIN's reviews are a sample of buyers who chose to write. A small or skewed set can overstate rare complaints, so read counts together with
likesand dates. - Parent listings share reviews across variations. Check the product with product details before attributing a review to a specific version.
- Review text is customer opinion. It can point to a problem but does not prove its cause, and it is not a basis for product claims.
contentis the review as Amazon renders it and can contain HTML line breaks such as<br>. Strip them before counting words or sending the text to a model.- Empty fields come back as
null, not as empty arrays:images,videosandauthorLabelsarenullwhen a review has none. - Each successful call consumes one billing unit. Handle
429responses as described in errors and rate limits.
Other ways to get Amazon reviews
| Option | Reviews of any ASIN | Review text | Notes |
|---|---|---|---|
| Selling Partner API (Customer Feedback) | No | No | Summarised review topics for approved developers, not individual reviews |
| Affiliate API (Product Advertising API) | No | No | Rating information for building product links |
| Scraping review pages | Yes | Yes | You maintain parsers, proxies and CAPTCHA handling, and it breaks when the page changes |
| This Amazon reviews API | Yes | Yes | One JSON contract across 13 marketplaces, filtered by star rating |
Getting Amazon reviews through an API covers what each official API returns about reviews, and the hidden costs of scraping Amazon compares building a scraper with buying the data.
FAQ
Does Amazon offer an official reviews API? Amazon's seller and advertising APIs do not return the review text of arbitrary products. This endpoint returns reviews for any ASIN you pass, in the marketplaces listed above.
Can I get only negative reviews?
Yes. Pass "stars": [1, 2] or [1, 2, 3].
How many reviews does one call return?
Up to 20. Use page to walk through the rest, up to page 100.
Does it return the star rating and review count of the product? No. This endpoint returns individual reviews. The product's average rating and total rating count come from product details.
Can an AI agent analyse the reviews for me? Yes. The endpoint is exposed as a tool through the remote MCP server, so an agent in Claude Code or Cursor can fetch reviews and summarise them in the same conversation.