Amazon Reviews Scraper
Get the public Amazon reviews on a product page. Each row has text, rating, title, author, date and country. Verified-purchase badge and helpful votes too.
How it works
- 1Open it on Apify
Hit Run on Apify — it opens the tool in the cloud, no install.
- 2Set the inputs
Adjust
products,marketplace,maxProducts(sensible defaults are pre-filled). - 3Click Run
The tool runs on Apify’s cloud and collects the data for you.
- 4Export the results
Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.
Pricing
$0.002 per review = $2 per 1,000
| You are charged for | When | Price |
|---|---|---|
| Review | Charged once per review stored with an ID, author, rating and text. Samples, diagnostics, blocked pages and empty results are never charged. | $0.002 |
Pay-per-event pricing: you are billed per result, not per subscription. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-08-22, and they are what you are actually charged.
Inputs
| Field | What it does | Type |
|---|---|---|
products | Amazon product URLs or 10-character ASINs. This review-only actor does not scrape product catalog or search results. | array |
marketplace | Amazon marketplace for plain ASIN inputs. amazon.com and amazon.ca answer reliably. The European marketplaces (co.uk, de, fr, it, es) refuse this Actor's addresses and return a block instead of reviews - see the README before planning a run against them. | string |
maxProducts | Hard limit on unique products per run. Keeping this small makes review costs predictable. | integer |
maxReviewsPerProduct | Upper bound on reviews kept per product. Amazon shows roughly 8 reviews per product to signed-out visitors, so values above that simply keep whatever it served. | integer |
deadlineSecs | Actor-side wall-clock deadline, independent of the Apify timeout. An uncharged diagnostic is returned when it is reached. | integer |
enableProxyFallback | Off is the right setting for almost every run. Amazon serves the review block to the run's own connection; asked for through a shared network it usually returns the product page with the reviews left out, and the run then reports a block rather than pretending it found nothing. | boolean |
enableResidentialFallback | Deprecated alias of "Enable one proxy retry", kept so existing saved inputs keep working. This Actor does not offer metered options; the retry uses the built-in connection, or your own proxy servers if you supply them. | boolean |
What you get
A structured dataset — each result includes fields like:
asinratingtitlereviewTextauthorreviewedAtverifiedPurchasehelpfulVotesreviewUrltransportExport every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.
Related tools in Developer & Research Tools
Other ready-to-run tools in the same category — all pay-per-use on the Apify cloud.
GitHub Scraper
Search GitHub repos and users: stars, forks, language, topics, licence, plus user bio, company and followers. No token needed. $0.90 per 1,000 rows.
Stack Overflow / Stack Exchange Scraper
Search Stack Overflow and Stack Exchange by keyword or tag. Score, answer count, views, reputation and body text. $2 per 1,000 questions.
Package Registry Scraper (npm + PyPI)
Get npm and PyPI package metadata as JSON. Version, license, author, repo, keywords and npm monthly downloads. $2 per 1,000 packages.
arXiv Scraper
Search arXiv papers by title, author, abstract or category. Get full abstracts, authors, categories, DOI, dates and PDF links. $2 per 1,000 papers.
OpenAlex Scholarly Works Scraper
Search 250M+ OpenAlex papers with no API key. Get titles, authors, venue, year, citations, DOI, OA links and full abstracts. $2.00 per 1,000 papers.
Crossref Scholarly Works Scraper
Search 150M+ papers on Crossref: DOI, title, authors, journal, publisher, date, citations and abstract. No API key. $1.00 per 1,000 works.
Where this tool sits
- Categories
- Developer & Research Tools
Amazon Reviews Scraper: the public reviews on a product page, by ASIN or URL
Give it Amazon product URLs or ASINs and it returns the reviews as rows. Rating, title, the full review text, author, date, country, the verified-purchase badge, helpful votes, any photos the buyer attached, and a link straight to the review.
The number is the thing to know first. Amazon shows a signed-out visitor only the handful of reviews it prints on the product page, usually about eight, and there is no way past that without an account. So eight is roughly what comes back per product, whatever you set the limit to. The other half of the truth: amazon.com and amazon.ca answer reliably, and the UK and European marketplaces return a block instead of reviews.
| Input | Amazon product URLs or ASINs |
| Output | One row per review |
| Ceiling | 10 products per run, about 8 reviews on each |
| Account needed | None |
| Price | $2.00 per 1,000 reviews, which is $0.002 each |
⭐ What Amazon Reviews Scraper does
It opens the product page, reads the review block off it, and writes one row per review. Full text, not the truncated teaser the page shows before you click "read more". Photos attached to a review come through as URLs, and hasVideo tells you when a review has a clip on it.
A row is only written, and only charged, when it is complete: it needs an id, an author, a rating and the text. A half-parsed review is dropped rather than delivered as a row with holes in it.
The same ASIN listed twice on the same marketplace is fetched once, so a messy input list does not cost you twice.
📥 What you give it
{
"products": ["B0CHWRXH8B", "https://www.amazon.com/dp/B0BS1PRC4L"],
"marketplace": "com",
"maxProducts": 3,
"maxReviewsPerProduct": 20
}
| Field | Default | What it is |
|---|---|---|
products | none | Product URLs or ten-character ASINs, mixed freely. A full URL carries its own marketplace. |
marketplace | com | Used for plain ASINs. com and ca are the two that answer. |
maxProducts | 3 | Unique products per run. 1 to 10. |
maxReviewsPerProduct | 20 | Upper bound per product, 1 to 100. Amazon serves about 8, so a higher number just keeps whatever arrived. |
deadlineSecs | 90 | The actor's own wall-clock limit, 10 to 150. Checked between products, so one already in flight finishes. |
enableProxyFallback | false | Off suits almost every run. On, a refused request gets one more attempt by another route. |
enableResidentialFallback | false | Deprecated alias of the row above, kept so saved inputs keep working. |
proxyConfiguration | Apify default | Only used for that retry. Your own servers, if you have them. |
Run it with products empty and you get a free sample row showing the shape, with nothing fetched.
📤 What you get back
A real row from a real run, with the review text, the profile link and the photo list cut short so the block stays readable:
{
"ok": true,
"reviewId": "R1PQX3FG6BD7WJ",
"asin": "B0CHWRXH8B",
"marketplace": "com",
"rating": 5,
"title": "Really really really good.***Update***",
"reviewText": "I am a rare duck in the tech space as I really don't have a preference between Android and iOS...",
"author": "HJeffK",
"authorProfileUrl": "https://www.amazon.com/gp/profile/amzn1.account.AGVVGEYLGPWOZJLJ4J4RC3IWK3JQ...",
"reviewedAt": "October 25, 2023",
"reviewCountry": "the United States",
"verifiedPurchase": true,
"vineCustomer": false,
"helpfulVotes": 1987,
"reviewImages": [
"https://m.media-amazon.com/images/I/61amS1U6t0L._SY500_.jpg",
"..."
],
"hasVideo": false,
"reviewUrl": "https://www.amazon.com/gp/customer-reviews/R1PQX3FG6BD7WJ",
"transport": "direct"
}
| Field | What it is |
|---|---|
reviewId | Unique per review. Use it as your dedupe key across runs. |
rating, helpfulVotes | Real numbers, not page text. helpfulVotes is null when the page shows none. |
reviewedAt, reviewCountry | As the page prints them, so a date is "October 25, 2023" rather than an ISO stamp. |
vineCustomer | Whether the reviewer got the product through Amazon Vine. Worth filtering on. |
reviewImages, hasVideo | Buyer photos as URLs, and whether a clip is attached. Neither shows in the default table view. |
transport | Which attempt produced the row: the first one, or the retry. |
🧾 Reading the output
Filter on reviewId, not on ok. Three kinds of row land in the dataset and two of them carry ok: true, so filtering on that alone counts rows that are not reviews.
| Row | How to spot it | Charged |
|---|---|---|
| A review | reviewId is set | yes |
| The sample row, or a run note | _sample or _notice, and _uncharged | no |
| A diagnostic | ok: false and an errorCode | no |
| Code | What it means |
|---|---|
BAD_INPUT | Nothing usable in products, or a URL that is not an Amazon product page. |
NOT_FOUND | No product page for that ASIN. Usually a typo or a delisted item. |
NO_RESULTS | The page loaded and had no reviews on it. |
BLOCKED | Amazon served the page without the review block. Expected on the UK and European marketplaces. |
RATE_LIMITED | Too much traffic just now. Try again shortly. |
NETWORK | Amazon was unreachable or answered badly. Re-run it. |
DEADLINE | deadlineSecs ran out. Products not yet started get no row at all. |
A product that fails writes exactly one diagnostic row and the run carries on with the next one.
▶️ How to run it
1. Open Amazon Reviews Scraper and click Try for free. 2. Paste product URLs or ASINs into Product URLs or ASINs, one per line. 3. If you pasted bare ASINs, set the Amazon marketplace. Leave it on com unless you know why. 4. Set Maximum products. Three is a sensible first run. 5. Click Start, then download the dataset as JSON, CSV or Excel, or read it from the API.
💰 How much does it cost?
$2.00 per 1,000 reviews, which is $0.002 each. Flat on every Apify plan, no volume tiers.
You pay per complete review row. Nothing else in the dataset is billed: not the sample row, not the run notes, not a diagnostic, and not a product that turned out to have no reviews. A half-parsed review is dropped before it reaches you, so you never pay for a row with the text missing.
Three products at about eight reviews each is roughly 24 rows, so about five cents.
💡 What people use it for
- Pulling the reviews Amazon promotes on a product page, which are the ones shoppers actually read.
- Watching what changes in the visible reviews on your own listing week to week.
- Collecting verified-purchase complaints across a handful of competing ASINs before a product
decision.
- Gathering review photos, which say more about a product's real condition than the text does.
🚧 What it does not do
- About eight reviews per product. That is what Amazon serves a signed-out visitor, and no
setting lifts it.
- No sorting, filtering or paging. You get the block the page shows, in the order it shows it.
There is no "most recent" or "one star only".
- Only
comandcaanswer in practice. A run againstco.uk,de,fr,itorescomes
back with a BLOCKED diagnostic rather than reviews.
- Ten products per run. Split a bigger list across runs, or schedule it.
- No product data. No price, title, rating summary or images of the product itself. Use the
product scraper linked below for that.
- No variation detail. Which colour or size a review is about is not on the row.
- No seller feedback. These are product reviews, not seller ratings.
🧭 Which Amazon scraper do you need?
| If you want | Use |
|---|---|
| The reviews on a product page | This one |
| Product data by ASIN or keyword, with the on-page reviews attached | Amazon Scraper |
| Best Sellers and New Releases lists | Amazon Bestsellers Scraper |
| Prices and stock watched on a schedule | Product Price & Stock Monitor |
❓ Questions people ask
Can I get all 35,000 reviews on a product? No, and nothing that stays signed out can. Amazon shows the page's review block and nothing more.
Why did my UK run come back empty? It did not come back empty, it came back BLOCKED. The UK and European marketplaces do not serve the review block here. Stick to com and ca.
Do I need an Amazon account? No. Nothing to paste and nothing that expires.
Is reviewText the full review? Yes, the whole body, not the shortened version the page shows before you click through.
Can I run the same ASINs every day? Yes. reviewId is stable, so keep the ids you already have and only keep what is new.
Is scraping reviews legal? These are public product pages. Reviews are personal data under GDPR and similar laws, so have a reason for holding them and be careful about republishing them. Apify's write-up on the legality of web scraping is a good starting point, and we are not lawyers.
🆘 If something breaks
Open the Issues tab on the actor page. Send the ASIN and the run ID. The diagnostic row on the run usually names the reason already.