AliExpress Search Scraper — Prices, Sold Count & Ratings avatar

AliExpress Search Scraper — Prices, Sold Count & Ratings

Pricing

from $1.49 / 1,000 search results

Go to Apify Store
AliExpress Search Scraper — Prices, Sold Count & Ratings

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

Andrej Kiva

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

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 hereAmazon Search ScraperShopee Search ScraperMercado Libre Listings Scraper
AliExpress keyword / URL cards, sold count, ChoiceAmazon keyword SERP, badges, sponsoredShopee marketplace searchLATAM 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 searchquery or batch queries (up to 4 in parallel)
  • Paste search URLs/w/wholesale-…html and /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 cookiesshipTo + currency + language via aep_usuc_f (pin proxy geo to the same country)
  • Exact sold countsoldCount from AliExpress real_trade_count when present, plus bucket soldText
  • Sponsored detectionisSponsored from 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

  1. Set a keyword in query (or paste wholesale URLs in searchUrls).
  2. Pick shipTo and currency so prices match the market you care about.
  3. Cap volume with maxItems / maxPages (about 60 cards per page).
  4. 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

ParameterTypeDefaultDescription
queryStringPrimary search keyword
queriesArrayBatch keywords (up to 4 in parallel via maxConcurrency)
searchUrlsArrayAliExpress wholesale search URLs (filters preserved)
maxPagesInteger1Pages per query/URL (1–20)
maxItemsIntegerOptional product cap per query/URL
startPageInteger1First page (overrides URL page when > 1)
shipToString"US"Ship-to country; pins proxy geo
currencyString"USD"Display currency
languageString"en_US"UI / title locale
sortByString"default"Sort for keyword searches
includeSponsoredBooleantrueKeep paid/ad cards
choiceOnlyBooleanfalseKeep Choice cards only
freeShippingOnlyBooleanfalseKeep free-shipping cards only
minPrice / maxPriceNumberDrop cards outside this listing-currency range
minStarsNumberMinimum average rating (0–5)
deduplicateIdsBooleantrueSkip duplicate productIds across batch queries
maxConcurrencyInteger2Parallel keywords/URLs (1–4)
autoEscalateOnBlockBooleantrueRetry on Apify Residential after a punish/empty page
proxyConfigurationObjectDatacenterApify 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.

FieldTypeDescription
productIdStringAliExpress numeric item id
titleStringProduct title
price / priceFormattedNumber / StringSale price
originalPriceNumberList / strikethrough price
discountPercentIntegerDisplayed discount
currencyStringISO currency
ratingNumberAverage stars (0–5)
soldCountIntegerExact units sold when exposed
soldTextStringBucket text (e.g. 4,000+ sold)
storeNameStringSeller store name when present
shipFrom / shipToStringWarehouse country / run locale
isChoice / isSponsored / freeShippingBooleanBadge flags
sellingPointsArrayBadge texts
deliveryMinDays / deliveryMaxDaysIntegerCard delivery window
skuIdStringDefault SKU on the card
productUrl / imageUrlStringItem page and main image
page / positionIntegerSERP coordinates
searchQueryStringKeyword that produced the row
scrapedAtStringUTC 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 caseWhat you getWhy it helps
Dropshipping researchPrice, sold count, Choice, free shippingShortlist products with demand before opening PDPs
Price monitoringprice, originalPrice, currency, scrapedAtTrack promo depth on a keyword
Cross-border checksSame query with shipTo / currencyCompare US vs DE vs BR storefronts
Ad vs organic mixisSponsored + positionSee which SKUs AliExpress is pushing
Data pipelinesOne JSON row per cardFeed 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 ApifyClient
client = 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

IssueLikely causeWhat to try
Empty datasetPunish page / x5secEnable residential proxy in the same shipTo country
SAR / unexpected currencyProxy geo ≠ shipToSet shipTo and let the Actor pin proxy country
Missing soldCountAliExpress only sent bucket textUse soldText; exact count is not on every card
Duplicate IDs in a batchDedupe offKeep deduplicateIds: true

Limitations

  • Search cards only — no SKU stock matrix, freight table, or review bodies
  • Locale follows cookies + IP — always pair shipTo / currency with proxy geo
  • Sold count — exact soldCount when real_trade_count is present; otherwise soldText only

ActorBest for
1688 ScraperChina wholesale offers, MOQ, factory flags
Alibaba Product ScraperAlibaba.com FOB ladders, MOQ, Gold / Verified
Amazon Search ScraperAmazon keyword SERP, ASIN, Prime, sponsored
Shopee Search ScraperShopee regional search
Mercado Libre Listings ScraperLATAM Mercado Libre listings
Naver Search ScraperKorean 통합검색 rank / Powerlink
eBay Sold Listings ScraperCompleted 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