Amazon Review Scraper avatar

Amazon Review Scraper

Pricing

from $0.003 / review

Go to Apify Store
Amazon Review Scraper

Amazon Review Scraper

Scrape Amazon product reviews at scale using a real browser — not proxies. Other scrapers return 0-10 reviews or fail silently. This one reliably extracts 500+ reviews per product with full text, ratings, dates, images, and helpful votes.

Pricing

from $0.003 / review

Rating

0.0

(0)

Developer

Jack

Jack

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

a day ago

Last modified

Share

Amazon Review Scraper — Deep Extract

Scrape Amazon product reviews at scale using a real Playwright browser session. No review cap. Bypasses the anti-bot detection that blocks every proxy-based scraper on the market.

Why this scraper works when others don't

Amazon aggressively blocks proxy-based scrapers in 2025-2026. Most review scrapers on Apify return 0-10 reviews or fail outright. This one uses a real Playwright browser with authenticated sessions on residential IPs — indistinguishable from a normal user browsing Amazon.

Result: reliable extraction of hundreds or thousands of reviews per product, even on heavily protected listings.

Features

  • No review limit — scrape 10, 500, or 5,000+ reviews per product
  • Multiple products per run — pass a list of URLs, scrape them all
  • Sort by recent or helpful — choose your sort order
  • Filter by star rating — scrape only 1-star, 5-star, positive, critical, or all
  • Rich data extraction — rating, title, full text, date, verified purchase, Vine reviewer, variant, images, helpful count, reviewer profile, review URL
  • Deduplication — no duplicate reviews in output
  • Real browser — Playwright on residential IP, not HTTP requests through datacenter proxies

Input

FieldTypeRequiredDefaultDescription
productUrlsarrayYesList of Amazon product URLs or ASINs. Accepts full URLs or plain 10-character ASINs.
maxReviewsintegerNo200Max reviews to scrape per product. No cap.
sortstringNorecentSort order: recent or helpful.
filterByRatingstringNoall_starsFilter: all_stars, five_star, four_star, three_star, two_star, one_star, positive, critical.

Example input

{
"productUrls": [
{ "url": "https://www.amazon.com/dp/B0D1XD1ZV3" },
{ "url": "https://www.amazon.com/dp/B09V3KXJPB" }
],
"maxReviews": 500,
"sort": "recent",
"filterByRating": "all_stars"
}

Output

Each review in the dataset contains:

FieldTypeDescription
reviewIdstringUnique Amazon review ID
reviewTitlestringReview headline
reviewDescriptionstringFull review text
ratingScorenumberNumeric rating (1-5)
reviewedInstringFull date string with location (e.g., "Reviewed in the United States on February 10, 2026")
datestringParsed date portion
isVerifiedbooleanVerified purchase
isAmazonVinebooleanAmazon Vine reviewer
variantstringProduct variant (color, size, etc.)
reviewImagesarrayURLs of images attached to the review
reviewReactionstringHelpful vote count
reviewUrlstringDirect link to the review
userProfileLinkstringLink to reviewer's Amazon profile
userIdstringAmazon user ID
positionnumberPosition in scrape results
productAsinstringProduct ASIN
totalCategoryRatingsnumberTotal ratings for the product
totalCategoryReviewsnumberTotal reviews for the product
filterByRatingstringRating filter used
inputstringOriginal product URL
countrystringCountry (currently US)

Example output

{
"reviewId": "R2YPIEJ3LA31PS",
"reviewTitle": "This thing is incredible",
"reviewDescription": "I've tried three other brands and they all broke within a month. This one has lasted 6 months and counting. The pressure is perfect — not too soft, not painful.",
"ratingScore": 5,
"reviewedIn": "Reviewed in the United States on February 10, 2026",
"date": "February 10, 2026",
"isVerified": true,
"isAmazonVine": false,
"variant": "Color: Black",
"reviewImages": ["https://images-na.ssl-images-amazon.com/images/I/..."],
"reviewReaction": "42",
"reviewUrl": "https://www.amazon.com/gp/customer-reviews/R2YPIEJ3LA31PS",
"userProfileLink": "https://www.amazon.com/gp/profile/amzn1.account.ABC123",
"userId": "amzn1.account.ABC123",
"position": 1,
"productAsin": "B0D1XD1ZV3",
"totalCategoryRatings": 2490,
"totalCategoryReviews": 664,
"filterByRating": "all_stars",
"input": "https://www.amazon.com/dp/B0D1XD1ZV3",
"country": "United States"
}

Use cases

  • Ad creative research — mine customer language for ad hooks and angles
  • Competitor analysis — understand what customers love/hate about competing products
  • Product validation — check real customer sentiment before sourcing
  • Sentiment analysis — aggregate ratings and review text for ML workflows
  • Review monitoring — track sentiment over time
  • Market research — identify gaps and opportunities from customer feedback
  • UGC content mining — find review images for ad creative inspiration

Supported URL formats

All of these work:

  • https://www.amazon.com/dp/B0D1XD1ZV3
  • https://www.amazon.com/Some-Product-Name/dp/B0D1XD1ZV3
  • https://www.amazon.com/product-reviews/B0D1XD1ZV3
  • B0D1XD1ZV3 (plain ASIN)

Limits

  • US Amazon (amazon.com) only
  • Scrape time scales with review count (~1-2 min for 200 reviews, ~5 min for 1000+)

FAQ

Why not just use the Amazon Product Advertising API? The Amazon PA API doesn't expose review text. This scraper gets the actual review content, images, and metadata.

Why does this work when other scrapers don't? Other scrapers use HTTP requests through datacenter proxies. Amazon fingerprints and blocks these. This scraper uses a full Playwright browser with residential IPs and real authenticated sessions — the same way a human browses Amazon.

Can I scrape multiple products in one run? Yes. Pass multiple URLs in productUrls. Each product is scraped sequentially.

What if a product has fewer reviews than maxReviews? The scraper stops when it runs out of reviews and returns whatever it found.