Amazon Reviews Scraper avatar

Amazon Reviews Scraper

Pricing

from $0.06 / 1,000 review saveds

Go to Apify Store
Amazon Reviews Scraper

Amazon Reviews Scraper

Extract Amazon product review medley rows from supported marketplaces.

Pricing

from $0.06 / 1,000 review saveds

Rating

0.0

(0)

Developer

Hanna Nosova

Hanna Nosova

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Extract public amazon.com product reviews by ASIN or product URL when public review coverage is available through the supported public route. The actor is designed for repeatable exports, monitoring, and review intelligence workflows that need structured review records plus transparent coverage diagnostics.

What does Amazon Reviews Scraper do?

Amazon Reviews Scraper collects public review records for US Amazon products and saves them as structured dataset items. It accepts Amazon product URLs, Amazon review URLs, or raw ASINs.

The actor is intentionally transparent about coverage. Some ASINs return public review rows through the supported route, while others do not. When coverage is missing, the actor records diagnostics so downstream jobs can distinguish a successful zero-result check from an input or runtime failure.

Ready-to-run examples

Try these public Apify Store tasks with safe sample inputs:

Who is it for?

  • Reputation teams tracking customer feedback for product lines.
  • Product marketers comparing review sentiment across competing ASINs.
  • Ecommerce analysts enriching dashboards with recent public reviews.
  • Agencies monitoring client and competitor review changes.
  • Data teams that need repeatable exports instead of manual review copying.

Input

You can provide one or both of these input types:

  • productUrls - US amazon.com product or review URLs, including /dp/, /gp/product/, and /product-reviews/ links.
  • asins - Amazon Standard Identification Numbers such as B0BLCBRBVZ.

Optional controls:

  • maxReviewsPerProduct - Maximum unique reviews saved per ASIN.
  • scrapeMode - basic, full, or max route coverage mode.
  • includeDiagnostics - Save per-ASIN diagnostics to the key-value store.

Input recipes

Quick ASIN check

{
"asins": ["B0BLCBRBVZ"],
"maxReviewsPerProduct": 20,
"scrapeMode": "basic",
"includeDiagnostics": true
}

Product URL export

{
"productUrls": [
{ "url": "https://www.amazon.com/dp/B0BN7M8CH4" }
],
"maxReviewsPerProduct": 50,
"scrapeMode": "full",
"includeDiagnostics": true
}

Deeper deduplicated coverage check

{
"asins": ["B0BLCBRBVZ", "B0BN7M8CH4"],
"maxReviewsPerProduct": 150,
"scrapeMode": "max",
"includeDiagnostics": true
}

Output

Each saved dataset item represents one public review record. Fields include:

FieldDescription
asin, productUrlProduct identifier and canonical Amazon URL.
reviewId, reviewUrlStable review identifier and URL when the public source provides one.
title, text, rating, authorCore review content.
reviewedInOriginal public country-and-date label.
reviewCountry, reviewCountryCodeParsed country and ISO alpha-2 code.
reviewDateText, reviewDate, reviewTimestampRaw date, normalized YYYY-MM-DD date, and Unix UTC timestamp.
helpfulVotes, isVerifiedPurchase, isVineReviewPublic trust and engagement signals.
imageUrls, mediaUrls, videoUrls, videoPosterUrlsNormalized review media links.
marketplace, scrapedAtMarketplace and ISO extraction timestamp.
source, sourceMarketplace, sourceCoverageSource and coverage provenance.

Example output

{
"asin": "B0BLCBRBVZ",
"productUrl": "https://www.amazon.com/dp/B0BLCBRBVZ",
"reviewId": null,
"reviewUrl": null,
"title": "Works well",
"text": "The product matched the listing and arrived quickly.",
"rating": 5,
"author": "Amazon Customer",
"reviewedIn": "Reviewed in the United States on July 20, 2026",
"reviewCountry": "United States",
"reviewCountryCode": "US",
"reviewDateText": "July 20, 2026",
"reviewDate": "2026-07-20",
"reviewTimestamp": 1784505600,
"helpfulVotes": 2,
"isVerifiedPurchase": true,
"isVineReview": false,
"imageUrls": [],
"mediaUrls": [],
"videoUrls": [],
"videoPosterUrls": [],
"marketplace": "amazon.com",
"scrapedAt": "2026-08-01T15:00:00.000Z",
"source": "woot_reviews_ajax",
"sourceMarketplace": "amazon.com",
"sourceCoverage": "partial_woot_public_coverage"
}

Diagnostics

When includeDiagnostics is enabled, the actor saves a DIAGNOSTICS key-value store record. Each ASIN has a status and route counters:

  • ok - public review rows were found and parsed.
  • no_coverage - the request completed, but the supported public route returned no rows for that ASIN.
  • failed - the ASIN could not be processed after retries.

Diagnostics include attempted combinations, raw rows, unique rows, and a short message.

Limits and coverage

This actor supports US amazon.com product identifiers. It rejects non-US Amazon marketplace URLs so the dataset does not imply unsupported marketplace coverage.

Coverage is partial by ASIN. Use scrapeMode: max for the broadest route check when you are validating whether an ASIN has public coverage. The actor deduplicates reviews across filter and sort combinations before saving output.

Pricing

This actor uses pay-per-event pricing.

  • Start is charged once per run.
  • Review saved is charged for each review item saved to the dataset.

You only pay per saved review item for the primary event. Runs that check ASINs and find no supported public coverage do not emit review-item charges. For current rates, open the live Apify Pricing tab.

API usage

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/amazon-reviews-scraper').call({
asins: ['B0BLCBRBVZ'],
maxReviewsPerProduct: 20,
scrapeMode: 'basic',
includeDiagnostics: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

from apify_client import ApifyClient
import os
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('fetch_cat/amazon-reviews-scraper').call(run_input={
'asins': ['B0BLCBRBVZ'],
'maxReviewsPerProduct': 20,
'scrapeMode': 'basic',
'includeDiagnostics': True,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

cURL

curl -X POST "https://api.apify.com/v2/acts/fetch_cat~amazon-reviews-scraper/runs?token=$APIFY_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"asins":["B0BLCBRBVZ"],"maxReviewsPerProduct":20,"scrapeMode":"basic","includeDiagnostics":true}'

MCP

If you use Apify MCP tools, run the actor with the same JSON input shown above and read items from the default dataset. Diagnostics are available from the default key-value store record named DIAGNOSTICS.

Add the Apify MCP server to Claude Desktop or Claude Code:

$claude mcp add apify -- npx -y @apify/actors-mcp-server

Example MCP server configuration:

{
"mcpServers": {
"apify": {
"command": "npx",
"args": ["-y", "@apify/actors-mcp-server"],
"env": {
"APIFY_TOKEN": "your-apify-token"
}
}
}
}

Example prompts:

  • "Run Amazon Reviews Scraper for ASIN B0BLCBRBVZ and summarize the rating distribution."
  • "Fetch up to 20 reviews for this Amazon product URL and show the saved dataset fields."
  • "Check the diagnostics record and tell me whether the ASIN had public review coverage."

More Amazon scrapers

For broader Amazon data workflows, also consider these public Amazon scrapers from FetchCat:

Use this actor when your workflow specifically needs review records and coverage diagnostics.

Best practices

  • Start with maxReviewsPerProduct: 20 while validating coverage.
  • Use raw ASINs for scheduled monitoring jobs.
  • Enable diagnostics for dashboards and alerts.
  • Increase limits only after confirming an ASIN returns public rows.
  • Deduplicate downstream on reviewId plus asin when merging historical runs.

FAQ

Does it support every Amazon product?

No. Coverage depends on whether the supported public route returns review rows for the ASIN.

Does it support non-US marketplaces?

No. The actor currently supports US amazon.com URLs and ASINs only.

What happens when an ASIN has no coverage?

The run can still succeed. The actor records a no_coverage diagnostic so your workflow can track the check.

Can I schedule monitoring?

Yes. Create an Apify schedule with your ASIN list and keep diagnostics enabled.

How are duplicates handled?

The actor deduplicates reviews collected across route combinations before saving dataset items.