AliExpress Multi-Region Search, Store & Review Scraper
Search AliExpress or fetch product, store, and review records by ID or URL across 18 regional storefronts and 42 currencies, with price, rating, and ship-from/ship-to filters.
Input schema
Input fields, types, required flags, descriptions, defaults, and prefills come from the published definition. Prefill examples are distinct from defaults.
| Field | Type | Required | Description |
|---|---|---|---|
mode | string | required | What to collect. search: keyword results. byProduct: product lookup by ID or URL. byStore: store lookup. byReviews: customer reviews. byUrl: auto-detect from pasted AliExpress links. |
searchQueries | array | optional | One or more keywords, e.g. "phone case" or "wireless earbuds". Each query is scraped up to maxPages pages. |
productIds | array | optional | Numeric AliExpress product IDs or item URLs. Both 1005… and 3256… ID formats are accepted. |
Show all input fields
| Field | Type | Required | Description |
|---|---|---|---|
mode | string | required | What to collect. search: keyword results. byProduct: product lookup by ID or URL. byStore: store lookup. byReviews: customer reviews. byUrl: auto-detect from pasted AliExpress links. |
searchQueries | array | optional | One or more keywords, e.g. "phone case" or "wireless earbuds". Each query is scraped up to maxPages pages. |
productIds | array | optional | Numeric AliExpress product IDs or item URLs. Both 1005… and 3256… ID formats are accepted. |
storeIds | array | optional | Numeric store IDs or /store/… URLs. |
urls | array | optional | Any mix of search, item, store and review URLs. The mode is detected per URL. |
region | string | optional | Country used for prices, availability and the storefront locale. Global leaves the region to the requesting IP. |
currency | string | optional | Optional ISO-4217 currency. Leave blank to use the region's usual currency. The currency actually returned is recorded in every record. |
language | string | optional | Storefront language and the language used to translate review text. |
sortBy | string | optional | How keyword results are ordered. AliExpress does not expose a newest sort. |
priceMin | number | optional | Minimum price in the selected currency. 0 disables the lower bound. |
priceMax | number | optional | Maximum price in the selected currency. 0 disables the upper bound. |
ratingMin | number | optional | Minimum star rating from 0 to 5. Products without a rating are skipped when a threshold is set. |
shipFrom | string | optional | Only show items stocked in this country. Leave blank for any warehouse. |
freeShippingOnly | boolean | optional | Only show items advertised with free shipping. |
choiceOnly | boolean | optional | Only show AliExpress Choice items. |
fourStarPlus | boolean | optional | Only show items rated 4.0 or higher. The actor enforces the 4.0 threshold after AliExpress returns its filtered page. |
includeSponsored | boolean | optional | Include promoted product cards; they are marked isSponsored in the output. |
includeWelcomeGifts | boolean | optional | Include $0.00 new-shopper gift cards; they are marked isWelcomeGift and have no normal price. |
maxItems | integer | optional | Hard cap on records emitted by the run. |
maxPages | integer | optional | Maximum result pages per query (60 products per page, up to 60 pages). |
includeReviews | boolean | optional | Fetch customer reviews for each product (slow and adds records to the product). |
maxReviewsPerProduct | integer | optional | Review cap per product when reviews are fetched. 0 uses the default of 20. |
reviewFilter | string | optional | Which reviews to collect. |
includeProductStats | boolean | optional | Add each product's average rating and total review count to review records. |
Download the published input schema
View complete JSON
{
"description": "Search AliExpress by keyword, look up products and stores, or collect customer reviews across major shopper regions.",
"properties": {
"choiceOnly": {
"default": false,
"description": "Only show AliExpress Choice items.",
"editor": "checkbox",
"prefill": false,
"title": "AliExpress Choice only",
"type": "boolean"
},
"currency": {
"default": "",
"description": "Optional ISO-4217 currency. Leave blank to use the region's usual currency. The currency actually returned is recorded in every record.",
"editor": "select",
"enum": [
"",
"USD",
"EUR",
"GBP",
"JPY",
"CNY",
"RUB",
"BRL",
"INR",
"AUD",
"CAD",
"HKD",
"TWD",
"KRW",
"SGD",
"MXN",
"ARS",
"CLP",
"COP",
"PEN",
"UYU",
"ILS",
"TRY",
"AED",
"SAR",
"ZAR",
"PLN",
"CHF",
"SEK",
"NOK",
"DKK",
"CZK",
"HUF",
"RON",
"THB",
"VND",
"PHP",
"IDR",
"MYR",
"NZD",
"PKR",
"EGP",
"NGN"
],
"enumTitles": [
"(use region currency)",
"USD",
"EUR",
"GBP",
"JPY",
"CNY",
"RUB",
"BRL",
"INR",
"AUD",
"CAD",
"HKD",
"TWD",
"KRW",
"SGD",
"MXN",
"ARS",
"CLP",
"COP",
"PEN",
"UYU",
"ILS",
"TRY",
"AED",
"SAR",
"ZAR",
"PLN",
"CHF",
"SEK",
"NOK",
"DKK",
"CZK",
"HUF",
"RON",
"THB",
"VND",
"PHP",
"IDR",
"MYR",
"NZD",
"PKR",
"EGP",
"NGN"
],
"prefill": "USD",
"title": "Currency override",
"type": "string"
},
"fourStarPlus": {
"default": false,
"description": "Only show items rated 4.0 or higher. The actor enforces the 4.0 threshold after AliExpress returns its filtered page.",
"editor": "checkbox",
"prefill": false,
"title": "4 stars and up only",
"type": "boolean"
},
"freeShippingOnly": {
"default": false,
"description": "Only show items advertised with free shipping.",
"editor": "checkbox",
"prefill": false,
"title": "Free shipping only",
"type": "boolean"
},
"includeProductStats": {
"default": true,
"description": "Add each product's average rating and total review count to review records.",
"editor": "checkbox",
"prefill": true,
"title": "Include review summary",
"type": "boolean"
},
"includeReviews": {
"default": false,
"description": "Fetch customer reviews for each product (slow and adds records to the product).",
"editor": "checkbox",
"prefill": false,
"sectionCaption": "Reviews",
"title": "Attach reviews",
"type": "boolean"
},
"includeSponsored": {
"default": true,
"description": "Include promoted product cards; they are marked isSponsored in the output.",
"editor": "checkbox",
"prefill": true,
"title": "Include sponsored results",
"type": "boolean"
},
"includeWelcomeGifts": {
"default": false,
"description": "Include $0.00 new-shopper gift cards; they are marked isWelcomeGift and have no normal price.",
"editor": "checkbox",
"prefill": false,
"title": "Include welcome-gift cards",
"type": "boolean"
},
"language": {
"default": "en_US",
"description": "Storefront language and the language used to translate review text.",
"editor": "select",
"enum": [
"en_US",
"es_ES",
"fr_FR",
"de_DE",
"it_IT",
"pt_BR",
"pt_PT",
"ru_RU",
"ja_JP",
"ko_KR",
"ar_MA",
"tr_TR",
"th_TH",
"vi_VN",
"id_ID",
"nl_NL",
"pl_PL",
"iw_IL"
],
"enumTitles": [
"English (US)",
"Spanish (Spain)",
"French (France)",
"German (Germany)",
"Italian (Italy)",
"Portuguese (Brazil)",
"Portuguese (Portugal)",
"Russian (Russia)",
"Japanese (Japan)",
"Korean (Korea)",
"Arabic (Morocco)",
"Turkish (Turkey)",
"Thai (Thailand)",
"Vietnamese (Vietnam)",
"Indonesian (Indonesia)",
"Dutch (Netherlands)",
"Polish (Poland)",
"Hebrew (Israel)"
],
"prefill": "en_US",
"title": "Language",
"type": "string"
},
"maxItems": {
"default": 100,
"description": "Hard cap on records emitted by the run.",
"editor": "number",
"maximum": 10000,
"minimum": 1,
"prefill": 3,
"sectionCaption": "Limits",
"title": "Max items",
"type": "integer"
},
"maxPages": {
"default": 3,
"description": "Maximum result pages per query (60 products per page, up to 60 pages).",
"editor": "number",
"maximum": 60,
"minimum": 1,
"prefill": 1,
"title": "Max search pages",
"type": "integer"
},
"maxReviewsPerProduct": {
"default": 20,
"description": "Review cap per product when reviews are fetched. 0 uses the default of 20.",
"editor": "number",
"maximum": 200,
"minimum": 0,
"prefill": 20,
"title": "Max reviews per product",
"type": "integer"
},
"mode": {
"default": "search",
"description": "What to collect. search: keyword results. byProduct: product lookup by ID or URL. byStore: store lookup. byReviews: customer reviews. byUrl: auto-detect from pasted AliExpress links.",
"editor": "select",
"enum": [
"search",
"byProduct",
"byStore",
"byReviews",
"byUrl"
],
"enumTitles": [
"Search by keyword",
"Look up products",
"Look up stores",
"Collect reviews",
"Auto-detect from URLs"
],
"prefill": "search",
"sectionCaption": "Mode & Inputs",
"title": "Mode",
"type": "string"
},
"priceMax": {
"default": 0,
"description": "Maximum price in the selected currency. 0 disables the upper bound.",
"maximum": 1000000,
"minimum": 0,
"prefill": 0,
"title": "Maximum price",
"type": "number"
},
"priceMin": {
"default": 0,
"description": "Minimum price in the selected currency. 0 disables the lower bound.",
"maximum": 1000000,
"minimum": 0,
"prefill": 0,
"title": "Minimum price",
"type": "number"
},
"productIds": {
"description": "Numeric AliExpress product IDs or item URLs. Both 1005… and 3256… ID formats are accepted.",
"editor": "stringList",
"prefill": [
"1005010155028387"
],
"title": "Product IDs or URLs (mode=byProduct or byReviews)",
"type": "array"
},
"ratingMin": {
"default": 0,
"description": "Minimum star rating from 0 to 5. Products without a rating are skipped when a threshold is set.",
"maximum": 5,
"minimum": 0,
"prefill": 0,
"title": "Minimum rating",
"type": "number"
},
"region": {
"default": "US",
"description": "Country used for prices, availability and the storefront locale. Global leaves the region to the requesting IP.",
"editor": "select",
"enumSuggestedValues": [
"US",
"GB",
"DE",
"FR",
"ES",
"IT",
"NL",
"PT",
"PL",
"BR",
"MX",
"CA",
"AU",
"JP",
"KR",
"TR",
"SA",
"AE",
"IL",
"GLOBAL"
],
"prefill": "US",
"sectionCaption": "Region & Locale",
"title": "Shopper region",
"type": "string"
},
"reviewFilter": {
"default": "all",
"description": "Which reviews to collect.",
"editor": "select",
"enum": [
"all",
"withPhotos",
"additional"
],
"enumTitles": [
"All reviews",
"With photos",
"With follow-up"
],
"prefill": "all",
"title": "Review filter",
"type": "string"
},
"searchQueries": {
"description": "One or more keywords, e.g. \"phone case\" or \"wireless earbuds\". Each query is scraped up to maxPages pages.",
"editor": "stringList",
"prefill": [
"phone case"
],
"title": "Search queries (mode=search)",
"type": "array"
},
"shipFrom": {
"default": "",
"description": "Only show items stocked in this country. Leave blank for any warehouse.",
"editor": "select",
"enum": [
"",
"CN",
"US",
"RU",
"ES",
"FR",
"DE",
"IT",
"GB",
"PL",
"TR",
"BR",
"JP",
"KR",
"AU",
"CA",
"MX",
"AE",
"SA",
"IL",
"TH",
"VN",
"ID",
"MY",
"NL",
"BE",
"PT"
],
"enumTitles": [
"(any warehouse)",
"CN",
"US",
"RU",
"ES",
"FR",
"DE",
"IT",
"GB",
"PL",
"TR",
"BR",
"JP",
"KR",
"AU",
"CA",
"MX",
"AE",
"SA",
"IL",
"TH",
"VN",
"ID",
"MY",
"NL",
"BE",
"PT"
],
"prefill": "",
"title": "Ship from country",
"type": "string"
},
"sortBy": {
"default": "default",
"description": "How keyword results are ordered. AliExpress does not expose a newest sort.",
"editor": "select",
"enumSuggestedValues": [
"default",
"orders_desc",
"price_asc",
"price_desc",
"newest"
],
"prefill": "default",
"sectionCaption": "Filters",
"title": "Sort order (mode=search)",
"type": "string"
},
"storeIds": {
"description": "Numeric store IDs or /store/… URLs.",
"editor": "stringList",
"prefill": [
"1101493050"
],
"title": "Store IDs or URLs (mode=byStore)",
"type": "array"
},
"urls": {
"description": "Any mix of search, item, store and review URLs. The mode is detected per URL.",
"editor": "stringList",
"prefill": [
"https://www.aliexpress.com/item/1005010155028387.html"
],
"title": "AliExpress URLs (mode=byUrl)",
"type": "array"
}
},
"required": [
"mode"
],
"schemaVersion": 1,
"title": "AliExpress Scraper Input",
"type": "object"
}
Output schema
Published result links and storage locations. This schema is not an exhaustive contract for every field in a dataset record.
| Field | Type | Required | Description |
|---|---|---|---|
products | string | optional | Dataset containing AliExpress product, store, or review records for the selected mode. |
Download the published output schema
View complete JSON
{
"actorOutputSchemaVersion": 1,
"description": "Dataset containing AliExpress product cards, store lookups, or customer reviews, depending on the selected mode.",
"properties": {
"products": {
"description": "Dataset containing AliExpress product, store, or review records for the selected mode.",
"template": "{{links.apiDefaultDatasetUrl}}/items",
"title": "AliExpress records",
"type": "string"
}
},
"title": "AliExpress Multi-Region Search, Store & Review Scraper Output"
}
Dataset schema
Published dataset views and any declared field definitions. A view can select only a subset of the returned record fields.
Download the published dataset schema
View complete JSON
{
"actorSpecification": 1,
"views": {
"overview": {
"display": {
"component": "table",
"properties": {}
},
"title": "Products",
"transformation": {
"fields": [
"title",
"productId",
"salePrice",
"originalPrice",
"currencyCode",
"discountPercent",
"rating",
"ordersCount",
"shipFromCountry",
"productUrl",
"isSponsored"
]
}
}
}
}
Key-value schema
Published key-value store definitions, when provided by this build.
This definition is not present in the default published build. See the published README for available documentation.
Published README
Read the full published documentation
AliExpress Multi-Region Search, Store & Review Scraper
Collect AliExpress search results, customer reviews, and basic product or store lookups for 19 shopper regions. Prices, currency, and review language follow the region you choose. No AliExpress login, cookies, or manual proxy setup is required.
What this actor does
- Searches AliExpress by keyword and returns product cards (up to 60 per page before gift filtering), with price, original price, discount, rating, sold count, images, selling points, category, and ship-from country
- Supports 19 shopper regions and 42 currencies, with sort, price range, rating, ship-from, free-shipping, Choice, and 4-star filters
- Flags sponsored cards and $0.00 welcome-gift cards so you can keep or drop them
- Collects customer reviews page by page, including original text, translated text, rating, buyer country, photos, variant, shipping method, and follow-up reviews
- Looks up a product by ID or URL for its title, main image, canonical URL, and availability status
- Looks up a store by ID or URL for its store name, canonical store ID, seller ID, and description
- Omits empty fields from every record; dates are ISO when present and image URLs are absolute
Modes and output
Keyword search (mode=search)
One record per product card:
productId, title, productUrl, imageUrl, imageUrls[], salePrice{amount,currencyCode,formatted,discountPercent}, originalPrice{amount,currencyCode,formatted}, discountPercent, currencyCode, rating, ordersText, ordersCount, sellingPoints[], listedAt, productType, itemType, shipFromCountry, categoryId, isChoice, isSponsored, isWelcomeGift, region, sourceUrl, recordType, siteName, scrapedAt.
salePrice.amount is the lowest price shown for the listing on the search card, not a selected variant's price.
Product lookup (mode=byProduct, or an item URL in mode=byUrl)
One record per requested product:
productId, productUrl, canonicalUrl, title, imageUrl, status (ok, not_found, or blocked), region, recordType, siteName, scrapedAt.
With includeReviews enabled, a reviews[] array is attached. This mode is a title/image/existence lookup: AliExpress loads price, rating, variants, specifications, shipping, and seller statistics through a separate anti-bot API that this actor does not promise. Use keyword search for card price and rating.
Store lookup (mode=byStore, or a store URL in mode=byUrl)
One record per requested store:
storeId (canonical), storeNumber, storeName, storeUrl, storeDescription, sellerId, status, region, recordType, siteName, scrapedAt.
AliExpress's store statistics API (positive-feedback rate, opening date, 180-day sales, followers) is not publicly reachable without the same protected API. Those fields are deliberately not advertised.
Reviews (mode=byReviews, a product ID list, or a review URL in mode=byUrl)
One record per review:
productId, productRating, productReviewCount, reviewId, rating (1–5), reviewText, reviewTextTranslated, translationLanguage, reviewerName, reviewerCountry, reviewerHeadUrl, reviewedAt, skuInfo, imageUrls[], helpfulCount, logistics, isFollowUp, followUpText, followUpDate, recordType, siteName, scrapedAt.
Input
| Field | Type | Default | Description |
|---|---|---|---|
mode |
string | search |
search, byProduct, byStore, byReviews, or byUrl |
searchQueries |
array | – | Keywords for search; one to 50 queries (the prefill example is ["phone case"]) |
productIds |
array | – | Product IDs or item URLs for byProduct / byReviews |
storeIds |
array | – | Store IDs or store URLs for byStore |
urls |
array | – | Any AliExpress search, item, store, or review URLs for byUrl |
region |
string | US |
Shopper country: US, GB, DE, FR, ES, IT, NL, PT, PL, BR, MX, CA, AU, JP, KR, TR, SA, AE, IL, or GLOBAL |
currency |
string | region default | Optional ISO-4217 override, e.g. USD, EUR, BRL |
language |
string | en_US |
Storefront language and review translation language |
sortBy |
string | default |
default, orders_desc, price_asc, or price_desc |
priceMin / priceMax |
number | 0 |
Price bounds in the selected currency; 0 disables a bound |
ratingMin |
number | 0 |
Minimum stars from 0 to 5; unrated items are skipped when set |
shipFrom |
string | any | Warehouse country code, e.g. CN, US, ES |
freeShippingOnly |
boolean | false |
Only items with free-shipping advertising |
choiceOnly |
boolean | false |
Only AliExpress Choice items |
fourStarPlus |
boolean | false |
Only items rated 4.0 or higher. AliExpress's own 4-star filter can include 3.x cards, so the actor enforces the 4.0 cutoff after the page is fetched |
includeSponsored |
boolean | true |
Include promoted cards, marked isSponsored |
includeWelcomeGifts |
boolean | false |
Include $0.00 new-shopper gift cards, marked isWelcomeGift |
maxItems |
integer | 100 |
Hard cap on emitted records (1–10,000) |
maxPages |
integer | 3 |
Pages per query (1–60; 60 cards per page) |
includeReviews |
boolean | false |
Attach reviews to product records |
maxReviewsPerProduct |
integer | 20 |
Review cap per product (0–200; 0 uses 20) |
reviewFilter |
string | all |
all, withPhotos, or additional |
includeProductStats |
boolean | true |
Add product average rating and review count to review rows |
Example: search three regions
{
"mode": "search",
"searchQueries": ["phone case", "wireless earbuds"],
"region": "ES",
"currency": "EUR",
"sortBy": "orders_desc",
"freeShippingOnly": true,
"maxItems": 200,
"maxPages": 3
}
Example: collect translated reviews
{
"mode": "byReviews",
"productIds": ["1005010155028387", "1005012594256426"],
"language": "es_ES",
"maxReviewsPerProduct": 60,
"reviewFilter": "withPhotos",
"includeProductStats": true
}
Example: resolve mixed URLs
{
"mode": "byUrl",
"urls": [
"https://www.aliexpress.com/item/1005010155028387.html",
"https://www.aliexpress.com/store/1101493050",
"https://www.aliexpress.com/w/wholesale-phone-case.html"
]
}
Use cases
- Compare keyword pricing and sales signals across countries and currencies
- Build a review corpus with translated text for sentiment analysis
- Monitor a product line's card prices and discounts on a schedule
- Resolve pasted AliExpress product or store links into structured records
- Feed product-card and review data into spreadsheets, databases, or AI pipelines
Limits
- No full item-detail scraping. AliExpress renders item price/rating/variants/specs/shipping/seller data through a protected client-side API. This actor returns an item's title, image, and canonical URL; it does not promise the rest.
- No store statistics. The store profile API is behind the same protection, so store rating, positive-feedback rate, opening date, and 180-day sales are not returned.
- Search cap. AliExpress serves 60 cards per page and stops at page 60, so one query exposes at most 3,600 raw cards (60 pages x 60). Cross-page dedupe and the default gift filter usually return fewer; a default US page produced roughly 30-45 rows in tests. Split broad searches by price, sort order, or narrower keywords for more coverage.
- Card price is a listing minimum. It is the lowest price across variants shown on the card, not a selected SKU's price.
- Conditional fields. Ratings, discounts, photos, avatars, and follow-ups are only present when the source has them. They are omitted, never filled with a placeholder.
- Review dates in non-English languages. AliExpress localizes review month names (for example
ENE,FEV,ABR). The current parser recognizes English month abbreviations, so somereviewedAtvalues are omitted whenlanguageis noten_USeven though the source has a date. Uselanguage=en_USwhen every review needs a date. - The 4-star filter is enforced by the actor. AliExpress's own 4-star filter can include 3.x cards (3.7-3.9 was observed); when
fourStarPlusis on, the actor removes anything below 4.0. - Review order. The public review endpoint does not support a sort parameter; reviews are returned in AliExpress's default order.
- Welcome gifts. Some US searches show $0.00 gift cards. They are excluded by default; enable
includeWelcomeGiftsto keep them with theisWelcomeGiftflag.
FAQ
Do I need an AliExpress account or cookies? No. The actor reads public search, review, product, and store pages without logging in.
Do I need to configure a proxy? No. AliExpress rate limits are handled automatically; there is nothing to configure.
Why does byProduct not return price, rating, or variants?
AliExpress loads those fields through a separate protected API that is not reliably reachable without a browser session. The actor returns the reliable part — title, image, canonical URL, and status — rather than pretending to have the rest. Use keyword search for card price and rating.
Why is there no store rating or follower count? AliExpress serves store statistics from a protected profile API. Only the public store name, canonical ID, seller ID, and description are returned.
Why does the returned currency sometimes differ from what I picked?
The actor sets the shopper region and currency, and records the currency AliExpress actually returned. If you need a specific currency, set both region and currency.
How many products can one search return? Up to 60 cards per page and 60 pages per query (3,600 raw cards; fewer after gift filtering and cross-page dedupe). Use narrower keywords or price ranges to partition larger catalogs.
Why are some reviews missing photos or translations?
Photos, avatars, and follow-ups are optional on AliExpress. Translation depends on the review language and the selected language; translated text is omitted when the source does not provide it. Review dates are normalized from localized month names (Spanish, Portuguese, French, German, Italian, Russian, and English).
Can I get more than 200 reviews for one product? No in one pass; the review cap is 200 per product. Run multiple products or split the review set.
Is this affiliated with AliExpress? No. This is an independent actor that reads public AliExpress pages and is not operated or endorsed by AliExpress or Alibaba Group.
Python quickstart
Use a schema-derived input and the Python standard library to start a run. An Apify account and token are required for execution.
Source build BqmW8MdoJaOgZceAU. Documentation is regenerated from the default published build; private drafts are not included.