AliExpress Scraper — Products, Reviews & Review Analytics
Pricing
from $0.01 / product scraped
AliExpress Scraper — Products, Reviews & Review Analytics
Scrape AliExpress by keyword or category: product details, price, discount, SKUs, images, store and shipping, plus unlimited customer reviews. Then get built-in review analytics — per-review sentiment and aspect themes, with per-product rating distribution, positive/negative rate and top themes.
Pricing
from $0.01 / product scraped
Rating
0.0
(0)
Developer
Yuliia Kulakova
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
9 days ago
Last modified
Categories
Share
Search AliExpress and extract full product details with per-SKU pricing, plus customer reviews with sentiment and aspect insights — no login, no API key.

Enjoying this Actor? If it's useful, please leave a ⭐️ rating and a short review — it genuinely helps others find it. Something not working as expected? Open an issue on the Actor's Issues tab — I actively maintain this Actor and try to respond and fix reported problems quickly.
Point it at keywords, search/category URLs, product URLs, or bare item IDs. Get back clean, structured records: product cards from search, full product detail (price, discount, variants, specs, store/seller, shipping, stock, video), and paginated reviews with sentiment and theme analysis. Built for e-commerce and dropshipping research, price and competitor intelligence, and review/sentiment analysis.
It combines three modes — search, product-details, and reviews — in a single run, with proxies configured automatically.
Key features
- Three modes in one actor, combinable. Run a keyword/URL search, fetch full product detail by URL or item ID, and paginate reviews — separately or together (e.g.
search+reviews, orproduct-details+reviews). - Per-SKU price matrix. Every variant is emitted in
skus[]withskuId,price,originalPrice, andcurrency, pluspriceMin/priceMaxacross the whole SKU set — so you can compare a specific variant against competing listings, not just the headline price. - Full commercial fields.
price,originalPrice,discountPercent,orders(units sold; a floor like10000for"10,000+ sold"),rating,reviewCount,wishlistCount,priceDisplay. - Rich media & content. Full image gallery (
images[],primaryImage), productvideo(video/videoId/videoPoster),specifications[](name/value spec table), and the fulldescriptionbody text + inlinedescriptionImages[](optional, one extra request). - Store & seller stats.
storeName,storeId,storeUrl,sellerId,sellerPositiveRate,sellerReviews,sellerYears,storeOpenDate. - Shipping & availability.
shipsFrom,shippingCost+shippingCurrency,deliveryTime(ETA window),shippingText, plusinStock/availableQuantityand human-readableproductType. - Reviews with insight. Per-review
sentiment({score, label}) and aspectthemes[](quality, value, shipping, ease, durability, appearance, size, performance), translated text, reviewer country, photos, and helpful votes — plus an optional per-product review-insights roll-up (rating distribution, sentiment breakdown, top themes, recent-negative trend). - Cross-run price-change monitoring. In monitoring mode, products carry
previousPrice,priceDelta, andchangeType(new/increased/decreased/unchanged) and only new or price-changed items are emitted — ideal for price alerting. - Deduplication within a run and, optionally, across scheduled runs via a named key-value store.
- No login, no API key, no paid endpoints. Public, non-authenticated pages only.
Input
Provide input via the Apify UI or the API. Only mode is required; supply at least one source appropriate to the mode(s) you pick.
| Field | Type | Default | Description |
|---|---|---|---|
mode | array | ["search"] | Any of search, product-details, reviews. Combinable. |
searchTerms | string[] | — | Keywords to search (search mode). Paginated 60 products/page. |
searchUrls | string[] | — | Ready-made AliExpress search/category URLs, used verbatim. |
startUrls | requestList | — | Product URLs feed details/reviews; search/category URLs are paginated. |
productUrls | string[] | — | Direct product URLs (/item/<id>.html) for details/reviews. |
itemIds | string[] | — | Bare numeric product IDs (e.g. 1005006976494502). |
category | select | all | Narrow keyword search to a category browse filter. |
maxItems | integer | 0 | Max products per query (0 = all, capped at 3000). |
maxSearchPages | integer | 0 | Cap search pages fetched per query (60/page). |
sortBy | select | default | default / orders / price_asc / price_desc. |
minPrice / maxPrice | number | — | Price filter, in the result currency. |
shipToCountry | string | US | Two-letter ship-to code. Drives shipping context and localized pricing. |
currency | string | USD | Three-letter result currency. |
language | string | en_US | Locale for titles/text. |
fetchProductDetails | boolean | true | Enrich each search result with the full product page (alias: enrichListingDetails). Turn off for a fast/cheap lightweight card. |
fetchDescription | boolean | false | Also fetch the description body text + inline images (one extra request/product). Requires product details. |
maxReviews | integer | 0 | Reviews per product (0 = all). |
reviewsSort | select | default | default (most relevant) / latest. |
reviewsRating | string[] | — | Keep only these star ratings (5…1). |
reviewsFilter | select | all | all / image / additional / local. |
reviewsFromDate | string | — | YYYY-MM-DD or relative ("30 days"). |
reviewsKeywords | string[] | — | Keep only reviews containing any of these terms. |
includePersonalData | boolean | true | Include reviewer name/country; off to redact identity. |
includeReviewInsights | boolean | false | Emit one review-insights roll-up per product. |
reviewSentiment | boolean | true | Add {score, label} sentiment to each review. |
themeExtraction | boolean | true | Tag each review with aspect themes and polarity. |
deduplicate | boolean | true | Drop already-seen dedupKeys (in-run, and cross-run if a store is set). |
deduplicateKeyStore | string | — | Named KV store to persist seen keys across scheduled runs. |
monitoringMode | boolean | false | Emit only new or price-changed products (requires a key store). |
maxConcurrency | integer | 5 | Parallel product targets (keep 3–8 for reliability). |
maxChallengeRetries | integer | 8 | Retry attempts per item on temporary failures. |
proxy | proxy | (auto) | Proxies are included and configured automatically — leave empty. |
Currency: set
shipToCountryandcurrencytogether. Region and currency are handled automatically, so a US ship-to still returns USD prices.
Example — search + enrich
{"mode": ["search"],"searchTerms": ["wireless earbuds"],"maxItems": 20,"sortBy": "orders","fetchProductDetails": true,"shipToCountry": "US","currency": "USD","language": "en_US"}
Example — product details (with description body)
{"mode": ["product-details"],"productUrls": ["https://www.aliexpress.com/item/3256807903014930.html"],"itemIds": ["1005006976494502"],"fetchDescription": true,"shipToCountry": "US","currency": "USD"}
Example — reviews + insights
{"mode": ["reviews"],"productUrls": ["https://www.aliexpress.com/item/3256807903014930.html"],"maxReviews": 15,"reviewsSort": "latest","includeReviewInsights": true}
Output
Every record carries a recordType (product, review, or review-insights), a stable dedupKey, and a scrapedAt timestamp. Samples below are trimmed for readability; field names are exactly as emitted.
Product record (recordType: "product")
{"recordType": "product","itemId": "3256807903014930","title": "TWS Wireless Earbuds Bluetooth 5.3 Headphones","url": "https://www.aliexpress.com/item/3256807903014930.html","canonicalUrl": "https://www.aliexpress.com/item/3256807903014930.html","price": 19.41,"originalPrice": 68.08,"discountPercent": 71,"currency": "USD","priceDisplay": "$19.41","priceMin": 17.83,"priceMax": 24.9,"rating": 4.7,"reviewCount": 1832,"orders": 10000,"ordersText": "10,000+ sold","wishlistCount": 4521,"primaryImage": "https://ae01.alicdn.com/kf/S....jpg","images": ["https://ae01.alicdn.com/kf/S....jpg", "https://ae01.alicdn.com/kf/S....jpg"],"video": "https://video.aliexpress-media.com/play/....mp4","videoId": "3009876543210","videoPoster": "https://ae01.alicdn.com/kf/S....jpg","category": { "id": "70804001", "path": "44->70804001" },"productType": "Earphones & Headphones","inStock": true,"availableQuantity": 9999,"storeName": "TWS Audio Official Store","storeId": "1102345678","storeUrl": "https://www.aliexpress.com/store/1102345678","sellerId": 234567890,"sellerPositiveRate": "97.4","sellerReviews": 15342,"sellerYears": 4,"storeOpenDate": "2021-06-18","shipsFrom": "CN","shippingCost": 0,"shippingCurrency": "USD","shippingText": "Free shipping · AliExpress Standard Shipping","deliveryTime": "Sep 18 - Oct 02","specifications": [{ "name": "Brand Name", "value": "OEM" },{ "name": "Category", "value": "Earphones & Headphones" },{ "name": "Bluetooth Version", "value": "5.3" }],"variantOptions": [{ "name": "Color", "values": ["Black", "White", "Blue"] }],"skus": [{ "skuId": "12000041234567890", "price": 19.41, "originalPrice": 68.08, "currency": "USD" },{ "skuId": "12000041234567891", "price": 17.83, "originalPrice": 62.5, "currency": "USD" }],"skuCount": 3,"sellingPoints": ["Free shipping", "Extra 1% off with coins"],"description": "Product Description\nBluetooth 5.3 chip, 40ms low latency ...","descriptionImages": ["https://ae01.alicdn.com/kf/S....jpg"],"descriptionUrl": "https://ae01.alicdn.com/kf/....html","ratingDistribution": { "1": 21, "2": 15, "3": 48, "4": 260, "5": 1488 },"previousPrice": null,"priceDelta": null,"changeType": null,"isSponsored": false,"position": 1,"searchQuery": "wireless earbuds","detailed": true,"scrapedAt": "2026-09-03T09:20:00.000Z","dedupKey": "product:3256807903014930"}
Product fields: itemId, title, url, canonicalUrl, price, originalPrice, discountPercent, currency, priceDisplay, priceMin, priceMax, rating, reviewCount, orders, ordersText, wishlistCount, images[], primaryImage, video, videoId, videoPoster, category{id,path}, productType, inStock, availableQuantity, storeName, storeId, storeUrl, sellerId, sellerPositiveRate, sellerReviews, sellerYears, storeOpenDate, shipsFrom, shippingCost, shippingCurrency, shippingText, deliveryTime, specifications[{name,value}], variantOptions[{name,values[]}], skus[{skuId,price,originalPrice,currency}], skuCount, sellingPoints[], description, descriptionImages[], descriptionUrl, ratingDistribution{1..5}, previousPrice, priceDelta, changeType, isSponsored, position, searchQuery, detailed, scrapedAt, dedupKey.
A lightweight search card (
fetchProductDetails: false) carriesdetailed: falseand fills only the fields available from the search result — id, title, url, price/originalPrice/discountPercent, rating, orders, image,sellingPoints,isSponsored— with the detail-only fields leftnull.
sellerPositiveRateandsellerReviewsarenullwhen AliExpress doesn't publish a seller-feedback score for that store (common for newer stores) — reported as unknown rather than a misleading0.
Review record (recordType: "review")
{"recordType": "review","reviewId": "800000123456789","itemId": "3256807903014930","productUrl": "https://www.aliexpress.com/item/3256807903014930.html","productName": "TWS Wireless Earbuds Bluetooth 5.3 Headphones","rating": 5,"text": "Great sound and the battery lasts all day. Fast shipping, arrived in 12 days.","textTranslated": null,"author": "A***a","authorCountry": "US","date": "2026-08-21","sku": "Color:Black","verified": true,"anonymous": false,"aiGenerated": false,"helpful": 7,"downVotes": 0,"images": ["https://ae01.alicdn.com/kf/S....jpg"],"thumbnails": ["https://ae01.alicdn.com/kf/S....jpg"],"logistics": "AliExpress Standard Shipping","labels": [{ "name": "Sound Quality", "value": "Excellent" }],"sentiment": { "score": 0.86, "label": "positive" },"themes": [{ "theme": "performance", "polarity": "positive", "mentions": 2 },{ "theme": "shipping", "polarity": "positive", "mentions": 1 }],"scrapedAt": "2026-09-03T09:20:00.000Z","dedupKey": "review:800000123456789"}
Review fields: reviewId, itemId, productUrl, productName, rating, text, textTranslated, author, authorCountry, date, sku, verified, anonymous, aiGenerated, helpful, downVotes, images[], thumbnails[], logistics, labels[{name,value}], sentiment{score,label}, themes[{theme,polarity,mentions}], scrapedAt, dedupKey.
Review-insights record (recordType: "review-insights", optional)
{"recordType": "review-insights","itemId": "3256807903014930","productName": "TWS Wireless Earbuds Bluetooth 5.3 Headphones","rating": 4.7,"reviewCount": 1832,"reviewsAnalyzed": 15,"sentimentBreakdown": { "positive": 12, "neutral": 2, "negative": 1 },"avgSentiment": 0.58,"catalogRatingDistribution": { "1": 21, "2": 15, "3": 48, "4": 260, "5": 1488 },"catalogPositiveRate": 95.4,"catalogNegativeRate": 2,"topThemes": [{ "theme": "performance", "mentions": 9, "polarity": "positive" },{ "theme": "shipping", "mentions": 6, "polarity": "positive" },{ "theme": "value", "mentions": 4, "polarity": "positive" }],"recentNegativeShare": 0.2,"scrapedAt": "2026-09-03T09:20:00.000Z","dedupKey": "insights:3256807903014930:1756890000000"}
Insights fields: itemId, productName, rating, reviewCount, reviewsAnalyzed, sentimentBreakdown{positive,neutral,negative}, avgSentiment, catalogRatingDistribution{1..5}, catalogPositiveRate, catalogNegativeRate, topThemes[{theme,mentions,polarity}], recentNegativeShare, scrapedAt, dedupKey.
Two bases in one record.
sentimentBreakdown,avgSentiment,topThemesandrecentNegativeShareare computed from thereviewsAnalyzedreviews scraped this run. Thecatalog*fields (catalogRatingDistribution,catalogPositiveRate,catalogNegativeRate) come from AliExpress's own full review statistics for the product — all reviews, not just the sample. For sentiment metrics to be representative, scrape enough reviews (maxReviews); thecatalog*fields are full-catalog regardless.catalogPositiveRateandcatalogNegativeRateare percentages (0–100).catalog*fields arenullwhen AliExpress doesn't return those statistics.
Pricing
This actor uses pay-per-event: you are charged per result you collect, plus a small actor-start fee. Product records and review records are priced separately (reviews are the cheapest, since they come in volume), and each per-product review-insights roll-up is its own event. You only pay for what you actually get, so cost scales with your run. Setting a maxItems / maxReviews cap, or turning off fetchProductDetails for lightweight cards, is the direct way to control spend. The exact per-event prices are shown on this actor's Apify Store page.
Use cases
- Product sourcing & dropship research — pull full catalogs by keyword or category with variants, specs, images, and store/seller stats to shortlist products and suppliers.
- Price & competitor intelligence — track
price,originalPrice,discountPercent, and the per-SKU price matrix across competing listings and stores. - Price monitoring & alerting — schedule monitoring mode with a dedup key store to receive only new or price-changed products, with
priceDeltaandchangeType. - Review & sentiment analysis — collect reviews at scale with per-review sentiment and aspect themes, plus per-product roll-ups to spot quality, shipping, and value trends.
Limitations (read this)
We would rather be upfront than surprise you.
- No login or API key is needed — and none is used. The actor scrapes only public, non-authenticated pages. Region, currency and site selection are handled automatically — just set
shipToCountryandcurrency, and a US ship-to still returns USD prices. - Full product detail is occasionally unavailable for some items. On a given run a share of items (~10% at default settings) may not return the full detail page — those gracefully fall back to the still-useful search card (id, title, url, price, rating, orders, image), flagged
detailed: false. No records are lost. RaisingmaxChallengeRetriesincreases full-detail success at the cost of speed. Search and reviews are not affected. ratingDistributionon products is backfilled only when reviews are also collected. The current product page exposes only overall rating and count, not the per-star breakdown. When you runproduct-details(orsearchenrichment) together withreviewsfor the same item, the distribution is filled from the reviews' star statistics; in detail-only mode it is honestly leftnull.- Sentiment and themes are lexicon/rating-based, not an external LLM — fast and deterministic, but a heuristic. Treat them as directional signal, not ground truth.
- You are responsible for compliance with AliExpress's Terms of Service and applicable law. Data is intended for lawful price, assortment, and review analytics. No personal data beyond the public reviewer display name/country is collected, and that can be redacted with
includePersonalData: false.
FAQ
Do I need an AliExpress account or cookies? No. The actor uses only public pages and needs no login, cookies-from-login, or paid API key.
Do I need to configure the proxy or region?
No — proxies, region and currency are configured automatically. Just set shipToCountry and currency; a US ship-to still returns USD prices.
Some products came back without full details — why?
On a given run some items don't return the full detail page and fall back to the search card (detailed: false). Increase maxChallengeRetries to convert more of them to full detail.
Can I get search results, full details, and reviews in one run?
Yes — set mode to multiple values, e.g. ["search", "reviews"] or ["product-details", "reviews"]. When both product and reviews are collected for an item, the product's ratingDistribution is backfilled from the review star stats.
How do I get the full description text?
Set fetchDescription: true (requires product details). It adds one request per product and fills description + descriptionImages[].
How does price monitoring work?
Set monitoringMode: true with a deduplicateKeyStore. Each run compares against the stored price state and emits only new or price-changed products, carrying previousPrice, priceDelta, and changeType.
What currency/language will I get?
Whatever you set in currency and language, aligned with shipToCountry. Defaults are USD, en_US, ship-to US.