# Amazon Reviews Analyzer (AI) (`signalsift/amazon-reviews-analyzer`) Actor

Turn Amazon reviews into a seller-ready report: defects to fix first, what buyers love for your listing, issues by variant, returns and a product benchmark. Use an Amazon Reviews Scraper dataset or product URLs. $1.50 per 1,000 reviews, $0.05 per report. Free demo, no input needed.

- **URL**: https://apify.com/signalsift/amazon-reviews-analyzer.md
- **Developed by:** [SignalSift](https://apify.com/signalsift) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 analyzed 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?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Amazon Reviews Analyzer (AI)

Turn Amazon product reviews into a report a seller can act on: which defects to fix first, what buyers love (ready to reuse in your listing), which complaints a clearer listing would stop, how each colour or size is doing, how verified buyers differ from the rest, and why people return the product. Every quote is copied word for word from a real review.

**No setup and no AI account needed.** Run it with no input to get a free demo report on sample reviews.

[![Sample report: fix-first list, listing fixes, issues by variant and verified buyers](https://api.apify.com/v2/key-value-stores/sPoeiS9NLJKW813gE/records/amazon-reviews-analyzer-report.png?signature=M89kDZSiPx43HDfpbL4I)](https://api.apify.com/v2/key-value-stores/sPoeiS9NLJKW813gE/records/amazon-reviews-analyzer-report.html?signature=NA89fTOZVK262bjNGHId)

[Open the full sample report](https://api.apify.com/v2/key-value-stores/sPoeiS9NLJKW813gE/records/amazon-reviews-analyzer-report.html?signature=NA89fTOZVK262bjNGHId): 40 fictional reviews of a demo water bottle in two colours and four languages, with themes, listing fixes, variants, buyer groups and a monthly trend.

### What you get

| | |
|---|---|
| 🧭 **Fix-first list** | Defects ranked by how often, how badly and how recently buyers mention them. Reviews other shoppers marked helpful count more, with a rising / steady / falling trend |
| 💬 **Themes with real quotes** | Top praise and complaint themes with counts, share of reviews and up to 3 verbatim quotes each, linked to the review |
| ✍️ **Fix your listing** | Complaints about size, instructions or the description that a clearer product page can stop, next to what buyers love for your bullets |
| 🎨 **Issues by variant** | Reviews, average stars, negative share and top complaint for each colour, size or style |
| ✅ **Verified buyers and others** | How verified purchases compare with the rest, and the share of Amazon Vine reviews |
| ↩️ **Returns and refunds** | How many reviews mention a return, refund or replacement, and the complaints behind them |
| 📊 **Product comparison** | Side-by-side table when you analyze several products, for example yours against competitors |
| 📈 **Month by month** | Review volume and average stars per month |
| 🚨 **Needs attention now** | Reviews about injuries, burns, fire, choking hazards, allergic reactions or counterfeits |
| 📄 **Three outputs** | A seller-ready HTML report, a short JSON summary for code and AI agents, and one dataset row per review |

### How to use it

1. **With product URLs or ASINs:** paste Amazon product URLs (any Amazon country) or 10-character ASINs and click Start. We scrape the newest reviews with [Amazon Reviews Scraper](https://apify.com/junglee/amazon-reviews-scraper) on your account first, then analyze them.
2. **With a dataset you already have:** put the dataset ID from an [Amazon Reviews Scraper](https://apify.com/junglee/amazon-reviews-scraper) or [Amazon Reviews Extractor](https://apify.com/web_wanderer/amazon-reviews-extractor) run in **Dataset ID**.
3. **Automatically after every scrape:** open your scraper (or its saved task), go to **Integrations**, add **Amazon Reviews Analyzer (AI)**. The scraper's dataset is passed in automatically, so each scheduled scrape produces a fresh report.

Then open the **Report** tab of the run for the HTML report, or the **Summary** tab for JSON.

### How much does it cost

You pay per result. Running the Actor itself costs you nothing extra: no compute or proxy charges.

| Event | Free & Starter | Scale | Business and up |
|---|---|---|---|
| Analyzed reviews (per 1,000) | $1.50 | $1.20 | $1.00 |
| Report (per run) | $0.05 | $0.05 | $0.05 |

**Never charged:** the demo run, star-only reviews with no text (they still count toward stars and trends), reviews we could not analyze, and runs that find no reviews.

**Examples on the Free and Starter plans:**

- One product with 200 reviews: $0.30 + $0.05 report = **$0.35**.
- 1,000 reviews: $1.50 + $0.05 = **$1.55**. Apify's free $5 monthly credit covers about **3,000 reviews a month**.
- A brand tracking 10 products with 200 reviews each in one monthly run: $3.00 + $0.05 = **$3.05** a month.

**Scraping is billed separately.** If you give product URLs, Amazon Reviews Scraper charges for the scrape on your account: about $6.00 per 1,000 reviews on the Free plan, less on paid plans. On Apify's Free plan it returns at most 10 reviews for 1 product per run, so for real volumes use a paid plan or give us a dataset you already have.

Free-plan runs analyze up to 1,000 reviews each. Your run's spending limit is always respected: if it is lower than the full job, we analyze what fits and tell you in the status message.

### Output

**JSON summary** (the `OUTPUT` record), shortened, from the free demo run on 40 fictional reviews of a water bottle:

```json
{
  "coverage": { "reviews": 40, "analyzed": 40, "noText": 0, "skipped": 0 },
  "overall": {
    "avgStars": 3.23,
    "topPraise": [{ "name": "Keeps drinks cold for hours", "count": 7, "share": 0.17, "quote": "there was still ice the next morning" }],
    "topComplaints": [{ "name": "Lid leaks after use", "count": 6, "share": 0.15, "quote": "After three weeks the lid leaks whenever the bottle tips over" }],
    "fixFirst": [{ "name": "Lid leaks after use", "score": 17.351, "negativeCount": 6, "shareOfNegative": 0.3, "trend": "up" }]
  },
  "variants": [
    { "productAsin": "DEMO-TRAIL-BOTTLE", "variant": "Color: Forest Green", "reviews": 20, "avgStars": 2.75, "negativeShare": 0.6, "topComplaint": "Lid leaks after use" },
    { "productAsin": "DEMO-TRAIL-BOTTLE", "variant": "Color: Slate Grey", "reviews": 20, "avgStars": 3.7, "negativeShare": 0.3, "topComplaint": "Lid leaks after use" }
  ],
  "buyerGroups": {
    "verified": { "reviews": 33, "avgStars": 3.06, "negativeShare": 0.52 },
    "unverified": { "reviews": 7, "avgStars": 4, "negativeShare": 0.14 },
    "vineShare": 0.05
  },
  "returns": { "count": 1, "share": 0.03, "topReasons": ["Lid leaks after use"] },
  "listingFixes": [{ "name": "Too wide for cup holders", "count": 3, "share": 0.07 }]
}
```

**Dataset**, one row per review: product ASIN and title, variant, verified purchase, Vine, helpful votes, country, stars, date, review title and text, analysis status, sentiment and score, aspects, phrases with verified excerpts, urgent flag and reason. Export it to Excel, CSV or JSON from the Storage tab.

### How accurate is it

On a hand-labeled test set of 60 Amazon reviews of electronics, kitchenware, clothing, toys and beauty products in 7 languages (2026-10-18):

| Check | Result |
|---|---|
| Overall sentiment matches the label | 96.7% to 100% |
| Aspects found (F1) | 0.88 to 0.90 |
| Urgent reviews caught | 100%, with no false alarms |
| Quotes that are word for word from the review | 100% (enforced by code: anything else is dropped) |

The AI only labels reviews. Every count, share, score and trend is computed by code from those labels, so the numbers add up.

**What it does not do:** it does not read review photos or videos, does not detect fake reviews, and cannot analyze star-only reviews (they still count in stars and trends). It does not draft replies, because sellers cannot reply to Amazon reviews in public. AI labels can be wrong on sarcasm or very short reviews, which is why every theme shows its quotes.

### For AI agents and automations

- **Free demo:** call it with `{}` to get a full sample report and JSON summary at no cost.
- **Minimal input:** `{ "productUrls": ["https://www.amazon.com/dp/B0..."] }`, `{ "productUrls": ["B0..."] }` or `{ "datasetId": "<dataset id>" }`.
- **Read the result:** the `OUTPUT` record is a short JSON summary designed to fit in one tool call (under 20,000 characters; with many products, per-product detail is shortened first): coverage, average stars, sentiment split, top 3 praise and complaint themes with one quote each, fix-first list, monthly trend, variants, buyer groups, returns, listing fixes and a link to the HTML report.
- **Never charged:** no reviews found, star-only reviews, and reviews that could not be analyzed. The status message says why.
- Works through [Apify's MCP server](https://mcp.apify.com), the Apify API and SDKs, and Make, Zapier or n8n.

### FAQ

**Which languages does it support?** Reviews in any language, from any Amazon country. Theme names are in the language you choose (`reportLanguage`, default English) and report headings are in English. Quotes stay in each review's own language.

**Can I compare my product with competitors?** Yes. Give several product URLs or ASINs (or a dataset with several products) and the report adds a product comparison table, with a summary per product in the JSON.

**Why does the report show an ASIN instead of the product name?** Your dataset was scraped without product details, so its reviews carry no product title. Give product URLs instead (we switch product details on for you), or turn on product details (`scrapeProductDetails`) in Amazon Reviews Scraper.

**Does it collect reviewer names?** No. When we scrape for you, personal data collection is switched off. Reviewer names, profile links and avatars are removed from any dataset you give us before anything else happens, and never appear in the output.

**Where is review text processed?** By the Anthropic API (Claude). SignalSift keeps nothing after the run; your results stay in your Apify storage.

**Is it legal?** It analyzes publicly available reviews. You are responsible for how you use the results and for complying with the laws that apply to you, including GDPR when you handle personal data.

**Something is wrong or missing?** Open an issue on the Issues tab. We read every one.

### Changelog

- **0.1.6 (2026-10-18):** Fixed: a product given twice (as an ASIN and as its link, for example) made the run fail before anything was charged. It is now scraped, budgeted and charged once.
- **0.1.5 (2026-10-18):** Catch-all themes read "Other complaints" instead of "Other other complaints".
- **0.1.4 (2026-10-18):** Quotes under Fix your listing show stars, date and a link, like every other quote. The variant table says how many variants it leaves out, and the JSON summary has `variantsOmitted`. In the JSON summary, `buyerGroups` is null when every review is in one group (it compares nothing then). A run restarted by the platform waits for the scrape it already started instead of paying Amazon Reviews Scraper twice. Review titles and texts are trimmed.
- **0.1 (2026-10-18):** First release. Product URLs, ASINs, datasets and integrations; themes with verified quotes; fix-first list weighted by helpful votes; listing fixes; issues by variant; verified buyers and Vine share; returns and refunds; product comparison; monthly trend; urgent flags; HTML report and JSON summary; free demo.

***

SignalSift is not affiliated with or endorsed by Google, Amazon, TikTok, Meta or YouTube. Their logos only show which platform each Actor works with.

# Actor input Schema

## `productUrls` (type: `array`):

Products to analyze, as product page URLs (any Amazon country) or 10-character ASINs. We scrape their reviews with Amazon Reviews Scraper on your account first (billed by that Actor), then analyze them. Leave empty if you give a dataset ID instead.

## `maxReviewsPerProduct` (type: `integer`):

Newest reviews to scrape per product when you give product URLs. 1 to 5,000.

## `maxReviews` (type: `integer`):

Total cap for this run. Your spending limit can lower it further.

## `reviewsSince` (type: `string`):

Skip reviews published before this date, for example 2026-01-01.

## `reportLanguage` (type: `string`):

Language for theme names, as a code such as en, de or es. Report headings are in English; quotes stay in each review's own language.

## `datasetId` (type: `string`):

ID of a dataset produced by Amazon Reviews Scraper (junglee/amazon-reviews-scraper) or Amazon Reviews Extractor (web_wanderer/amazon-reviews-extractor). When this Actor runs as an integration after one of those scrapers, the dataset is passed automatically.

## Actor input object example

```json
{
  "productUrls": [],
  "maxReviewsPerProduct": 200,
  "maxReviews": 5000,
  "reportLanguage": "en"
}
```

# Actor output Schema

## `report` (type: `string`):

Seller-ready report: fix-first list, complaint and praise themes with linked quotes, listing fixes, issues by variant, verified versus other buyers, returns, monthly trend, product comparison and urgent reviews.

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

Short JSON summary for AI agents and code: coverage, average stars, sentiment split, top themes with one quote each, fix-first list, monthly trend, variants, buyer groups, returns and listing fixes.

## `reviews` (type: `string`):

One row per review: product, variant, verified, stars, sentiment, aspects, phrases with verified excerpts, urgent flag.

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("signalsift/amazon-reviews-analyzer").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("signalsift/amazon-reviews-analyzer").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 '{}' |
apify call signalsift/amazon-reviews-analyzer --silent --output-dataset

```

## MCP server setup

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

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/ApRWjOF7oqeXhF3aR/builds/JbzmmlYkXfOOPgVgI/openapi.json
