Amazon Reviews Scraper Pro avatar

Amazon Reviews Scraper Pro

Pricing

from $3.00 / 1,000 results

Go to Apify Store
Amazon Reviews Scraper Pro

Amazon Reviews Scraper Pro

Extract customer reviews from any Amazon product across 19+ domains with star-rating filtering and sort options. Same cookie-free, residential-proxy architecture as the base scraper.

Pricing

from $3.00 / 1,000 results

Rating

0.0

(0)

Developer

Crawler Bros

Crawler Bros

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

0

Monthly active users

13 minutes ago

Last modified

Share

Amazon Reviews Scraper Pro is the Pro tier of our Amazon reviews scraper. Same anti-bot resilience, cookie-free architecture, and field set as the base scraper — packaged separately for users who want a distinct deployment slot.

Extract customer reviews from any Amazon product across 19+ Amazon domains worldwide. Returns structured review data including text, star rating, helpful count, date, location, sentiment hint, images, variant, and reviewer profile (optional, GDPR-aware).

This actor runs in cookie-free public-data mode by default and uses the free Apify AUTO (datacenter) proxy group, automatically escalating to a residential proxy only if it detects a block. There is nothing for you to log into or maintain — give it product URLs, get reviews back. See sourceMode below to force the cheapest strict inline-only path, or the full authenticated paginated path.

What this actor does

  • Extracts customer reviews (rating, title, text, date, location, helpful count, images, variant, sentiment hint) from any Amazon product URL or bare ASIN across 19+ Amazon domains
  • Cookie-free by default, with automatic amazon.ca / amazon.com.br marketplace fallback when amazon.com's inline review widget is walled
  • Filter and sort: star rating (1-5) and most-helpful / most-recent ordering; optional keyword/category auto-discovery when you don't already have product URLs
  • Optional review aggregates: one amazon_review_aggregate record per product with average rating, star histogram, and an AI "Customers say" summary
  • Empty fields are omitted — a field only appears on a record if Amazon's own page actually populated it, never returned as null

Key Features

  • Multi-product support: Scrape reviews from many Amazon products in one run
  • 19 Amazon domains: amazon.com, .co.uk, .de, .fr, .it, .es, .ca, .com.au, .co.jp, .in, .com.br, .com.mx, .nl, .sg, .ae, .sa, .pl, .se, .com.tr
  • Smart filtering: filter by star rating (1-5)
  • Flexible sorting: most helpful or most recent
  • GDPR aware: optional inclusion of reviewer name / profile / avatar
  • Image extraction: optional capture of reviewer-uploaded images
  • Resilient by default: AUTO (datacenter, free) proxy first, automatically escalating to a residential proxy only on a detected block, with a handful of fresh-session retries on transient blocks
  • Automatic marketplace fallback: retries a walled amazon.com ASIN via amazon.ca / amazon.com.br with zero configuration changes
  • Optional authenticated cookie mode: bring your own Amazon session cookie for up to 2,000 reviews/ASIN via paginated fetches
  • Keyword / category auto-discovery: leave productUrls empty and supply keywords and/or categoryUrls instead — the actor discovers products via Amazon's public search/category pages and reviews up to maxProductsToDiscover of them
  • Review aggregates: an optional amazon_review_aggregate record per product (average rating, global ratings count, star histogram, AI "Customers say" summary + per-aspect sentiment breakdown) — enabled by default (includeAggregates)
  • Reviewer videos & Vine Voice badge: reviewVideos[] and isVineVoice are captured when Amazon's own page renders them
  • Verified-purchase filter (cookie mode): verifiedPurchasesOnly / reviewerType narrow cookie-mode fetches to Verified Purchases only

Output per review

Each review is returned with the following fields (empty fields are omitted — any field the source page did not populate is dropped, never returned as null):

  • productAsin — Amazon ASIN of the reviewed product
  • ratingScore — star rating, 1-5
  • reviewTitle, reviewDescription — review headline and full text
  • reviewUrl — direct link to the individual review
  • reviewReaction — raw "N people found this helpful" text
  • reviewedIn — raw "Reviewed in <country> on <date>" text
  • isVerified — Verified Purchase flag
  • isVineVoice — Amazon Vine Voice reviewer flag (only when evidenced)
  • variant — product variant purchased (e.g. size/color)
  • reviewImages[] — reviewer-uploaded image URLs (includeImages)
  • reviewVideos[] — reviewer-uploaded videos (url, thumbnailUrl), only when Amazon's own page renders them
  • position — rank of this review within its product's fetched set
  • reviewId — Amazon's own review identifier
  • helpfulCount — parsed numeric helpful-vote count
  • reviewDate — parsed ISO date
  • reviewLocation — parsed reviewer country/region
  • sentimentHint — derived positive / neutral / negative label
  • wordCount — review length (character count for CJK scripts)
  • hasImages, imageCount, hasVideos, videoCount — derived counts
  • reviewerName, reviewerProfile, reviewerAvatar — only present when includeGdprSensitive is true
  • collectionCompleteness: "INLINE_SAMPLE" — only present when sourceMode=FULL_PAGE fell back to the cookie-free sample
  • scrapedAt — UTC timestamp of the scrape
  • sourceUrl — the product URL that was scraped

Example output: review record

{
"productAsin": "B09X7MPX8L",
"ratingScore": 5,
"reviewTitle": "Amazing product!",
"reviewUrl": "https://www.amazon.com/gp/customer-reviews/R1234567890",
"reviewReaction": "123 people found this helpful",
"reviewedIn": "Reviewed in the United States on January 15, 2024",
"reviewDescription": "This is the full review text...",
"isVerified": true,
"isVineVoice": false,
"variant": "Size: Large, Color: Blue",
"reviewImages": ["https://images-na.ssl-images-amazon.com/..."],
"reviewVideos": [
{"url": "https://www.amazon.com/vdp/abc123.m3u8", "thumbnailUrl": "https://m.media-amazon.com/images/thumb.jpg"}
],
"position": 1,
"reviewId": "R1234567890",
"helpfulCount": 123,
"reviewDate": "2024-01-15T00:00:00",
"reviewLocation": "United States",
"sentimentHint": "positive",
"wordCount": 150,
"hasImages": true,
"imageCount": 2,
"hasVideos": false,
"videoCount": 0,
"scrapedAt": "2024-01-20T10:30:00Z",
"sourceUrl": "https://www.amazon.com/dp/B09X7MPX8L"
}

reviewerName, reviewerProfile, and reviewerAvatar are returned only when includeGdprSensitive is set to true. reviewVideos/isVineVoice are only ever populated with real, evidence-backed data from Amazon's own page — most reviews have neither.

Output per product (review aggregate)

When includeAggregates is true (default), the actor also pushes one amazon_review_aggregate record per product, in addition to its individual reviews:

  • type: "amazon_review_aggregate" — record-type marker
  • productAsin — Amazon ASIN
  • averageRating — overall star rating shown on the product page
  • globalRatingsCount — total number of ratings (not just fetched reviews)
  • starsBreakdown — count/percentage per star (5 through 1)
  • customersSay — Amazon's AI-generated "Customers say" summary
  • customersSayAspects[] — per-aspect sentiment breakdown (label, sentiment, mentionCount, summary)
  • productUrl — canonical /dp/{ASIN} product URL
  • collectionCompleteness: "INLINE_SAMPLE" — only present when sourceMode=FULL_PAGE fell back to the cookie-free sample
  • scrapedAt — UTC timestamp of the scrape
  • sourceUrl — the product URL that was scraped

Example output: aggregate record

{
"type": "amazon_review_aggregate",
"productAsin": "B09X7MPX8L",
"averageRating": 4.7,
"globalRatingsCount": 147735,
"starsBreakdown": {"5": 83, "4": 10, "3": 3, "2": 1, "1": 3},
"customersSay": "Customers say the product is easy to use and durable...",
"customersSayAspects": [
{"label": "Quality", "sentiment": "positive", "mentionCount": 427, "summary": "Customers say the quality is great."}
],
"productUrl": "https://www.amazon.com/dp/B09X7MPX8L",
"scrapedAt": "2024-01-20T10:30:00Z",
"sourceUrl": "https://www.amazon.com/dp/B09X7MPX8L"
}

Status records

When a run can't return real reviews for every requested product, the actor still pushes exactly one typed status record (identified by a type field) instead of leaving the dataset empty — so a "0 reviews" outcome is always self-explanatory from the dataset alone, not just the run log.

typeMeaning
amazon_reviews_no_proxyproxyConfiguration.useApifyProxy was not true.
amazon_reviews_proxy_failedApify proxy configuration could not be created.
amazon_reviews_walled_usamazon.com is walled and countryFallback=false.
amazon_reviews_no_star_matchFetch succeeded but no reviews matched filterByStar — expected, not an error.
amazon_reviews_blockedNo reviews recovered on any attempted marketplace.
amazon_reviews_cookie_invalidCookie mode: cookieString couldn't be parsed / missing a session key.
amazon_reviews_cookie_expiredCookie mode: Amazon redirected to /ap/signin — session expired.
amazon_reviews_cookie_robot_blockedCookie mode: Amazon served a robot/CAPTCHA challenge.
amazon_reviews_auth_requiredsourceMode=FULL_PAGE with no cookieString and onAuthRequired=FAIL.
amazon_reviews_no_products_discoveredkeywords/categoryUrls discovery found no products.

Input

FieldTypeDefaultDescription
productUrlsarray-Amazon product URLs, or bare ASINs (e.g. B09X7MPX8L, expanded using country). Leave empty to use keywords/categoryUrls instead
keywordsarray[]Search keywords to auto-discover products (used only when productUrls is empty)
categoryUrlsarray[]Amazon /s?...//b?node=... URLs to auto-discover products from (used only when productUrls is empty)
maxProductsToDiscoverinteger10Max products to discover from keywords/categoryUrls
includeAggregatesbooleantrueEmit one amazon_review_aggregate record per product
sourceModeenumAUTOAUTO (cookie mode if cookieString set, else inline sample), INLINE_ONLY (always cheap cookie-free, never escalates proxy), FULL_PAGE (requires cookieString; see onAuthRequired)
onAuthRequiredenumRETURN_PARTIALFULL_PAGE only: FAIL (abort) or RETURN_PARTIAL (fall back to inline sample, tagged collectionCompleteness: "INLINE_SAMPLE") when no valid cookieString is supplied
proxyConfigurationobjectAUTOApify proxy (required). AUTO (datacenter) first, auto-escalates to RESIDENTIAL on a detected block
maxReviewsinteger15Reviews per product (1–15, capped by inline render)
sortByenumhelpfulhelpful or recent
filterByStarenum"" (all)"", "1", "2", "3", "4", "5"
includeImagesbooleantrueExtract reviewer-uploaded images
includeGdprSensitivebooleanfalseInclude reviewer name / profile / avatar
countryenumamazon.comAmazon domain (19 supported)
countryFallbackbooleantrueAuto-retry via amazon.ca / amazon.com.br when the requested marketplace is walled (cookie-free mode only)
cookieStringstring"" (cookie-free)Optional Amazon session cookie — switches to authenticated paginated mode when set
verifiedPurchasesOnlybooleanfalseCookie mode only: only return Verified Purchase reviews
reviewerTypeenum""Cookie mode only: "", all_reviews, avp_only_reviews
cookieModeMaxReviewsinteger500Max reviews per product in cookie mode (1–2000)
maxConcurrencyinteger1Concurrent pages (1-5)
requestTimeoutinteger60Per-page timeout in seconds (30–180)
retryCountinteger3Fresh-session retries on blocks (1–10)
{
"productUrls": [
"https://www.amazon.com/dp/B09X7MPX8L"
],
"maxReviews": 15,
"sortBy": "helpful",
"filterByStar": "",
"includeImages": true,
"includeGdprSensitive": false,
"country": "amazon.com",
"sourceMode": "AUTO",
"proxyConfiguration": {
"useApifyProxy": true
}
}

Example: discover products by keyword, 5-star only

{
"keywords": ["wireless earbuds"],
"maxProductsToDiscover": 5,
"filterByStar": "5",
"sortBy": "recent",
"country": "amazon.co.uk",
"proxyConfiguration": {
"useApifyProxy": true
}
}

Example: cheapest strict single-marketplace path

{
"productUrls": ["B09X7MPX8L"],
"sourceMode": "INLINE_ONLY",
"countryFallback": false,
"country": "amazon.de",
"proxyConfiguration": {
"useApifyProxy": true
}
}
{
"productUrls": ["https://www.amazon.com/dp/B09X7MPX8L"],
"cookieString": "session-id=123-4567890-1234567; ubid-main=123-4567890-1234567; at-main=Atza|...",
"verifiedPurchasesOnly": true,
"cookieModeMaxReviews": 500,
"proxyConfiguration": {
"useApifyProxy": true
}
}

This actor never logs in to Amazon and never carries authenticated session cookies. That choice keeps it simple to run, but it imposes hard limits that are dictated by Amazon — not by the scraper itself.

What you get:

  • Up to ~8–13 "top reviews" per ASIN — Amazon's inline review block on the /dp/{ASIN} product page
  • All public review fields (text, rating, date, location, helpful count, images, variant)

What is not supported:

  • Pagination beyond the inline block. Amazon now redirects every anonymous /product-reviews/{ASIN} request to /ap/signin, regardless of country, TLS fingerprint, or warmup pattern (verified across 6 mitigation strategies in May 2026). Reviews are therefore extracted from the inline block on the product detail page, which renders 8–13 reviews and has no "next page".
  • Star-rating filter at fetch time. The filterByStar input still works, but is applied client-side to the inline block — expect 0–5 reviews per star.
  • The verified-purchase filter (reviewerType=avp_only_reviews) requires an authenticated session and is therefore not exposed as an input. The isVerified flag IS still populated per review.

Why a proxy is required, and the AUTO/RESIDENTIAL posture: Amazon can block anonymous datacenter IPs, but usually renders the inline block fine on the free AUTO (datacenter) proxy group too — so the actor tries AUTO first by default. Only if that pass comes back with 0 reviews and a block/wall signal does it automatically retry the whole batch once more on a forced RESIDENTIAL proxy. This escalation is skipped when sourceMode=INLINE_ONLY, or when you pin apifyProxyGroups: ["RESIDENTIAL"] yourself. proxyConfiguration is required in the input schema either way, and the actor exits cleanly with a typed status message if no proxy at all is configured.

Amazon.com Sign-In Wall (July 2026)

In July 2026 Amazon extended its November 2024 /product-reviews/ login wall to the inline "Top reviews" block itself on amazon.com/dp/{ASIN}. The block now ships as an empty <div id="cr-top-reviews-card"></div> plus a "Customer reviews require account verification. Sign in" prompt — for anonymous sessions on AUTO and on a residential proxy alike. This is a server-side gate, not a TLS/fingerprint/selector issue, and no amount of stealth browsing recovers the missing data.

The wall is marketplace-specific, not universal: as of this writing, amazon.ca and amazon.com.br still render the inline review block cookie-free. See docs/plans/research-amazon-reviews-cookie-wall-2026-07.md in this repo for the full empirical investigation (live probes, cloud verification, and a survey of how other open-source/commercial scrapers are affected by the same change).

Multi-Marketplace Fallback (countryFallback)

Enabled by default. When the requested country (e.g. amazon.com) returns 0 review cards because of the sign-in wall above, the actor automatically retries the same ASIN against amazon.ca then amazon.com.br, each with a proxy country-matched to that marketplace (same AUTO-first-then-escalate posture as the primary marketplace). The run log shows exactly what happened:

Marketplace router: amazon.com is walled — trying next fallback (amazon.ca)
Marketplace router: amazon.ca returned 13 reviews

Cross-listed international products (a large fraction of name-brand catalog) keep working with zero configuration changes. Reviews recovered this way may be in the fallback marketplace's language (e.g. Portuguese from amazon.com.br) and reference local shipping/pricing context.

Set countryFallback=false if you need strict single-marketplace matching — in that case a walled .com run returns a typed amazon_reviews_walled_us status record instead of silently substituting data from elsewhere.

Source Mode (sourceMode)

Controls which of the actor's two review-collection paths is used, and how strictly:

  • AUTO (default). Uses cookie mode automatically when you supply a cookieString, otherwise the cookie-free inline sample. Same behavior as leaving sourceMode unset.
  • INLINE_ONLY. Always uses the cheap cookie-free inline sample, even if you also supplied a cookieString (ignored in this mode). Never escalates to a RESIDENTIAL proxy and disables countryFallback — the strictest, cheapest, single-marketplace path, useful when you want predictable low-cost runs and don't need the marketplace-fallback substitution behavior.
  • FULL_PAGE. Always uses the full paginated, authenticated /product-reviews/{ASIN} fetcher (same as setting cookieString directly) and therefore requires a valid cookieString. If none is supplied, onAuthRequired decides what happens:
    • FAIL — abort the run with a typed amazon_reviews_auth_required status message and no data.
    • RETURN_PARTIAL (default) — fall back to the cookie-free inline sample instead, tagging every returned review (and its aggregate record) collectionCompleteness: "INLINE_SAMPLE" so downstream consumers can tell it isn't the full paginated set.

For full paginated review history (up to 2,000 reviews per ASIN, including the verified-purchase filter), supply your own Amazon session cookies via the cookieString input:

  1. Log in to amazon.com in a normal browser.
  2. Open DevTools → Network tab, reload any page, click a request to amazon.com.
  3. Copy the literal Cookie: request header value (e.g. session-id=123-...; ubid-main=...; at-main=...).
  4. Paste it into cookieString.

When set, the actor switches to paginated /product-reviews/{ASIN} fetches and fans out across star filters once the 500-reviews-per-filter Amazon pagination ceiling is hit, up to cookieModeMaxReviews (default 500, max 2,000).

Important:

  • Paste only the session cookie value — never your Amazon password. The actor rejects any cookieString containing the word "password" as a safety check.
  • The actor never stores or reuses cookies beyond the current run.
  • If your session expires mid-run, the actor returns a typed amazon_reviews_cookie_expired record rather than failing silently.
  • Scraping while authenticated puts the activity under Amazon's Terms of Service for logged-in accounts — you are the data controller; use a lawful basis (e.g. scraping your own seller/brand's reviews) before enabling this mode at scale.

Supported Amazon Domains

DomainCountry
amazon.comUnited States
amazon.co.ukUnited Kingdom
amazon.deGermany
amazon.frFrance
amazon.itItaly
amazon.esSpain
amazon.caCanada
amazon.com.auAustralia
amazon.co.jpJapan
amazon.inIndia
amazon.com.brBrazil
amazon.com.mxMexico
amazon.nlNetherlands
amazon.sgSingapore
amazon.aeUAE
amazon.saSaudi Arabia
amazon.plPoland
amazon.seSweden
amazon.com.trTurkey

GDPR Compliance

When includeGdprSensitive=false (the default) the scraper omits:

  • Reviewer names
  • Reviewer profile links
  • Reviewer avatars

Set it to true only if you have a lawful basis to process that data.

Use cases

  • Voice of customer analysis — pull real review text and star ratings for a product line to feed into sentiment/keyword analysis
  • Competitive benchmarking — compare averageRating/starsBreakdown and "Customers say" summaries across competing ASINs
  • Review monitoring — schedule daily runs on a watch-list of products and track new reviews, ratings, and helpful-vote counts over time
  • Trust & quality signals — surface isVerified/isVineVoice flags and reviewer-uploaded images/videos for product-quality dashboards
  • Localization research — compare review tone and content across Amazon's 19+ country storefronts for the same product
  • Brand/seller reputation tracking — bring your own cookieString for deeper, paginated review history (up to 2,000 reviews/ASIN) on your own products

FAQ

Can I get more than ~13 reviews per product? Not in cookie-free mode — reviews come from the inline block on the /dp/ product page, which caps at ~8-13 "top reviews" per ASIN with no "next page". For more, supply a cookieString (see "Optional Cookie Mode" above) — cookie mode returns up to cookieModeMaxReviews (default 500, max 2,000) via paginated /product-reviews/.

Why is my .com run returning 0 reviews / reviews in French or Portuguese? Two possibilities: (1) proxyConfiguration.useApifyProxy was omitted or false — check the log for an Apify proxy required message; or (2) amazon.com's inline review block is walled (see "Amazon.com Sign-In Wall" above) and the countryFallback fallback fired, substituting reviews from amazon.ca or amazon.com.br. Check the log for a

Marketplace router: amazon.com is walled — trying next fallback
line. Disable countryFallback if you need strict .com-only matching.

Why does the actor log say

Marketplace router: amazon.com is walled — trying next fallback
? See "Multi-Marketplace Fallback" above — this is expected behavior when amazon.com's inline review widget is gated and countryFallback=true (the default).

Can I scrape reviews translated into other languages? Yes — pick the corresponding domain in country (e.g. amazon.de for German). Reviews are returned in the language of the chosen storefront.

Do you support reviews from a specific verified-purchase filter? No. That filter requires an authenticated Amazon session. The isVerified field on each review is still populated, so you can filter the output yourself in your downstream pipeline.

How is the data deduplicated? Reviews are deduplicated by reviewId across products in a single run (there is no per-page pagination in cookie-free mode, so pagination duplicates cannot occur).

Are you respecting Amazon's robots.txt? Yes. This actor only fetches /dp/{ASIN} product pages, which Amazon's robots.txt does not disallow for User-agent: *. There is no Crawl-delay directive on amazon.com; the actor still paces requests via requestTimeout and a default 2 s inter-product delay.

Is this actor affiliated with Amazon? No. This is an independent, third-party actor that reads publicly available Amazon product/review pages. It is not operated, endorsed, or sponsored by Amazon.com, Inc.

Limitations

  • ~8-13 reviews per ASIN in cookie-free mode (Amazon's inline /dp/ block ceiling). Anonymous /product-reviews/ pages redirect to sign-in. Supply a cookieString for up to 2,000 reviews/ASIN.
  • As of July 2026, amazon.com's inline review block itself is walled for cookie-free requests; the actor automatically falls back to amazon.ca / amazon.com.br (see above) unless countryFallback=false.
  • Verified-purchase pre-filtering is unavailable in cookie-free mode; isVerified is still set per review. Cookie mode does not add a separate verified-only URL parameter either — filter client-side on isVerified if needed.
  • Run-to-run review counts can vary by +/- 10% as Amazon shuffles the order of "Most helpful" reviews.
  • An Apify proxy is required in both modes; running without one exits cleanly with a typed status message and produces no records. AUTO (datacenter) is tried first by default and escalates to RESIDENTIAL automatically only on a detected block (skipped for sourceMode=INLINE_ONLY or when you pin RESIDENTIAL yourself).

Integration

# Get results via API
curl "https://api.apify.com/v2/datasets/{datasetId}/items?token={apiToken}"

Output formats supported by Apify: JSON, CSV, Excel, RSS, HTML table.

More Amazon Actors

Part of a full Amazon scraper suite — also check out: