AliExpress Scraper & Price Monitor - Prices, Discounts, Sold avatar

AliExpress Scraper & Price Monitor - Prices, Discounts, Sold

Pricing

from $4.50 / 1,000 product returneds

Go to Apify Store
AliExpress Scraper & Price Monitor - Prices, Discounts, Sold

AliExpress Scraper & Price Monitor - Prices, Discounts, Sold

AliExpress search results by keyword: price, original price, discount, rating, units sold, ship-from and delivery. Flags new-shopper prices and checks the currency. Monitor mode returns only new products and price drops. No login. Export as JSON, CSV or Excel. Unofficial.

Pricing

from $4.50 / 1,000 product returneds

Rating

0.0

(0)

Developer

NeverEmpty

NeverEmpty

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

13 days ago

Last modified

Share

Get products from AliExpress search results by keyword: title, price, original price and discount, currency, rating, units sold, ship-from country, delivery estimate, Choice and sponsored flags, image and link. Monitor mode returns only products that are new in the results and price drops since the last check, so it can run on a schedule and send you only what changed.

Unofficial. Reads public search pages only, without logging in. Not affiliated with AliExpress or Alibaba.

What makes this one different

  • New-shopper prices are flagged. Visitors who are not logged in often see AliExpress welcome prices ($0.33 Dollar Express, $1.09 welcome deals, "free with any purchase"). AliExpress's own page says that price is for new shoppers. Every row says so in newShopperOffer and priceNote, instead of passing it off as the regular price.
  • No fake price drops. In our tests the promotional price of the same product changed from one request to the next ($1.09 then $0.99; $0.33 then $2.34), and the same product was shown with a new-shopper price on one request and its regular price on the next. Monitor mode only compares prices of the same kind: regular price with regular price, or, for two promotional prices, the original (crossed-out) prices. priceChangeBasis says which. In the same tests, regular prices read by this Actor matched an independent request of the same page in 52 of 52 products.
  • The currency is checked. You choose the currency and ship-to country. Every price is checked against the currency you asked for. If AliExpress answers in another currency, you get a free row saying so, not mislabelled prices.
  • Unrelated results are not sold as matches. For a word AliExpress does not know, it fills the page with unrelated products. When no title on the first page contains any of your search words, the search returns a free no-results row. Each product also has titleMatchesSearch, and onlyMatchingTitles leaves loose matches out.
  • The count you ask for is the count you get, up to 300 per search (60 per page, up to 5 pages). If there were more results than you got, a free row says so.
  • Every product row has a price. By default (onlyPricedProducts), the Actor leaves out the "free with any purchase" gift cards that AliExpress shows new shoppers without a price, and reads up to two more results pages to fill your list with priced products. In our test of the example search, that gave 60 products, all with a price.

Output fields

FieldWhat it is
itemId, urlAliExpress item ID and product page (https://www.aliexpress.com/item/<itemId>.html)
titleProduct title
price, currencyPrice shown on the search page, in the currency you asked for
originalPrice, discountPercentCrossed-out price and the discount AliExpress shows
newShopperOffer, platformSubsidy, priceNote, promotionWhether the shown price is a new-shopper or subsidised price, in plain words
ratingStar rating on the card
soldText, soldCountMin, tradeCountUnits-sold label ("10,000+ sold"), its number (a lower bound), and AliExpress's own count behind it
isChoice, sponsoredAliExpress Choice product; advertised placement
shipFrom, deliveryText, freeShippingShip-from country, delivery estimate, free-shipping label
tags, categoryId, launchDate, imageUrlOther labels, category ID, listing launch date, main image
titleMatchesSearch, searchUnderstoodAsWhether the title contains every search word, and the search words as AliExpress understood them (translated to English for other languages)
page, positionOnPage, resultsInSearchWhere the product was, and the result count AliExpress shows
changeType, previousPrice, priceChange, priceChangePercent, priceChangeBasisMonitor mode only
chargedtrue when the product row was charged. Product rows without a price are not charged (charged: false)
status, noteok for product rows; otherwise a free row that says why nothing was returned

Input

FieldWhat it does
searchQueriesSearch terms, for example phone case, usb c cable. Other languages work (AliExpress translates them). Empty together with searchUrls = example search phone case
searchUrlsAliExpress search pages copied from your browser (https://www.aliexpress.com/w/wholesale-….html). The search words and sort order are used; other URL filters are not
sortbest-match, orders (most sold first), price-asc, price-desc. Empty = best match, or orders in monitor mode
currency, shipToCountryCurrency and two-letter ship-to country (default USD and US)
maxResultsPerSearchMost products per search, 1 to 300 (default 60)
maxPagesPages per search, 1 to 5 (default: just enough for maxResultsPerSearch)
includeSponsoredReturn advertised placements too (default on), marked sponsored
onlyMatchingTitlesLeave out products whose title lacks a search word (default off)
onlyPricedProductsLeave out products shown without a price (default on). A normal search fills the list from up to two more pages; monitor mode does not (see below). Off = return them too, not charged
onlyNewMonitor mode: only new products and price changes
priceChangeAlertsMonitor mode: drops (default), any or off
watchNameSeparate monitor memories, for example one per client
resetMonitoringStateForget what this watch has seen and start again

Up to 10 searches per run (search terms plus URLs).

Monitor mode

  1. First run: returns up to maxResultsPerSearch products (first-check) and remembers the list.
  2. Next runs: read the same pages and return only
    • new-in-results: a product this watch has not seen in these results before. It may be newly listed, or it may have moved into the pages read. The listing launch date is in launchDate; this Actor does not invent a "new since" date.
    • price-change: a price drop (or any change, with priceChangeAlerts: any), with previousPrice, priceChange, priceChangePercent and priceChangeBasis.
  3. If a page cannot be read, the watch judges nothing for that search: nothing is returned, remembered or charged, and the next run checks again.
  4. If a run reaches your maximum charge, the products it could not return are returned by the next run.
  5. Products shown without a price are left out (onlyPricedProducts), and monitor mode does not read extra pages to replace them: every run reads the same pages, so products that only moved between pages are not reported as new. The first check says how many were left out.

Use the orders sort for a watch (the default in monitor mode). In our tests, three requests of the same best match page shared only 24 of 99 products, while three requests of the orders page shared 58 to 59 of 60. A best-match watch would report reshuffled products as new.

Even the orders list moves a little: in a test watch on phone case run five times within a minute, runs 2 to 5 returned 1, 3, 1 and 0 new-in-results products (products that moved into the first 60). Each product is returned as new only once per watch, so this settles as the watch remembers the list.

Pricing

Pay per event:

  • Run start: one small fee per run (not per page and not per GB of memory).
  • Product returned: per product row with a price. By default every product row has a price. With onlyPricedProducts off, products shown without a price (for example a "free with any purchase" gift for new shoppers) are also returned, with charged: false, and are not charged. The run log says how many rows were charged and how many were not.

Explanation rows are free. A normal search that finds nothing, or only products without a price, is not charged at all. In monitor mode, the run start fee is the price of the check itself, so it is charged even when nothing changed. Set a maximum charge per run and the Actor will not start a run that cannot return at least one product.

Reliability

  • Reads the plain search page; no browser, no login. Measured 2026-10-09 from Apify's datacenter proxies: every search page request answered (30 of 30), no check page.
  • If AliExpress refuses an IP address (403, 429, 5xx), the Actor asks again from other datacenter IPs.
  • If AliExpress shows its check page (slide-to-verify), the Actor does not solve or bypass it: it stops, returns a free row and remembers nothing.
  • AliExpress's robots.txt is checked on every run and every URL is checked against it before it is requested. Only search pages (/w/wholesale-….html) are read; product pages are not opened.
  • Some products are shown to new shoppers as a "free with any purchase" gift, with no price on the search page (seen with ship-to US). The product page loads its price from an AliExpress service whose robots.txt disallows automated access, so this Actor leaves that price empty instead of guessing it, and does not charge for the row. onlyPricedProducts (on by default) leaves such rows out.
  • Prices are the ones AliExpress shows to a visitor who is not logged in, for the currency and country you choose. Logged-in shoppers, coupons and coins can change the final price. Promotional prices (new-shopper and Dollar Express) differ between requests, so two runs a minute apart can show different promotional prices for the same product; regular prices do not.

Example output

{
"status": "ok",
"itemId": "1005010439419248",
"title": "Magnetic Original Clear Case For iPhone 17 16 15 14 Plus 13 12 Mini 11 Pro Max 16E 17E Funda For Magsafe Transparent Cover",
"price": 0.33,
"currency": "USD",
"originalPrice": 3.2,
"discountPercent": 89,
"newShopperOffer": true,
"priceNote": "Price for new AliExpress shoppers (shown to visitors who are not logged in); returning shoppers may pay more.",
"promotion": "Dollar Express",
"rating": 4.9,
"soldText": "50,000+ sold",
"soldCountMin": 50000,
"tradeCount": 59773,
"isChoice": true,
"sponsored": false,
"shipFrom": "CN",
"deliveryText": "Delivery: Oct 16 - 20",
"titleMatchesSearch": true,
"url": "https://www.aliexpress.com/item/1005010439419248.html",
"page": 1,
"positionOnPage": 1,
"searchQuery": "phone case"
}

Thanks for using this Actor

We build these tools for people who run them every day, and we improve them from what users tell us.

  • Missing a field, or need another filter? Tell us in the Issues tab. If the data is there, we add it.
  • Found a bug or a wrong value? Post the run ID in the Issues tab. Wrong data is the thing we fix first.

If this Actor saved you time, a short review helps other people find it.