AliExpress Scraper avatar

AliExpress Scraper

Pricing

$1.00 / 1,000 results

Go to Apify Store
AliExpress Scraper

AliExpress Scraper

Scrape AliExpress search listings and product URLs. Export product titles, prices, discounts, ratings, units sold, images, and listing context to JSON or CSV.

Pricing

$1.00 / 1,000 results

Rating

0.0

(0)

Developer

MLG Data

MLG Data

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

7 days ago

Last modified

Share

Scrape AliExpress product listings by keyword and export product titles, prices, discounts, ratings, sales counts, images, and listing positions to JSON or CSV. It also accepts direct item URLs for public product metadata, giving you a structured AliExpress data feed for sourcing research, price tracking, and catalog analysis.

The scraper reads the product data delivered with public search pages. It follows search result pages, applies the selected sort order, removes duplicate product IDs, and stops at the limits you set. A direct item URL returns the public title and main image when the item page exposes them; fields that the page does not expose remain empty.

What data can you extract from AliExpress?

Each dataset row represents one product. The search listing contains the richest data. Some items lack a rating, sale price, or order count, and direct item pages expose fewer fields. Empty fields are stored as null so that exports keep a consistent set of columns.

FieldDescriptionExample
productIdIdentifier shown by the listing or item page3256811844384040
titlePublic product titleTWS Wireless Bluetooth Headset...
productUrlDirect item linkhttps://www.aliexpress.com/item/3256811844384040.html
imageUrlMain product imagehttps://ae-pic-a1.aliexpress-media.com/kf/...jpg
priceCurrentDisplayed sale price with symbolUS $6.38
priceOriginalDisplayed price before discountUS $24.76
priceDiscountDisplayed percentage off74
ratingValueDisplayed star rating4.9
reviewCountReview count when public listing data supplies itnull
soldCountUnits sold; exact count when listing data includes one1372
tagsVisible text tags, separated by vertical barsNew shoppers save $18.38 | Free shipping
searchQueryKeyword that found the productwireless earbuds
scrapedAtUTC extraction time2026-09-27T12:06:45Z
priceCurrentValueNumeric current price6.38
priceOriginalValueNumeric original price24.76
currencyCurrency codeUSD
skuIdVariant identifier shown in listing data12000057320259387
storeNameStore name when supplied by the listingnull
isSponsoredWhether the listing carries a sponsored markerfalse
rankPosition across search pages for that keyword1
sourcePageSearch page or item page fetchedhttps://www.aliexpress.com/w/wholesale-wireless-earbuds.html

The formatted price fields are useful for a human readable export. Use priceCurrentValue, priceOriginalValue, and currency for calculations. A price is a listing snapshot, not a quote for every variant, destination, or buyer. Promotions and shipping conditions can change after a run.

The soldCount field favors the exact count embedded with the listing. If only a shortened visible label is present, the scraper converts that label to a number. A label such as “1,000+ sold” is therefore an approximate lower bound, while an exact embedded count is a direct reported value. The scraper does not infer a review count from the rating or sales total.

How to scrape AliExpress

  1. Enter one or more product keywords under searchQueries, or paste direct item links under productUrls. You can use both in the same run.
  2. Set maxProducts for the number of unique results per keyword. Start with 50 or 100 to inspect the data before requesting a larger sample.
  3. Choose sortBy: best matches, most orders, lowest price, or highest price. Set maxItems if you also need a hard cap across all keywords and URLs.
  4. Run the actor. Open the default dataset when it finishes and download JSON, CSV, or a spreadsheet export.

For a comparison across several niches, put each keyword on its own line. The searchQuery field makes it possible to group rows after export. A product found under several keywords is emitted once per run, under the first keyword that reached it. This prevents duplicate rows in a combined catalog. Run keywords separately if you need a complete ranking for each overlapping query.

Input

ParameterTypeDefaultDescription
searchQueriesList of stringsEmptyKeywords, one per line. Supply this or productUrls.
productUrlsList of stringsEmptyDirect AliExpress item links. Supply this or searchQueries.
maxProductsInteger100Maximum unique listings per keyword; allowed range is 1–1,000.
sortByStringdefaultdefault, orders, price_asc, or price_desc.
maxItemsInteger0Total result cap across every input; zero means no total cap.
proxyConfigurationObjectAutomatic proxyOptional network configuration.

Example: compare sales and prices for two kinds of audio accessories.

{
"searchQueries": ["wireless earbuds", "bluetooth speaker"],
"maxProducts": 100,
"sortBy": "orders",
"maxItems": 150
}

The two limits serve different purposes. With the input above, the scraper can collect up to 100 distinct listings from the first keyword, then up to 50 more from the second before the 150-row total cap ends the run. If the first keyword has fewer available results, the second can use more of the overall allowance, up to its own 100-row limit. Direct URLs are processed after keywords and also count against maxItems.

For a product URL workflow, enter links such as https://www.aliexpress.com/item/1005011807602955.html under productUrls. Only AliExpress item URLs are accepted. Item URLs that resolve to the same product ID as a search result are skipped to avoid duplicates. Direct item pages may redirect to another regional domain or to a related listing ID; the returned row uses the public item identifier exposed by the page.

Output example

This item came from a successful 50-product run for wireless earbuds on September 27, 2026. The title is shortened here for readability; the dataset keeps the complete title.

{
"productId": "3256811844384040",
"title": "TWS Wireless Bluetooth Headset LED Display Gamer Earbuds...",
"productUrl": "https://www.aliexpress.com/item/3256811844384040.html",
"imageUrl": "https://ae-pic-a1.aliexpress-media.com/kf/S623d5c89b35e423e8575ff54bbfcf345r.jpg",
"priceCurrent": "US $6.38",
"priceOriginal": "US $24.76",
"priceDiscount": 74,
"ratingValue": 4.9,
"reviewCount": null,
"soldCount": 1372,
"tags": "New shoppers save $18.38 | Free shipping",
"searchQuery": "wireless earbuds",
"scrapedAt": "2026-09-27T12:06:45Z",
"priceCurrentValue": 6.38,
"priceOriginalValue": 24.76,
"currency": "USD",
"skuId": "12000057320259387",
"storeName": null,
"isSponsored": false,
"rank": 1,
"sourcePage": "https://www.aliexpress.com/w/wholesale-wireless-earbuds.html"
}

In that run, all 50 rows had an ID, title, product URL, image, query, and timestamp. Current price and currency appeared in 49 of 50 rows; a sales count appeared in 48 of 50. Those figures describe one observed run, and the fill rate can change by keyword, region, product mix, and time. reviewCount was absent from the tested search data, so it remains empty instead of showing an invented number.

Use cases

  • Product sourcing: Search several product terms and compare current price, original price, discount, and sales history in one table. Use the item link to inspect variants and delivery terms before purchasing.
  • Price monitoring: Schedule a repeated keyword run, retain productId, priceCurrentValue, currency, and scrapedAt, and compare successive snapshots. Use a stable destination and similar inputs for a more meaningful comparison.
  • Niche research: Sort by orders to identify frequently purchased listings. Compare ratings and prices within a narrow keyword instead of treating a broad result page as a single market.
  • Catalog preparation: Gather public titles, images, and links for a draft sourcing sheet. Check product details and rights to use images before putting any listing into a customer-facing catalog.
  • Promotion tracking: Compare the displayed current and original prices, then watch how a discount changes. Treat displayed discounts as site presentation, since special buyer offers can differ by account or location.
  • Competitive review: Track how a product appears for a search phrase using rank, searchQuery, and sourcePage. Search order is a snapshot and can vary between runs.

How much does it cost to scrape AliExpress?

The listed rate is $0.001 per delivered product, or $1.00 per 1,000 products. The result count, rather than the number of search requests, determines the event charge. The listed per-result price includes the hosted run. A run that produces no products has no product-result charge, although the account and platform terms in force still apply.

ExampleCalculationResult charge
50 products for a first inspection50 × $0.001$0.05
500 products across several keywords500 × $0.001$0.50
5,000 products across many runs5,000 × $0.001$5.00

The 50-product validation run completed in roughly half a minute, including container startup, and delivered 50 rows. That run's product charge would be $0.05 at the listed rate. Time and usage vary with page response, sorting, retries, and the number of search pages. Large requests need more pages and therefore take longer even when the per-result price remains the same.

Use maxProducts to limit each query and maxItems to bound the complete run. If you need a strict spending ceiling, set a platform spending limit as well; the actor stops when the result budget is reported as reached.

Tips for best results

Choose search terms that match how shoppers describe the products. A focused term such as “wireless earbuds” usually gives a more useful comparison set than a broad term such as “electronics.” If you need several distinct categories, enter several queries and keep the query label in your analysis.

Start with the default sort to understand the site's usual search presentation. Use orders for a sales-oriented list, price_asc to inspect low prices, and price_desc for higher-priced listings. Sorting changes which products appear early, so keep the sort order fixed when comparing repeated runs.

Search results contain 60 products per page in the observed layout. The actor requests more pages until it reaches your per-query limit, an empty page, or the site's public page boundary. It removes duplicate IDs as it moves through pages. Result order and totals can shift while a long crawl is running, which may make a later page repeat earlier products or omit products that moved.

For a large collection, split the work into specific keywords or product families. This can reach listings beyond those surfaced by one broad query. It also makes each export easier to audit. Compare IDs before combining separate runs, because deduplication applies inside one run and does not automatically merge prior datasets.

Inspect currency before doing price math. The observed run showed USD, but the site can present prices differently by location, cookies, and account settings. A current price can be a new-buyer promotion or apply to the least expensive variant. Open the product link to confirm final price, quantity, shipping, and availability.

Limits

Public search pages were observed through page 60; page 61 returned no products. The scraper stops there, so a single query cannot guarantee access to every result suggested by the site's total count. More specific keywords help expose additional public slices. maxProducts is capped at 1,000 per keyword in this actor even though a search may have more public pages.

Search listings expose rating and sales information inconsistently. Some products have no rating, and some have no reported sales. The observed search data did not provide review counts. reviewCount is included as a stable column for compatibility, but it is empty until a public source supplies that value. storeName is likewise present only when the listing includes it.

Direct item pages expose the product title and main image through public page metadata. Their price, rating, reviews, and sales data are loaded separately through a protected endpoint. For direct URL rows, those fields may be null. An item page that exposes no usable public metadata produces no row. AliExpress may redirect an item link to a regional domain, an alternate listing, or an unavailable item.

Pages can change format or restrict access without notice. The actor starts with ordinary datacenter access and uses its configured retry and network escalation path when a page is blocked. This improves resilience, but cannot promise that every requested page will be available. When a page fails, the run records the failure and continues with other inputs where possible.

Automated workflows

You can use the actor in a scheduled research workflow and read the resulting dataset as structured records. For example: “Collect the first 100 products for wireless earbuds sorted by orders and return ID, title, numeric price, currency, rating, and sold count.” Another request could be: “Repeat this keyword each morning, compare prices by product ID, and flag changes above 10%.” These instructions rely on the input names and output fields documented above.

For recurring monitoring, save the dataset from each run with its run date. Match rows by productId and compare values only when currencies agree. Review a price change in the live listing before acting on it, especially if a promotional tag, variant, or shipping destination changed between runs.

FAQ

The actor reads public product information. You are responsible for checking the site's terms, applicable law, and any restrictions on how you reuse images or other content. Do not use exported data for personal-data misuse or to bypass access controls.

Do I need to configure a proxy?

The default proxy setting is ready for ordinary runs. The actor begins with datacenter access and can escalate if pages are blocked. If you supply a custom proxy configuration, the destination may show different prices or availability from the example run.

How fast is a run?

A validated 50-product run finished in about 29 seconds from start to finish. Additional pages, direct URLs, retries, and queueing increase the elapsed time. The duration is an observation, not a speed guarantee.

Can I schedule a run and monitor prices?

Yes. Use the platform's scheduler to repeat the same keyword and sort settings, then compare exported rows by product ID and timestamp. Keep the destination and currency consistent. A disappeared product may have moved in the ranking rather than been removed from the site.

Can I export to a spreadsheet?

Yes. Download the dataset as CSV or a spreadsheet file. Numeric price fields are easier to sort and calculate than formatted price strings. Keep currency beside each price so that values from different presentations are not mixed.

Why are some fields empty?

A field is null when its public source did not supply a usable value. Search results can omit price, rating, sales, or store information for individual listings. Direct item pages frequently omit the details loaded by the site's protected product endpoint. The actor does not fill these gaps with guesses.

Can I request more than 1,000 products from one keyword?

The input caps maxProducts at 1,000 for each query. Use several narrow queries or separate runs if you need a larger, more diverse collection. The public search page boundary can still end a query before your requested limit, and overlapping queries can produce duplicate products across runs.

Integrations

Read the default dataset through the platform API, attach a webhook to completed runs, or schedule the actor at an interval. Dataset exports can feed a spreadsheet, a data warehouse, or an internal catalog review process. Keep productId, searchQuery, currency, sourcePage, and scrapedAt when joining records so each observation retains its context.

Support

Open an issue on the Issues tab; we reply within 24h and add fields on request.