AliExpress Product Scraper API: Prices, Variants & Stock (速卖通)
Pricing
from $2.13 / 1,000 products
AliExpress Product Scraper API: Prices, Variants & Stock (速卖通)
Scrape AliExpress (速卖通) search and product pages at one moment: current price, discount, sold count, rating, and optional SKU price and stock. Not a price or discount history. Pin a ship-to country. For product research and price checks.
Pricing
from $2.13 / 1,000 products
Rating
0.0
(0)
Developer
dheeraj kumar
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
an hour ago
Last modified
Categories
Features
Share
Scrape AliExpress (速卖通) search results and product pages to JSON, CSV or Excel: the current price, discount, sold count, and rating, plus, with details on, each SKU's current price and stock, item properties, images, review count, store info, and shipping quote.
Those prices and discounts are the page at scrape time. This actor does not return a price or discount history. The ship-to country and currency are pinned (US / USD by default). No login needed.
$2.50 per 1,000 products, the same price for a search row or a full detail row. Leading AliExpress actors charge $5–9 per 1,000.
中文简介:速卖通(AliExpress)商品与搜索采集:价格、折扣、销量、评分;可选商品详情,包括全部 SKU 的价格与库存、属性、图片、评论数、店铺信息、运费与预计送达时间。可指定收货国家和币种。每 1000 个商品 2.5 美元。
An AliExpress API alternative for product research: get the current AliExpress price, variants, and stock with no affiliate or developer account. It is a point-in-time scrape, not a price history.
For AI agents
Call this actor through the Apify MCP server. maxChargeUsd is this actor's cap. MCP callOptions.maxTotalChargeUsd is a separate platform cap; set both before a paid call. Do not use mode: "selftest" — that pushes one type: "selftest" diagnostic (ok, status, checks, blocks), not products.
salePrice, originalPrice, and discountPct are the values at scrapedAt. outputMode: "changesOnly" works only with mode: "product" (a fixed URL list). On search it fails before any charge, because search order is not a stable set. A changed row is the new snapshot plus changedFields, not a series of past prices.
List prices (unchanged): run start $0.001, each product row $0.0025. changesOnly adds $0.002 per new, changed, or removed product. Five search rows are about $0.0135. Error rows are free.
outputFormat: "compact" also writes key OUTPUT_COMPACT (columnar-v1: columns, missing, rows). A cell equal to missing was absent. The dataset is the row fallback. Same rows, same price.
Search:
{ "mode": "search", "searchQueries": ["phone case"], "maxResults": 5, "sort": "best_match", "shipTo": "US", "currency": "USD", "maxChargeUsd": 1 }
Fields: type product, detail search, productId, title, salePrice, originalPrice, currency, discountPct, soldCount, rating, url.
Search plus SKUs (same $0.0025 per product):
{ "mode": "search", "searchQueries": ["phone case"], "maxResults": 3, "fetchDetails": true, "maxVariants": 5, "maxChargeUsd": 1 }
Adds detail full, variants (skuId, attributes, salePrice, stock, available), store, shipping.
Known products, and a later diff against this baseline:
{ "mode": "product", "productUrls": ["1005009893532334"], "outputMode": "all", "maxChargeUsd": 1 }
The first changesOnly run on those URLs records the baseline (_change new). The next run returns new, changed, or removed products only.
Try it in one click
The input form on this page is already prefilled with the example below — press Start and it runs as-is.
{ "mode": "search", "searchQueries": ["phone case"], "maxResults": 20, "sort": "best_match", "maxChargeUsd": 0.5 }
What you get:
- Up to 20 "phone case" listings ranked by best match: price, discount %, sold count, rating, Choice/ad flags.
- About 20 rows for roughly $0.05 at the listed pricing (run-start $0.001 + $0.0025/product row) — well under the $0.5 cap.
- Turn on
fetchDetailsfor variants, stock, store info and shipping cost, at the same per-row price.
Why AliExpress data matters
- What it is: Alibaba's cross-border marketplace, selling directly to shoppers outside China. Alibaba reported that AliExpress reached operating profit in the June 2026 quarter, with a fast-growing share of sales from local supply (Alibaba June quarter 2026 results).
- For dropshippers and e-commerce sellers: find winning products by sold count and rating, compare variant prices, and check shipping costs and delivery times for your market.
- For brands: monitor counterfeits, unauthorised sellers and price erosion on your products.
- For market researchers and AI teams: price, discount and demand signals across thousands of categories, ready for dashboards, pricing models or LLM-powered product research.
What AliExpress product data you can scrape
| Mode | Input | Output |
|---|---|---|
search | keywords, sort (best match, orders, price), up to 60 products per page | one row per product: price, original price, discount, sold, rating, Choice flag, ad flag, delivery tag |
search + fetchDetails | the same | the search fields plus variants, properties, images, reviews count, store, shipping |
product | product links or ids | full detail rows |
Pricing (pay per event)
| Event | Price |
|---|---|
| Run start | $0.001 |
| Product row (search or detail) | $0.0025 |
Error rows are free. maxChargeUsd (default $5) stops the run cleanly before it goes over.
Works on Apify’s Free plan — $5/mo platform usage, no credit card required to try. Per-product prices above are unchanged.
Input examples
{ "mode": "search", "searchQueries": ["bluetooth earbuds"], "maxResults": 120, "sort": "orders" }
{ "mode": "search", "searchQueries": ["phone case"], "maxResults": 20, "fetchDetails": true, "shipTo": "DE", "currency": "EUR" }
{ "mode": "product", "productUrls": ["https://www.aliexpress.com/item/1005006609906038.html", "1005009893532334"] }
Output example (real detail row, 2026-10-18, lists shortened)
{"type": "product", "detail": "full", "detailStatus": "full", "productId": "1005009893532334", "usLocalId": "3256811467917760","url": "https://www.aliexpress.com/item/1005009893532334.html","title": "SK Small Headphones Wireless Bluetooth Headset Sport Sleeping Invisible Comfortable To Wear Bass Earbuds Earphone For All Phones","imageUrl": "https://ae-pic-a1.aliexpress-media.com/kf/Sebab286d68ac4d6183c1a1a8cce21316s.jpg","salePrice": 7.71, "salePriceMax": 7.71, "originalPrice": 33.83, "currency": "USD", "discountPct": 81,"rating": 4.8, "reviewsCount": 33, "soldText": "293 sold", "soldCount": 293, "isAd": false, "isChoice": false,"tags": ["New shoppers save $24.76", "Free shipping"],"variantCount": 3,"variants": [{ "skuId": "12000050501217752", "attributes": "Color: Black; Ships From: United States", "salePrice": 7.71, "originalPrice": 33.83, "stock": 1000879, "available": true }],"properties": [{ "name": "Material", "value": "Plastic" }],"store": { "name": "INSONIXN Audiovisual Store", "storeId": 1104069061, "sellerId": 6000542421, "positiveFeedbackPct": 90.7, "sold180Days": "1,000+", "openedYear": 2, "country": "China", "topRated": false },"shipping": { "fee": 0, "feeText": "Free", "company": "USPS Priority Mail", "shipFrom": "United States", "deliveryDaysMin": 4, "deliveryDaysMax": 11, "estimate": "Oct. 22 - Oct. 29" },"categoryPath": "44/100000306/63705", "shipTo": "US", "searchQuery": "bluetooth earbuds", "page": 1, "position": 2}
A search row (without fetchDetails) has the same identity, price, rating and sold fields, plus delivery and listedAt.
detailStatus
Every product row carries detailStatus, either "full" (the full product details came back
clean — variants, store, shipping, etc. are all present) or "search_only" (the row only has what the search
results page itself returned). This is the same information detail has always carried ("full" / "search");
detailStatus is the more explicit name and the one to check in code going forward — both fields stay in sync.
With fetchDetails off, every row is search_only by design — that's just what you asked for. With
fetchDetails on, a row still comes back search_only when AliExpress refused every attempt at that one
product's details; detailError on the row then holds the reason code (e.g.
"slider", "punish", "network"). The row isn't dropped or retried forever — you still get the search-level
price/rating/etc. for it, same price, and the run keeps going instead of stalling on one stubborn product.
Compact output for AI agents
Set Output format to compact and the run still pushes the same rows to the dataset
at the same price — nothing about billing changes. It additionally writes OUTPUT_COMPACT
to the run's key-value store: our token-optimized, lossless encoding of the same rows, built to
be cheaper to hand to an LLM than the plain dataset JSON.
Measured on a real 130-row export of this actor's product rows:
| Tokenizer | Pretty JSON | Minified JSON | Compact | vs Pretty | vs Minified |
|---|---|---|---|---|---|
| cl100k_base (GPT-4/3.5) | 42,238 | 32,158 | 23,707 | 43.9% smaller | 26.3% smaller |
| o200k_base (GPT-4o) | 42,425 | 32,461 | 24,154 | 43.1% smaller | 25.6% smaller |
Need regular row objects in your own code? The normal dataset is always there, unchanged, alongside the compact copy.
Monitor mode
Works with mode: "product" only — a fixed list of productUrls you track over time.
mode: "search"changesOnly together with mode: "search" fails the run
immediately, before anything is charged, with an input error telling you to switch to product
mode or back to all output.
Schedule this actor in product mode and set Output mode to changesOnly to get a diff instead
of a full re-export: the first run records a baseline (by product id), and every run after that
reports only products that are new, changed (with a changedFields list), or removed
since last time. Removed rows carry just the product id. Use Monitor name if you run more than
one monitor and want to keep their baselines separate, and Report removed products / Fields
to ignore to tune what counts as a change. Default mode (all) is unaffected — it always exports
everything, every run. In changesOnly, every new/changed row is billed as a changed row in
addition to the normal per-product charge — see Pricing below; a removed row is billed as a
changed row only (there's no per-product charge for a product that wasn't actually fetched this
run); unchanged rows are free and aren't pushed.
Good to know
- US listings. With ship-to US, AliExpress shows aliexpress.us local listings. We return the global
productId, which works on www.aliexpress.com, and the local id asusLocalId. - Sponsored results are flagged
isAd: true. UseexcludeAdsto skip them. - Anti-bot. The actor handles AliExpress's rotating anti-bot challenges for you, using a multi-layer recovery system maintained against site changes. If every request is blocked, the run fails instead of ending green with 0 rows.
- Full details are slower than search, but details for a page of products are fetched in parallel (
detailConcurrency, default 4), so one slow product doesn't stall the others. - Reviews text isn't included in v1.
Reliability
A self-test runs every day (search, sorting, product details) to catch site changes early.
Keywords: AliExpress scraper, AliExpress API, AliExpress product data, AliExpress price tracker, AliExpress variants SKU, dropshipping product research, 速卖通采集.
Run it on a schedule
Suggested frequency: daily for price tracking of a watchlist, weekly for niche best-seller research. Monitor mode returns only changed products, so daily runs stay cheap.
To set it up: save your input as a Task in Apify Console, then add a Schedule. Send results where you work with Apify integrations: Google Sheets, Slack or email notifications, webhooks, Make / Zapier / n8n, or straight into an AI agent through the Apify MCP server. A run that can't get data is marked failed, so your alerts fire.
FAQ
Is there an official AliExpress API? AliExpress offers affiliate and dropshipping APIs, but they need an approved account and only cover part of the data. This actor returns public product, variant, store and shipping data without an account.
Can I use it as an AliExpress price tracker? Yes. Schedule it with monitor mode on and you only get rows when a price, stock level or variant changes.
Is it good for dropshipping product research? Yes. Sort by orders to find best sellers in a niche, then pull full details for the winners.
Which country's prices do I get? You choose the ship-to country and currency (US / USD by default), so prices stay consistent between runs.
What are the alternatives? Browser extensions (manual, one page at a time) or other Store actors at $5–9 per 1,000. This one is $2.50 per 1,000.
Guide
- Guide: AliExpress Search Data in 2026: 200 Real Listings, Prices, Sold Counts and What to Clean — a live 200-row export and how to clean it (flat prices, discount labels, promoted rows).
Feedback
If the data helped, a short rating on the Reviews tab helps others find this actor. Something broke or missing a field? Open an issue on the Issues tab — we aim to reply within 24 hours.
Related actors
- WooCommerce Products Scraper — export competitor WooCommerce stores' prices and stock.
- WooCommerce Catalog Monitor — get alerts when a WooCommerce store changes prices or stock.
- Amazon Product Scraper — Amazon product data for cross-marketplace price comparison.
- Temu Products Scraper — Temu products for comparing with AliExpress pricing.
- Google Shopping Insights — Google Shopping prices across retailers.