AliExpress Search Scraper — Prices, Sold Count & Ratings
Pricing
from $1.49 / 1,000 search results
AliExpress Search Scraper — Prices, Sold Count & Ratings
AliExpress search scraper for keyword and search-URL product cards. Get item ID, title, sale price, exact sold count when exposed, rating, Choice and free-shipping flags, store name, and ship-from. Fast HTTP — no browser. Built for dropshipping research and price monitoring.
Pricing
from $1.49 / 1,000 search results
Rating
0.0
(0)
Developer
Andrej Kiva
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
AliExpress Search Scraper — Products, Prices, Sold Count & Ratings
Disclaimer: Unofficial tool — not affiliated with, sponsored by, or endorsed by AliExpress, Alibaba, or their affiliates. Data is read from publicly accessible search pages only. No login. You are responsible for complying with applicable law (including GDPR where personal data appears) and the site’s terms. No warranty on accuracy or availability. Provided for informational and research use.
Search AliExpress by keyword or search URL and extract product cards with item ID, title, sale / original price, exact sold count when the storefront exposes it, rating, Choice / free-shipping flags, store name, ship-from, and delivery window. This AliExpress scraper is an API alternative for dropshipping research, price monitoring, and catalog discovery. Run it from Python, Node.js, or MCP; export JSON / CSV / dataset. Fast HTTP (curl_cffi) — no headless browser.
Crawloop Marketplace & E-commerce Suite — AliExpress keyword SERP plus Amazon, Shopee, Mercado Libre, and China wholesale.
| AliExpress Search Scraper ◄── you are here | Amazon Search Scraper | Shopee Search Scraper | Mercado Libre Listings Scraper |
|---|---|---|---|
| AliExpress keyword / URL cards, sold count, Choice | Amazon keyword SERP, badges, sponsored | Shopee marketplace search | LATAM Mercado Libre listings |
Also see: 1688 Scraper · Alibaba Product Scraper · Naver Search Scraper · eBay Sold Listings Scraper
When to use this Actor
- Product research — keyword SERP with prices, ratings, and units sold
- Price / offer tracking — schedule the same query and compare
price+soldCount - Choice / free-shipping shortlists — keep only cards with those selling points
- Paste a filtered search URL — keep AliExpress query-string filters and paginate
When not to use this Actor
- Full product detail / SKU matrix — search cards only; no per-SKU stock or shipping rate table
- Buyer review text — rating is included; individual review bodies are not
- Store catalog dumps — keyword and search-URL mode, not
/store/{id}crawls - Amazon / Shopee / Mercado Libre — use the sibling Actors in the table above
- 1688 factory MOQ or Alibaba.com FOB PDPs — use 1688 Scraper or Alibaba Product Scraper
Key Features
- Keyword search —
queryor batchqueries(up to 4 in parallel) - Paste search URLs —
/w/wholesale-…htmland/wholesale?SearchText=keep existing filters - Pagination + caps — up to 20 pages per query (~60 cards/page), or stop at
maxItems - Sort — best match, orders / popular, price asc/desc, newest
- Locale cookies —
shipTo+currency+languageviaaep_usuc_f(pin proxy geo to the same country) - Exact sold count —
soldCountfrom AliExpressreal_trade_countwhen present, plus bucketsoldText - Sponsored detection —
isSponsoredfrom paid cards; optional drop - Choice / free shipping — flags plus optional keep-only filters
- Fast HTTP — Chrome TLS impersonation; datacenter proxy first, optional residential escalate on block
How to scrape AliExpress search results
- Set a keyword in
query(or paste wholesale URLs insearchUrls). - Pick
shipToandcurrencyso prices match the market you care about. - Cap volume with
maxItems/maxPages(about 60 cards per page). - Run the Actor on Apify. Download the default dataset as JSON, CSV, or Excel — or call it from Python, Node.js, or MCP.
Input Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
query | String | — | Primary search keyword |
queries | Array | — | Batch keywords (up to 4 in parallel via maxConcurrency) |
searchUrls | Array | — | AliExpress wholesale search URLs (filters preserved) |
maxPages | Integer | 1 | Pages per query/URL (1–20) |
maxItems | Integer | — | Optional product cap per query/URL |
startPage | Integer | 1 | First page (overrides URL page when > 1) |
shipTo | String | "US" | Ship-to country; pins proxy geo |
currency | String | "USD" | Display currency |
language | String | "en_US" | UI / title locale |
sortBy | String | "default" | Sort for keyword searches |
includeSponsored | Boolean | true | Keep paid/ad cards |
choiceOnly | Boolean | false | Keep Choice cards only |
freeShippingOnly | Boolean | false | Keep free-shipping cards only |
minPrice / maxPrice | Number | — | Drop cards outside this listing-currency range |
minStars | Number | — | Minimum average rating (0–5) |
deduplicateIds | Boolean | true | Skip duplicate productIds across batch queries |
maxConcurrency | Integer | 2 | Parallel keywords/URLs (1–4) |
autoEscalateOnBlock | Boolean | true | Retry on Apify Residential after a punish/empty page |
proxyConfiguration | Object | Datacenter | Apify Proxy; geo matched to shipTo |
Quick start
{"query": "bluetooth earbuds","shipTo": "US","currency": "USD","maxPages": 1,"maxItems": 60}
Paste a search URL
{"searchUrls": ["https://www.aliexpress.com/w/wholesale-phone-case.html?SortType=total_tranpro_desc"],"shipTo": "DE","currency": "EUR","maxItems": 40}
Output Format
Each dataset row is one product card from AliExpress search.
| Field | Type | Description |
|---|---|---|
productId | String | AliExpress numeric item id |
title | String | Product title |
price / priceFormatted | Number / String | Sale price |
originalPrice | Number | List / strikethrough price |
discountPercent | Integer | Displayed discount |
currency | String | ISO currency |
rating | Number | Average stars (0–5) |
soldCount | Integer | Exact units sold when exposed |
soldText | String | Bucket text (e.g. 4,000+ sold) |
storeName | String | Seller store name when present |
shipFrom / shipTo | String | Warehouse country / run locale |
isChoice / isSponsored / freeShipping | Boolean | Badge flags |
sellingPoints | Array | Badge texts |
deliveryMinDays / deliveryMaxDays | Integer | Card delivery window |
skuId | String | Default SKU on the card |
productUrl / imageUrl | String | Item page and main image |
page / position | Integer | SERP coordinates |
searchQuery | String | Keyword that produced the row |
scrapedAt | String | UTC ISO timestamp |
Output example
{"source": "aliexpress_search","searchQuery": "bluetooth earbuds","page": 1,"position": 1,"productId": "3256811621288203","skuId": "12000056622341651","title": "Bluetooth Wireless Earbuds with Active Noise Cancellation","price": 23.34,"priceFormatted": "US $23.34","originalPrice": 64.01,"discountPercent": 63,"currency": "USD","rating": 4.9,"soldCount": 4035,"soldText": "4,000+ sold","storeName": "Shop1105233629 Store","shipFrom": "US","shipTo": "US","isChoice": false,"isSponsored": false,"freeShipping": true,"productUrl": "https://www.aliexpress.com/item/3256811621288203.html","scrapedAt": "2026-09-19T17:00:00Z"}
Use Cases
| Use case | What you get | Why it helps |
|---|---|---|
| Dropshipping research | Price, sold count, Choice, free shipping | Shortlist products with demand before opening PDPs |
| Price monitoring | price, originalPrice, currency, scrapedAt | Track promo depth on a keyword |
| Cross-border checks | Same query with shipTo / currency | Compare US vs DE vs BR storefronts |
| Ad vs organic mix | isSponsored + position | See which SKUs AliExpress is pushing |
| Data pipelines | One JSON row per card | Feed sheets, warehouses, and MCP agents |
Integration examples
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('crawloop/aliexpress-search-scraper').call({query: 'bluetooth earbuds',shipTo: 'US',maxPages: 1,maxItems: 30});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.slice(0, 5));
Python
from apify_client import ApifyClientclient = ApifyClient(token)run = client.actor("crawloop/aliexpress-search-scraper").call(run_input={"query": "bluetooth earbuds", "shipTo": "US", "maxPages": 1, "maxItems": 30})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item.get("productId"), item.get("title"), item.get("price"), item.get("soldCount"))
cURL
curl "https://api.apify.com/v2/acts/crawloop~aliexpress-search-scraper/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"query":"bluetooth earbuds","shipTo":"US","maxPages":1,"maxItems":30}'
MCP and AI assistants
Use this Actor from AI tools via Apify MCP. Connect your Apify account, then call this Actor by Store ID crawloop/aliexpress-search-scraper.
Example prompts:
- "Run AliExpress Search Scraper for bluetooth earbuds in US, 1 page, return productId, title, price, soldCount"
- "Scrape AliExpress DE for phone case, EUR, drop sponsored cards, summarize the top 20 by soldCount"
- "Chain AliExpress Search Scraper then 1688 Scraper or Alibaba Product Scraper for factory MOQ on the same niche"
Suite next step
After an AliExpress keyword dump, source factories with 1688 Scraper or export PDPs with Alibaba Product Scraper. For US SERP comps, run Amazon Search Scraper; for completed-sale prices, use eBay Sold Listings Scraper.
FAQ
What input do I need?
A keyword in query (or a list in queries), or AliExpress wholesale URLs in searchUrls. Everything else is optional.
How many products per page?
Typically 60. Cap with maxItems. Hard cap is 20 pages per query.
Can I paste an AliExpress search URL?
Yes — searchUrls keeps SearchText, SortType, and other query filters. Pagination updates page.
Why is currency wrong?
AliExpress follows the proxy IP unless shipTo / currency cookies and proxy geo match. Pin apifyProxyCountry via shipTo.
Does it scrape product detail pages?
No. Cards only — title, prices, sold, rating, store, shipping badges.
Is this an AliExpress API alternative?
Yes for search cards: keyword or URL in, structured JSON out (id, prices, sold count, rating). No official API key. It does not replace the full product-detail / SKU API.
Can I scrape AliExpress with Python or Node.js?
Yes — use the Apify client examples in Integration examples, or call the Actor from MCP.
What if the dataset is empty?
Datacenter IPs sometimes hit a punish page. Leave autoEscalateOnBlock on, or set proxyConfiguration.apifyProxyGroups to RESIDENTIAL.
Troubleshooting
| Issue | Likely cause | What to try |
|---|---|---|
| Empty dataset | Punish page / x5sec | Enable residential proxy in the same shipTo country |
| SAR / unexpected currency | Proxy geo ≠ shipTo | Set shipTo and let the Actor pin proxy country |
Missing soldCount | AliExpress only sent bucket text | Use soldText; exact count is not on every card |
| Duplicate IDs in a batch | Dedupe off | Keep deduplicateIds: true |
Limitations
- Search cards only — no SKU stock matrix, freight table, or review bodies
- Locale follows cookies + IP — always pair
shipTo/currencywith proxy geo - Sold count — exact
soldCountwhenreal_trade_countis present; otherwisesoldTextonly
Related Actors
| Actor | Best for |
|---|---|
| 1688 Scraper | China wholesale offers, MOQ, factory flags |
| Alibaba Product Scraper | Alibaba.com FOB ladders, MOQ, Gold / Verified |
| Amazon Search Scraper | Amazon keyword SERP, ASIN, Prime, sponsored |
| Shopee Search Scraper | Shopee regional search |
| Mercado Libre Listings Scraper | LATAM Mercado Libre listings |
| Naver Search Scraper | Korean 통합검색 rank / Powerlink |
| eBay Sold Listings Scraper | Completed eBay sold comps |
Tags: aliexpress scraper, aliexpress search scraper, aliexpress product scraper, aliexpress api alternative, scrape aliexpress python, aliexpress sold count, aliexpress price scraper, dropshipping product research, aliexpress choice scraper