Lazada Scraper
Pricing
Pay per event
Lazada Scraper
Extract Lazada products, prices, sellers, ratings, and review counts across six Southeast Asian country storefronts.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
15 hours ago
Last modified
Categories
Share
Extract structured Lazada product search results from the public Malaysia, Singapore, Indonesia, Philippines, Thailand, and Vietnam storefronts. The Actor returns product names, current prices, seller details, rating and review counts, brand, location, availability, and canonical URLs for repeatable marketplace monitoring.
Use it for one-time catalog research or schedule the same input to track assortment, price, seller, and review-count changes over time. Individual review text is not included.
What can Lazada Scraper do?
- Search one or more product queries across six Southeast Asian Lazada storefronts.
- Accept a public Lazada
/catalog/search URL when you already have a precise search. - Paginate through search results while respecting a global
maxItemslimit. - Filter products by minimum rating or exact seller name.
- Include or exclude sponsored placements.
- Deduplicate products within a run by country and Lazada item ID.
- Produce clean JSON, CSV, Excel, XML, or RSS exports through Apify datasets.
The Actor reads Lazada’s public catalog response through a sticky Apify datacenter proxy session. It does not require a Lazada account, cookies, or a browser.
Who is it for?
Marketplace analysts can compare assortment and seller coverage across Lazada Malaysia, Singapore, Indonesia, Philippines, Thailand, and Vietnam.
Pricing teams can schedule recurring runs and join records by country plus itemId to identify price or discount changes.
Brands and distributors can monitor whether products appear in search, which sellers offer them, and how ratings and review counts evolve.
Data engineers can feed typed product records into a warehouse, spreadsheet, dashboard, or alerting workflow without maintaining a country-specific scraper.
What Lazada data is extracted?
| Field | Meaning |
|---|---|
country | Lazada storefront code: MY, SG, ID, PH, TH, or VN |
query | Search phrase associated with the result |
position | Organic or sponsored position across paginated results |
itemId, skuId, sku | Stable Lazada identifiers when supplied by the catalog |
name, productUrl, imageUrl | Product identity and links |
price, priceText, originalPrice, discount | Current and former price information |
currency | Storefront currency symbol or code returned by Lazada |
rating, reviewCount | Aggregate rating and number of reviews |
sellerName, sellerId | Seller identity shown in search |
brandName, brandId | Brand identity when available |
location | Seller or fulfillment location shown by Lazada |
soldText | Source-provided sales label, such as 22 sold |
inStock | Availability when Lazada supplies it |
sponsored | Whether the placement is sponsored |
categoryIds | Lazada category identifiers |
sourceUrl, scrapedAt | Exact catalog request and extraction timestamp |
Nullable fields remain null when Lazada does not provide them. The Actor does not invent missing prices, brands, availability, or ratings.
How to scrape Lazada products
- Open the Actor in Apify Console.
- Add one or more product phrases to Search queries.
- Select the country storefronts you need.
- Set Maximum products and optional filters.
- Click Start.
- Open the default dataset to inspect or export the results.
A small first run is useful for checking terminology. For recurring monitoring, keep the same queries, countries, and filters so records remain comparable.
Input parameters
| Input | Type | Default | Description |
|---|---|---|---|
queries | string[] | [] | Product searches run on every selected country |
startUrls | request[] | [] | Public Lazada country /catalog/ URLs containing a q parameter |
countries | enum[] | ["MY"] | Storefronts used for queries |
maxItems | integer | 100 | Global maximum unique products, from 1 to 10,000 |
maxPagesPerQuery | integer | 5 | Maximum pages for each query-country job, from 1 to 100 |
minRating | number | none | Keep records with a rating at or above 0–5 |
sellerNames | string[] | [] | Exact seller-name filter, case-insensitive |
includeSponsored | boolean | false | Include sponsored placements |
Provide at least one queries or startUrls value. A start URL determines its country from the hostname; the countries input applies only to query jobs.
Search across multiple countries
{"queries": ["wireless mouse", "laptop stand"],"countries": ["MY", "SG", "PH"],"maxItems": 100,"maxPagesPerQuery": 3,"includeSponsored": false}
Use an exact Lazada catalog URL
{"startUrls": [{ "url": "https://www.lazada.sg/catalog/?q=mechanical%20keyboard" }],"maxItems": 20}
Monitor highly rated products
{"queries": ["sunscreen"],"countries": ["MY", "SG", "PH"],"minRating": 4.5,"maxItems": 60,"maxPagesPerQuery": 5}
Output example
The default dataset contains one object per accepted product. This abbreviated record comes from a real Singapore search:
{"type": "product","country": "SG","query": "mechanical keyboard","position": 1,"itemId": "13768908283","productUrl": "https://www.lazada.sg/products/pdp-i13768908283.html","name": "DIANSHIFANG | Stress Relief Mini Mechanical Keyboard Toy","price": 4.92,"priceText": "$4.92","currency": "$","rating": 5,"reviewCount": 5,"sellerName": "Dianshifang Flagship Store","brandName": "DIANSHIFANG","location": "China","soldText": "22 sold","inStock": true,"sponsored": false,"sourceUrl": "https://www.lazada.sg/catalog/?q=mechanical+keyboard&ajax=true&page=1","scrapedAt": "2026-07-29T02:09:09.895Z"}
Search ordering and product data change continuously, so later runs may return different records.
How much does it cost to scrape Lazada products?
Lazada Scraper uses pay-per-event pricing: one Start charge per run plus one Item processed charge for each product saved. Filtered, duplicate, malformed, or failed products are not charged as items.
The Start price is $0.00005. At the BRONZE tier, each saved product is $0.002396. The per-item price decreases on higher Apify plan tiers; Console displays the applicable active price before each run.
| Saved products | BRONZE cost formula |
|---|---|
| 10 | Start price + 10 × item price |
| 100 | Start price + 100 × item price |
| 1,000 | Start price + 1,000 × item price |
Runtime, storage, and the default datacenter proxy route are handled within the Actor’s pay-per-event model. The Actor has no automatic residential proxy or browser fallback, so it does not silently introduce an unmeasured premium route.
Recurring Lazada price and review monitoring
Create an Apify schedule with a stable input, then compare each dataset snapshot by country:itemId.
Useful change signals include:
- product first seen or no longer returned;
priceororiginalPricechanged;sellerNamechanged;ratingchanged;reviewCountincreased;inStockchanged;- search
positionmoved.
For consistent snapshots, avoid changing countries, filters, or query spelling between runs. Lazada search results can still vary because of source-side ranking and inventory changes.
Export to spreadsheets and data pipelines
Every run writes to the default Apify dataset. From the dataset page, export JSON, CSV, Excel, XML, or RSS.
You can also connect runs to:
- Google Sheets for lightweight assortment tracking;
- Make or Zapier for alerts and routing;
- webhooks for run-completed automation;
- a data warehouse for longitudinal price analysis;
- Python, JavaScript, or BI tools through the Apify API.
Use itemId together with country as the primary comparison key. The same numeric item ID should not be assumed globally unique across storefronts.
Run Lazada Scraper with the API
Replace YOUR_TOKEN with an Apify API token. Keep tokens in environment variables or secret storage rather than source code.
cURL
curl -X POST \"https://api.apify.com/v2/acts/automation-lab~lazada-products-scraper/runs?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"queries":["wireless mouse"],"countries":["MY"],"maxItems":20}'
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/lazada-products-scraper').call({queries: ['wireless mouse'],countries: ['MY', 'SG'],maxItems: 40,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('automation-lab/lazada-products-scraper').call(run_input={'queries': ['wireless mouse'],'countries': ['MY', 'SG'],'maxItems': 40,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
For asynchronous applications, start a run without waiting and consume the dataset after a webhook reports completion.
Use Lazada Scraper through MCP
Add the Apify MCP server to Claude Code:
claude mcp add --transport http apify \"https://mcp.apify.com?tools=automation-lab/lazada-products-scraper"
Claude Desktop setup
Add this remote MCP server configuration:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/lazada-products-scraper"}}}
Cursor setup
Add the same JSON under Settings → Tools & MCP, then enable the apify server.
VS Code setup
Add the same remote server URL to your workspace MCP configuration and start the apify server from the MCP panel.
Example prompts:
- “Run Lazada Scraper for
wireless mousein Malaysia and Singapore, maximum 40 products.” - “Extract highly rated sunscreen products from Lazada Philippines and return a CSV-ready table.”
- “Compare this run’s prices and review counts with my previous Lazada dataset.”
MCP can start the Actor and retrieve run output; cross-run comparisons depend on the datasets you provide to the client.
Reliability and retries
The Actor retries network timeouts, HTTP 429 responses, and temporary server errors up to three times with bounded backoff. It does not repeatedly retry invalid URLs, stable source errors, or recognizable challenge pages without changing the route.
A successful request must return Lazada’s expected JSON catalog shape. HTML, challenge pages, or unexpected JSON fail the run instead of being reported as an empty result.
Results are pushed and charged one at a time after normalization and filtering. The global item limit stops additional pagination as soon as enough useful unique records have been saved.
Limits and source behavior
- Only public
/catalog/search responses are supported. - Product-detail pages and individual review bodies are not scraped.
reviewCountandratingare aggregate metrics from search results.- Search ranking, availability, and prices may be personalized or changed by Lazada.
- Some fields can be absent for a particular item or country.
- Seller-name filtering is exact and case-insensitive.
maxItemsis global across all query-country jobs, processed in input order.- The Actor uses sticky Apify datacenter proxy sessions and has no automatic residential or browser fallback.
- A source challenge causes a clear failed run rather than incomplete silent output.
Tips for better results
- Use the product wording common on the selected country storefront.
- Run separate inputs when each country needs an independent item quota.
- Keep
includeSponsoreddisabled for organic-only monitoring. - Start with a broad query, inspect seller names, then reuse exact names in
sellerNames. - Use stable schedules and retain dataset IDs for historical comparison.
- Prefer smaller, focused queries over one ambiguous phrase when building alerts.
Legality and responsible use
Lazada Scraper accesses public catalog information without logging into user accounts. You are responsible for ensuring that your use complies with Lazada’s terms, applicable law, contractual obligations, and data-protection requirements.
Do not use the Actor to collect sensitive personal data, overwhelm the source, impersonate users, or make automated decisions about individuals. Respect intellectual-property rights and apply appropriate retention and access controls to exported datasets.
This documentation is operational guidance, not legal advice.
Troubleshooting
The run says I must provide a query or URL
Add at least one non-empty string to queries, or provide a supported Lazada country /catalog/ URL containing the q search parameter.
A start URL is unsupported
Use one of the six official hosts and a /catalog/ path. Product URLs, home pages, and non-Lazada hosts are rejected deliberately.
The run returned a challenge-page error
Lazada did not return the expected public catalog JSON through the run’s sticky proxy session. Retry later. The Actor intentionally does not disguise that condition as zero products or activate an unpriced residential/browser fallback.
Why are fewer items saved than requested?
The source may exhaust its pages, duplicate items across jobs, or have records removed by sponsored, rating, or seller filters. Item charges apply only to records actually saved.
Why is rating null?
New or unrated products may not include a rating. When minRating is set, records with no rating are excluded.
Related Automation Lab actors
- Shopee Products Scraper for comparable Southeast Asian marketplace catalog monitoring.
- Shopee Reviews Scraper when the required workflow is individual Shopee review extraction rather than Lazada aggregate review metrics.
Related Actors cover different sources and should not be treated as a merged cross-market dataset without normalization.
FAQ
Does Lazada Scraper require a Lazada account?
No. It uses public country-storefront catalog responses.
Which Lazada countries are supported?
Malaysia, Singapore, Indonesia, Philippines, Thailand, and Vietnam.
Does it scrape Lazada review text?
No. It extracts the aggregate rating and review count shown with each catalog result. Individual review text and reviewer profiles are outside the current scope.
Can I monitor prices over time?
Yes. Schedule identical inputs and compare records by country:itemId. The Actor provides timestamped snapshots; it does not itself calculate historical changes or send alerts.
Can I search several countries in one run?
Yes. Each query is run against each selected country until the global maxItems limit is reached.
Are filtered products charged?
No. The per-item event is charged only after a unique product passes validation and filters and is about to be saved.
Can I use a product URL as input?
No. startUrls accepts catalog search URLs, not product-detail URLs. Use queries when you only know a product phrase.
Is complete catalog coverage guaranteed?
No. Output reflects the public result pages available during the run and the configured page and item limits. Lazada can change rankings, fields, availability, and access behavior.