AliExpress Scraper — Products, Prices & Stores avatar

AliExpress Scraper — Products, Prices & Stores

Pricing

from $2.00 / 1,000 product scrapeds

Go to Apify Store
AliExpress Scraper — Products, Prices & Stores

AliExpress Scraper — Products, Prices & Stores

Scrape AliExpress search results and product pages: price, original price, discount, rating, orders, shipping, SKUs, store name and rating, images. Any keyword, category URL or product URL.

Pricing

from $2.00 / 1,000 product scrapeds

Rating

0.0

(0)

Developer

Trevor Ortega

Trevor Ortega

Maintained by Community

Actor stats

0

Bookmarked

29

Total users

15

Monthly active users

10 days ago

Last modified

Categories

Share

AliExpress Scraper

Scrape AliExpress search results, category pages and product pages into a clean dataset: title, sale price, original price, discount, rating, review count, orders, shipping and delivery estimate, Choice / Plus badges, images, and (with details on) every SKU with its own price and stock, the specification table, description images, shipping options, warranty and the store profile. Any keyword, category URL or product URL, in the currency and ship-to country you choose.

Download as JSON, CSV or Excel, or pull it through the API into your own app, Google Sheets or an LLM pipeline. You pay only for the products you get.

What data does AliExpress Scraper extract?

Every product from a search or category page (the result event):

FieldDescription
productIdAliExpress product id (global 1005... id; aliexpress.us ids are converted)
titleProduct title
urlProduct page URL
priceCurrent sale price (number)
originalPricePrice before discount
currencyISO currency code of the prices (input currency)
discountPercentDiscount as shown by AliExpress
priceTextPrice exactly as displayed, e.g. US $23.47 (for Choice "FREE with any purchase" cards, the item price in the page format)
ratingStar rating, 0-5 (null when the product has no reviews yet)
reviewCountNumber of reviews (only with includeDetails)
ordersCount, soldTextOrders as a number (16539) and as displayed (10,000+ sold)
shippingText, isFreeShipping, deliveryTextShipping badge / delivery estimate from the card
deliveryDaysMin, deliveryDaysMax, deliveryDateMin, deliveryDateMaxEstimated delivery window for the ship-to country
shipFromShip-from country code of the displayed SKU
isChoice, isPlus, isAd, badgesAliExpress Choice badge, Plus (local warehouse) badge, sponsored card, all badge texts (Free shipping, Lowest price in 90 days, FREE with any purchase, ...)
categoryId, categoryIdPathLeaf category id and the id path (44/100000306/518)
imageUrl, imagesMain image and all card images (full size)
skuId, originProductIdSKU shown on the card; the original listing id behind a "superlink" card
store{id, name, url, rating, positiveRate, followers, yearsActive} - filled with includeDetails
searchTerm, sourceUrl, scrapedAtProvenance: the search term, the search / category / product URL the item came from (for search terms, the AliExpress search URL built from the term), and the scrape time
changeType, previousValuesOnly with Only new or changed items on: new or changed, and for changed products the old values of the fields that changed

With Include product details on (the extra detail event), each product also gets:

FieldDescription
skusEvery variant: {skuId, attributes: {Color: "Blue", "Ships From": "United States"}, price, originalPrice, currency, stock, isAvailable, maxPurchaseQty, imageUrl}
variantsVariant options: [{name: "Color", values: ["Blue", "Navy with Black"]}]
priceMin, priceMaxCheapest / most expensive SKU
specificationsSpecification table as a dict ({"Battery Capacity[mAh]": "6600", ...}), plus brand
description, descriptionImagesDescription text and images
shippingOptions[{carrier, fee, feeText, currency, isFree, freeShippingThreshold, deliveryDaysMin, deliveryDaysMax, etaMin, etaMax, shipFrom, shipTo, hasTracking}]
warranty, deliveryGuaranteee.g. Free returns within 90 days
videoUrl, userManualUrlProduct video (MP4) and manual (PDF) when present
stock, maxPurchaseQty, isAvailable, saleEndsAt, wishlistCountAvailability and promotion end
categoryPathCategory breadcrumb names when the page has them
storeid, name, url, rating, positiveRate, followers, yearsActive, openedAt, soldLast180Days, communicationRating, country, sellerId, isTopRated, logo

How to use AliExpress Scraper

  1. Type one or more Search terms (one per line) and/or paste Start URLs (search pages, category pages or product pages - aliexpress.us links work too).
  2. Pick the Currency and Ship-to country you want prices and shipping for (default USD / US) and the Sort order (best match, orders, price).
  3. Set Max items to cap the run (and the cost). Turn on Include product details if you need SKUs, specifications, shipping options or the store profile.
  4. Click Start. Results appear in the Dataset tab; export from there or use the API.

Input example

{
"searchTerms": ["bluetooth speaker"],
"startUrls": [{ "url": "https://www.aliexpress.com/category/518/speakers.html" }],
"maxItems": 200,
"maxPagesPerSearch": 5,
"includeDetails": false,
"currency": "USD",
"shipTo": "US",
"sortBy": "orders"
}

Output example

{
"productId": "1005012918250674",
"title": "Ortizan Bluetooth Speakers 40W TWS Portable Speaker with Stereo Sound Bass, Bluetooth 5.3 Wireless USB Type C Outdoor, 6600mAh Battery",
"url": "https://www.aliexpress.com/item/1005012918250674.html",
"price": 23.47,
"originalPrice": 79.86,
"currency": "USD",
"discountPercent": 70,
"priceText": "US $23.47",
"rating": 4.9,
"reviewCount": null,
"ordersCount": 16539,
"soldText": "10,000+ sold",
"shippingText": "Free shipping",
"isFreeShipping": true,
"deliveryText": "Delivery: Sep 13 - 20",
"deliveryDaysMin": 4,
"deliveryDaysMax": 11,
"deliveryDateMin": "2026-09-13",
"deliveryDateMax": "2026-09-20",
"shipFrom": "US",
"isChoice": false,
"isPlus": true,
"isAd": false,
"badges": ["Free shipping", "Lowest price in 90 days"],
"categoryId": "518",
"categoryIdPath": "44/100000306/518",
"imageUrl": "https://ae-pic-a1.aliexpress-media.com/kf/Sf17ee9faed23457e919cf721857821d3P.png",
"images": ["https://ae-pic-a1.aliexpress-media.com/kf/Sf17ee9faed23457e919cf721857821d3P.png", "..."],
"store": { "id": null, "name": null, "url": null, "rating": null, "positiveRate": null, "followers": null, "yearsActive": null },
"searchTerm": "bluetooth speaker",
"sourceUrl": "https://www.aliexpress.com/w/wholesale-bluetooth-speaker.html?SearchText=bluetooth+speaker",
"scrapedAt": "2026-09-09T12:30:00+00:00"
}

With includeDetails: true the same item additionally carries skus, variants, specifications, description, descriptionImages, shippingOptions, warranty, videoUrl, stock and a filled store object ({"id": "1105448245", "name": "Ortizan EU Store", "url": "https://www.aliexpress.com/store/1105448245", "rating": 4.9, "positiveRate": 97.9, "followers": 29, ...}).

How to scrape AliExpress prices in a different currency or country

Set currency (e.g. EUR) and shipTo (e.g. DE). AliExpress then returns the prices, promotions and shipping options it would show a shopper in that country; products that cannot ship there are left out by the site itself. Prices are the ones shown to a not-logged-in visitor, so "new shopper" coupon prices are not applied.

How to find AliExpress best sellers

Use sortBy: "orders" to rank by orders, then filter the dataset by ordersCount, rating and isChoice. discountPercent is computed by AliExpress from the (often inflated) originalPrice, so treat it as a marketing signal.

Can I get product variants, SKU prices and stock?

Yes - turn on Include product details. Each product then carries skus (one entry per variant with its own price, originalPrice, stock and maxPurchaseQty), variants (the option names and values) and specifications. This opens one product page per item (through the product API the page itself uses, three products in parallel, typically 1-4 seconds per product) and is charged as the extra detail event only for products whose details actually arrive.

Monitor changes on a schedule

Turn on Only new or changed items and the Actor remembers what earlier runs of the same input returned: each run outputs only products that are new in the watched results or whose price, struck-through original price or currency changed (for product URLs and with details on, also availability). Unchanged products are dropped on the search page, before any product page is requested, so they are not charged; product URLs are compared after their product data is read and are not charged when unchanged. Max items becomes the window checked on every run, e.g. the first 60 results of a search, so a run with nothing new costs one or two search pages. Save the input as a task and add a Schedule to it in Apify Console (Schedules → Create new, for example daily). Every output product carries changeType (new or changed); changed ones carry previousValues, e.g. {"price": 24.99} for a speaker that now costs 19.99. Order counts, ratings and delivery dates change all the time and do not count as changes. AliExpress shows different visitors different things: some get "New shoppers save $X" prices or another variant of the product on the card, and the order of relevance results depends on where the visitor is. So "New shoppers save" prices (they differ from visitor to visitor) are never compared, only regular prices are, a card showing another variant becomes the new reference without being reported, and for a steady watch you should keep the proxy in one country (Proxy → country = your Ship to country) and sort by Orders or price rather than relevance. Even then AliExpress rotates which products fill the first results, so the first runs of a new watch report a share of the window as new (each product only once, the first time it rotates in). Use Monitoring key to keep several schedules on the same input separate.

Does it work without login or a browser?

Yes. The Actor reads the JSON that AliExpress embeds in its pages and the product API the page itself calls; no browser and no account are needed, which keeps it fast (about 1 second per 60 products) and cheap.

What about captchas and blocking?

AliExpress shows a slider captcha to traffic it does not like. The Actor detects it, retries on a fresh proxy session and reports the count in the run's SUMMARY record (captchaPages). Product details use AliExpress' product API, which answers suspicious traffic with a captcha. The Actor spaces those calls, moves to a fresh proxy IP and session token when it happens, and gives up on a product after a few attempts instead of retrying for minutes. If the API refuses many products in a row, the Actor pauses details (retrying every 30 seconds), keeps saving the listing data and does not charge the detail event for products without details; such products carry a detailError field. If you see many of those, switch the proxy to residential (ideally in the ship-to country) and lower maxItems per run.

Pricing

Pay per product: the result event for every product saved, plus the detail event for every product page opened when Include product details is on. There is no subscription; Apify's free plan is enough to try it.

Integrations and API

Use the run in Zapier, Make, n8n, Google Sheets, or call it from Python/Node with the Apify client. See the API tab for ready-made snippets.

This Actor collects only publicly available, non-personal data (product listings and store business profiles). It does not log in, does not collect buyer names or reviews, and does not touch personal data. You are responsible for how you use the data and for complying with AliExpress' terms and applicable law.

Support

Found a bug or need a field added? Open an issue in the Issues tab; it is usually answered within a day.