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.
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- USamazon.comproduct or review URLs, including/dp/,/gp/product/, and/product-reviews/links.asins- Amazon Standard Identification Numbers such asB0BLCBRBVZ.
Optional controls:
maxReviewsPerProduct- Maximum unique reviews saved per ASIN.scrapeMode-basic,full, ormaxroute 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
}
Add review evidence to e-commerce intelligence
Use Amazon Reviews Scraper to collect customer language for selected ASINs, then pair it with Amazon Products & Search Scraper for product discovery, Ecommerce Product Page Scraper for price and availability snapshots, and Facebook Ads Library Scraper or TikTok Ads Library Scraper for competitor ad context.
Output
Each saved dataset item represents one public review record. Fields include:
| Field | Description |
|---|---|
asin, productUrl |
Product identifier and canonical Amazon URL. |
reviewId, reviewUrl |
Stable review identifier and URL when the public source provides one. |
title, text, rating, author |
Core review content. |
reviewedIn |
Original public country-and-date label. |
reviewCountry, reviewCountryCode |
Parsed country and ISO alpha-2 code. |
reviewDateText, reviewDate, reviewTimestamp |
Raw date, normalized YYYY-MM-DD date, and Unix UTC timestamp. |
helpfulVotes, isVerifiedPurchase, isVineReview |
Public trust and engagement signals. |
imageUrls, mediaUrls, videoUrls, videoPosterUrls |
Normalized review media links. |
marketplace, scrapedAt |
Marketplace and ISO extraction timestamp. |
source, sourceMarketplace, sourceCoverage |
Source 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. If a mixed batch contains invalid targets, the Actor skips them, preserves valid product results, and records the rejected values in INPUT_ERRORS. A run fails when every valid target encounters an upstream failure; a confirmed no_coverage response remains a successful empty check.
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.
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."
Best practices
- Start with
maxReviewsPerProduct: 20while 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
reviewIdplusasinwhen merging historical runs.