AliExpress Reviews Scraper — Product Feedback & Ratings avatar

AliExpress Reviews Scraper — Product Feedback & Ratings

Pricing

$2.00 / 1,000 review rows

Go to Apify Store
AliExpress Reviews Scraper — Product Feedback & Ratings

AliExpress Reviews Scraper — Product Feedback & Ratings

Every AliExpress buyer review of any product: star rating, the buyer's own words plus a translation, buyer country, the SKU variant bought, their photos, the shipping method and the follow-up review. Product URLs or item ids in, reviews out. No key, no login, no browser. Pay per review.

Pricing

$2.00 / 1,000 review rows

Rating

0.0

(0)

Developer

Tedj MEABIOU

Tedj MEABIOU

Maintained by Community

Actor stats

0

Bookmarked

5

Total users

4

Monthly active users

18 days ago

Last modified

Share

AliExpress Reviews Scraper — every buyer review of any product

This AliExpress reviews scraper turns any product page into a clean table of AliExpress product reviews: the 1-5 star rating, the buyer's own words plus a machine translation into the language you pick, the buyer's country, the exact SKU variant the review is about, the photos they uploaded, the shipping method the order used, the follow-up review they came back and wrote weeks later, and the helpful votes other shoppers gave it. Give it product URLs or item ids and it reads the same public AliExpress feedback endpoint the product page's own review widget calls — no API key, no login, no cookies, no headless browser. It is built as an AliExpress product research tool for dropshipping product validation: buyer reviews and buyer photos are how you tell a product worth listing from one that will drown you in refunds, and this is the cheapest way to pull them in bulk.

Last verified working: 2026-08-29.

What does the AliExpress Reviews Scraper do?

You hand it a list of products. For each one it walks every review page AliExpress will serve, drops the duplicates AliExpress serves twice, applies your filters, and writes one dataset row per review. Alongside the reviews it can emit a free product row carrying the whole rating breakdown — the average, the 5/4/3/2/1-star histogram, the positive/neutral/negative split, how many reviews carry photos, how many carry a follow-up, and the structured attributes buyers were asked to rate the item on.

Nothing here needs a browser. The endpoint answers plain HTTP requests from datacenter IP ranges, so a run is fast and cheap: a 2,836-review best-seller reads in about 15 requests, not 142.

Three row types share one dataset, and you can filter them apart in the Output tab with the built-in views:

RowWhat it isCharged
reviewOne buyer reviewYes
productThe product's title, image and rating statisticsFree
statusOne per target: what happened, how many rows, why notFree

AliExpress reviews for product research and dropshipping

If you sell online, the review list is the product. A 4.6 average hides the fact that eleven buyers in a row said the cable frays; a 4.2 average with 313 photo reviews and a hundred people writing "arrived in 9 days, exactly as described" is a better bet than either. This scraper gives you the raw material for that judgement in bulk:

  • Photos. images and follow_up_images are the buyer's own pictures. AliExpress buyer photos show what the product actually looks like out of the bag, which is very often not what the listing photos show — for dropshipping research, AliExpress review photos are worth more than the whole listing.
  • Follow-up reviews. AliExpress lets a buyer return weeks later and add to their review. follow_up_text and follow_up_days are the closest thing the site has to a durability signal: a product with hundreds of positive first reviews and a wall of angry follow-ups at day 45 is a returns problem.
  • Variant-level truth. sku_info tells you which colour, size or plug type the review is about, so you can find out that the black one is fine and the white one arrives scratched.
  • Shipping reality. logistics is the shipping method the order actually used, which lets you separate "the product is bad" from "the shipping line is slow".
  • Buyer country. buyer_country lets you read only the reviews from the market you sell into. Delivery complaints do not transfer between countries.

Because the output is one flat row per review, bulk AliExpress reviews drop straight into whatever you already use: pipe text and rating into an AliExpress review sentiment model, group attributes by SKU, or join sku_info against your own catalogue.

What data does each AliExpress review row contain?

{
"type": "review",
"review_id": "60094105248269979",
"product_id": "1005006255429323",
"product_title": "Original Lenovo LP40 wireless headphones TWS Bluetooth Earphones",
"product_url": "https://www.aliexpress.com/item/1005006255429323.html",
"rating": 5,
"rating_100": 100,
"review_date": "2025-11-29",
"review_date_raw": "29 Nov 2025",
"text": "Fast delivery! Package came within estimate delivery. The headphones came in perfect condition, and the sound and connection is very nice.",
"text_translated": "Fast delivery! Package came within estimate delivery.",
"language": "en",
"buyer_name": "AliExpress Shopper",
"buyer_country": "US",
"buyer_anonymous": true,
"sku_id": "12000036486711239",
"sku_info": "Color:LP40 white",
"images": ["https://ae-pic-a1.aliexpress-media.com/kf/Ab1b4386f35a14c28b499f08897b6fea0y.jpg"],
"image_count": 1,
"logistics": "AliExpress Selection Standard",
"helpful_votes": 0,
"unhelpful_votes": 0,
"attributes": {"Quality of sound": "Fast", "Durability": "Fast", "User Friendly": "Good"},
"follow_up_text": null,
"follow_up_days": null,
"featured": true,
"ai_generated": false
}

Every review row also carries target (the URL or id you asked for), buyer_gender, buyer_avatar, follow_up_translated, follow_up_date, follow_up_images and fetched_at.

Product rows: the whole rating breakdown, free

Set Include a product row (includeProductRow, on by default) and every product also gets one free row:

{
"type": "product",
"product_id": "1005006255429323",
"product_title": "Original Lenovo LP40 wireless headphones",
"product_image": "https://ae-pic-a1.aliexpress-media.com/kf/Haa1bfb60935a4a3ca5e24c9ef3bcd163R.jpg",
"product_url": "https://www.aliexpress.com/item/1005006255429323.html",
"rating": 4.2,
"rating_percent": 84.9,
"reviews_total": 2836,
"reviews_fetched": 100,
"five_star": 1888, "four_star": 380, "three_star": 207, "two_star": 106, "one_star": 266,
"positive_count": 2268, "neutral_count": 207, "negative_count": 372,
"positive_rate": 79.7, "negative_rate": 13.0,
"with_photos_count": 313,
"with_follow_up_count": 82,
"same_country_count": 257,
"product_type": "ORDINARY",
"review_attributes": [{"attribute": "Durability : Fits ok", "reviews": 1493, "value_id": 1500325947}]
}

review_attributes is the part most people miss. It is the structured attribute panel AliExpress builds from every review of the item, with the count behind each phrase — a one-row summary of what 1,493 buyers said about durability, before you read a single sentence.

Review filters that run before you are charged

Every filter runs before billing. A review the filters drop is never delivered and never charged, so a complaints-only run on a 3,000-review product costs you the handful of rows you keep.

Three of them are applied by AliExpress itself, through Server-side review filter (reviewsFilter), so the pages you do not want are never fetched at all:

reviewsFilterWhat AliExpress returns
allEvery review (default)
with_photosOnly reviews carrying buyer photos
with_follow_upOnly reviews the buyer came back and added to
same_countryOnly buyers in the one country you list in countries

The rest run inside the actor, on rows already in memory:

  • minRating / maxRating — whole stars, 1 to 5. maxRating: 3 is the complaints feed. AliExpress has no server-side star filter, so this one has to be ours.
  • requireText — drop star-only reviews. About one review in five on a busy product is a bare rating with nothing written.
  • countries — ISO-2 buyer countries, e.g. ["US", "BR"]. The first entry also tells AliExpress which market to answer as, which changes the order it serves.

How do I run the AliExpress reviews scraper?

Paste product URLs into AliExpress product URLs (productUrls) or numeric item ids into AliExpress item ids (productIds), set Max reviews per product (maxReviewsPerProduct, 0 = every review), press Start.

{
"productUrls": ["https://www.aliexpress.com/item/1005006255429323.html"],
"productIds": ["1005008342451530"],
"maxReviewsPerProduct": 200,
"reviewsFilter": "all",
"minRating": 0,
"maxRating": 3,
"requireText": true,
"countries": ["US"],
"sort": "lowest_rating",
"language": "en_US",
"includeProductRow": true,
"sessions": 2,
"perIp": 1,
"proxyConfiguration": {"useApifyProxy": true}
}

Every URL form works: aliexpress.com/item/<id>.html, aliexpress.us, aliexpress.ru, the /i/<id>.html short form, and share links with a tail of tracking parameters. All three id namespaces (1005…, 3256… on the US site, and legacy 2255…/4000… ids) resolve to the same review list, and the id is always in the path, so nothing has to be loaded first to resolve a target.

sort orders what you get back: default, newest, oldest, lowest_rating, highest_rating. language picks the translation language for text_translated from twelve options (English, Spanish, Portuguese, French, German, Italian, Dutch, Polish, Turkish, Russian, Japanese, Korean). sessions and perIp control pace, proxyConfiguration the proxy — the defaults are right for almost every run.

Scrape AliExpress reviews from Python, JavaScript, curl, n8n and AI agents

Python:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("kestrel/aliexpress-reviews-scraper").call(run_input={
"productUrls": ["https://www.aliexpress.com/item/1005006255429323.html"],
"maxReviewsPerProduct": 500,
"reviewsFilter": "with_photos",
"requireText": True,
})
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
if row["type"] == "review":
print(row["rating"], row["buyer_country"], row["sku_info"], row["text"])

JavaScript / Node:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('kestrel/aliexpress-reviews-scraper').call({
productIds: ['1005006255429323'],
maxReviewsPerProduct: 0,
maxRating: 3,
sort: 'lowest_rating',
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.filter((i) => i.type === 'review').length, 'complaints');

curl:

curl -X POST "https://api.apify.com/v2/acts/kestrel~aliexpress-reviews-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"productUrls":["https://www.aliexpress.com/item/1005006255429323.html"],"maxReviewsPerProduct":100}'

n8n, Make.com and Zapier all have an Apify connector: drop in a "Run an Actor" step, paste the same JSON, and pipe the dataset into Google Sheets, Airtable, Slack or a warehouse. For AI agents, Apify's MCP server exposes this actor as a tool, so a Claude or GPT agent can pull buyer feedback for a product mid-conversation and reason over it. The dataset is also exportable straight to CSV, JSON, Excel or XML from the run page — an AliExpress reviews CSV is two clicks away.

Buyer photos, follow-up reviews and the fields nobody else exports

FieldWhy it matters
review_idAliExpress's own evaluation id — a stable key for deduping across runs
rating / rating_100Stars 1-5, and AliExpress's raw 0-100 score behind them
review_date / review_date_rawAn ISO date parsed back from whatever language the review was requested in, plus the original string
text / text_translated / languageThe buyer's own words, the translation, and the served language code
sku_info / sku_idThe exact variant the review is about
images / image_countFull-size buyer photo URLs
logisticsThe shipping method the order used
helpful_votes / unhelpful_votesHow other shoppers voted on the review
attributesThe structured attributes this buyer rated, e.g. {"Durability": "Good"}
follow_up_text / follow_up_translated / follow_up_date / follow_up_days / follow_up_imagesThe review the buyer added later, and how long they waited
buyer_name / buyer_country / buyer_gender / buyer_anonymous / buyer_avatarWho wrote it, as far as AliExpress publishes it
featured / ai_generatedAliExpress promotes this review; AliExpress believes it was AI-written
product_title / product_url / product_id / product_imageProduct context on every row
type / target / fetched_atRow type, the input it came from, and when it was read

Product rows add rating_percent, reviews_total, reviews_fetched, five_star, four_star, three_star, two_star, one_star, positive_count, neutral_count, negative_count, positive_rate, negative_rate, with_photos_count, with_follow_up_count, same_country_count, product_type and review_attributes. Status rows add status, reviews, filtered, pages, total, repeats, duplicates and error.

Five saved views sit in the Output tab: Overview, Reviews, Complaints (low stars with the text, photos, shipping method and follow-up next to each other), Photo reviews and Products, plus Status.

How much does this AliExpress scraper cost?

You pay $0.002 per review row and nothing else. Product rows, status rows, duplicate targets, item ids that do not exist, and every review your filters remove are free. There is no monthly rental and no per-run platform fee beyond Apify's usual compute, so 1,000 buyer reviews cost $2.

Because filtering happens before billing, a run with maxRating: 3 on a 3,000-review product reads the whole product but only charges for the complaints it keeps.

What are the limits of the AliExpress feedback endpoint?

Worth knowing before you plan a job, all measured on 2026-08-29:

  • AliExpress does not sort. Every sort value its own endpoint accepts returns the identical page. That is why sort here orders the reviews the run collected rather than pretending the site does it.
  • Page 1 always returns 20 rows, whatever page size is requested, while later pages honour up to 500 at a plain offset. A naive scraper asking for 100 per page silently loses reviews 21-100 of every product. This one only ever asks for a page size that divides the offset and counts the rows it actually received, so nothing is skipped.
  • The backend shuffles. Two result orderings are served at random, so a deep walk sees a small share of reviews twice. They are deduped by review_id, and the count that was dropped is reported in repeats.
  • An empty answer is ambiguous. A product with no reviews and an item id that does not exist return byte-identical responses. This actor never guesses: an empty list is re-asked on a fresh IP and then settled against the product page, so you get no_reviews or not_found, never a false "no reviews" because of a throttle. A genuine refusal is reported as status: "error" with the reason.
  • Price, stock and seller data are not in this dataset. The product page renders them in the browser, so a reviews scraper cannot read them without one. Use a product scraper for those.

Scraping publicly available data is generally lawful in the EU and the US, and reading public product reviews is one of the clearest cases: there is no login, no paywall and no personal account involved. Court decisions such as hiQ v. LinkedIn have repeatedly held that accessing public web pages is not unauthorised access. That said, this is general information and not legal advice.

Practical guidance: the buyer names this endpoint publishes are already masked by the site (S***l, or "AliExpress Shopper"), but review text and photos can still contain personal data, so if you are in the EU or UK, treat the dataset under the GDPR — have a lawful basis, keep only what you need, and do not re-publish reviews in a way that identifies an individual. Respect the site's terms for your use case, do not use the data to impersonate buyers or to build fake reviews, and keep request rates reasonable. The defaults here are deliberately gentle.

FAQ

Do I need an AliExpress API key or account?

No. This reads the same public feedback endpoint the product page itself calls. No key, no cookies, no login, no browser.

How do I get AliExpress reviews by product id?

Put the numeric id straight into productIds. It is the number in /item/<id>.html, and it is what the product_id column of an earlier run gives you, so a two-stage pipeline (find products, then pull reviews) needs no URL building at all.

Can I download AliExpress reviews as a CSV?

Yes — every run's dataset exports to CSV, JSON, Excel, XML or RSS from the run page, or through the Apify API. Use the Reviews or Complaints view first if you want a tidy column set.

How do I get AliExpress negative reviews only?

Set maxRating: 3 and sort: "lowest_rating". The Complaints view then puts the text, the photos, the variant, the shipping method and any follow-up side by side. Filtered-out reviews are never charged.

Can I get only AliExpress review photos?

Yes. Set reviewsFilter: "with_photos" — that is the site's own filter, so the pages without photos are never fetched. The images and image_count columns carry the full-size URLs of the AliExpress buyer photos.

Is there an AliExpress reviews API?

There is no public AliExpress reviews API you can sign up for. This actor is the practical substitute: a REST endpoint you call with a token, returning AliExpress reviews without an api key of your own, in JSON or CSV.

How many reviews can I get per product?

Every review the site will page through. maxReviewsPerProduct: 0 takes them all; the ceiling in practice is what a product actually has. Very large products run to a few thousand and take a couple of minutes.

Does it translate reviews?

Yes. text keeps the buyer's original words and text_translated carries the site's machine translation into whichever of the twelve language options you choose, so a Polish buyer's complaint arrives readable in English.

Can I schedule it to monitor new reviews?

Yes — schedule the actor daily or weekly, sort newest, cap maxReviewsPerProduct at a hundred or so, and dedupe on review_id downstream. That is the cheapest form of review monitoring for a catalogue you resell.

What happens if a product id is wrong?

You get a free status row with status: "not_found" and a reason, and the run carries on with the other targets. Nothing is charged.

Product research rarely stops at one marketplace. These share the same row discipline and the same pay-per-delivered-row billing:

  • Amazon Reviews Scraper — the same job on Amazon, for comparing the same product across both marketplaces.
  • Amazon Product Scraper — titles, prices, ratings and specifications when you need the listing rather than the feedback.
  • eBay Scraper — eBay search results with price, shipping, condition, seller feedback, watchers and units sold, for the third marketplace in a resale or dropshipping price check.
  • Amazon Search Scraper — Amazon keyword results with page position and a sponsored flag, when the question is what ranks for a phrase rather than what buyers said.
  • Amazon Best Sellers Scraper — the Top 100 of any Amazon category with every rank filled, for finding products worth sourcing before you read their feedback.