# Changelog of AliExpress Reviews Scraper — Product Feedback & Ratings (`kestrel/aliexpress-reviews-scraper`) Actor

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

## Changelog

### 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.0 — 2026-08-29

First release.

- Every AliExpress buyer review of a product as structured rows: the 1-5 star rating and the 0-100 score behind it, the buyer's own text and AliExpress's machine translation of it into any of twelve languages, the buyer's name, country and gender, the exact SKU variant the review is about, the buyer's photos, the shipping method the order used, helpful and unhelpful votes, the structured attributes AliExpress asked the buyer to rate, and the follow-up review they came back and added weeks later.
- Products by AliExpress URL (`aliexpress.com`, `aliexpress.us`, `aliexpress.ru`, the `/i/<id>.html` short form, share links with tracking parameters) or by bare item id. All three AliExpress id namespaces (`1005…`, `3256…`, legacy `2255…`/`4000…`) resolve to the same reviews, and every URL form carries the id, so resolution costs no request.
- Filters that run **before billing**: the three AliExpress applies itself (`with_photos`, `with_follow_up`, `same_country`, so the pages you do not want are never fetched) plus `minRating`, `maxRating`, `requireText` and `countries` in the actor.
- Five delivery orders — as AliExpress serves them, newest, oldest, lowest rated, highest rated. AliExpress ignores every server-side sort parameter its own endpoint accepts, so the actor orders the reviews it collected rather than pretending the site does.
- A free product row per item: title, image, average rating, the full 1-5 star histogram, the positive/neutral/negative split, how many reviews carry photos or a follow-up, AliExpress's product type, and the structured attributes buyers rated it on with the count behind each.
- Paging that survives AliExpress's own paging bugs: page 1 answers with 20 rows however large a `pageSize` you ask for, later pages are a plain `offset = (page - 1) * pageSize` up to 500, and some offsets short-change you. The walk only ever asks for a page size that divides the offset and advances by the rows it actually got, which both closes the silent 80-review hole a naive `pageSize=100` walk leaves and reads a 2,836-review product in about 15 requests instead of 142.
- Reads AliExpress's own public feedback API over Apify's datacenter proxy — no key, no login, no cookies, no browser. An empty answer is never believed on its own: it is re-asked on a fresh session and then settled against the product page, so a product with no reviews is reported as `no_reviews`, an item id AliExpress does not have as `not_found`, and a refusal as an error.
- Pay per review row; product rows, status rows, duplicate targets, unknown item ids and filtered reviews are free.
