AliExpress Products Scraper icon

E-commerce

AliExpress Products Scraper

Scrape AliExpress product data by search keyword, product URL, or product ID -- price, rating, order count, per-variant stock levels, and shipping-cost estimates to your destination country, delivered as clean typed rows for dropshippers and product-sourcing research.

Free Apify credit covers a first run. No credit card to try.

What this Actor scrapes

AliExpress runs no public product-data API for shoppers, and its product-detail page is a client-side-rendered app shell with zero product data in the raw HTML — we execute it in a real, fingerprint-resistant browser so the numbers are actually there. This Actor resolves products three ways — search keyword, direct product URL, or product ID — and returns one clean schema across all three: price, currency, rating, review count, and an explicit order_count (the "500+ sold" badge) most AliExpress scrapers skip past.

What we handle for you

  • 🛡️ Browser fingerprint rotationcurl-cffi impersonates real Chrome / Firefox / Safari TLS handshakes so the target sees a browser, not Python.
  • 🌐 Residential proxy rotation via Apify Proxy — fresh session and exit IP on every block.
  • 🔁 Retries with exponential backoff on 408 / 429 / 5xx — up to 5 attempts per page, Retry-After honoured.
  • 🧱 Rate-limit-aware pacing — when the target pushes back, we slow down instead of getting banned.
  • 🧊 Clean, typed dataset rows — Pydantic-validated, ISO-8601 timestamps, stable product IDs, JSON / CSV / Excel export straight from the Apify Console.
  • 💰 Pay-Per-Event pricing — you only pay for results that hit your dataset. No data, no charge.

Use cases

  • Dropshipping product validation — check price, rating, and order count before you list a product.
  • Amazon private-label sourcing research — cross-reference candidate SKUs by order volume instead of eyeballing the storefront.
  • Competitor price monitoring — track price movement across a candidate catalog by search keyword or product ID.
  • Catalog enrichment — resolve a list of product URLs or IDs into title, price, rating, and images in one call.
  • Market-price snapshots — run the same keyword across a run schedule to build your own price-history series (AliExpress doesn't publish one).

Input

Paste this into the Apify Console, or send it as the run input over the API. Proxy settings are on by default; you rarely need to touch them.

FieldTypeRequiredWhat it does
searchKeywords array no Search terms to run against AliExpress. Each keyword returns up to maxResultsPerKeyword products.
productUrls array no Direct AliExpress product-detail URLs (aliexpress.com/item/{id}.html). The product ID is extracted automatically.
productIds array no Direct AliExpress numeric product IDs (8-16 digits), fetched via /item/{id}.html.
maxResultsPerKeyword integer no Cap on the number of products returned per search keyword.
shippingDestinationCountry string no ISO 3166-1 alpha-2 country code that shipping_cost_estimate is computed against.
{
  "searchKeywords": [
    "wireless earbuds"
  ],
  "maxResultsPerKeyword": 3,
  "shippingDestinationCountry": "US",
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}

Output

One row per result, schema-validated before it is written. Export JSON, CSV, Excel or XML from the run, or read it over the API.

product_idtitlepricecurrencyratingreview_countorder_countvariantsshipping_cost_estimateshipping_destinationproduct_urlimage_urlsseller_namecategorysearch_keywordscraped_at

{
  "product_id": "3256811548194791",
  "title": "Air Pro ANC Wireless Earphone Bluetooth Headsets Pro 2 Active Noise Cancellation",
  "price": 3.67,
  "currency": "USD",
  "rating": 4.8,
  "review_count": 334,
  "order_count": null,
  "variants": [],
  "shipping_cost_estimate": null,
  "shipping_destination": "US",
  "product_url": "https://www.aliexpress.com/item/3256811548194791.html",
  "image_urls": [
    "https://ae-pic-a1.aliexpress-media.com/kf/S883875aebfd44d7ab6eed07c5fe2fae09.jpg"
  ],
  "seller_name": null,
  "category": null,
  "search_keyword": null,
  "scraped_at": "2026-08-31T06:45:00.368Z"
}

Pricing

EventPriceWhen
Actor start$0.05Once per run, covers warm-up and proxy session setup.
Product scraped$0.0020Per result written to the dataset.

You pay only for results that land. Cap any run with maxTotalChargeUsd. See pricing & billing for worked examples.

Limitations

  • searchKeywords rows: title, price, currency, rating, and order_count all come from the search results page directly.
  • productUrls/productIds rows: AliExpress's product-detail page ships zero product data in its raw HTML — every field comes from a structured-data block a real browser render exposes. That block carries title, price, currency, rating, review count, and images, but not order_count.
  • variants, seller_name, category, shipping_cost_estimate are currently always null/[] on every row, both modes. AliExpress doesn't expose per-variant stock, seller name, or category on any page surface we've found a reliable source for yet, and its shipping-cost endpoint isn't publicly reachable. We'd rather ship an honest null than a guessed value — these are on our roadmap as the storefront's endpoints get mapped further.
  • productUrls/productIds lookups render the live page in a real browser, and an individual render can occasionally fail to resolve — we retry once with a fresh session automatically, and a still-unresolved entry is skipped (not billed) and named in the run's status message rather than silently dropped. searchKeywords never touches a browser and doesn't carry this risk.
  • English/USD aliexpress.com storefront only — no other locales in v1.
  • Review text isn't included, only rating/review_count (see the companion AliExpress Reviews Scraper for review text).
  • No historical price time-series or coupon/cart-level pricing.

FAQ

Do I need an AliExpress account or API key?
No. This Actor reads the same public search and product pages a signed-out visitor sees — no login, no key.
What does a `null` `order_count` or `shipping_cost_estimate` mean?
It means the source page didn't expose that field for that product — we never fabricate a number. The rest of the row still ships with every field it did recover.
Can I mix search keywords, URLs, and product IDs in one run?
Yes — provide any combination of the three input fields. Rows are de-duplicated by product_id across all three modes so you're never charged twice for the same product.
Why did my run return zero rows — is that a failure?
Not necessarily. A search keyword that genuinely matches nothing on AliExpress succeeds with an empty dataset and a status message saying so — an empty result is not a failure. The run only ends non-zero (fails) when none of your inputs could be resolved at all (a genuine fetch/render problem), and the status message names exactly what didn't resolve and why.

Ready to run it?

Open the listing on Apify, paste the input above, and watch rows land. If it ever breaks, it is our problem before it is yours.

Related Actors

Teams that run this also run