# Lazada Scraper | All-In-One (`fatihtahta/lazada-scraper`) Actor

Scrape product data from all Lazada sites: Thailand, Singapore, Indonesia, Vietnam & Malaysia. This fast, affordable scraper extracts detailed info from any product search. Get the market insights and competitor data you need to stay ahead.

- **URL**: https://apify.com/fatihtahta/lazada-scraper.md
- **Developed by:** [Fatih Tahta](https://apify.com/fatihtahta) (community)
- **Categories:** E-commerce, Developer tools, Automation
- **Stats:** 418 total users, 82 monthly users, 100.0% runs succeeded, 10 bookmarks
- **User rating**: 5.00 out of 5 stars

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

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 With Reviews

**Slug:** fatihtahta/lazada-scraper

### Overview

Lazada Scraper With Reviews collects structured data for product listings and customer reviews, including identifiers, URLs, titles, pricing, inventory signals, ratings, seller details, media assets, and review content. It supports all major Lazada marketplaces across Southeast Asia, including [Malaysia](https://www.lazada.com.my), [Singapore](https://www.lazada.sg), [Indonesia](https://www.lazada.co.id), [Philippines](https://www.lazada.com.ph), [Thailand](https://www.lazada.co.th), and [Vietnam](https://www.lazada.vn). This unified coverage makes it easy to compare pricing, assortment, and sentiment across regions while keeping data consistent. Runs are automated and repeatable, so you spend less time collecting and more time analyzing. The output is designed to drop directly into analytics and monitoring workflows.

### Why Use This Actor

- **Market research / analytics:** Track pricing, assortment, ratings, and review volume by category, brand, or region for trend analysis.
- **Product & content teams:** Validate product naming, descriptions, and media coverage while identifying gaps in listings.
- **Developers / data engineering pipelines:** Feed structured listings and reviews into ETL pipelines and data products with predictable schemas.
- **Lead gen / enrichment:** Enrich catalogs with seller, brand, and listing metadata for outreach or CRM workflows.
- **Monitoring / competitive tracking:** Watch competitor pricing and review sentiment shifts over time across marketplaces.

### Input Parameters

Provide any combination of URLs, queries, and filters…

| Parameter | Type | Description | Default |
| --- | --- | --- | --- |
| `startUrls` | `string[]` | One or more Lazada URLs to collect directly. Supported pages include search results, category listings, and product pages. | – |
| `country` | `string` | Lazada marketplace to use for search queries. Allowed values: `sg`, `my`, `ph`, `th`, `vn`, `id`. | `sg` |
| `queries` | `string[]` | Search keywords to run on the selected marketplace. | – |
| `minPrice` | `integer` | Minimum price filter for search queries. | – |
| `maxPrice` | `integer` | Maximum price filter for search queries. | – |
| `sort` | `string` | Sort order for search results. Allowed values: `best`, `priceasc`, `pricedesc`. | `best` |
| `minimumRating` | `string` | Minimum star rating filter. Allowed values: `1`, `2`, `3`, `4`, `5`. | – |
| `limit` | `integer` | Maximum listings to save per query. | `50000` |
| `enrich_data` | `boolean` | When enabled, fetch complete galleries and richer product details for listings discovered through search or category pages. Direct product URLs are always parsed as product pages. | `false` |
| `getReviews` | `boolean` | When enabled, collect reviews for each saved listing. | `false` |
| `maxReviews` | `integer` | Maximum number of reviews to save per listing when reviews are enabled. | `50000` |

### Example Input

```json
{
  "startUrls": ["https://www.lazada.sg/catalog/?q=wireless+earbuds"],
  "country": "sg",
  "queries": ["wireless earbuds", "bluetooth headphones"],
  "minPrice": 20,
  "maxPrice": 200,
  "sort": "best",
  "enrich_data": true,
  "getReviews": true,
  "maxReviews": 200
}
```

### Output

#### 6.1 Output destination

The actor writes results to an Apify dataset as JSON records. And the dataset is designed for direct consumption by analytics tools, ETL pipelines, and downstream APIs without post-processing.

#### 6.2 Product record contract

Product rows follow the shared `commerce_marketplace.product.v1` contract. The top level is stable and source-specific richness stays inside the contract's open nested groups.

Every product includes:

- **record\_type**: always `product`
- **record\_id**: Lazada product ID
- **url** and **title**
- **source\_context**: discovery input and enrichment status
- **entity**: canonical product identity

**Recommended idempotency key:** `record_type + ":" + record_id`.

With `enrich_data=false`, the actor saves the fullest search/category data available without opening each product. With `enrich_data=true`, the same contract is retained and detail-only fields such as full galleries, description HTML, highlights, variant properties, per-SKU inventory, and variant media are added.

#### 6.3 Product example

```json
{
  "record_type": "product",
  "record_id": "4799342542",
  "url": "https://www.lazada.com.my/products/pdp-i4799342542.html",
  "title": "Shaklee Prebiotic + Probiotic Raspberry Fruit",
  "source_context": {
    "source_id": "lazada",
    "source_domain": "www.lazada.com.my",
    "source_url": "https://www.lazada.com.my/catalog/?q=prebiotic",
    "canonical_url": "https://www.lazada.com.my/products/pdp-i4799342542.html",
    "search_query": "prebiotic",
    "seed_type": "query",
    "seed_value": "prebiotic",
    "country": "MY",
    "language": "en",
    "enrichment_status": "enriched"
  },
  "entity": {
    "title": "Shaklee Prebiotic + Probiotic Raspberry Fruit",
    "name": "Shaklee Prebiotic + Probiotic Raspberry Fruit",
    "url": "https://www.lazada.com.my/products/pdp-i4799342542.html",
    "external_ids": {
      "product_id": "4799342542",
      "sku_id": "27081962526",
      "seller_id": "300239280078"
    },
    "status": "active"
  },
  "pricing": {
    "price": 99,
    "price_text": "RM99.00",
    "currency": "MYR"
  },
  "seller": {
    "seller_id": "300239280078",
    "seller_name": "Example seller",
    "seller_location": "Selangor"
  },
  "availability": {
    "in_stock": true,
    "stock_status": "default",
    "min_quantity": 1,
    "max_quantity": 5
  },
  "media": {
    "primary_image_url": "https://cdn.example.com/main.png",
    "image_urls": [
      "https://cdn.example.com/main.png",
      "https://cdn.example.com/nutrition.png"
    ],
    "description_image_urls": [
      "https://cdn.example.com/nutrition.png"
    ]
  },
  "metrics": {
    "rating": 4.9,
    "review_count": 120,
    "sales_count": 3500
  },
  "product": {
    "product_id": "4799342542",
    "variant_id": "27081962526",
    "brand": "Shaklee",
    "category_path": [
      "Health",
      "Food Supplement"
    ],
    "variants": [
      {
        "variant_id": "27081962526",
        "sku": "4799342542_MY-27081962526",
        "options": [
          {
            "property_name": "Quantity",
            "value_name": "1 box"
          }
        ],
        "is_selected": true,
        "availability": {
          "in_stock": true,
          "min_quantity": 1,
          "max_quantity": 5
        },
        "media": {
          "image_urls": [
            "https://cdn.example.com/main.png"
          ]
        }
      }
    ],
    "attributes": {
      "highlights": "10 billion CFUs with prebiotic fiber",
      "variant_properties": [
        {
          "property_id": "120132602",
          "name": "Quantity",
          "values": [
            {
              "value_id": "one",
              "name": "1 box"
            }
          ]
        }
      ]
    }
  },
  "attributes": {
    "source_specific": {
      "lazada": {
        "links": {},
        "metadata": {}
      }
    }
  }
}
```

Example: review (`type = "review"`)

```json
{
  "type": "review",
  "id": 450372202833514,
  "url": "https://www.lazada.com.my/products/pdp-i4716933514.html",
  "record_type": "review",
  "product_id": "4716933514",
  "product_url": "https://www.lazada.com.my/products/pdp-i4716933514.html",
  "source": {
    "url": "https://www.lazada.com.my/products/pdp-i4716933514.html"
  },
  "seed": {
    "type": "query",
    "value": "iphone 17 pro maxa"
  },
  "review": {
    "review_id": 450372202833514,
    "buyer_name": "shawaluddin",
    "rating": 5,
    "review_time": "2025-12-13",
    "review_content_list": [
      {
        "attribute": "🔋Battery Life",
        "content": "ok"
      },
      {
        "attribute": "📸Camera Quality",
        "content": "ok"
      },
      {
        "attribute": "⚡Performance",
        "content": "ok"
      },
      {
        "attribute": "",
        "content": "Aluminium unibody design, 6.9-inch brilliant display, Fast charging up to 50%,\nsuccessful buyer and seller distribution"
      }
    ],
    "sku_info": "Color Family:Silver, Storage Capacity:256GB",
    "like_count": 0,
    "is_me_like": false,
    "media": [
      {
        "coverUrl": "https://sg-test-11.slatic.net/p/6871e369f7e02203ac351fc9349e8341.jpg",
        "height": 500,
        "mediaType": 2,
        "reviewRateId": 450372202833514,
        "videoId": 30355558840,
        "videoUrl": "https://lazvideo.lazcdn.com/psp/20251213/b2243da5-342d-4102-bbb6-64e818ed0c06@@ld.mp4?auth_key=1769237095-0-0-ecb2e5a22761b8d1ae4329729ca2be77",
        "width": 280
      },
      {
        "coverUrl": "https://lzd-u.slatic.net/e79ee92955f448e48365c980d26b6c5e_e67453279aa74cf6a7807d8b9c257721.jpg",
        "mediaType": 1,
        "reviewRateId": 450372202833514
      },
      {
        "coverUrl": "https://lzd-u.slatic.net/076dffb5441449b6b40c3a76123822d0_fb169c30c78548138286eecd8c0cb353.jpg",
        "mediaType": 1,
        "reviewRateId": 450372202833514
      },
      {
        "coverUrl": "https://lzd-u.slatic.net/076dffb5441449b6b40c3a76123822d0_7741f565f6f04e7885392bcf2395ddb1.jpg",
        "mediaType": 1,
        "reviewRateId": 450372202833514
      },
      {
        "coverUrl": "https://lzd-u.slatic.net/076dffb5441449b6b40c3a76123822d0_4f2acdb607284a1a96740b1536baf246.jpg",
        "mediaType": 1,
        "reviewRateId": 450372202833514
      }
    ],
    "raw": {
      "buyerName": "shawaluddin",
      "isMeLike": false,
      "likeCount": 0,
      "mediaList": [
        {
          "coverUrl": "https://sg-test-11.slatic.net/p/6871e369f7e02203ac351fc9349e8341.jpg",
          "height": 500,
          "mediaType": 2,
          "reviewRateId": 450372202833514,
          "videoId": 30355558840,
          "videoUrl": "https://lazvideo.lazcdn.com/psp/20251213/b2243da5-342d-4102-bbb6-64e818ed0c06@@ld.mp4?auth_key=1769237095-0-0-ecb2e5a22761b8d1ae4329729ca2be77",
          "width": 280
        },
        {
          "coverUrl": "https://lzd-u.slatic.net/e79ee92955f448e48365c980d26b6c5e_e67453279aa74cf6a7807d8b9c257721.jpg",
          "mediaType": 1,
          "reviewRateId": 450372202833514
        },
        {
          "coverUrl": "https://lzd-u.slatic.net/076dffb5441449b6b40c3a76123822d0_fb169c30c78548138286eecd8c0cb353.jpg",
          "mediaType": 1,
          "reviewRateId": 450372202833514
        },
        {
          "coverUrl": "https://lzd-u.slatic.net/076dffb5441449b6b40c3a76123822d0_7741f565f6f04e7885392bcf2395ddb1.jpg",
          "mediaType": 1,
          "reviewRateId": 450372202833514
        },
        {
          "coverUrl": "https://lzd-u.slatic.net/076dffb5441449b6b40c3a76123822d0_4f2acdb607284a1a96740b1536baf246.jpg",
          "mediaType": 1,
          "reviewRateId": 450372202833514
        }
      ],
      "rating": 5,
      "reviewContentList": [
        {
          "attribute": "🔋Battery Life",
          "content": "ok"
        },
        {
          "attribute": "📸Camera Quality",
          "content": "ok"
        },
        {
          "attribute": "⚡Performance",
          "content": "ok"
        },
        {
          "attribute": "",
          "content": "Aluminium unibody design, 6.9-inch brilliant display, Fast charging up to 50%,\nsuccessful buyer and seller distribution"
        }
      ],
      "reviewId": 450372202833514,
      "reviewTime": "2025-12-13",
      "skuInfo": "Color Family:Silver, Storage Capacity:256GB"
    }
  },
  "page": 1
}
```

### Field reference

#### Product fields (`record_type = "product"`)

- **record\_type** *(string, required)*: Always `product`.
- **record\_id** *(string, optional)*: Stable Lazada product identifier.
- **url** and **title**: Canonical product URL and display title.
- **source\_context** *(object, required)*: Source URL, seed, marketplace, locale, and `enrichment_status`.
- **entity** *(object, required)*: Canonical identity, description, status, and external IDs.
- **pricing** *(object, optional)*: Numeric and display prices, currency, original price, and discount.
- **seller** *(object, optional)*: Seller identity, location, shop ID, and public URLs.
- **availability** *(object, optional)*: Selected-SKU stock state and purchase limits.
- **media** *(object, optional)*: Primary image, complete gallery, description images, videos, thumbnails, and badges.
- **metrics** *(object, optional)*: Rating, review count, and sales count.
- **product** *(object, optional)*: Product/SKU IDs, brand, category path, description, specifications, variants, highlights, and variant-property definitions.
- **product.variants\[]** *(array, optional)*: Every detail-response SKU with option values, variant URL, pricing, inventory, media, operation state, and selected/default flags.
- **offer** and **merchandising** *(objects, optional)*: Promotion and badge data.
- **relationships** *(object, optional)*: Related seller identity.
- **attributes** *(object, optional)*: Raw source attributes, flags, description sections, and valuable Lazada-specific fields that do not have a canonical field.

#### Review fields (`type = "review"`)

- **type** *(string, required)*: Record category.
- **id** *(number, required)*: Review identifier.
- **url** *(string, required)*: Product URL associated with the review.
- **record\_type** *(string, required)*: Record category as provided by source data.
- **product\_id** *(string, required)*: Product identifier.
- **product\_url** *(string, required)*: Product URL.
- **source.url** *(string, required)*: Source page used to discover the record.
- **seed.type** *(string, required)*: Seed type.
- **seed.value** *(string, required)*: Seed value.
- **review.review\_id** *(number, required)*: Review identifier.
- **review.buyer\_name** *(string, optional)*: Buyer display name.
- **review.rating** *(number, optional)*: Star rating.
- **review.review\_time** *(string, optional)*: Review date.
- **review.review\_content\_list** *(array\[object], optional)*: Review content segments.
- **review.review\_content\_list\[].attribute** *(string, optional)*: Attribute label.
- **review.review\_content\_list\[].content** *(string, optional)*: Attribute content.
- **review.sku\_info** *(string, optional)*: SKU info text.
- **review.like\_count** *(number, optional)*: Like count.
- **review.is\_me\_like** *(boolean, optional)*: Whether the reviewer liked the item.
- **review.media** *(array\[object], optional)*: Review media items.
- **review.media\[].coverUrl** *(string, optional)*: Media cover URL.
- **review.media\[].height** *(number, optional)*: Media height.
- **review.media\[].mediaType** *(number, optional)*: Media type indicator.
- **review.media\[].reviewRateId** *(number, optional)*: Review rate ID.
- **review.media\[].videoId** *(number, optional)*: Video ID.
- **review.media\[].videoUrl** *(string, optional)*: Video URL.
- **review.media\[].width** *(number, optional)*: Media width.
- **review.raw** *(object, optional)*: Raw review payload.
- **review.raw.buyerName** *(string, optional)*: Buyer name in raw payload.
- **review.raw.isMeLike** *(boolean, optional)*: Like flag in raw payload.
- **review.raw.likeCount** *(number, optional)*: Like count in raw payload.
- **review.raw.mediaList** *(array\[object], optional)*: Raw media list.
- **review.raw.mediaList\[].coverUrl** *(string, optional)*: Raw media URL.
- **review.raw.mediaList\[].height** *(number, optional)*: Raw media height.
- **review.raw.mediaList\[].mediaType** *(number, optional)*: Raw media type.
- **review.raw.mediaList\[].reviewRateId** *(number, optional)*: Raw review rate ID.
- **review.raw.mediaList\[].videoId** *(number, optional)*: Raw video ID.
- **review.raw.mediaList\[].videoUrl** *(string, optional)*: Raw video URL.
- **review.raw.mediaList\[].width** *(number, optional)*: Raw media width.
- **review.raw.rating** *(number, optional)*: Rating in raw payload.
- **review.raw.reviewContentList** *(array\[object], optional)*: Raw content list.
- **review.raw.reviewContentList\[].attribute** *(string, optional)*: Raw attribute label.
- **review.raw.reviewContentList\[].content** *(string, optional)*: Raw attribute content.
- **review.raw.reviewId** *(number, optional)*: Raw review ID.
- **review.raw.reviewTime** *(string, optional)*: Raw review date.
- **review.raw.skuInfo** *(string, optional)*: Raw SKU info.
- **page** *(number, optional)*: Review page index.

### Data guarantees & handling

- **Best-effort extraction:** fields may vary by region/session/availability/UI experiments.
- **Optional fields:** null-check in downstream code.
- **Deduplication:** recommend `type + ":" + id`.

### How to Run on Apify

1. Open the Actor in Apify Console.
2. Configure your search parameters (e.g., category, region, optional city or keywords).
3. Set the maximum number of outputs to collect.
4. Click **Start** and wait for the run to finish.
5. Download results in JSON, CSV, Excel, or other supported formats.

### Scheduling & Automation

#### Scheduling

**Automated Data Collection**
Schedule recurring runs to keep your Lazada datasets current as listings and reviews change.

- Navigate to **Schedules** in Apify Console
- Create a new schedule (daily, weekly, or custom cron)
- Configure input parameters
- Enable notifications for run completion
- (Optional) Add webhooks for automated processing

#### Integration Options

- **Webhooks:** Trigger downstream actions when a run completes
- **Zapier:** Connect to 5,000+ apps without coding
- **Make (Integromat):** Build multi-step automation workflows
- **Google Sheets:** Export results to a spreadsheet
- **Slack/Discord:** Receive notifications and summaries
- **Email:** Send automated reports via email

### Performance

- **Small runs (< 1,000 outputs):** ~2–3 minutes
- **Medium runs (1,000–5,000 outputs):** ~5–15 minutes
- **Large runs (5,000+ outputs):** ~15–30 minutes

Execution time varies based on filters, result volume, and how much information is returned per record.

### Compliance & Ethics

#### Responsible Data Collection

This actor collects publicly available **e-commerce product, pricing, and merchant metadata** from **Lazada** for legitimate business and analytical purposes, including:

- **Retail & e-commerce** research, competitive intelligence, and market benchmarking
- **Pricing analytics**, assortment tracking, and catalog monitoring workflows
- **Data enrichment pipelines** for internal BI systems, dashboards, and downstream ML models

This section is informational and not legal advice.

#### Best Practices

- Use collected data in accordance with applicable laws, regulations, and the target site’s terms
- Respect individual privacy and personal information
- Use data responsibly and avoid disruptive or excessive collection
- Do not use this actor for spamming, harassment, or other harmful purposes
- Follow relevant data protection requirements where applicable (e.g., GDPR, CCPA)

### Support

For help, open an issue on the actor page or the Issues tab in Apify Console. Include the input used (with sensitive data redacted), the run ID, expected vs. actual behavior, and an optional small output sample for faster troubleshooting.

# Actor input Schema

## `startUrls` (type: `array`):

Paste one or more Lazada URLs. Use this for known search pages, category listings, or product pages that should be collected directly.

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

Select the Lazada country site used for search-query runs. Direct Lazada URLs can still point to their own marketplace.

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

Enter one or more product keywords, brand names, or category terms. Broader terms discover more listings, while specific terms produce a more targeted dataset.

## `minPrice` (type: `integer`):

Only include search results at or above this price. This setting applies to search-query targets.

## `maxPrice` (type: `integer`):

Only include search results at or below this price. Use it with the minimum price to focus on a specific price band.

## `minimumRating` (type: `string`):

Limit search-query results to listings that meet the selected star-rating threshold.

## `sort` (type: `string`):

Select how Lazada search results should be ordered before collection. This setting applies to search-query targets.

## `limit` (type: `integer`):

Stop collection after this many product listings have been saved for each URL or query target.

## `enrich_data` (type: `boolean`):

When enabled, fetch richer details for products discovered through search or category pages. Leave disabled for faster high-volume listing collection. Direct product URLs still return details for the requested product page.

## `getReviews` (type: `boolean`):

When enabled, save customer review records for collected products. Leave disabled when you only need product listing data.

## `maxReviews` (type: `integer`):

Limit the number of reviews saved for each product. This setting only applies when review collection is enabled.

## Actor input object example

```json
{
  "startUrls": [
    "https://www.lazada.sg/catalog/?q=Wilson%20Tennis%20ball%20blue%20color&rating=5"
  ],
  "country": "sg",
  "sort": "best",
  "limit": 50000,
  "enrich_data": false,
  "getReviews": false,
  "maxReviews": 50000
}
```

# Actor output Schema

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

No description

# 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 = {
    "startUrls": [
        "https://www.lazada.sg/catalog/?q=Wilson%20Tennis%20ball%20blue%20color&rating=5"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("fatihtahta/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 = { "startUrls": ["https://www.lazada.sg/catalog/?q=Wilson%20Tennis%20ball%20blue%20color&rating=5"] }

# Run the Actor and wait for it to finish
run = client.actor("fatihtahta/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 '{
  "startUrls": [
    "https://www.lazada.sg/catalog/?q=Wilson%20Tennis%20ball%20blue%20color&rating=5"
  ]
}' |
apify call fatihtahta/lazada-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,fatihtahta/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/wOi2Atykbv1uBzGFW/builds/QzLMQoUl9h5DpQxIx/openapi.json
