AliExpress Products Scraper avatar

AliExpress Products Scraper

Pricing

from $0.12 / 1,000 products

Go to Apify Store
AliExpress Products Scraper

AliExpress Products Scraper

Scrape AliExpress products by search term. Each row has product ID, title, price, star rating, order count, image and product URL. The price on AliExpress is usually a sale price. So you also get the old price and the discount percent.

Pricing

from $0.12 / 1,000 products

Rating

0.0

(0)

Developer

Dami's Studio

Dami's Studio

Maintained by Community

Actor stats

0

Bookmarked

7

Total users

2

Monthly active users

2 days ago

Last modified

Categories

Share

AliExpress Products Scraper: search results with prices, ratings and order counts

Type a search term and get the AliExpress listings back as rows. Product ID, title, canonical link, current price, the old price where there is a real markdown, star rating, lifetime order count, the image and the Choice badge.

It reads search listings and stops there. It does not open individual product pages, so there is no seller name, no review text and no shipping cost in the output.

InputSearch terms, or AliExpress search URLs
OutputOne row per product
Ceiling5,000 products per run
Account neededNone, and no API key
Price$0.12 per 1,000 products, flat on every plan

🔍 What AliExpress Products Scraper does

You give it terms like phone case or wireless earbuds. It walks the search listings 20 products at a time and writes a row for each one, until it has the number you asked for or the term runs out.

Every price in one currency. AliExpress decides the display currency on its own, and left alone a single dataset can come back with some rows in USD and some in EUR with nothing on the row saying which. Setting currency pins it for the whole run, so price means one thing when you sort or total the file. There is a currency field on every row so you never have to remember what you picked.

Results reshuffle as you page through them, which is AliExpress's doing. Rows are deduplicated on productId as they arrive, so maxItems means unique products and not raw cards seen.

📥 What you give it

{
"searchQueries": ["phone case", "wireless earbuds"],
"maxItems": 1000,
"currency": "USD",
"country": "US"
}
FieldDefaultWhat it is
searchQueriesnoneWhat to search for. The box starts with phone case in it, which is a suggestion and not a default.
productUrlsnoneAliExpress search URLs, if you would rather paste than type. The keyword is read out of the URL. An item page here gives you a BAD_INPUT row.
maxItems40Total products across all your terms, up to 5,000.
currencyUSDThe currency every price in the run comes back in. USD, EUR, GBP, CAD, AUD, BRL, RUB, JPY, KRW or INR.
countryUSTwo-letter ship-to country, which AliExpress uses for pricing and availability.
requestDelayMs800Gap between page requests, in milliseconds. Raise it if a long run starts coming up short. Setting it to 0 falls back to 800.
proxyConfigurationnoneOptional. Leave it empty; the actor is set up to run without it. Your own servers are used exactly as given.

Run it with no input at all and you get one labelled sample row, so you can see the shape before committing to a list.

📤 What you get back

A real row from a recent run:

{
"productId": "3256807846299122",
"title": "Soft Silicone Cute Cat Ear Phone Case For iPhone 16 17 13 15 14 12 11 Pro Max Air XS Max Funda Transparent Shockproof Back Cover",
"productUrl": "https://www.aliexpress.com/item/3256807846299122.html",
"price": 3.06,
"originalPrice": null,
"discountPercent": 13,
"currency": "USD",
"rating": 4.8,
"orders": 2336,
"ordersText": "2,000+ sold",
"imageUrl": "https://ae-pic-a1.aliexpress-media.com/kf/S7bea8ef05d414461a09f1710f7e26ad5I.jpg",
"isChoice": true,
"isAd": false,
"searchKeyword": "phone case",
"page": 1,
"position": 1,
"scrapedAt": "2026-09-20T07:01:34.801Z"
}
FieldWhat it is
priceWhat the listing sells for today, in your chosen currency. On AliExpress that is usually a sale price.
originalPriceThe price before the markdown, and null when the seller is not running one. A lot of listings sell at one price, so expect plenty of nulls rather than a copy of price dressed up as a discount.
discountPercentThe discount AliExpress advertises on the card. It can be present on a row where originalPrice is null, because the two come from different places on the card.
ordersThe exact lifetime order count, not a recent figure. Sort on this one.
ordersTextThe rounded badge a shopper actually sees, like 2,000+ sold.
isChoiceThe AliExpress Choice badge.
isAdtrue on a paid placement. Roughly a fifth to a quarter of search rows are these. They are real listings, just promoted.
page, positionWhere the row sat in the results, so you can reconstruct the ranking.
productUrlRebuilt from the product ID, so it is clean and has no tracking on it.

🧾 Reading the output

RowHow to spot itCharged
A productIt has a productIdyes
The sample row_sample: trueno
A diagnosticIt has a status and no productIdno

A diagnostic row tells you what happened to one search term:

statusWhat it means
BAD_INPUTThat URL is not an AliExpress search URL. An item page does this.
NO_RESULTSAliExpress returned nothing for that term. Usually a typo or a term that is too narrow.
SEARCH_FAILEDThat term could not be read. Re-run it.
BLOCKEDAliExpress stopped answering for that page. Whatever had already been delivered is kept.

▶️ How to run it

  1. Open AliExpress Products Scraper and click Try for free.
  2. Type your terms into Search terms, one per line.
  3. Set Maximum products. Start at 40 to see the shape of the output.
  4. Pick a Currency and a Ship-to country if the defaults do not suit you, then click Start.
  5. Download the dataset as JSON, CSV or Excel, or read it from the Apify API.

💰 How much does it cost?

$0.12 per 1,000 products. Flat on every Apify plan, no volume tiers.

You pay per product row. The sample row is not charged, diagnostic rows are not charged, and the same product appearing again on a later page is dropped before it becomes a row.

💡 What people use it for

  • Sizing a niche before sourcing it: pull 1,000 rows for a term and look at where price clusters and how far orders runs.
  • Finding what actually sells rather than what ranks, by sorting on orders instead of on position.
  • Watching a term weekly and joining on productId to see which listings appeared, which moved up and which quietly changed price.
  • Filtering isAd out to see the organic ranking on its own, or keeping only isAd rows to see who is paying for that term.
  • Pulling a competitor's whole category into a sheet in one currency so the totals mean something.

🚧 What it does not do

  • Search listings only. No product pages, which means no description, no specifications, no variants and no SKU-level prices.
  • No seller or store fields. AliExpress took store name, seller ID and seller country off its search cards, so there is no column rather than a column that is always empty.
  • No review text and no shipping cost. Both live on the product page.
  • No sorting. AliExpress serves one order, its own relevance ranking, and the sort options it offers elsewhere do nothing here. Sort the dataset yourself.
  • orders is lifetime, not recent. A listing from 2019 with 18,000 orders is not necessarily selling today.
  • Paid placements are mixed in, around a fifth to a quarter of rows. They are flagged isAd.
  • A term can stop early. When AliExpress stops answering for a page, the run ends that term with a BLOCKED row and keeps everything already delivered.
  • Prices are what AliExpress shows for your ship-to country, before any coupon, and they move constantly. scrapedAt records when the row was read.

🧭 Which marketplace scraper do you need?

If you wantUse
AliExpress search results with prices and order countsThis one
Wholesale prices, minimum order quantities and suppliers1688 Wholesale Scraper
Buyer reviews with photos and the SKU that was bought1688 Reviews Scraper
A Shopee shop's ratings and reviewsShopee Shop Reviews Scraper
Classified listings in Russia and the CISAvito Listings Scraper

❓ Questions people ask

Do I need an AliExpress account or an API key? No. Everything here is public search data.

Why are my prices in the wrong currency? They will not be if you set Currency. It is pinned for the whole run and echoed on every row.

Can I paste a product link? No. productUrls takes search URLs and reads the keyword out of them. An item page comes back as BAD_INPUT.

Why is originalPrice empty on so many rows? Because most listings are not on a markdown. A blank is the honest answer there.

How deep can one search term go? As deep as maxItems lets it. The limit is your setting, not a page number.

Is scraping AliExpress legal? These are public listings. Check AliExpress's terms and your own local rules before using the output commercially. Apify's write-up on scraping and the law is a good starting point, and we are not lawyers.

🆘 If something breaks

Open the Issues tab on the actor page. Send the search term and the run ID. If you got a diagnostic row, its status usually names the problem on its own.