AliExpress Product Scraper & Price Monitor
Pricing
from $0.70 / 1,000 aliexpress product results
AliExpress Product Scraper & Price Monitor
Search AliExpress by keyword, pull exact products by URL or ID, or track factual price and stock changes. Localized prices as numbers, parsed sold counts, and an explicit coverage state on every run.
Pricing
from $0.70 / 1,000 aliexpress product results
Rating
0.0
(0)
Developer
Luka
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Search AliExpress by keyword and get clean product rows with localized prices, discounts, ratings and sold counts — or turn the same run into a factual price-change monitor.
Prices arrive as numbers in the currency you asked for, sold counts are parsed into integers you can sort by, and a keyword that genuinely matches nothing says so instead of returning unrelated cards.
🚀 Quick start
Type one keyword, press Start. That is the whole first run.
{"workflow": "search_products","searchQueries": ["wireless earbuds"],"shipTo": "US","currency": "USD","maxProductsPerQuery": 60}
Pick your Ship-to country first if you are not selling into the US: prices, currency and availability all follow it. Then open the Products view for sortable prices and sold counts.

Every run also writes a truthful coverage row: COMPLETE, CAPPED, PARTIAL, BLOCKED, FAILED, or EMPTY_CONFIRMED. A blocked or partial run never pretends to be empty.
🎯 Workflows
| Workflow | Returns |
|---|---|
| Search products | Current products per keyword: numeric prices, original price, discount %, currency, rating, sold count, image, sponsored flag, selling points. |
| Get exact products | One row per product URL or numeric ID. |
| Track product changes | First run stores a quiet baseline. Later runs emit factual NEW, UPDATED, and confirmed ENDED rows; unchanged products cost nothing. |
📦 Output
One flat row per product (JSON/CSV/Excel), for example:
{"recordType": "product","productId": "3256811621288203","title": "2025 Air Pro Wireless Bluetooth Earphones TWS Headset HiFi Earbuds","productUrl": "https://www.aliexpress.com/item/3256811621288203.html","salePrice": 0.99,"originalPrice": 20.15,"discountPercent": 95,"currencyCode": "USD","rating": 4.9,"soldText": "4,000+ sold","soldCount": 4000,"productType": "natural","isSponsored": false,"sellingPoints": ["Free shipping"],"shipTo": "US","searchQuery": "wireless earbuds","scrapedAt": "2026-09-01T21:50:36.881Z"}
soldCount is always a sortable number parsed from the source's display text; salePrice is always numeric with its currencyCode. Prices and availability vary by ship-to country, promotion, and time — pin one market for comparable rows.
🎛️ Input guide
- Search keywords (up to 10) — one search target each.
- Search URLs — paste a URL you already filtered on AliExpress; it is used exactly as-is.
- Exact product URLs / IDs — for the exact-products workflow.
- Ship-to country / currency / language — localization for the whole run.
- Result order — best match, most orders, price low-to-high / high-to-low, newest.
- Minimum / maximum price and free shipping only — deterministic filters.
- Maximum products per keyword (1–1000) — hard ceiling; coverage becomes
CAPPEDwhen the source has more. - Monitoring tracks at most 5,000 products per namespace. A monitoring run has to remember every product it watches, so a wider scope is capped to that and reported as
CAPPEDrather than silently dropped. - Maximum spend for this run (USD) — the run stops before exceeding it.
💰 Pricing
Pay-per-event, only for verified results:
| Event | Price | When charged |
|---|---|---|
| Verified search target | $0.0055 | Once per keyword that returns a trustworthy result. |
| Product result | $0.0008 | Per unique product or verified change row. |
| Verified detail target | $0.0058 | Once per exact product that yields a useful row. |
| Verified monitoring target | $0.005 | Once per trustworthy monitoring scan. |
A default run (1 keyword × 60 products) costs about $0.054. Blocked and failed runs are free. Coverage rows, summaries, and unchanged monitoring snapshots are free. A keyword that genuinely matches nothing returns EMPTY_CONFIRMED with no product rows, and only the search target is charged.
✅ Coverage
COMPLETE— every requested target finished within your limits.CAPPED— a declared row/page/spend guard stopped the run first.PARTIAL— at least one target failed; rows are a truthful partial prefix.BLOCKED— the source blocked the run; never reported as empty.FAILED— a source or parser failure; never reported as empty.EMPTY_CONFIRMED— the result page loaded and confirmed zero matches.ENDEDin monitoring means the product was absent in two consecutive comparable scans — disappearance alone is never reported as deletion.
🔌 API / automation
Schedule a daily run with the same Monitoring namespace and compare scrapedAt across runs, or read changes directly:
const { ApifyClient } = require('apify-client');const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('luminar/aliexpress-product-scraper-price-monitor').call({workflow: 'track_product_changes',searchQueries: ['wireless earbuds'],monitorStoreName: 'earbuds-watch',});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Set APIFY_TOKEN in your environment before running the example.
⚠️ Not yet supported
- Variant/SKU-level detail (per-variant price and stock) is not included in search rows.
- Full product-detail fields (shipping matrix, seller metrics, review text) are not part of the exact-products row.
- Reviews scraping is a separate job, not part of this Actor.
❓ FAQ / support
Is the price really per product row? Yes — $0.0009 per delivered product row, nothing for blocked or empty targets, and no platform-usage pass-through.
Can I monitor price changes? Yes. Use Track product changes with a stable Monitoring namespace on a schedule. The first run is a baseline; later runs emit NEW, UPDATED, and confirmed ENDED rows only.
Why do prices differ from what I see locally? AliExpress localizes by ship-to country. Pin the same Ship-to country, currency, and language on every run for comparable rows.