AliExpress Products Scraper avatar

AliExpress Products Scraper

Pricing

Pay per event

Go to Apify Store
AliExpress Products Scraper

AliExpress Products Scraper

The price on an AliExpress card is usually a discounted one, so the row carries the original and the discount percent beside it, with product ID, title, star rating, order count, image and product URL. One search term in, one row per product.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Dami's Studio

Dami's Studio

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Type a search term, get product rows back: productId, title, price, originalPrice, discountPercent, rating, orders, ordersText, imageUrl, isChoice, isAd and a canonical productUrl.

It reads AliExpress search listings. No account, no API key, no browser, no proxy of your own.

$0.12 per 1,000 products, plus $0.001 to start a run. Flat on every plan, charged per row returned. A run that finds nothing costs the start fee.

ProductsCost
500$0.061
1,000$0.121
10,000$1.201

Every price in one currency

AliExpress picks display currency from wherever the request came from. Leave that alone and a scraper rotating through proxies hands you some rows in USD, some in CAD, some in EUR, with nothing on the row telling you which. That happened during development: identical searches came back in CAD and USD depending on the exit address.

This pins currency and ship-to country on every request, so price means one thing across the whole dataset. Pick from USD, EUR, GBP, CAD, AUD, BRL, RUB, JPY, KRW or INR. Verified on a real run: 150 rows requested in EUR came back 150/150 in EUR.

A row

{
"productId": "1005010018401645",
"title": "Leather Phone Case For iPhone 17 Pro Max 16 Pro Max 15 14 Plus Shockproof Soft TPU Cover",
"productUrl": "https://www.aliexpress.com/item/1005010018401645.html",
"price": 1.39,
"originalPrice": 2.96,
"discountPercent": 53,
"currency": "EUR",
"rating": 4.6,
"orders": 18096,
"ordersText": "10,000+ sold",
"imageUrl": "https://ae-pic-a1.aliexpress-media.com/kf/Sc2976671fe8c4f6b83e3de29cab49c3fH.jpg",
"isChoice": true,
"isAd": false,
"searchKeyword": "phone case",
"page": 1,
"position": 7,
"scrapedAt": "2026-08-09T07:02:11.031Z"
}

orders is the exact number AliExpress tracks internally. ordersText is the rounded badge a buyer sees on the page. Both are there because the badge is what shoppers react to and the number is what you can sort on.

Field coverage over a real 150-row run: productId, title, productUrl, price, currency and imageUrl on 100%; orders and ordersText on 99%; rating on 97%; discountPercent on 39%; originalPrice on 29%.

originalPrice and discountPercent only exist where the seller is running an actual markdown. Most listings sell at one price, and those rows get null rather than a copy of the current price dressed up as a discount.

Input

{
"searchQueries": ["phone case", "wireless earbuds"],
"maxItems": 1000,
"currency": "USD",
"country": "US"
}
FieldWhat it does
searchQueriesWhat to search for. One row per product found.
productUrlsAliExpress search URLs. The keyword is read out of the URL.
maxItemsTotal products across all terms. Default 40, ceiling 5,000.
currencyCurrency every price comes back in. Default USD.
countryTwo-letter ship-to country used for pricing. Default US.
requestDelayMsGap between page requests. Default 800.

Run it with no input and you get one labelled sample row, uncharged, so you can see the shape before spending anything.

Limits

Read this bit before you build on it.

  • Search results only. It does not open individual product pages. Despite the field name, productUrls takes search URLs and reads the keyword out of them. Feed it an item page and you get a BAD_INPUT row.
  • No sorting. AliExpress's mobile listings serve one order, their own relevance ranking. The desktop sort parameters were tested against it and do nothing: sort=price_asc returned results identical to the default and sortType=... returned a page with no results at all. Rather than ship a dropdown that silently changes nothing, there isn't one. Sort the dataset yourself.
  • Roughly 20-25% of rows are paid placements. They're real listings, marked isAd: true, so filter them if you don't want them.
  • No seller or store fields. AliExpress removed store name, seller ID and seller country from its search cards. Nothing in the response carries them, so there's no store column rather than one that's always empty.
  • No review text and no shipping cost. Both live on the product page, which this doesn't open.
  • orders is lifetime, not recent. It's the cumulative count AliExpress reports.
  • 20 products per page, so a 1,000-product run is 50 requests.
  • Results reshuffle between pages. Rows are deduplicated by productId as they're collected, so maxItems means unique products.

Why it can be this cheap

www.aliexpress.com sits behind Alibaba's punish gate. It serves results for roughly twenty requests and then refuses every exit address and keeps refusing. Measured after that point: Apify datacenter 0 of 10, rented static-ISP addresses 0 of 3, and an ordinary home connection, all returning the same 2 KB challenge script. Changing TLS fingerprint didn't help. That gate is why AliExpress scrapers usually answer with headless browsers and residential bandwidth, and bill it through.

m.aliexpress.com is a different gate. On the very same address www had just refused, the mobile host returned a full 290 KB result page, and plain datacenter addresses then served pages 1 through 60 without a single refusal. It also server-renders results into the HTML, so it's one request per 20 products with no API to reverse-engineer.

No browser, no residential bandwidth, no Chinese IP. That's the whole reason $0.12 per 1,000 works.

FAQ

Do I need an account or API key? No. Everything it reads is public.

Do I need residential proxies? No, and it deliberately doesn't offer them. See above.

How fast is it? 1,000 products took 139 seconds with the default 800 ms gap between page requests.

How deep can one search term go? Page 60 was still serving a full 20 results in testing, with no ceiling found. Depth is bounded by maxItems, not by the site.

Is isChoice the AliExpress Choice badge? Yes.

Affiliated with AliExpress or Alibaba? No. It reads public listing data. Check AliExpress's terms and your local rules before using the output commercially.