# Lazada Scraper \[Only $1💰] | SEA Prices | Reviews | Data (`ahmed_jasarevic/lazada-scraper`) Actor

Monitor Lazada prices and extract product, seller and review data across six Southeast Asia markets (Singapore, Malaysia, Thailand, Indonesia, Philippines, Vietnam). Track price, original price, discount, rating, units sold, seller, brand and LazMall flag per keyword. Pay only per result.

- **URL**: https://apify.com/ahmed\_jasarevic/lazada-scraper.md
- **Developed by:** [Ahmed Jasarevic](https://apify.com/ahmed_jasarevic) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.85 / 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.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Lazada Scraper: Products, Reviews & Prices Across 6 Southeast Asia Markets

Extract **Lazada product data, prices and customer reviews** across Singapore, Malaysia, Thailand, Indonesia, Philippines and Vietnam in a single run - the practical Lazada API alternative for price monitoring, competitor research and product database building, billed at only $0.001 per result.

### Main Use Cases

- **Lazada price monitoring** - track price, original price and discount over time to detect price drops, seller repricing and MAP violations.
- **Competitor and market research** - benchmark sellers, brands, ratings and units sold per keyword across six SEA markets.
- **Product database building** - assemble a structured product catalog (title, price, rating, review count, seller, brand, LazMall flag) for BI dashboards, Excel exports or ML pipelines.
- **Review mining** - scrape customer reviews into a dedicated dataset for sentiment analysis and product research.
- **Cross-border price comparison** - spot regional price gaps for the same product across SGD, MYR, THB, IDR, PHP and VND markets.
- **Seasonal sale analytics** - quantify discount depth during Lazada's 9.9, 11.11 and 12.12 mega-sale windows.

### How It Works

Pick **Search by keyword** mode (one or more queries, run on every selected country site) or **Crawl specific URLs** mode (paste Lazada search or product URLs - the country is auto-detected from the domain). The actor calls Lazada's own internal JSON API from lightweight HTTP clients - no browser rendering - so runs are fast, cheap and return clean structured records.

Products are written to the **default dataset**. If you enable **Fetch product reviews**, each customer review becomes its own record in a **separate, dedicated Reviews dataset**, keyed back to its product via `itemId` and `productUrl` - products and reviews never mix. Lazada blocks datacenter IPs, so the proxy is pre-set to **Apify Residential**, which is required for reliable runs.

### Monitor Lazada Prices Across Southeast Asia

Every listing returns `price`, `originalPrice`, `discount` and `unitsSold` in the local currency of each market, so you can run the same keywords on a schedule and compare snapshots over time. Use `itemId` as the natural join key across runs: a price change, a discount deepening, a stock flip or a seller swap all show up as clean diffs between datasets. Run daily for general price tracking and hourly during mega-sale windows (9.9 in September, 11.11 in November, 12.12 in December), when discounts of 30-60% on electronics and appliances are common and prices move fast.

### Build a Product Database Without a Lazada API

Lazada has no open public API for bulk product-catalog access - the seller-facing Lazada Open Platform requires registration and approval and does not expose search-result or marketplace data to researchers. This actor is the practical alternative: it returns the same fields you would want from a catalog API (price, original price, discount, rating, review count, units sold, seller, brand, LazMall status, images, product URL) as structured JSON with no developer key, no login and no cookies. Export the dataset as JSON, CSV, Excel or HTML and feed it into your warehouse, spreadsheet or analytics stack. Deduplicate across keywords and markets with `itemId`, which stays stable per market.

### Compare Shopee vs Lazada Market Data

Southeast Asia's ecommerce market is dominated by Shopee, Lazada and TikTok Shop (together ~98% of platform GMV in 2025), and Lazada retains the region's highest average order value with its strongest position in electronics and premium branded categories through LazMall. This actor gives you the Lazada side of that picture: run the same keyword in all six markets, then join with a Shopee scraper on normalized product keys (or `itemId` within Lazada) to compare price positioning, discount depth, seller dominance and LazMall vs. non-LazMall availability per market.

### Input

| Field | Type | Required | Default | Notes |
|-------|------|----------|---------|-------|
| `mode` | string (`search` / `url`) | **Yes** | `search` | `search` runs the `queries` on each selected country; `url` crawls the exact Lazada URLs provided. |
| `country` | array of string (`SG` `MY` `TH` `ID` `PH` `VN`) | **Yes** | `["SG"]` | Lazada country sites (lazada.sg, .com.my, .co.th, .co.id, .com.ph, .vn). Any subset works; each query runs in every selected market. |
| `queries` | array of string | No | `["headphone"]` | Keywords to search in **search** mode, e.g. `"wireless earbuds"`, `"iphone 15"`. |
| `urls` | array of string | No | - | Lazada URLs to crawl in **url** mode: search URLs (`/catalog/?q=...`) or product URLs (`/products/...-i<id>.html`). Country is detected from the domain; URLs outside the selected countries are skipped. |
| `maxItemsPerKeyword` | integer | No | `40` | Max products per keyword per country (search mode) or per URL (url mode). Lazada's API returns up to 80 products per page. |
| `minRating` | integer | No | `0` | Drop products whose average rating is below this value (0-5). `0` keeps everything. |
| `fetchReviews` | boolean | No | `false` | Scrape each product's top customer reviews into the separate **Reviews dataset**. |
| `maxReviewsPerProduct` | integer | No | `10` | Hard cap on reviews scraped per product. Lazada's reviews API returns ~5 reviews per page, so larger caps crawl more pages. |
| `reviewConcurrency` | integer | No | `3` | How many products fetch reviews in parallel (1-5). Each product uses its own sticky proxy IP; lower to 1 if you see empty reviews without a residential proxy. |
| `proxy` | object | No | `{"useApifyProxy": true, "groups": ["RESIDENTIAL"]}` | Apify proxy picker. Lazada blocks datacenter IPs, so **Apify Residential is required** for reliable runs and especially for reviews. |

### Output

The actor writes to **two separate datasets**, each with its own tab in the run's Output view:

- **Products dataset** (default) - one record per product listing.
- **Reviews dataset** - one record per customer review, only when **Fetch product reviews** is enabled.

#### Products dataset fields

| Field | Description |
|-------|-------------|
| `market` / `currency` | Market country code (`SG`, `MY`, `TH`, `ID`, `PH`, `VN`) and its currency. |
| `keyword` | The query (or URL-derived query) that returned this product. |
| `itemId` / `skuId` | Lazada product and SKU identifiers - use `itemId` as the stable key for dedup and cross-run joins. |
| `title` | Product name. |
| `price` / `priceShow` | Current price (numeric / formatted string with currency symbol). |
| `originalPrice` / `originalPriceShow` | Pre-discount price (numeric / formatted). |
| `discount` | Discount label, e.g. `"62% Off"`. |
| `ratingScore` | Average product rating (0-5). |
| `reviewCount` | Number of reviews on the listing. |
| `unitsSold` | Units sold label, e.g. `"60 sold"` (or `"1.7K sold"`). |
| `sellerName` / `sellerId` | Seller identity - useful for seller research and brand benchmarking. |
| `brand` / `brandId` | Brand identity. |
| `isLazMall` | Whether the listing is a LazMall (official / verified brand) product. |
| `inStock` | Stock availability. |
| `location` | Ship-from location shown by Lazada. |
| `image` / `images` | Main product image URL and thumbnail array. |
| `productUrl` | Canonical product page URL. |
| `fetchedAt` | ISO timestamp when the record was scraped. |

#### Reviews dataset fields

| Field | Description |
|-------|-------------|
| `reviewId` | Review ID. |
| `buyerName` | Reviewer (masked) name. |
| `rating` | Star rating 1-5. |
| `reviewTime` | Review date. |
| `skuInfo` | Purchased variant (color / size family) when available. |
| `likeCount` | Number of likes on the review. |
| `content` | Review text. |
| `media` | Array of attached photos / videos (cover URL + optional video URL). |
| `productTitle` / `productUrl` / `itemId` / `sellerId` | Link back to the reviewed product. |
| `market` / `currency` / `keyword` | Present when the product came from a search. |
| `fetchedAt` | ISO timestamp when the review was scraped. |

### Example Input

Search mode - two keywords across Singapore and Malaysia:

```json
{
  "mode": "search",
  "country": ["SG", "MY"],
  "queries": ["wireless earbuds", "smartphone"],
  "maxItemsPerKeyword": 40,
  "minRating": 0,
  "fetchReviews": false,
  "proxy": { "useApifyProxy": true, "groups": ["RESIDENTIAL"] }
}
```

URL mode with reviews - crawl an exact search page and one product page:

```json
{
  "mode": "url",
  "country": ["SG"],
  "urls": [
    "https://www.lazada.sg/catalog/?q=headphone",
    "https://www.lazada.sg/products/pdp-i2866897728.html"
  ],
  "maxItemsPerKeyword": 40,
  "fetchReviews": true,
  "maxReviewsPerProduct": 10,
  "reviewConcurrency": 3,
  "proxy": { "useApifyProxy": true, "groups": ["RESIDENTIAL"] }
}
```

### Example Output

Products dataset record:

```json
{
  "market": "SG",
  "currency": "SGD",
  "keyword": "headphone",
  "itemId": 3465291594,
  "skuId": 22969904653,
  "title": "Tune 710 BT Wireless Bluetooth Headphones Over-Ear Noise Canceling Wired Earphones",
  "price": 15.15,
  "priceShow": "$15.15",
  "originalPrice": 40,
  "originalPriceShow": "",
  "discount": "62% Off",
  "ratingScore": 4.88,
  "reviewCount": 17,
  "unitsSold": "60 sold",
  "sellerName": "Orin 3C Fan",
  "sellerId": 1154457080,
  "brand": "No Brand",
  "brandId": 39704,
  "isLazMall": false,
  "inStock": true,
  "location": "China",
  "image": "https://my-live-01.slatic.net/p/4d0204791fde0147d02a69ffb9d2aa03.jpg",
  "images": ["https://my-live-01.slatic.net/p/4d0204791fde0147d02a69ffb9d2aa03.jpg"],
  "productUrl": "https://www.lazada.sg/products/pdp-i3465291594.html",
  "fetchedAt": "2026-09-18T12:00:00.000Z"
}
```

Reviews dataset record (one row per review, stored in the separate Reviews dataset):

```json
{
  "market": "SG",
  "currency": "SGD",
  "keyword": "headphone",
  "itemId": 3465291594,
  "sellerId": 1154457080,
  "productUrl": "https://www.lazada.sg/products/pdp-i3465291594.html",
  "productTitle": "Tune 710 BT Wireless Bluetooth Headphones Over-Ear Noise Canceling Wired Earphones",
  "reviewId": 197816692097728,
  "buyerName": "j***e",
  "rating": 5,
  "reviewTime": "2026-06-04",
  "skuInfo": "Color Family:[NEW] Lunar Blue",
  "likeCount": 2,
  "content": "Excellent sound quality and the battery lasts for days. Highly recommended.",
  "media": [
    {
      "coverUrl": "https://sg-test-11.slatic.net/p/e19d531c72f388bd2a9045a9953200ab.jpg",
      "videoUrl": null,
      "mediaType": 1,
      "height": null,
      "width": null
    }
  ],
  "fetchedAt": "2026-09-18T12:00:00.000Z"
}
```

### Integrations & Automation

Because this is an Apify actor, every run output is available through standard platform integrations:

- **Apify API** - start runs and read datasets programmatically from any application.
- **Schedules** - run daily for price monitoring, weekly for catalog snapshots, or hourly during 9.9 / 11.11 / 12.12 sale windows. Recurring usage also improves the actor's Store recommendations.
- **Webhooks** - get notified when a run finishes and pipe results into your pipeline.
- **Data export** - download datasets as JSON, CSV, Excel or HTML directly from the run page.
- **MCP / AI agents** - call the actor from Claude, GPT or any MCP client to fetch Lazada product data on demand.

### Related Actors

- [Shopee Scraper](https://apify.com/gio21/shopee-scraper) - Shopee listings by keyword, category or URL across Brazil and Southeast Asia for price monitoring and seller intelligence.
- [Shopee Scraper - All In One](https://apify.com/xtracto/shopee-scraper) - Shopee product, search, category and shop data across multiple countries.
- [Shopee Product Scraper - Live Stock & Prices](https://apify.com/zen-studio/shopee-product-scraper) - live Shopee stock, price, discount, units sold and rating data across all 8 markets.
- [Lazada Scraper | All-In-One](https://apify.com/fatihtahta/lazada-scraper) - product data from multiple Lazada sites with optional review enrichment.
- [Lazada Scraper](https://apify.com/dtrungtin/lazada-scraper) - unofficial Lazada API for keyword- and category-based data extraction.

### FAQ

#### Is there a Lazada API?

There is no open public API for bulk product-catalog access. Lazada's seller-facing Open Platform exists for merchants but requires registration and approval, and it does not expose search-result or marketplace data for market research. This actor is the practical **Lazada API alternative**: it returns product, price and review data from all six Lazada storefronts as structured JSON, with no developer key, no login and no cookies.

#### How do I scrape Lazada product data?

Choose **Search by keyword** mode, pick one or more of the six country sites, add your queries (e.g. `wireless earbuds`, `smartphone`), optionally enable **Fetch product reviews**, and start the run. Results are written to the dataset as individual product records, ready to export as JSON, CSV or Excel. Use **Crawl specific URLs** mode when you already have exact Lazada search or product URLs.

#### Do I need proxies to scrape Lazada?

Yes - Lazada blocks datacenter IPs and gates its reviews API even harder than search. The actor defaults to the **Apify Residential** proxy (`useApifyProxy: true, groups: ["RESIDENTIAL"]`), which is required for reliable runs. Review requests automatically rotate residential IPs and retry with backoff up to 4 times per page.

#### How can I track Lazada price drops?

Run the same input on a schedule (daily is enough for most categories) and join consecutive datasets on `itemId`. Compare `price`, `originalPrice` and `discount` across snapshots to detect repricing, deepening discounts and stock flips. During mega-sale windows (9.9, 11.11, 12.12) prices move hourly, so run more frequently if you track campaign depth.

#### Can I scrape Lazada customer reviews?

Yes. Enable **Fetch product reviews** and each review becomes a record in the **separate Reviews dataset** with rating, text, author, date, variant and media, linked back to its product. Keep `maxReviewsPerProduct` low (10-20) unless you need deep review mining, and keep the residential proxy on - the reviews API is more aggressively protected than search.

#### Shopee vs Lazada - which data can I compare?

Lazada and Shopee both operate storefronts in Singapore, Malaysia, Thailand, Indonesia, Philippines and Vietnam. This actor provides the Lazada side: price, original price, discount, units sold, rating, seller and LazMall status per keyword and market. Join its output with a Shopee scraper on normalized product or keyword keys for a full SEA marketplace view - differentiators like Lazada's higher average order value and electronics strength vs. Shopee's volume leadership are visible directly in the data.

#### What are the best-selling products on Lazada?

Use the `unitsSold` field (e.g. `1.7K sold`), `ratingScore` and `reviewCount` to rank products per keyword and market. `isLazMall` shows which listings are official brand stores, and `discount` reveals promotional intensity. Run the same keywords during and outside sale windows to see how best-sellers shift for 11.11 and 12.12.

#### How is this different from other Lazada scrapers?

| Capability | Typical Lazada scrapers | This actor |
|------------|------------------------|------------|
| Price per product result | $0.0024 - $0.03 (e.g. automation-lab ~$0.0024, fatihtahta $0.00299, dtrungtin $0.03 + $0.05 start) | **$0.001** |
| Customer reviews | Often separate actors charging $0.009 - $0.01 per review | **$0.001 per review** in a dedicated dataset |
| Start fee | $0.05 - $0.10 on several actors | **$0.00005** (minimum compute, no browser) |
| Markets in one run | Usually 1-2 at a time | **All 6 SEA markets** with per-market sessions in parallel |

Verified against live Apify Store listings at the time of writing; per-event prices vary by your Apify plan tier.

#### Is scraping Lazada legal?

This actor only accesses publicly available product, price and review data - no login-gated or private content. You are responsible for complying with Lazada's Terms of Service and the laws applicable to your use case, and for how you use personal data (see the disclaimer below).

### SEO Keywords

lazada scraper, scrape lazada products, lazada product data, lazada price monitoring, lazada price tracker, lazada api alternative, lazada api, lazada product reviews, lazada review scraper, lazada seller research, lazada best sellers, lazmall products, shopee vs lazada, southeast asia ecommerce, ecommerce price monitoring, competitor price tracking, lazada singapore, lazada malaysia, lazada thailand, lazada indonesia, lazada philippines, lazada vietnam, lazada 11.11, lazada 12.12, product database building

### For AI Agents & LLM Apps

**Purpose:** returns Lazada product listings (and optionally customer reviews) as structured JSON for given keywords and country markets, or for explicit Lazada search/product URLs.

**Minimal working input** (only required fields):

```json
{
  "mode": "search",
  "country": ["SG"],
  "queries": ["wireless earbuds"]
}
```

**URL-mode variant** (when you have exact URLs instead of keywords):

```json
{
  "mode": "url",
  "country": ["SG"],
  "urls": ["https://www.lazada.sg/catalog/?q=headphone"],
  "fetchReviews": true,
  "maxReviewsPerProduct": 5
}
```

**Output fields (products dataset):** `market`, `currency`, `keyword`, `itemId`, `skuId`, `title`, `price`, `priceShow`, `originalPrice`, `originalPriceShow`, `discount`, `ratingScore`, `reviewCount`, `unitsSold`, `sellerName`, `sellerId`, `brand`, `brandId`, `isLazMall`, `inStock`, `location`, `image`, `images`, `productUrl`, `fetchedAt`.

**Output fields (reviews dataset, only when `fetchReviews` is true):** `market`, `currency`, `keyword`, `itemId`, `sellerId`, `productUrl`, `productTitle`, `reviewId`, `buyerName`, `rating`, `reviewTime`, `skuInfo`, `likeCount`, `content`, `media`, `fetchedAt`.

**Behaviors an agent should know:**

- Reviews are written to a **separate Reviews dataset**, never the products dataset - read the second dataset to get review records.
- `mode` is required: set `"search"` to use `queries`, or `"url"` to use `urls` (queries are ignored in url mode). `country` is required in both modes; URLs whose domain is outside the selected countries are skipped.
- `maxItemsPerKeyword` caps products per keyword per country (default 40, range 1-500). If unset, the default applies.
- `minRating` filters out products below a rating threshold before writing results (default 0 = keep all).
- Enabling `fetchReviews` triggers additional billed events (one per review scraped). Set `maxReviewsPerProduct` to bound that cost.
- The default proxy is Apify Residential and is effectively required - expect `FAIL_SYS_USER_VALIDATE` gating or empty reviews if it is disabled.

**Billing:** $0.001 per product result, $0.001 per review, $0.00005 per run start (pay-per-event; plan-tier discounts may apply).

### Legal & Compliance Disclaimer

This actor is an independent community tool and is **not affiliated with, endorsed by, or sponsored by** Lazada Group or any of its brands. It accesses only publicly available Lazada catalog, search and review pages - it does not bypass logins, solve CAPTCHAs, or access seller-admin or buyer-account data. Users are solely responsible for complying with Lazada's Terms of Service and with the laws applicable to their use case and jurisdiction. Review output can include reviewer identifiers and review text, which may be considered personal data in some jurisdictions (for example GDPR or CCPA for data of EU or California residents) - do not use it for unsolicited commercial outreach in violation of applicable law, and process it in line with applicable data-protection rules. This section is factual disclosure, not legal advice.

# Actor input Schema

## `mode` (type: `string`):

How to start scraping:

- **Search by keyword** — run one or more search queries on the selected country sites.
- **Crawl specific URLs** — walk the exact Lazada pages you provide (search or product URLs).

## `country` (type: `array`):

Pick one or more Lazada country sites (multi-select dropdown). Each selected market is searched with every keyword below.

## `queries` (type: `array`):

Only used in **Search by keyword** mode. One or more keywords to search for on Lazada (e.g. "headphone", "iphone 15"). Each keyword is searched in every selected country.

## `urls` (type: `array`):

Only used in **Crawl specific URLs** mode. Paste one or more Lazada URLs:

- Search URL: `https://www.lazada.sg/catalog/?q=iphone`
- Product URL: `https://www.lazada.sg/products/pdp-i2866897728.html`

The country is detected from the domain; URLs outside the selected country sites are skipped.

## `maxItemsPerKeyword` (type: `integer`):

Maximum number of products to scrape per keyword per country (search mode) or per URL (URL mode). The search API returns up to 80 products per page.

## `minRating` (type: `integer`):

Drop products whose average rating is below this value (0–5). Set to 0 to keep everything.

## `fetchReviews` (type: `boolean`):

Scrape each product's top customer reviews. Reviews are stored as individual records in a separate **Reviews** dataset, so they stay out of the products dataset. **Tip:** the reviews API is protected by stricter anti-bot checks than search — to reliably fetch reviews, enable the **Apify Residential** proxy in the Proxy configuration below.

## `maxReviewsPerProduct` (type: `integer`):

Hard cap on the number of reviews scraped per product when **Fetch product reviews** is on. Lazada's reviews API returns ~5 reviews per page, so larger values simply crawl more pages.

## `reviewConcurrency` (type: `integer`):

How many products are fetching reviews at the same time. Each product uses its own proxy IP, so modest values are safe; 3 is a good default. Lower to 1 (fully sequential) if you see empty reviews without a residential proxy, raise up to 5 for speed with proxies enabled.

## `proxy` (type: `object`):

Select proxies to be used by the crawler. **Default: Apify Residential** — Lazada blocks datacenter IPs and gates the reviews API harder than search; residential proxies are required for reliable runs. Review requests automatically rotate residential IPs up to 4 times per page.

## Actor input object example

```json
{
  "mode": "search",
  "country": [
    "SG"
  ],
  "queries": [
    "headphone"
  ],
  "urls": [
    "https://www.lazada.sg/catalog/?q=headphone"
  ],
  "maxItemsPerKeyword": 40,
  "minRating": 0,
  "fetchReviews": false,
  "maxReviewsPerProduct": 10,
  "reviewConcurrency": 3,
  "proxy": {
    "useApifyProxy": true,
    "groups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `products` (type: `string`):

One record per scraped product (search results or product URLs).

## `reviews` (type: `string`):

One record per customer review, only populated when the 'Fetch product reviews' input option is enabled.

# 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 = {
    "mode": "search",
    "country": [
        "SG"
    ],
    "queries": [
        "headphone"
    ],
    "urls": [
        "https://www.lazada.sg/catalog/?q=headphone"
    ],
    "proxy": {
        "useApifyProxy": true,
        "groups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("ahmed_jasarevic/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 = {
    "mode": "search",
    "country": ["SG"],
    "queries": ["headphone"],
    "urls": ["https://www.lazada.sg/catalog/?q=headphone"],
    "proxy": {
        "useApifyProxy": True,
        "groups": ["RESIDENTIAL"],
    },
}

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

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

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

```

## CLI example

```bash
echo '{
  "mode": "search",
  "country": [
    "SG"
  ],
  "queries": [
    "headphone"
  ],
  "urls": [
    "https://www.lazada.sg/catalog/?q=headphone"
  ],
  "proxy": {
    "useApifyProxy": true,
    "groups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call ahmed_jasarevic/lazada-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,ahmed_jasarevic/lazada-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/TyPRDDROBkUBZ3OXJ/builds/Ry2eKOPBbY2Ronm8U/openapi.json
