Lazada Scraper + Price Monitor — SEA Search & Price Alerts
Under maintenancePricing
from $0.10 / actor start
Lazada Scraper + Price Monitor — SEA Search & Price Alerts
Under maintenanceScrape Lazada search and category results across 6 SEA markets (MY/SG/TH/ID/PH/VN). Pure HTTP — no proxy, no browser. Monitor price drops, stock flips and sold-count changes with scheduled runs and webhook alerts. $0.10 start + $0.00099/product + $0.003/check + $0.01/alert.
Pricing
from $0.10 / actor start
Rating
0.0
(0)
Developer
subimpact
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Lazada Scraper + Price Monitor
Scrape Lazada product search results and category pages across all 6 SEA markets. Monitor prices, stock changes, and sold counts with scheduled runs and webhook alerts.
Pure HTTP — no browser, no proxy required. Lazada's catalog API returns clean JSON from datacenter IPs at HTTP 200.
Markets supported
| Country | Domain |
|---|---|
| Malaysia (MY) | www.lazada.com.my |
| Singapore (SG) | www.lazada.sg |
| Thailand (TH) | www.lazada.co.th |
| Indonesia (ID) | www.lazada.co.id |
| Philippines (PH) | www.lazada.com.ph |
| Vietnam (VN) | www.lazada.vn |
What it scrapes
Search mode: Keyword search results (/catalog/?q=iphone&ajax=true) — up to 40 products/page, paginated to your limit.
Category mode: Category browse pages (/shop-mobiles/?ajax=true) — same JSON shape, same pagination.
Scope — v1: Search and category listing data only. Product detail pages, reviews, and seller storefronts are blocked by Lazada's anti-bot system (x5sec 302 redirect) and are out of scope for this version.
Input
| Field | Type | Default | Description |
|---|---|---|---|
country | enum | my | Market: my, sg, th, id, ph, vn |
mode | enum | search | search (use queries) or category (use categoryUrls) |
queries | string[] | — | Search keywords. Required for mode=search. |
categoryUrls | string[] | — | Category browse URLs. Required for mode=category. |
maxResultsPerQuery | integer | 1000 | Max products per keyword/URL. Hard cap: 5000. |
sort | enum | popularity | popularity, priceasc, pricedesc |
minPrice | integer | — | Optional client-side price floor (local currency). |
maxPrice | integer | — | Optional client-side price ceiling (local currency). |
monitor | boolean | false | Enable price monitor mode. |
monitorWatchList | array | [] | [{"itemId":"123","targetPrice":99}] or [{"itemUrl":"//..."}]. Leave empty to watch all scraped items. |
webhookUrl | string | — | POST alerts JSON here when changes are detected. |
proxyUrls | string[] | — | Optional escape hatch — not needed for this endpoint. |
Output
Each row in the default dataset:
| Field | Type | Description |
|---|---|---|
itemId | string | Lazada product item ID |
name | string | Listing title |
brandName | string | Brand |
price | number | Current price (local currency units) |
priceShow | string | Price as shown (e.g. RM5,939.00) |
originalPrice | number | Pre-discount price |
discount | string | Discount label (e.g. 11% Off) |
currency | string | ISO 4217 code (MYR, SGD, THB, IDR, PHP, VND) |
ratingScore | number | Average star rating |
reviewCount | integer | Number of reviews |
soldCount | integer | Units sold (parsed: "1.7K sold" → 1700) |
inStock | boolean | Availability |
isSponsored | boolean | Sponsored listing |
location | string | Seller location (state/region) |
sellerName | string | Store display name |
itemUrl | string | Full HTTPS product URL |
image | string | Main product image URL |
country | string | Market code |
query | string | Search keyword or category label |
scrapedAt | string | ISO 8601 timestamp |
Monitor mode adds: previousPrice, priceDelta, priceDropPct, changeType (price_changed / stock_flip / sold_delta / removed), alerts[]
Monitor alerts also go to a separate alerts dataset and — if configured — are POSTed to your webhookUrl.
Example output
{"itemId": "4754594560","name": "Apple iPhone 17 Pro Max","brandName": "Apple","price": 5939,"priceShow": "RM5,939.00","originalPrice": 6699,"discount": "11% Off","currency": "MYR","ratingScore": 4.97,"reviewCount": 548,"soldCount": 1700,"inStock": true,"isSponsored": false,"location": "Selangor","sellerName": "UR bySwitch","itemUrl": "https://www.lazada.com.my/products/pdp-i4754594560.html","country": "my","query": "iphone","scrapedAt": "2026-09-08T10:00:00.000Z"}
Pricing
Pay-per-event (PPE):
| Event | Price | When |
|---|---|---|
apify-actor-start | $0.10 | Once per run |
products-scraped | $0.00099 per product | Every product row delivered |
product-checked | $0.003 per item | Monitor mode only, per item checked |
alert-created | $0.01 per alert | Monitor mode only, when a change is detected |
Example cost: 1,000 products scraped = $0.10 (start) + $0.99 (products) = $1.09 total. No proxy fees, no browser compute fees.
Price monitor
Schedule this Actor to run on a recurring interval. On each run:
- Products are scraped fresh from your queries.
- Each item is compared to the snapshot saved from the previous run (stored in Apify KV store).
- Changes in price, stock status, or sold count generate alert objects.
- First run = baseline only (no alerts).
- Alerts are pushed to the
alertsdataset and optionally POSTed to yourwebhookUrl.
Removal detection: Items that disappear from results are flagged as removed — but only when the current run returned healthy full pages (guard against false positives from pagination glitches).
Ethics and legal note
This Actor scrapes Lazada's public product listings — the same data visible to any visitor without logging in. No credentials are used. No personal data is collected. Rate is limited to ~5 concurrent requests with delays. Respect Lazada's terms of service and use this tool responsibly.