Vexaloom Labs

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.

FieldTypeRequiredDescription
modestringrequiredWhat 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.
searchQueriesarrayoptionalOne or more keywords, e.g. "phone case" or "wireless earbuds". Each query is scraped up to maxPages pages.
productIdsarrayoptionalNumeric AliExpress product IDs or item URLs. Both 1005… and 3256… ID formats are accepted.
Show all input fields
FieldTypeRequiredDescription
modestringrequiredWhat 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.
searchQueriesarrayoptionalOne or more keywords, e.g. "phone case" or "wireless earbuds". Each query is scraped up to maxPages pages.
productIdsarrayoptionalNumeric AliExpress product IDs or item URLs. Both 1005… and 3256… ID formats are accepted.
storeIdsarrayoptionalNumeric store IDs or /store/… URLs.
urlsarrayoptionalAny mix of search, item, store and review URLs. The mode is detected per URL.
regionstringoptionalCountry used for prices, availability and the storefront locale. Global leaves the region to the requesting IP.
currencystringoptionalOptional ISO-4217 currency. Leave blank to use the region's usual currency. The currency actually returned is recorded in every record.
languagestringoptionalStorefront language and the language used to translate review text.
sortBystringoptionalHow keyword results are ordered. AliExpress does not expose a newest sort.
priceMinnumberoptionalMinimum price in the selected currency. 0 disables the lower bound.
priceMaxnumberoptionalMaximum price in the selected currency. 0 disables the upper bound.
ratingMinnumberoptionalMinimum star rating from 0 to 5. Products without a rating are skipped when a threshold is set.
shipFromstringoptionalOnly show items stocked in this country. Leave blank for any warehouse.
freeShippingOnlybooleanoptionalOnly show items advertised with free shipping.
choiceOnlybooleanoptionalOnly show AliExpress Choice items.
fourStarPlusbooleanoptionalOnly show items rated 4.0 or higher. The actor enforces the 4.0 threshold after AliExpress returns its filtered page.
includeSponsoredbooleanoptionalInclude promoted product cards; they are marked isSponsored in the output.
includeWelcomeGiftsbooleanoptionalInclude $0.00 new-shopper gift cards; they are marked isWelcomeGift and have no normal price.
maxItemsintegeroptionalHard cap on records emitted by the run.
maxPagesintegeroptionalMaximum result pages per query (60 products per page, up to 60 pages).
includeReviewsbooleanoptionalFetch customer reviews for each product (slow and adds records to the product).
maxReviewsPerProductintegeroptionalReview cap per product when reviews are fetched. 0 uses the default of 20.
reviewFilterstringoptionalWhich reviews to collect.
includeProductStatsbooleanoptionalAdd 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.

FieldTypeRequiredDescription
productsstringoptionalDataset 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

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 some reviewedAt values are omitted when language is not en_US even though the source has a date. Use language=en_US when 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 fourStarPlus is 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 includeWelcomeGifts to keep them with the isWelcomeGift flag.

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.

Open the step-by-step Python guide →

Source build BqmW8MdoJaOgZceAU. Documentation is regenerated from the default published build; private drafts are not included.