Amazon Review QA Complaint Miner avatar

Amazon Review QA Complaint Miner

Pricing

Pay per usage

Go to Apify Store
Amazon Review QA Complaint Miner

Amazon Review QA Complaint Miner

Analyze public Amazon reviews and Q&A to surface recurring complaints, product gaps, buyer questions, and feature opportunities in structured data.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Brian Keefe

Brian Keefe

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

12 days ago

Last modified

Share

amazon-review-qa-complaint-miner

Production-ready Apify Actor that mines Amazon public product feedback into structured review, qna, theme, and warning rows.

Target buyers

  • Ecommerce operators validating product-market fit
  • Marketplace analysts monitoring complaint trends
  • Product managers looking for missing-feature requests
  • Agencies building voice-of-customer reporting pipelines

What it does

  • Accepts Amazon ASINs or product URLs
  • Fetches public product, review, and question pages over normal HTTP requests only
  • Detects blocked pages such as captcha, robot check, and HTTP 403 responses
  • Emits warning rows instead of crashing when blocking is encountered
  • Supports deterministic offline fixture mode through fixtureHtmlPaths
  • Extracts review rows, Q&A rows, and derived theme rows
  • Categorizes themes with deterministic keyword rules

Public-data limits

  • The actor only works against public HTML and does not log in
  • Amazon can rate-limit, geo-gate, or challenge requests with captcha/robot pages
  • Structure can vary by marketplace and page template, so extraction is best-effort
  • When public pages are blocked, the actor outputs warning rows with evidence instead of failing the run

Input

Supported input fields:

  • asins: array of ASIN strings
  • urls: array of Amazon product URLs
  • marketplaceDomain: domain such as www.amazon.com
  • maxReviews: maximum number of reviews to emit per product
  • maxQuestions: maximum number of Q&A rows to emit per product
  • ratingFilter: optional minimum star rating number
  • startDate: optional ISO date lower bound
  • endDate: optional ISO date upper bound
  • fixtureHtmlPaths: optional local HTML paths for offline deterministic mode

Example:

{
"asins": ["B0TEST1234"],
"marketplaceDomain": "www.amazon.com",
"maxReviews": 10,
"maxQuestions": 10,
"ratingFilter": 1,
"startDate": "2024-01-01",
"endDate": "2024-12-31",
"fixtureHtmlPaths": [
"tests/fixtures/product.html",
"tests/fixtures/reviews.html",
"tests/fixtures/questions.html"
]
}

See examples/sample-input.json.

Output

The actor pushes a flat dataset containing mixed row types:

  • review: normalized review data
  • qna: normalized product question and answer data
  • theme: mined complaint, praised-feature, and missing-feature insights
  • warning: non-fatal fetch or block detection event

Each theme row includes:

  • themeType
  • category
  • urgency
  • quote
  • rating
  • date
  • sourceUrl
  • evidence

See examples/sample-output.json.

Local commands

Install dependencies:

$npm install

Run tests:

$npm test

Run deterministic smoke test:

$npm run smoke

Apify run

The actor entrypoint is src/main.js and writes results with Actor.pushData.