Lazada Scraper - Products, Reviews & Shops in 6 Markets avatar

Lazada Scraper - Products, Reviews & Shops in 6 Markets

Pricing

from $1.90 / 1,000 results

Go to Apify Store
Lazada Scraper - Products, Reviews & Shops in 6 Markets

Lazada Scraper - Products, Reviews & Shops in 6 Markets

Extract Lazada products, prices, reviews and shop data from Singapore, Malaysia, the Philippines, Thailand, Vietnam and Indonesia. Pay per delivered row.

Pricing

from $1.90 / 1,000 results

Rating

0.0

(0)

Developer

kane liu

kane liu

Maintained by Community

Actor stats

1

Bookmarked

7

Total users

1

Monthly active users

6 hours ago

Last modified

Categories

Security

Limited permissions

Share

Lazada Scraper

Extract Lazada products, prices, reviews and storefront data across six Southeast Asian markets as rows you can export.

  • Product titles, links, prices, ratings and seller information.
  • Keyword search, inventory discovery, shop catalogs and live-commerce listings.
  • Optional product details and separate buyer-review rows.
  • Singapore, Malaysia, Philippines, Thailand, Vietnam and Indonesia.
  • Pay $1.90 per 1,000 delivered rows on every Apify plan.

What does Lazada Scraper do?

Lazada Scraper collects public listings and discovery data from Lazada. Choose one market per run: SG for Singapore, MY for Malaysia, PH for the Philippines, TH for Thailand, VN for Vietnam or ID for Indonesia. The default is MY.

  • Products: search with keywords, discover inventory with sitemap, or collect shop products with shopItems.
  • Shops: sellers returns seller profiles; shopcatalog returns stores and their categories.
  • Live commerce: live returns live-room and recommended-presenter rows.
  • Buyer reviews: includeReviews is off by default. When enabled and available, each review is a separate row billed at the same price as a product.
  • Extra fields: product details are enabled by default for up to three products. Seller information, shop profiles and promotion fields are optional and off by default.

What data can you extract from Lazada?

Each row has a rowType and an id. Fields vary by mode and source availability. The examples below illustrate formats, not a current product offer. capturedAt records when the row was captured.

Product rows (rowType=product)

FieldDescriptionExample
itemIdProduct identifier1234567890
titleProduct titleWireless earbuds
productUrlProduct pagehttps://www.lazada.com.my/products/pdp-i1234567890.html
keywordSearch words or inventory markerbluetooth earbuds
marketSelected country siteMY
pricePrice as displayedRM39.90
currencyCodeCurrency codeMYR
ratingScoreProduct rating4.7
reviewCountSource review count120
sellerNameSeller display nameExample Shop
locationListed shipping locationSelangor
pageTypeDistinguishes search, inventory and other resultssitemap
orgSeller name and identifier{"name":"Example Shop","id":"123"}
addressAvailable region or city, not a street address{"region":"Selangor"}

Product rows may also include originalPrice, absoluteRank, inStock, categories, skus, brandName and detailParsed. Availability depends on the listing and requested details.

Review rows (rowType=review)

Product identifiers and context accompany each review. Images are limited to 50 per review.

FieldDescriptionExample
reviewIdReview identifierreview-123
productIdReviewed product1234567890
ratingReview rating5
textReview textFits as described.

Seller rows (rowType=seller)

FieldDescriptionExample
sellerKeyStorefront keyitel
shopUrlStorefront addresshttps://www.lazada.com.ph/shop/itel/
sellerInfoAvailable shop name, rating and follower information{"shopName":"Example Shop"}

Live-room rows (rowType=live)

FieldDescriptionExample
liveIdLive-room identifier12345
roomStatusSource room statusLive

Presenter rows (rowType=presenter)

FieldDescriptionExample
presenterIdPresenter identifier67890
fansNumFollower count1200

Store rows (rowType=store)

FieldDescriptionExample
shopIdStore identifier123
shopNameStore nameExample Shop

Shop-category rows (rowType=shop_category)

FieldDescriptionExample
catIdCategory identifier456
catNameCategory nameAccessories
childCountNumber of child categories2

How to scrape Lazada

  1. Open Lazada Scraper in Apify Console.
  2. Fill keywords or sellerKeys, then choose market.
  3. Set maxItems to 3 for a small first run.
  4. Click Start and wait for the result.
  5. Open the dataset and download rows, or read them through the API.

Empty input starts an example search for bluetooth earbuds in MY, capped at three rows. It is a real, billable run. Keywords alone select search; seller keys without keywords select shopcatalog. Other discovery modes must be selected explicitly.

Use discoveryMode=search with up to 20 keywords. pages permits one to three search pages per keyword.

Site inventory

Use sitemap without keywords. Keep enrichDetails=true and enrichMaxItems above zero. Only products with confirmed details are returned; their keyword is __sitemap__, not a search match.

Search and inventory

Use both with keywords. Inventory can supplement search results when the row and detail limits still allow it.

Seller profiles

Use sellers with optional sellerKeys. Without keys, sellers are discovered from the site's seller inventory.

Live commerce

Use live without keywords to request rooms and recommended presenters. These are not product rows.

Storefront catalog

Use shopcatalog for store metadata and in-shop categories. Supply sellerKeys to select shops; otherwise shops are discovered.

Storefront products

Use shopItems with optional sellerKeys for products sold by those shops, rather than category rows.

What to fill in

FieldWhat to enterDefault
keywordsUp to 20 search phrasesEmpty; example when no target
sellerKeysStorefront keys, such as itelEmpty
marketPH, SG, MY, TH, VN, IDMY
discoveryModeOne of the seven modes abovesearch
pagesSearch pages per keyword, 1–31
maxItemsRows per keyword or explicit seller key, 1–20070; form prefill 3
minItemsPerPageMinimum accepted results per search page, 1–401
enrichDetailsAdd available product detailstrue
enrichMaxItemsProducts to enrich, 0–103
includeReviewsSeparate buyer-review rowsfalse
maxReviewsPerItemReviews per product, 0–505
includeSellerInfoAdd seller informationfalse
includeShopProfileAdd shop profile; combine with seller informationfalse
includeSellerItemReviewsAdd shop-wide product-review informationfalse
maxSellerItemReviewsShop review page size, 1–5010
includePcReviewListAdd available extended product-review informationfalse
maxPcReviewListExtended review page size, 1–505
includeSellerReviewsAdd available seller-service reviewsfalse
maxSellerReviewsSeller-service review page size, 1–505
includeShopNavBadgesAdd available storefront badgesfalse
includeSeoInnerLinkAdd related product-page linksfalse
includeItemQAAdd available product questions and answersfalse
maxItemQAQuestion page size, 1–505
includeDetailAsyncAdd available voucher and gift-offer fieldsfalse
detailAsyncTypesComma-separated offer types; empty uses standard typesEmpty
includeMultiBuyAdd available bundle-offer fieldsfalse
sitemapBucketsInventory groups to inspect, 1–83
sitemapMaxUrlsInventory URL limit, 1–1000200
maxRetriesPerKeywordRetries after recoverable failures, 0–31
requestTimeoutSecsPer-keyword time allowance, 15–120 seconds90

Search:

{"keywords":["bluetooth earbuds"],"market":"MY","maxItems":3}

Inventory:

{"discoveryMode":"sitemap","market":"MY","maxItems":3,"enrichDetails":true,"enrichMaxItems":3}

Search and inventory:

{"discoveryMode":"both","keywords":["charger"],"market":"PH","maxItems":5}

Seller profiles:

{"discoveryMode":"sellers","sellerKeys":["itel"],"market":"PH","maxItems":3}

Live commerce:

{"discoveryMode":"live","market":"PH","maxItems":3}

Storefront catalog:

{"discoveryMode":"shopcatalog","sellerKeys":["itel"],"market":"PH","maxItems":3}

Storefront products:

{"discoveryMode":"shopItems","sellerKeys":["itel"],"market":"PH","maxItems":3}

maxItems is the canonical row limit; maxResults and limit are aliases. keyword, q and query map to keywords. Close field-name misspellings are corrected; other unknown fields are ignored with a note. Out-of-range numbers are clamped; invalid optional choices fall back to defaults.

Every run records input interpretation in INPUT_REPORT in the default key-value store. Unusable input fails before any row charge with a message such as INVALID_INPUT: market — use one of: ID, MY, PH, SG, TH, VN.

Output example

{
"rowType": "product",
"id": "1234567890",
"itemId": "1234567890",
"keyword": "bluetooth earbuds",
"market": "MY",
"title": "Wireless earbuds with charging case",
"productUrl": "https://www.lazada.com.my/products/pdp-i1234567890.html",
"price": "RM39.90",
"currencyCode": "MYR",
"sellerName": "Example Shop",
"ratingScore": 4.7,
"reviewCount": 120,
"capturedAt": "2026-10-24T08:00:00+00:00"
}

Export the dataset as JSON, CSV, Excel, XML, RSS or an HTML table. Optional nested fields are easier to preserve in JSON.

Why use this Lazada scraper?

  • Pay per delivered row. Product, review and discovery rows use the same price.
  • Compare several inputs. Submit multiple keywords or seller keys in one run.
  • Keep missing values honest. Unavailable fields remain empty or absent.
  • Inspect failures. Check the status message, RUN_SUMMARY and, when present, ERROR_SUMMARY.
  • Keep delivered data. Rows already written to the dataset remain available. Results not yet written when a run stops are not guaranteed.
  • No proxy setup. You do not need to set up proxies.

How much does it cost to scrape Lazada?

The Actor uses pay-per-event pricing. Each delivered row triggers one result-item event. Platform usage is included in these prices.

Apify planStart-event pricePrice per rowPrice per 1,000 rows
FreeNot specified$0.0019$1.90
StarterNot specified$0.0019$1.90
ScaleNot specified$0.0019$1.90
BusinessNot specified$0.0019$1.90

The available price schedule does not specify a separate start-event amount. Check the Store pricing panel before starting; the calculation below does not assume an additional fee or claim one is zero.

maxItems applies to each keyword or explicit seller key, not just products: reviews and other rows share that input's allowance. The default is 70, with a maximum of 200. Larger requests are collected in parts, subject to source availability and the run's remaining budget.

Free Apify plan runs are capped at 200 rows, with 10 total runs of this Actor. These are developer-set limits. The whole run also stops at Maximum cost per run (maxTotalChargeUsd in the API).

Example: at the default 1024 MB memory setting, one keyword delivering three rows produces 3 × $0.0019 = $0.0057 in row charges. Memory does not change this listed per-row price. Count review rows in the three, rather than adding them outside the limit.

What happens when the run timeout is too short

Some Lazada collections, such as several keywords with includeReviews: true, a sitemap run with detail enrichment or a large maxItems, can take longer than the run timeout you chose. In that case the run does not fail. It ends early with the status message "Queued on the collection backend; this run will resume automatically when results are ready (about N s)." and shows as ABORTED for a while.

When the results are ready, the same run starts again by itself, reports "Resumed: delivering N rows.", writes the rows to the same dataset and finishes as SUCCEEDED. Rows that were already delivered are skipped, so no row is delivered or charged twice. You do not need to start another run.

  • This can happen at most 3 times per run. To avoid it, keep the default run timeout rather than choosing a very short one.
  • The synchronous API endpoints (run-sync, run-sync-get-dataset-items) wait at most 300 seconds and can return an empty dataset while the run is paused. For larger jobs, start the run asynchronously and read the dataset after the run reaches SUCCEEDED, or use a webhook on the "succeeded" event.

Use with AI agents and the API

Apify MCP server (Claude, ChatGPT, Cursor, VS Code)

Add this Actor to an MCP client that supports remote servers:

https://mcp.apify.com?tools=lentic_clockss/lazada-ph-search-results-collector

Sign in with Apify through OAuth, or send Authorization: Bearer <YOUR_APIFY_TOKEN>. The tool returns run and dataset identifiers; read rows with get-dataset-items. Clients without remote support can use npx @apify/actors-mcp-server --tools lentic_clockss/lazada-ph-search-results-collector with APIFY_TOKEN set.

Example prompt: “Find three Bluetooth-earbud listings on Lazada Malaysia and return their titles, prices and product links.”

Apify API

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("lentic_clockss/lazada-ph-search-results-collector").call(
run_input={"keywords": ["bluetooth earbuds"], "market": "MY", "maxItems": 3}
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('lentic_clockss/lazada-ph-search-results-collector').call({
keywords: ['bluetooth earbuds'], market: 'MY', maxItems: 3,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Over HTTP, send input JSON to POST https://api.apify.com/v2/acts/lentic_clockss~lazada-ph-search-results-collector/runs with the same authorization header. After completion, read GET https://api.apify.com/v2/datasets/<datasetId>/items?format=json.

Standby HTTP endpoint

Base URL: https://lentic-clockss--lazada-ph-search-results-collector.apify.actor

Method and routeResponse
GET /Service information
GET /healthService health
GET /input-exampleExample input
GET /openapi.jsonAPI description

These are read-only information routes, not collection routes. Start collection through a normal Actor run using the API above.

Integrations

Use the Integrations tab for Google Sheets, Make, Zapier, n8n, Slack, Airtable or a webhook. Schedule repeated runs with Apify Schedules.

FAQ

This Actor collects public data. You are responsible for complying with applicable terms and data-protection law. Processing personal data requires a lawful basis; public visibility alone does not settle that requirement.

Why did my run end as ABORTED?

ABORTED alone does not identify the cause. Check the run log and status message to see whether the run was stopped manually or by an automation. Do not assume it completed collection or will restart automatically.

How many results can I get?

Set maxItems from 1 to 200 per input. The cost cap and Free-plan limits also apply. Search has at most three pages per keyword, so a requested count is a ceiling, not a promise.

Why are some fields empty?

Lazada may omit a value, a product may lack an offer, or optional details may be unavailable. Enabling a field does not guarantee the source provides it.

Why is the dataset empty?

A keyword may have no usable results, or collection may fail. Check the selected market, reduce minItemsPerPage to 1, and read the status message and saved summary before retrying.

Are inventory results keyword matches?

No. Inventory rows use keyword=__sitemap__. Search can also return inventory fallback rows marked pageType=sitemap_fallback; exclude them when you need strict keyword matches.

Can I get seller contact details?

The output can include seller organization and regional location fields, but not individual seller phones, emails, street addresses or coordinates. A platform_hotline phone entry belongs to Lazada, not the seller.

Are reviews included automatically?

No. Set includeReviews=true for separate buyer-review rows. maxReviewsPerItem and the shared maxItems allowance both apply. Sitemap-only products do not receive this review add-on.

Limitations

  • Only PH, SG, MY, TH, VN and ID are selectable; each run selects one market.
  • Product details are bounded enrichment, not unrestricted product-page crawling.
  • Sitemap output depends on confirmed details and enrichMaxItems, not just the number of discovered URLs.
  • Optional review, shop and offer fields vary by mode and availability; they are not guaranteed for every row.
  • Prices, availability and rankings are snapshots and can change after collection.
  • A stopped run may lose results that had not yet reached the dataset.

More e-commerce and marketplace scrapers from the same publisher:

Browse all of our scrapers at apify.com/lentic_clockss.

Support

Report a problem or request a field through the Issues tab of this Actor's page. Include the run ID and the input you used.