AliExpress Scraper | 10 Fields, 20 Countries, Fixed Currency
Pricing
from $1.50 / 1,000 products
AliExpress Scraper | 10 Fields, 20 Countries, Fixed Currency
Scrape AliExpress products by keyword: title, price, currency, original price, orders sold, rating, store, image and URL. Currency pinned (no IP price drift), no login, residential proxy anti-block. Use it as an MCP server in Claude, ChatGPT & AI agents.
Pricing
from $1.50 / 1,000 products
Rating
0.0
(0)
Developer
The Mine Works
Maintained by CommunityActor stats
0
Bookmarked
10
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
From The Mine Works, makers of Threads Scraper and B2B Leads Finder, with over 140,000 runs across 170+ public actors.
Type a product keyword (wireless earbuds, phone case, led strip) and a ship to country, and get the AliExpress search results as clean rows: title, price in that country's currency, the original price before discount, orders sold, star rating, product ID, main image and product link. The currency is pinned on every request, so a price does not change just because a different server fetched it. No AliExpress login and no browser.
Why choose this actor?
- A full results page in seconds. In our test of the live build on 2 October,
phone casefor the US returned 60 products in 8 seconds, andwireless earbudsreturned 20 products in 12 seconds, every one with price, original price, orders sold and rating. - Prices you can compare across runs. AliExpress picks the display currency from the visitor's location. The actor sends the currency and region on every request (USD for the US, EUR for Germany, INR for India and 17 more), so the same search gives the same currency every time. Our German test returned 150 products, all priced in EUR.
- Pay only for products delivered, once each. From $1.50 per 1,000 products on Gold. Products are deduplicated by AliExpress product ID across pages, and a blocked page, an empty search and the report rows cost nothing beyond the $0.005 start fee.
Part of The Mine Works E-commerce and marketplaces family: Ozon.ru Scraper, Amazon Product Scraper, ⭐ Amazon Reviews Scraper, Carsales.com.au Scraper, Etsy Listings Scraper, Kleinanzeigen.de Scraper.
Try it in one minute
Paste this into the JSON tab of the input page and press Start:
{"searchText": "wireless earbuds","maxResults": 20,"country": "US"}
You get 20 products with USD prices, orders sold and ratings in about 10 seconds.
There are three inputs: searchText, one keyword or phrase as you would type it in AliExpress's search box; country, a two letter ship to country code that also sets the currency; and maxResults, how many products to collect (up to 1,000, across as many result pages of 60 as needed). One run covers one keyword; run a task per keyword for several. Product URLs and store pages are not inputs.
Apify's free plan includes $5 of credit every month, which covers about 1,900 products at this actor's Free plan price ($0.0025 a product plus the $0.005 start fee, in runs of 60 or more).
Copy to your AI assistant
themineworks/aliexpress-products on Apify. Searches AliExpress by keyword for a ship to country and returns one row per product with title, price and currency (pinned to the country), original price, orders sold, star rating, product ID, image URL and product URL. Call ApifyClient("TOKEN").actor("themineworks/aliexpress-products").call(run_input={...}), then client.dataset(run["defaultDatasetId"]).list_items().items. Required in practice: searchText (string; without it the run returns only a summary row). Optional: maxResults (1 to 1000, default 60; 60 products per result page), country (ISO-2 code, default "US"; US=USD, GB=GBP, AU=AUD, CA=CAD, DE/FR/ES/IT/NL=EUR, BR=BRL, RU=RUB, IN=INR, JP=JPY, KR=KRW, SG=SGD, AE=AED, SA=SAR, MX=MXN, PL=PLN, TR=TRY, any other code=USD). Fields AliExpress does not show for a product are left out of its row. Rows with _type "summary" or "info" are never billed. Full spec: GET https://api.apify.com/v2/acts/themineworks~aliexpress-products/builds/default (Bearer TOKEN), which returns inputSchema and readme. Token: https://console.apify.com/account/integrations
Key features
- 10 fields per product:
title,price,currency,original_price,orders_sold,rating,product_id,image_url,urlandscraped_at, plus the seller's store name on the cards that carry one (none of the 230 products in our October tests did). Price, original price and orders come back as numbers ("5,000+ sold"becomes5000). - 20 countries with a pinned currency: US, GB, AU, CA, DE, FR, ES, IT, NL, BR, RU, IN, JP, KR, SG, AE, SA, MX, PL and TR. Any other two letter code is accepted as the ship to region and priced in USD.
- Up to 1,000 products per run. AliExpress shows 60 products per results page; the actor walks
page=1, 2, 3...until it hasmaxResultsunique products, the results run out, or two pages in a row add nothing new. - No browser, low block rate. AliExpress renders the search results into the page itself, so the actor reads that data over plain HTTP. Each page, for any country, is tried twice through Apify's datacenter proxy and once more through Apify's unblocking proxy before it gives up; in our 2 October tests every page for the US, Germany and the UK came through on the first datacenter try. All of that is included in the price.
- Clean failure handling. If the first page cannot be read, the run stops at once and charges nothing beyond the start fee. A watchdog ends the run 15 seconds before its timeout with everything collected so far.
How to use it
Basic: one keyword, one page
{"searchText": "led strip lights","maxResults": 60,"country": "US"}
A bigger sample for product research
{"searchText": "phone case","maxResults": 300,"country": "US"}
Five pages of 60. Sort by orders_sold to find what is actually selling, then compare price with original_price to see how deep the listed discounts go. Rows that have no price come from cards that show no price (see below); filter them out before averaging.
Price checks in another market
{"searchText": "phone case","maxResults": 150,"country": "DE"}
Every row comes back in EUR. In our German test on 2 October, AliExpress showed no sold counts, ratings or original prices on the result cards, so those rows carried price, title, image and link only. Expect that in markets where AliExpress hides those numbers.
Daily price and demand tracking for a niche
{"searchText": "magsafe power bank","maxResults": 120,"country": "GB"}
Save it as a task and schedule it daily (for example 0 6 * * *). Join runs on product_id to follow each product's price and orders_sold over time; a product whose sold count jumps week on week is one to look at. The actor keeps no memory between runs, so each run returns and charges every product it finds.
Dropshipping shortlist
{"searchText": "pet hair remover roller","maxResults": 240,"country": "US"}
Keep rows with rating of 4.7 or more and orders_sold of 1,000 or more, then compare price with what the same item sells for on your store or on Amazon.
Input parameters
| Parameter | Type | Default | What it does |
|---|---|---|---|
searchText | string | none (form prefill: wireless earbuds) | The keyword or phrase to search. Without it, the run returns only a summary row and charges nothing beyond the start fee. |
maxResults | integer (1 to 1,000) | 60 (form prefill: 20) | Most unique products to return. Results come 60 to a page. |
country | string | US (form prefill: US) | Two letter ship to country. Sets the region and the currency: US USD, GB GBP, AU AUD, CA CAD, DE FR ES IT NL EUR, BR BRL, RU RUB, IN INR, JP JPY, KR KRW, SG SGD, AE AED, SA SAR, MX MXN, PL PLN, TR TRY. Other codes are priced in USD. |
"Form prefill" values fill the Console form for you but are not defaults: an API call with no maxResults collects 60 products.
Run options. The default memory is 256 MB and the default timeout is 600 seconds. A page takes a few seconds when the first proxy attempt works and longer when it falls back, so for 1,000 products (17 pages) raise the timeout to 1,200 seconds to be safe.
What data do you get?
One row per product. Fields AliExpress does not show on a product's search card are left out of that row rather than sent as null.
The product: product_id, title, url (the product page, https://www.aliexpress.com/item/<product_id>.html), image_url (main image).
Price: price (the current selling price, lowest variant), currency (from your country), original_price (the crossed out price, when shown).
Demand and quality: orders_sold (AliExpress's sold count as a number, such as 10000 for "10,000+ sold") and rating (average stars out of 5).
Run context: scraped_at.
How complete the rows are depends on what AliExpress puts on the card, which varies by market and by card type. Across our three tests on 2 October (230 products):
| Field | US, wireless earbuds (20) | US, phone case (60) | Germany, phone case (150) |
|---|---|---|---|
price | 20 | 30 | 150 |
original_price | 20 | 30 | 0 |
orders_sold | 20 | 60 | 0 |
rating | 20 | 54 | 0 |
In the US phone case search, AliExpress mixed in promotional cards that show no price at all (the one we inspected was a "free with any purchase" welcome gift), so those rows have no price. The German results showed no sold counts, ratings or original prices on any card. A store name is only returned when the card carries one, which none did.
Each run ends with a _type: "summary" row (products, charged_for, search_text, country, currency, pages_fetched, and transport: how many page tries went through the datacenter proxy and how many needed the unblocking proxy) and a _type: "info" row with a short message. Neither is ever charged. Skip rows that have a _type field when you load products.
Stable fields for automations
These 6 fields were present in every product row we sampled (230 rows from three runs on 2 October 2026). The table also lists the 4 numeric fields that depend on the card, as measured above:
| Field | What it holds |
|---|---|
product_id | AliExpress product ID, as text; the deduplication key |
title | Product title as listed |
currency | Currency code set by country, such as USD or EUR |
image_url | Main product image URL |
url | Product page URL |
scraped_at | ISO timestamp when the row was captured |
price | Selling price, number (missing on cards with no price) |
original_price | Price before discount, number (when shown) |
orders_sold | Units sold, number (when shown) |
rating | Average rating out of 5 (when shown) |
We will not rename these fields. New fields may be added over time; existing ones keep their names.
Output examples
Real rows from our test of the live build on 2 October 2026.
A US product with every number shown (wireless earbuds, country: "US"):
{"title": "Baseus Bass BP1 Pro -50dB Noise Cancelling Wireless Earbuds Bluetooth 6.0 LDAC Hi-Res Sound 6-Mic AI Clear Calls IP55 Earphones","price": 17.45,"currency": "USD","original_price": 53.84,"orders_sold": 10000,"rating": 4.9,"product_id": "3256812463738839","image_url": "https://ae-pic-a1.aliexpress-media.com/kf/S8d5f42cdff834ed093099ecf33530e2fl.jpg","url": "https://www.aliexpress.com/item/3256812463738839.html","scraped_at": "2026-10-02T15:25:07.666Z"}
A German result in EUR, where the card showed no sold count or rating (phone case, country: "DE"):
{"title": "Luxury Armor Matte For Magsafe Magnetic Wireless Charging Case For iPhone 18 17 16 15 14 13 12 11 Pro Max Mini Shockproof Cover","price": 3.73,"currency": "EUR","product_id": "1005009644992902","image_url": "https://ae-pic-a1.aliexpress-media.com/kf/S9d4426437b974857887a49cdc415d9eeq.jpg","url": "https://www.aliexpress.com/item/1005009644992902.html","scraped_at": "2026-10-02T15:25:33.566Z"}
The summary row of the German run (never charged; the charge and guard counters are left out because this was a local test run):
{"_type": "summary","products": 150,"search_text": "phone case","country": "DE","currency": "EUR","pages_fetched": 3,"transport": {"datacenter_country": null,"datacenter_tries": 3,"datacenter_ok": 3,"unblocker_tries": 0,"unblocker_ok": 0,"proxy_country_refusals": 0},"scraped_at": "2026-10-02T16:55:53.273Z"}
Pricing
Pay per event: you pay for each product delivered to your dataset, plus a small start fee per run.
| Event | Free | Bronze | Silver | Gold and above |
|---|---|---|---|---|
product-scraped, per product | $0.0025 | $0.00211 | $0.00178 | $0.0015 |
product-scraped, per 1,000 products | $2.50 | $2.11 | $1.78 | $1.50 |
apify-actor-start, per run | $0.005 per GB of run memory, minimum one event | same | same | same |
The start fee, exactly. Apify's apify-actor-start event is charged once when a run starts, at $0.005 for each GB of memory the run uses, with a minimum of one event. This actor runs on 256 MB by default, so a default run pays one event: $0.005.
Worked examples. One page of 60 products on the Free plan: $0.15 plus $0.005. 300 products on Gold: $0.45 plus $0.005. A full 1,000 product run on Gold: $1.50 plus $0.005. Proxy costs, including the unblocking proxy fallback, are included.
Never charged: a product already delivered earlier in the run (deduplicated by product_id), cards with no title, pages that could not be read and their retries, an empty search, and the summary and info rows. A run that delivers nothing pays only the start fee.
There is no scheduled price change for this actor. The Pricing tab on this page always shows the rate for your plan; if it and this table ever differ, the Pricing tab is right.
FAQ
What is AliExpress? AliExpress is Alibaba Group's international marketplace, where sellers, mostly in China, sell products to shoppers worldwide. Its search results show each product's price, sold count and rating to anyone, without signing in. This actor reads those public search results.
How many products can I get? Up to 1,000 per run, 60 per results page. A search stops earlier when AliExpress runs out of results or two pages in a row bring nothing new. For several keywords, run one task per keyword.
Why do some rows have no price, sold count or rating? The actor returns what AliExpress shows on each search card. Promotional cards (such as "free with any purchase" welcome gifts) show no price, and in some markets, such as Germany in our test, AliExpress shows no sold counts or ratings in search results. Missing values are left out of the row, never guessed.
Why do I need to choose a country?
AliExpress picks the currency and sometimes the price from the visitor's location. Setting country pins both, so two runs of the same search return comparable prices. It also sets the ship to region AliExpress uses for that search.
Does it return reviews or product details?
No. It returns what the search results show: price, sold count, rating, image and link. It does not open each product page, so there are no reviews, variants, shipping costs or seller details. Open url for those.
How fresh is the data? Every run searches AliExpress live; nothing is cached between runs. Prices and sold counts are as shown at that moment, and AliExpress discounts change often.
Do I need an AliExpress account, cookies or a proxy? No. You need only an Apify account. The actor uses Apify's datacenter proxy and, when a page needs it, Apify's unblocking proxy, both paid by us.
Can I run it on a schedule?
Yes. Save your input as a task, then in Apify Console go to Schedules, Create new, and pick a time or a cron expression such as 0 6 * * *. Join runs on product_id to follow prices and sold counts over time.
How do I export the data?
From the run's Storage tab as JSON, CSV, Excel, XML or HTML, or through the Apify API. Drop rows that have a _type field if you want products only.
Can I use it from Claude, ChatGPT or another AI assistant?
- Connector URL:
https://mcp.apify.com/?tools=themineworks/aliexpress-products. - Claude: Settings > Connectors > Add custom connector, paste the URL, sign in with Apify.
- ChatGPT: developer mode, add an MCP connector with the URL, sign in with Apify.
- Cursor or VS Code: add it as an HTTP MCP server with that URL.
- Claude Code:
claude mcp add -t http aliexpress-products "https://mcp.apify.com/?tools=themineworks/aliexpress-products".
Is it legal to scrape AliExpress? The actor reads only public search results that anyone can see on AliExpress without logging in, and it collects product data, not personal data. You are responsible for how you use the data, including AliExpress's terms and laws such as GDPR and CCPA. This is general information, not legal advice. This actor is independent and not affiliated with AliExpress or Alibaba Group.
Integrations
- Google Sheets: export a run to a sheet, or use Apify's Google Sheets integration to add each scheduled run's products.
- Make, Zapier and n8n: use the Apify app or node to start a run and send products to Airtable, Shopify tools or a repricing sheet.
- Webhooks: have Apify call your URL when a run succeeds, then read the dataset.
- API and client libraries: start runs and read datasets from Python, JavaScript or any HTTP client. The "Copy to your AI assistant" block above has the exact call.
- MCP clients: Claude, ChatGPT, Cursor, VS Code and Claude Code can call the actor as a tool through
https://mcp.apify.com.
Comparing marketplaces? See Amazon Product Scraper, eBay Search Scraper, TikTok Shop Products Scraper and, for wholesale suppliers, Alibaba B2B Search.
More from The Mine Works
E-commerce and marketplaces
- Ozon.ru Scraper
- Amazon Product Scraper
- ⭐ Amazon Reviews Scraper
- Carsales.com.au Scraper
- Etsy Listings Scraper
- Kleinanzeigen.de Scraper
- eBay Product Listings Scraper
- Shopify Store Scraper
- 🛒 TikTok Shop Scraper
- Walmart Product & Price Scraper
Social media and video
Leads and business directories
Marketing, SEO and reviews
Real estate
Science, health and government data
Jobs and hiring
Company and business data
Food and local services
Developer and AI tools
More tools
Support
Found a keyword or country that returns nothing, or need a field we do not return yet? Open an issue on the Issues tab of this page with your input and the run ID, and we will reply there. To ask for a new marketplace, email dmineworks@gmail.com. A guide for this actor also lives at themineworks.com.
AliExpress Scraper turns a keyword into AliExpress product rows with prices pinned to your country's currency, sold counts and ratings, charged once per product.

