# Changelog of Amazon Reviews Scraper — Customer Reviews & Ratings (`kestrel/amazon-reviews-scraper`) Actor

- **URL**: https://apify.com/kestrel/amazon-reviews-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/kestrel/amazon-reviews-scraper.md

## Changelog

### 1.4 — 2026-09-12

- **Fix: runs came back with a product row and zero reviews, again.** Amazon began serving some residential sessions (roughly one to three in ten) a complete product page whose reviews card reads "Sign in to see customer reviews." — title, price, rating and details all present, only the reviews withheld. The page passed the block check and the run reported `no_reviews`. That page is now recognised as a soft block for a reviews fetch: the session rotates to a fresh IP and retries, exactly as for a captcha, and the next IP almost always gets the full page. Product-detail fetches (the sibling actors) are unaffected, since the page is complete for them. Counted in the SUMMARY's `http.blocked`. No change to inputs, output rows or pricing.

### 1.3 — 2026-09-07

- **Fix: runs came back with a product row and zero reviews.** Amazon started answering the browser identity the actor sent (a Chrome/139 user agent) with either a captcha or a product page whose below-the-fold section was empty — title and price present, reviews, details and description missing — so a run delivered the product row and reported `no_reviews`. The actor now identifies as a current Chrome (152), which gets the full page again on every marketplace tested, and the empty-below-the-fold page is recognised as a soft block: it rotates the IP and retries like a captcha instead of being billed as a product with no reviews. No change to inputs, output rows or pricing.

### 2026-08-30

- Reliability: a run that cannot act on its input — a URL from the wrong site, a name nothing resolves to, an empty target list, a number outside the documented range — now ends cleanly with the reason on the run card instead of as a failed run. Nothing is charged in either case; a blocked or throttled source still fails loudly.
- Store listing: moved into the categories buyers actually browse (the old `Business` category has no Store page).

### 1.2 — 2026-08-29

- **Automatic residential fallback.** Amazon refuses whole datacentre ranges for minutes at a time, which occasionally ended a run with `amazon page failed after 5 tries (last: 503)` even though the same input had just worked. A run now starts on the cheap proxies you chose and escalates only when it is pushed back: after the same page is refused twice in a row the sessions re-open on a residential proxy and stay there for the rest of the run, so nothing repeats attempts that were never going to work. Nothing to configure, no change to pricing, and a run that is never refused never leaves the cheap pool. Reported as `http.escalated` in the run's SUMMARY.

### 1.1 — 2026-08-29

- Amazon began answering 503 to the previous browser signature on 2026-08-29; the fetcher now presents a current Chrome build (verified on residential IPs).

### 1.0 — 2026-08-26

First release.

- Customer reviews for any Amazon product in any of 20 marketplaces: star rating, review body, reviewer, the country the review came from, date, Verified Purchase flag, helpful votes and the variation bought.
- A product row per ASIN with the overall rating, total rating count, brand, availability, image and feature bullets.
- Input by ASIN or product URL; a URL's marketplace is used automatically, bare ASINs use the marketplace setting. An ASIN and its URL count as one product and are fetched once.
- Three filters that run **before** billing: `minRating` (complaints only), `verifiedOnly`, and `requireText` (drop rating-only reviews). Filtered reviews are never charged.
- Billing: pay per delivered review row and per product row. Status rows, filtered reviews, products with no visible reviews and failed products are all free.
- Reliability: Amazon's captcha page is detected and the session rotates to a fresh IP instead of being parsed as an empty product.

**Note on scope:** this reads the reviews Amazon shows publicly on the product page — roughly 8–13 per product. Amazon requires a signed-in session for its full review archive, which this actor deliberately does not attempt. Price is returned when Amazon serves it, but it is frequently withheld from unauthenticated clients, so treat `price` as best-effort.
