# Lazada Scraper - Scrape Products & Prices (`logiover/lazada-scraper`) Actor

Lazada product scraper & unofficial API alternative. Scrape prices, ratings, sellers across SEA without login; export Lazada data to CSV or JSON.

- **URL**: https://apify.com/logiover/lazada-scraper.md
- **Developed by:** [Logiover](https://apify.com/logiover) (community)
- **Categories:** E-commerce, Business, Marketing
- **Stats:** 10 total users, 1 monthly users, 98.6% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.99 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Lazada Scraper — Products, Prices, Ratings & Sellers (No API)

![Apify Actor](https://img.shields.io/badge/Apify-Actor-00A67E?logo=apify\&logoColor=white) ![No API key](https://img.shields.io/badge/No%20API%20key-required-2ea44f) ![Pay per result](https://img.shields.io/badge/Pricing-Pay%20per%20result-1C7ED6) ![Ecommerce](https://img.shields.io/badge/Category-Ecommerce-8B5CF6) ![Export](https://img.shields.io/badge/Export-JSON%20%7C%20CSV%20%7C%20Excel-F59E0B)

Scrape product listings from **Lazada**, one of Southeast Asia's largest ecommerce marketplaces (Alibaba Group) — across **six countries: Malaysia, Singapore, Indonesia, Philippines, Vietnam and Thailand**. Feed it **search keywords** or full **category / search-result URLs** and pull **product name, price & discount, original price, star rating, review count, units sold, seller, brand, location, stock & sponsored flags, image and a direct product link** in clean structured JSON. **No login, no cookies, no API key.**

> ### 🏆 Why this Lazada scraper?
>
> **20+ fields per product** · **hundreds of products per search** · **6 SEA marketplaces** · country-matched residential proxy · export to JSON / CSV / Excel. The unofficial **Lazada API alternative** for price monitoring, market research, product sourcing and competitor tracking — with **zero account risk**.

***

### ✨ What this Actor does / Key features

- 🛒 **Product-level catalog data** — name, numeric `price` + display `priceShow`, `originalPrice`, `discount` %, currency, rating, reviews, units sold, seller, brand and image for every listing.
- 🌏 **6 Southeast Asian marketplaces** — Malaysia (lazada.com.my), Singapore (lazada.sg), Indonesia (lazada.co.id), Philippines (lazada.com.ph), Vietnam (lazada.vn) and Thailand (lazada.co.th).
- 🔎 **Keyword or URL input** — search by terms like `phone`, `wireless earbuds` or `air fryer`, paste full Lazada category / search URLs, or mix both in one run.
- 📄 **Deep pagination** — each term or category URL is paginated to pull **hundreds of products per search**.
- 💲 **Full pricing picture** — current and original price, discount percentage and marketplace currency, so you can track deals and price drops.
- 📊 **Demand signals** — average `ratingScore`, `review` count and `sold` units (numeric + display) to size demand per product and category.
- 🏷️ **Seller & brand data** — seller name & ID, brand name and seller/shipping location for assortment and competitor analysis.
- 🚦 **Stock & sponsored flags** — `inStock` and `isSponsored` to filter live inventory and identify paid placements.
- 🛡️ **Login-free & safe** — reads only public catalog data over a country-matched residential proxy; **no Lazada account or cookies ever used or risked**.
- 📤 **Any format** — export to JSON, CSV, Excel or HTML, or pull via the Apify API and webhooks.

### 🚀 Quick start (3 steps)

1. **Configure** — add one or more **search terms** and/or paste Lazada **category / search URLs**, then pick the **marketplace country** (`MY`, `SG`, `ID`, `PH`, `VN` or `TH`). Set `maxItemsPerTerm` and `maxResults`.
2. **Run** — click **Start**. The Actor paginates each query over a country-matched residential proxy and streams products into your dataset.
3. **Get your data** — open the **Output** tab and export to **JSON, CSV, Excel or HTML**, or pull it via the Apify API.

### 📥 Input

Provide at least one `searchTerms` keyword **or** a `categoryUrls` entry. Everything else is optional.

#### Example — keyword search on the Malaysia marketplace

```json
{
  "searchTerms": ["phone", "wireless earbuds"],
  "country": "MY",
  "maxItemsPerTerm": 300,
  "maxResults": 1000
}
```

#### Example — scrape a Lazada category page directly (Thailand)

```json
{
  "categoryUrls": ["https://www.lazada.co.th/shop-mobiles/"],
  "country": "TH",
  "maxItemsPerTerm": 500,
  "maxResults": 500
}
```

#### Example — multi-keyword sourcing run on the Philippines marketplace

```json
{
  "searchTerms": ["air fryer", "coffee machine", "robot vacuum"],
  "country": "PH",
  "maxItemsPerTerm": 200,
  "maxResults": 600,
  "proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "PH" }
}
```

| Field | Type | Description |
|-------|------|-------------|
| `searchTerms` | array | Keywords to search on Lazada (e.g. `phone`, `wireless earbuds`, `air fryer`). Each term is paginated independently. Provide this **or** `categoryUrls`. |
| `categoryUrls` | array | Optional. Full Lazada category or search-result URLs to scrape directly (e.g. `https://www.lazada.com.my/shop-mobiles/`). Use instead of, or together with, search terms. |
| `country` | string | Marketplace to scrape: `MY`, `SG`, `ID`, `PH`, `VN` or `TH`. The residential proxy is auto-matched to this country, which is decisive for staying unblocked. Default `MY`. |
| `maxItemsPerTerm` | integer | Maximum products to collect per search term / category URL (paginated). Default `200`. |
| `maxResults` | integer | Global cap on products saved across all terms/URLs. `0` = unlimited. Default `100`. |
| `proxyConfiguration` | object | Proxy settings. Lazada requires **country-matched RESIDENTIAL** proxies — leave the default; the country auto-aligns to the selected marketplace. |

> **Finding a category URL:** open the Lazada site for your country, browse to a category or run a search, then copy the full URL from the address bar into `categoryUrls`. Make sure the URL's domain matches the `country` you selected.

### 📤 Output

One flat row per product, exportable to JSON, CSV, Excel or HTML. Here is a trimmed sample record:

```json
{
  "name": "Xiaomi Redmi Note 13 Pro 5G 8GB+256GB Smartphone",
  "price": 899,
  "priceShow": "RM899.00",
  "originalPrice": 1299,
  "originalPriceShow": "RM1,299.00",
  "discount": "-31%",
  "currency": "MYR",
  "ratingScore": 4.8,
  "review": 1243,
  "sold": 5200,
  "itemSoldCntShow": "5.2K sold",
  "sellerName": "Xiaomi Official Store",
  "sellerId": "1000432187",
  "brandName": "Xiaomi",
  "location": "Selangor",
  "inStock": true,
  "isSponsored": false,
  "image": "https://my-live.slatic.net/p/....jpg",
  "itemUrl": "https://www.lazada.com.my/products/....html",
  "country": "MY",
  "searchTerm": "phone",
  "scrapedAt": "2026-07-06T08:00:00.000Z"
}
```

<details>
<summary><b>📋 Full field reference (click to expand)</b></summary>

| Field | Description |
|-------|-------------|
| `name` | Product title |
| `price` / `priceShow` | Numeric price and display string (e.g. `RM899.00`) |
| `originalPrice` / `originalPriceShow` | Pre-discount price (numeric and display) |
| `discount` | Discount percentage (e.g. `-31%`) |
| `currency` | Marketplace currency code (e.g. `MYR`, `SGD`, `IDR`, `PHP`, `VND`, `THB`) |
| `ratingScore` | Average star rating |
| `review` | Number of reviews |
| `sold` / `itemSoldCntShow` | Units sold — numeric and display (e.g. `5.2K sold`) |
| `sellerName` / `sellerId` | Seller identity |
| `brandName` | Product brand |
| `location` | Seller / shipping location |
| `inStock` | Stock availability flag |
| `isSponsored` | Sponsored-listing flag |
| `image` | Main product image URL |
| `itemUrl` | Direct product link |
| `country` | Marketplace the product was scraped from |
| `searchTerm` | Search term that produced the row (null for category-URL mode) |
| `sourceUrl` | Exact Lazada catalog/search page URL fetched for the row |
| `scrapedAt` | Scrape timestamp (ISO 8601) |

</details>

### 💡 Use cases

- **Price monitoring** — track competitor and own-listing prices, discounts and price drops across SEA markets on a schedule.
- **Market & demand research** — read `sold` counts and `ratingScore` to size demand per category and country.
- **Seller & brand benchmarking** — compare assortment, pricing and discounts against rivals by seller and brand.
- **Product sourcing & dropshipping** — find trending items and best-sellers per marketplace to source and resell.
- **Deal & discount tracking** — filter by `discount` and `originalPrice` to surface the biggest markdowns.
- **Datasets & analytics** — build labelled product datasets per category and country for BI or ML.

### 👥 Who uses it

Ecommerce sellers & brands · price-monitoring and repricing teams · dropshippers & product sourcers · market researchers & analysts · data scientists building SEA product datasets · agencies tracking competitor assortment and pricing across Southeast Asia.

### 💰 Pricing

This Actor runs on a simple **pay-per-result** model — you pay for the products you extract, with no separate platform fees to calculate. Try it on the **free tier** first, then scale up. See the **Pricing** tab on this page for the current rate.

### ❓ Frequently Asked Questions

**Is it legal to scrape Lazada?**
The Actor collects only publicly available product listing data. You are responsible for using the data in compliance with Lazada's Terms of Use, applicable laws and any bulk-access limits.

**Does Lazada have a public API?**
Lazada has no open public API for bulk product catalog access. This Actor reads Lazada's public catalog data directly (the `mods.listItems` JSON) over a country-matched residential proxy, giving you structured product data with **no developer key, no login and no cookies**.

**Is this a Lazada API alternative?**
Yes. Because Lazada offers no public product API for bulk catalog access, this Actor works as the practical unofficial **Lazada API alternative** — it returns the same listing fields (price, rating, sold count, seller) as clean structured records.

**Do I need an API key or a login?**
No. There is no Lazada account, cookie or API key required — only an Apify account. No Lazada account is ever used or put at risk.

**Can I scrape Lazada without an API or login?**
Yes. Just enter search terms or category URLs and pick a marketplace country. The Actor reads public catalog data over a country-matched residential proxy, so no Lazada account, cookies or developer key are needed.

#### Which countries and marketplaces are supported?

All six Lazada marketplaces: Malaysia (lazada.com.my), Singapore (lazada.sg), Indonesia (lazada.co.id), Philippines (lazada.com.ph), Vietnam (lazada.vn) and Thailand (lazada.co.th). The proxy country is matched automatically to the marketplace you pick.

#### Why does it need residential proxies?

Lazada runs on Alibaba anti-bot infrastructure that walls datacenter traffic. A country-matched residential proxy is decisive for staying unblocked, so it is the default and is set up for you.

#### How many products can I scrape per search?

Hundreds per term. The Actor paginates the result pages, and you control depth with `maxItemsPerTerm` per query and the global `maxResults` cap.

#### Can I scrape a Lazada category page instead of a keyword?

Yes. Paste full Lazada category or search-result URLs into `categoryUrls` and the scraper paginates each one to pull every product on that category. Make sure the URL's country matches your selected marketplace.

#### How do I export Lazada product data to CSV or JSON?

Run the Actor, then open the **Storage / Dataset** tab and download the results as **CSV, JSON, Excel or HTML**, or fetch the same dataset programmatically via the Apify API and webhooks (Google Sheets, BigQuery, your warehouse).

#### How much data can I get?

You can scrape hundreds of products per search term or category URL, across multiple terms in a single run. Raise `maxItemsPerTerm` and `maxResults`, and add more terms or category URLs to build a market-wide, multi-country dataset.

### 🔗 More ecommerce & marketplace scrapers by logiover

Building a cross-platform product dataset? Pair Lazada with the rest of the ecommerce & marketplace suite:

| Platform | Actor |
|---|---|
| 🇻🇳 Tiki | [Tiki.vn Product Scraper](https://apify.com/logiover/tiki-vn-scraper) |
| 🇮🇩 Tokopedia | [Tokopedia Product Scraper](https://apify.com/logiover/tokopedia-product-scraper) |
| 🌍 Jumia | [Jumia Product Scraper](https://apify.com/logiover/jumia-product-scraper) |
| 🛒 Etsy | [Etsy Scraper](https://apify.com/logiover/etsy-scraper) |
| 🇯🇵 Mercari | [Mercari Japan Scraper](https://apify.com/logiover/mercari-japan-scraper) |
| 🇨🇳 Made-in-China | [Made-in-China Supplier Scraper](https://apify.com/logiover/made-in-china-supplier-scraper) |
| 🇮🇳 TradeIndia | [TradeIndia Supplier Scraper](https://apify.com/logiover/tradeindia-supplier-scraper) |
| 🕵️ Shopify | [Shopify Competitor Spy](https://apify.com/logiover/shopify-competitor-spy) · [Shopify Merchant Scraper](https://apify.com/logiover/shopify-merchant-scraper) |
| 🇫🇷 Leboncoin | [Leboncoin Scraper](https://apify.com/logiover/leboncoin-scraper) |
| 🗂️ Craigslist | [Craigslist Scraper](https://apify.com/logiover/craigslist-scraper) |
| ⭐ Trustpilot | [Trustpilot Reviews Scraper](https://apify.com/logiover/trustpilot-reviews-scraper) |

👉 Browse all **[logiover scrapers on Apify Store](https://apify.com/logiover)** — 180+ actors across real estate, jobs, crypto, social media & B2B data.

### ⏰ Scheduling & integration

Schedule this Actor on Apify to track Lazada prices, discounts and demand daily or weekly across any of the six SEA marketplaces. Export results to JSON, CSV or Excel, sync to Google Sheets or BigQuery, or push to your database, BI tools and webhooks through the Apify API. Connect it to **Make, n8n or Zapier** to build automated price-monitoring and repricing pipelines.

### ⭐ Support & feedback

Found a bug or need an extra field? Open an issue on the **Issues** tab — response is usually fast. If this Actor saves you time, a **★★★★★ review** on the Store page genuinely helps and is hugely appreciated. 🙏

### ⚖️ Legal

This Actor extracts only publicly available data and is intended for legitimate research, analytics and price-monitoring use. You are responsible for complying with Lazada's Terms of Use, applicable laws and any bulk-access limits.

***

### 📝 Changelog

#### 2026-08-01

- Completed the August 2026 full health check: verified empty/programmatic default, Console UI default, and two source-informed alternative inputs on Apify.
- Confirmed successful live execution, non-empty structured output, dataset-field/type integrity, and logical sample quality within the 5-minute quality window.

#### 2026-08-01 — Health-check remediation

- August 2026 monthly health-check remediation is in progress; this build contains fixes verified from empty/default, Console-default, targeted live probes, or field-level semantic review.
- Fixed compact K/M/B sold and review counts and made sourceUrl the actual fetched Lazada catalog URL instead of a search label.
- The final four-input matrix verdict will be appended after post-build cloud revalidation.

#### 2026-07-06

- ✨ README overhaul: keyword-rich intro, per-country example scenarios, full field reference, ecommerce & marketplace cross-links, and clearer quick-start.

#### 2026-07-01

- Maintenance pass: re-verified end-to-end on live data and confirmed successful runs within the 5-minute quality window on the default input.
- Sharpened Store metadata (SEO title & description) and expanded the FAQ with high-intent, long-tail questions for easier discovery in Google and Apify Store search.
- Added ready-to-run example tasks that cover common real-world use cases.

#### 2026-06-15

- Fixed TIMED-OUT/0-results: replaced Playwright navigation of the JSON endpoint with a got-scraping fetch that rotates residential IPs past the soft anti-bot wall; lighter node base image.

#### 2026-06-07

- Docs: added coverage for Lazada API alternative, scraping without login, and exporting Lazada product data to CSV/JSON.

#### 2026-06-05

- Reliability fix: results are no longer dropped by strict output validation - runs complete cleanly at high volume.
- Stability & performance hardening; fresh rebuild.

#### 2026-06-04

- Verified live & refreshed build - reliability/maintenance pass.

# Actor input Schema

## `searchTerms` (type: `array`):

Keywords to search on Lazada (e.g. 'phone', 'wireless earbuds', 'air fryer'). Each term is paginated up to the per-term limit. Leave empty to browse popular products.

## `category` (type: `string`):

Quick-pick a popular category instead of typing a search term. Ignored if search terms or category URLs are provided.

## `categoryUrls` (type: `array`):

Optional. Full Lazada category or search-result URLs to scrape directly (e.g. https://www.lazada.com.my/shop-mobiles/). Use instead of, or together with, search terms.

## `country` (type: `string`):

Which Lazada marketplace to scrape. The residential proxy is automatically matched to this country, which is decisive for staying unblocked.

## `sortBy` (type: `string`):

Ordering of results within each search.

## `maxItemsPerTerm` (type: `integer`):

Maximum products to collect per search term / category URL (paginated).

## `maxResults` (type: `integer`):

Global cap on products saved across all terms. Default 100 keeps runs fast & cheap; raise it to pull more. 0 = unlimited.

## `proxyConfiguration` (type: `object`):

Lazada requires country-matched RESIDENTIAL proxies. Leave the default — the country is auto-aligned to the selected marketplace.

## Actor input object example

```json
{
  "searchTerms": [
    "phone",
    "wireless earbuds"
  ],
  "category": "",
  "categoryUrls": [
    "https://www.lazada.com.my/shop-mobiles/"
  ],
  "country": "MY",
  "sortBy": "popularity",
  "maxItemsPerTerm": 100,
  "maxResults": 100,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "MY"
  }
}
```

# Actor output Schema

## `results` (type: `string`):

All records extracted by this run. Open the Dataset tab to browse, filter, and export as CSV, JSON, or Excel.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "maxItemsPerTerm": 100,
    "maxResults": 100,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "MY"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("logiover/lazada-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "maxItemsPerTerm": 100,
    "maxResults": 100,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "MY",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("logiover/lazada-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "maxItemsPerTerm": 100,
  "maxResults": 100,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "MY"
  }
}' |
apify call logiover/lazada-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=logiover/lazada-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/lCH1chq05WggGA4Ad/builds/kd4G5JEAH7pvn1zrx/openapi.json
