# Amazon Reviews Scraper (`jdtpnjtp/amazon-reviews`) Actor

Scrape full Amazon customer reviews with NO login and NO cookie. Provide ASINs or product URLs - get every review (rating, title, text, author, date, verified, helpful votes, photos) as clean structured rows. Pay only per review, no subscription.

- **URL**: https://apify.com/jdtpnjtp/amazon-reviews.md
- **Developed by:** [Data Forge](https://apify.com/jdtpnjtp) (community)
- **Categories:** E-commerce, SEO tools, Integrations
- **Stats:** 246 total users, 148 monthly users, 92.3% runs succeeded, 1 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $1.10 / 1,000 reviews

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Amazon Reviews Scraper

**Pull hundreds of real Amazon customer reviews per product as clean structured rows - across all five star ratings, deduped and newest-first.** Drop in product IDs or paste product URLs, pick a marketplace, star filter and sort order, and export sortable, filterable rows ready for CSV, Excel or JSON. No HTML parsing, no anti-bot headaches. No subscription, pay only per review.

***

### Why this Actor?

Data Forge pulls a deep, recent sample of real customer reviews - not just the handful of featured reviews most tools stop at.

| What you get | Data Forge Amazon Reviews | Typical review actor |
|---|---|---|
| Reviews per product | **Up to 300 recent** | 8-10 featured only |
| Star filter (five\_star to one\_star) | **Yes, 8 options** | No |
| Sentiment filter (positive / critical) | **Yes** | No |
| Sort order | **Recent or most-helpful** | Fixed |
| Marketplaces | **8 (us, uk, de, fr, it, es, ca, jp)** | 1 |
| Fields per review row | **Title + text + rating + date + author + verified + photos** | Rating + text |
| Pricing | **Pay per review returned** | Monthly subscription |

### What it does

Give it any mix of ASINs and/or Amazon product URLs and it pulls the customer reviews for each product (up to 800 each), with every field structured:

- ⭐ **Star rating** the reviewer gave (1-5)
- 📝 **Title** and 💬 **full review text**
- 👤 **Reviewer name** and 📅 **date**
- ✅ **Verified Purchase** flag and 🍃 **Amazon Vine** flag
- 👍 **Helpful votes**
- 🖼 **Review photos** (all attached images)
- 🌍 **Country** the review was written in

Narrow the result with the **star filter** (all stars, a single rating, or positive / critical sentiment) and choose **most recent** or **most helpful** ordering. Set a **soft cap per product** to keep runs quick and cheap, or pull up to 800 per product for a deep dataset. Flip on **featured reviews** to also grab the highlighted reviews shown on the product page.

Reviews are deduped across all five star ratings and both sort orders. Smaller products come back in full; very large products return the most-recent and most-helpful slice.

### Input

```json
{
  "products": ["B0FQFB8FMG", "https://www.amazon.com/dp/B09B8V1LZ3"],
  "country": "us",
  "starFilter": "all_stars",
  "sort": "recent",
  "maxReviewsPerAsin": 300,
  "includeTopReviewsFallback": false,
  "stopOnError": false
}
```

| Field | What it does |
|---|---|
| **Products (ASINs or URLs)** | The products to pull reviews for - paste an ASIN (10-char code, e.g. B0FQFB8FMG) or a full product URL. Mix both freely. |
| **Country** | Amazon marketplace: us, uk, de, fr, it, es, ca, jp. |
| **Star filter** | all\_stars (default) / five\_star / four\_star / three\_star / two\_star / one\_star / positive / critical. |
| **Sort** | recent (default) or helpful. |
| **Max reviews per product** | Soft cap on reviews returned per product (1-800). A lower cap runs faster and cheaper - you only pay for reviews returned. |
| **Also pull featured reviews** | Additionally grab the highlighted reviews shown on the product page. |
| **Stop on error** | Abort the whole run on the first failed product, instead of skipping it. |

Provide at least one product - an ASIN or a product URL - or the run fails fast with a clear message.

### Input modes and example tasks

Four copy-paste recipes, matched 1:1 to the ready-made example tasks on this Actor's page. Each one runs on a single ASIN (`B0DGHMNQ5Z`) so you can try it in seconds, then swap in your own products.

#### 1. Full sentiment dataset

Product and analytics teams: pull a broad recent set across all stars to score sentiment and surface recurring themes.

```json
{
  "products": ["B0DGHMNQ5Z"],
  "maxReviewsPerAsin": 300
}
```

#### 2. One-star complaint mining

Support and QA leads: isolate the harshest feedback to find defects, return drivers and refund triggers.

```json
{
  "products": ["B0DGHMNQ5Z"],
  "starFilter": "one_star",
  "maxReviewsPerAsin": 300
}
```

#### 3. Five-star social proof

Marketing and CRO teams: harvest glowing reviews for landing pages, ads and testimonial widgets.

```json
{
  "products": ["B0DGHMNQ5Z"],
  "starFilter": "five_star",
  "maxReviewsPerAsin": 300
}
```

#### 4. Most-helpful first

Researchers on a budget: lead with the reviews shoppers voted most helpful for the highest-signal sample per dollar.

```json
{
  "products": ["B0DGHMNQ5Z"],
  "sort": "helpful",
  "maxReviewsPerAsin": 300
}
```

### Output

One flat row per review, with the full raw review object under `data`. The dataset ships with a ready-made **Reviews** table tab, so the results read as a clean spreadsheet you can sort, filter and export to CSV / Excel / JSON in one click.

A real review row:

```json
{
  "asin": "B0FQFB8FMG",
  "author": "Jordan M.",
  "rating": 5,
  "title": "Best earbuds I've owned",
  "text": "Battery life is excellent and the noise cancelling is...",
  "date": "Reviewed in the United States on March 14, 2026",
  "country": "us",
  "verified_purchase": true,
  "vine": false,
  "helpful_count": 12,
  "images": ["https://m.media-amazon.com/images/I/..."],
  "image_url": "https://m.media-amazon.com/images/I/...",
  "data": { "...": "full review object" }
}
```

Console columns on the **Reviews** tab include `asin`, `rating`, `title`, `text`, `author`, `date`, `verified_purchase`, `vine`, `helpful_count` and `country`. Error rows carry an `error_code` and are **free** - you only pay for real reviews.

A run-summary record (`OUTPUT` key) reports the review count, error count and estimated cost. Live per-event pricing is shown on this actor's Apify Store page.

### Key features

- **Hundreds of reviews per product** - across all five star ratings, deduped and newest-first, up to 800 each.
- **Every review field structured** - rating, title, text, author, date, verified-purchase, Vine, helpful votes, photos, country.
- **8 marketplaces** - us, uk, de, fr, it, es, ca, jp.
- **Star + sentiment filters** - all stars, any single rating, or positive / critical, sorted by recent or helpful.
- **ASINs or URLs in one field** - feed product IDs or paste product links; the ASIN is extracted for you.
- **Fast cached responses** - repeat pulls return quickly; competitors scrape live at 3+ seconds.
- **You only pay for results** - errors and your own misconfigurations are never charged.

### FAQ

**Is scraping Amazon reviews legal?**
The Actor reads only publicly visible review content - the same text, ratings and photos any shopper sees on the product page. It collects no private or personal data beyond what the review shows in public. You stay responsible for using the output in line with your local regulations and Amazon's terms; common uses are product research, sentiment analysis and competitor monitoring.

**How fresh are the reviews?**
Reviews are pulled on every run and returned newest-first, so a July 2026 run surfaces reviews posted the same month - verified live, not served from an old archive. Repeat pulls of the same product may return a short-lived cache for speed; change any input to force a brand-new harvest.

**How many reviews can I get per product?**
Set `maxReviewsPerAsin` anywhere up to 800. Because Amazon limits how many reviews are publicly retrievable, you receive a deep, recent sample - up to about 300 reviews per product - rather than every review ever posted. Smaller catalogs come back in full; large ones return the most-recent and most-helpful slice.

**Can I schedule automatic runs?**
Yes. Use Apify Schedules to run the Actor hourly, daily or weekly and keep a rolling review dataset current. Combine it with webhooks or the dataset API to stream new reviews straight into your database, BI tool or spreadsheet.

**Which marketplaces are covered?**
Eight: us, uk, de, fr, it, es, ca and jp. Pick one per run with the `country` field.

**What exactly am I charged for?**
You pay per review returned - nothing else. Error rows and misconfigured inputs are free, so a blocked or invalid product never costs you a cent.

### Related actors

- **[Amazon Products Scraper](https://apify.com/jdtpnjtp/amazon-products)** - full product details, pricing, ratings and specs for any ASIN or URL.
- **[Amazon Scraper](https://apify.com/jdtpnjtp/amazon)** - search, best-sellers and category crawling across all 8 Amazon marketplaces.
- **[Walmart Reviews Scraper](https://apify.com/jdtpnjtp/walmart-reviews-scraper)** - the same recent-review harvesting, built for Walmart product pages.

### Support

Need help, higher limits, or a custom scraper built for your workflow? I personally support every customer - reach out on any channel and I answer fast.

[![Telegram](https://img.shields.io/badge/Telegram-2CA5E0?style=for-the-badge\&logo=telegram\&logoColor=white)](https://t.me/j4dtpnj2tp)
[![WhatsApp](https://img.shields.io/badge/WhatsApp-25D366?style=for-the-badge\&logo=whatsapp\&logoColor=white)](https://wa.me/380686031542)
[![Email](https://img.shields.io/badge/Email-D14836?style=for-the-badge\&logo=gmail\&logoColor=white)](mailto:jdtpnjtp@gmail.com)

# Actor input Schema

## `products` (type: `array`):

The products to pull reviews for. Paste an Amazon product URL (any /dp/ or /gp/product/ link) or just its 10-char ASIN (e.g. `B0FQFB8FMG`) - mix both freely, one entry per product. Each product returns its reviews as individual rows, up to the per-product cap below.

## `country` (type: `string`):

Which Amazon marketplace to read reviews from.

## `starFilter` (type: `string`):

Which reviews to keep. Default returns the full deduped set across all stars; pick a single rating or sentiment to narrow it.

## `sort` (type: `string`):

Order of the returned reviews.

## `maxReviewsPerAsin` (type: `integer`):

How many reviews to return for EACH product, up to 800. A lower value returns fewer reviews and runs a faster, cheaper harvest - you only pay for reviews actually returned. 50 = quick sample, 300 = solid dataset, 800 = maximum coverage.

## `includeTopReviewsFallback` (type: `boolean`):

When on, also pulls the featured (highlighted) reviews shown on the product page, in addition to the full set. Useful for a fast first batch of highlighted reviews. Each review billed as one `review` event.

## `stopOnError` (type: `boolean`):

If on, the run aborts as soon as one product fails (e.g. UPSTREAM\_BLOCKED). If off (default), the failure is logged as a free diagnostic row and the run continues to the next product.

## Actor input object example

```json
{
  "products": [
    "B0FQFB8FMG"
  ],
  "country": "us",
  "starFilter": "all_stars",
  "sort": "recent",
  "maxReviewsPerAsin": 300,
  "includeTopReviewsFallback": false,
  "stopOnError": false
}
```

# Actor output Schema

## `dataset` (type: `string`):

The default dataset. Each row is one Amazon review with the common fields flattened to top-level columns and the full raw object under `data`. Use the Reviews tab for a clean table.

## `summary` (type: `string`):

A single JSON object written to the default key-value store under the OUTPUT key. Contains country, star\_filter, sort, reviews (count), errors, total\_rows, estimated\_cost\_usd, limit\_reached, stopped\_on\_error and actor\_version.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "products": [
        "B0FQFB8FMG"
    ],
    "maxReviewsPerAsin": 300
};

// Run the Actor and wait for it to finish
const run = await client.actor("jdtpnjtp/amazon-reviews").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "products": ["B0FQFB8FMG"],
    "maxReviewsPerAsin": 300,
}

# Run the Actor and wait for it to finish
run = client.actor("jdtpnjtp/amazon-reviews").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "products": [
    "B0FQFB8FMG"
  ],
  "maxReviewsPerAsin": 300
}' |
apify call jdtpnjtp/amazon-reviews --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,jdtpnjtp/amazon-reviews"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/y2wdujRKD2FUa5h5l/builds/Gngq4FoeKeAQx9HA9/openapi.json
