Lazada Scraper - Products, Prices, Sold Count & Reviews
Under maintenancePricing
from $2.50 / 1,000 products
Lazada Scraper - Products, Prices, Sold Count & Reviews
Under maintenanceScrape Lazada product listings by keyword, category or product URL: price, discount, rating, review count, sold count, seller, location, images, category path and optional reviews. Malaysia, Singapore, Thailand, Philippines, Vietnam, Indonesia. Reliable: validated items, fails loudly.
Pricing
from $2.50 / 1,000 products
Rating
0.0
(0)
Developer
Zee Lex
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 hours ago
Last modified
Categories
Share
Lazada Product Scraper
Scrape product data from Lazada in Malaysia, Singapore, Thailand, the Philippines, Vietnam and Indonesia. Search by keyword, crawl a category, or pull specific product pages. You get price, discount, rating, sold count, seller, images, category path and, optionally, customer reviews.
Built for reliability: every item is validated before it is saved, blocked requests are retried on fresh proxies, and the run fails loudly instead of quietly returning empty or half-finished data.
What it does
- Searches Lazada by keyword, or crawls category and search-result URLs, with automatic pagination
- Opens each product page to add category path, stock status and the full image gallery (can be switched off for a cheaper, faster run)
- Optionally collects customer reviews (rating, text, date, reviewer, variant)
- Reads Lazada's own JSON data rather than fragile HTML, with HTML fallbacks
- Never saves an item without a URL, title and price
- Writes a run summary (
RUN_SUMMARYin the key-value store) showing missing fields and anti-bot blocks
Pricing
Pay only for results: $3.50 per 1,000 products (cheaper on higher Apify plans), with no extra charge for platform usage or proxies. Reviews are included in the product item at no extra cost. Example: 1,000 air fryer listings with full details ≈ $3.50.
Use cases
- Price monitoring: track your products' or competitors' prices and discounts on a schedule
- Competitor research: see who sells what, at what price, with what ratings and sales volume
- Product research for sellers and dropshippers: find best-selling, highly rated products in a niche before you stock them
- Review mining: collect reviews to spot product weaknesses and customer complaints
- Market reports: compare categories and brands across six Southeast Asian markets
Supported countries
| Code | Site | Currency |
|---|---|---|
my | lazada.com.my | MYR |
sg | lazada.sg | SGD |
th | lazada.co.th | THB |
ph | lazada.com.ph | PHP |
vn | lazada.vn | VND |
id | lazada.co.id | IDR |
Start URLs use the country of their own domain, so you can mix countries in one run.
Input
| Field | Type | Default | Notes |
|---|---|---|---|
country | string | my | Site used for keyword searches |
searchKeywords | string[] | – | Each keyword is searched separately |
startUrls | URL list | – | Category, search-results or product URLs |
maxItems | integer | 100 | Total products across all inputs |
includeReviews | boolean | false | Fetch reviews for each product |
maxReviewsPerProduct | integer | 20 | Used only with reviews on |
proxyConfiguration | object | Apify Proxy, RESIDENTIAL | Residential strongly recommended |
At least one of searchKeywords or startUrls is required.
Input example
{"country": "my","searchKeywords": ["air fryer", "iphone 15"],"startUrls": [{ "url": "https://www.lazada.com.my/shop-air-fryers/" },{ "url": "https://www.lazada.com.my/products/example-product-i123456789-s987654321.html" }],"maxItems": 200,"includeReviews": true,"maxReviewsPerProduct": 20,"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "MY" }}
Output sample
One dataset item per product:
{"url": "https://www.lazada.com.my/products/philips-air-fryer-i123456789-s987654321.html","itemId": "123456789","skuId": "987654321","title": "Philips Essential Air Fryer HD9200 4.1L","brand": "Philips","price": 289,"originalPrice": 459,"discountPercent": 37,"currency": "MYR","rating": 4.9,"reviewCount": 1600,"soldCount": 5100,"inStock": true,"sellerName": "Philips Official Store","sellerId": "1000123","sellerRating": 97,"location": "Selangor","images": ["https://img.lazcdn.com/g/p/1.jpg", "https://img.lazcdn.com/g/p/2.jpg"],"categoryPath": ["Home Appliances", "Air Fryers"],"reviews": [{ "rating": 5, "text": "Works great", "date": "12 Oct 2026", "reviewerName": "A***n", "variant": "Colour:Black" }],"dataSource": "product_page","scrapedAt": "2026-10-27T07:12:45.123Z"}
Field notes:
sellerRatingis Lazada's positive-rating percentage (0–100).ratingis the product score (0–5).soldCountcomes from search listings and is converted from labels like "5.1K sold" or "10rb terjual". It isnullfor products added by direct URL.reviewsappears only whenincludeReviewsis on.dataSourceisproduct_pagewhen full details were collected, orsearch_listingwhen the product page stayed blocked and only listing data was saved. Listing-only items still have URL, title and price, but usually lack seller rating, category path and full images.
Reliability and run status
- Items missing URL, title or price are dropped and counted, never saved.
- Captcha or slider pages, HTTP 403/429, empty or malformed JSON are detected as blocks. The session and proxy are rotated and the request retried (up to 6 times).
- The run fails with a clear status message when:
- no products were saved, or
- 25 blocks happen in a row (the proxy pool is burned), and the target was not reached, or
- at least 25% of requests failed permanently and the target was not reached.
- Products already saved before a failure stay in the dataset for inspection.
RUN_SUMMARYin the default key-value store lists saved counts, missing-field percentages, block counts by reason and review fetch failures.
Limitations
- Lazada uses strong anti-bot protection. Datacenter proxies are usually blocked. Use RESIDENTIAL proxies, ideally in the same country as the site (
apifyProxyCountry). - Lazada serves at most about 100 search pages per keyword (~4,000 products). Use several narrower keywords or category URLs for more.
- Lazada changes its page data format from time to time. Missing-field counts in
RUN_SUMMARYare the early warning. - Review dates are returned as Lazada displays them (locale-dependent text).
- Seller location is taken from search listings; it may be missing for products added by direct URL.
- Only publicly visible data is collected. You are responsible for using the data in line with Lazada's terms and applicable law, including personal-data laws for reviewer names.
Run locally
npm installnpm test # offline parser testsapify run # uses storage/key_value_stores/default/INPUT.json
Data-source notes (verified against live lazada.com.my, Oct 2026)
- Search results come from Lazada's
?ajax=truelisting JSON (mods.listItems). This endpoint is protected by Lazada's anti-bot system and is blocked for datacenter IPs, so use RESIDENTIAL proxies in the target country. - Product pages are now server-rendered as a "shell": title, brand, category, images, stock and displayed price are present, but rating, seller name, seller rating and sold count are loaded later by the browser. The scraper fills rating and review count from Lazada's public review endpoint, and seller name, sold count and location from the search listing.
- Cost tip: set
includeProductDetails: falseto skip product pages (≈250 KB of residential traffic each). You still get price, discount, rating, review count, sold count, seller, location and image from the search listing; you lose category path and the full gallery. - Search pages are loaded in a headless Chrome browser (plain HTTP requests to the listing JSON are blocked even on residential IPs); product pages and reviews use fast HTTP requests.
- sellerRating is not available from any source this Actor uses and is usually
null. - Product prices from the product page can differ by a few cents/ringgit from the search listing (the listing sometimes shows a voucher-adjusted price).