# Daraz.pk Ecommerce Scraper (`parsebird/daraz-pk-ecommerce-scraper`) Actor

Scrape products from Daraz.pk by category URL or search keyword. Get title, brand, seller, price, discount, rating, reviews, sold count, stock, and image. Export as JSON, CSV, or Excel.

- **URL**: https://apify.com/parsebird/daraz-pk-ecommerce-scraper.md
- **Developed by:** [ParseBird](https://apify.com/parsebird) (community)
- **Categories:**
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.79 / 1,000 product scrapeds

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

### Daraz.pk Ecommerce Scraper

Scrape product data from **[Daraz.pk](https://www.daraz.pk)** — Pakistan's largest online marketplace — into clean, structured JSON. The Daraz.pk Ecommerce Scraper pulls the product title, brand, seller, price, discount, rating, review count, sold count, stock state, and image for any category listing or search keyword, with no login and no Daraz API.

<table><tr>
<td style="border-left:4px solid #F85606;padding:12px 16px;font-weight:600">
Paste one or more Daraz.pk category URLs, or enter a search keyword, and get a structured record per product — current and original price, discount percentage, rating, reviews, estimated units sold, seller, location, stock state, and the sponsored flag.
</td>
</tr></table>

##### Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

```
Actor: parsebird/daraz-pk-ecommerce-scraper (Apify). Scrapes products from daraz.pk (Pakistan). Call with ApifyClient.
Input JSON fields:
  startUrls: string[] — Daraz.pk category / listing URLs, e.g. ["https://www.daraz.pk/womens-fashion/"]
  searchQuery: string — search keywords, used when startUrls is empty, e.g. "iphone 15 pro max"
  maxProducts: int (default 20, 0 = unlimited) — number of billed rows
  maxPages: int (default 50) — max listing pages per URL (40 products per page)
  includeOutOfStock: bool (default false)
  proxyConfiguration: { "useApifyProxy": false }
Output: one dataset item per product — productId, skuId, title, brand, sellerName, sellerId, location, price,
  originalPrice, discountPct, rating, reviewCount, soldCount, imageUrl, productUrl, inStock, isSponsored,
  page, sourceUrl, requestId, scrapedAt.
Example: { "startUrls": ["https://www.daraz.pk/mens-fashion/"], "maxProducts": 100 }
API: https://api.apify.com/v2/acts/parsebird~daraz-pk-ecommerce-scraper  ·  Token: https://console.apify.com/account/integrations
```

### What does Daraz.pk Ecommerce Scraper do?

[Daraz.pk](https://www.daraz.pk) is Pakistan's biggest ecommerce marketplace, part of the Alibaba Group, with millions of listings across electronics, fashion, home, beauty, and groceries. There is no public Daraz API — this Daraz scraper reads the site's own listing data instead. For every product on a category page or search results page it extracts:

- 🏷️ **Identity** — product ID, SKU ID, title, and brand.
- 🏪 **Seller** — store name, seller ID, and the product's dispatch location.
- 💰 **Pricing** — current price, original price, and discount percentage.
- ⭐ **Reputation** — rating, review count, and estimated units sold.
- 📦 **Availability** — in-stock state and the sponsored-listing flag.
- 🖼️ **Media** — the primary product image and the product page URL.

Common uses: Daraz price monitoring, competitor and seller research, catalog building, discount tracking, and market analysis for Pakistan ecommerce.

### Input parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| startUrls | array | No | `["https://www.daraz.pk/womens-fashion/"]` | Daraz.pk category or listing URLs. Used first when provided. |
| searchQuery | string | No | — | Search keywords. Used when `startUrls` is empty. |
| maxProducts | integer | No | 20 | Maximum products to save (0 = unlimited). Billed rows. |
| maxPages | integer | No | 50 | Maximum listing pages to process per URL (40 products per page). |
| includeOutOfStock | boolean | No | false | Include products that are currently out of stock. |
| proxyConfiguration | object | No | `{ "useApifyProxy": false }` | Optional proxy settings for higher reliability on large runs. |

#### Example inputs

Collect products from a single category URL:

```json
{
  "startUrls": ["https://www.daraz.pk/womens-fashion/"],
  "maxProducts": 20,
  "maxPages": 3
}
```

Collect products for a search keyword:

```json
{
  "searchQuery": "iphone 15 pro max",
  "maxProducts": 30,
  "maxPages": 4
}
```

Collect products from multiple category URLs in one run:

```json
{
  "startUrls": [
    "https://www.daraz.pk/mens-fashion/",
    "https://www.daraz.pk/electronic-devices/"
  ],
  "maxProducts": 60,
  "includeOutOfStock": true
}
```

Use a residential proxy for larger runs:

```json
{
  "startUrls": ["https://www.daraz.pk/womens-fashion/"],
  "maxProducts": 40,
  "proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }
}
```

### What data can you extract from Daraz.pk?

| Field | Description |
|-------|-------------|
| productId | Daraz product identifier |
| skuId | SKU identifier |
| title | Product title |
| brand | Brand name |
| sellerName / sellerId | Store name and seller identifier |
| location | Product dispatch location |
| price | Current numeric price (PKR) |
| originalPrice | Original numeric price when available |
| discountPct | Discount percentage |
| rating | Product rating (0–5) |
| reviewCount | Number of reviews |
| soldCount | Estimated units sold |
| imageUrl | Primary image URL |
| productUrl | Product page URL |
| inStock | Stock state |
| isSponsored | Sponsored-listing flag |
| page / sourceUrl / requestId / scrapedAt | Listing page, source URL, request ID, and extraction timestamp |

### Output example

```json
{
  "productId": "453338509",
  "skuId": "1728453521",
  "title": "Apple iPhone 15 Pro Max",
  "brand": "Apple",
  "sellerName": "Official Store",
  "location": "Lahore",
  "price": 334999,
  "originalPrice": 349999,
  "discountPct": 4,
  "rating": 4.8,
  "reviewCount": 127,
  "soldCount": 300,
  "imageUrl": "https://static-01.daraz.pk/p/example.jpg",
  "productUrl": "https://www.daraz.pk/products/example",
  "inStock": true,
  "isSponsored": false,
  "page": 1,
  "sourceUrl": "https://www.daraz.pk/womens-fashion/",
  "requestId": "abc123-1",
  "scrapedAt": "2026-03-07T00:00:00.000Z"
}
```

Download the dataset as **JSON, CSV, Excel, HTML, or XML** from the Storage tab or the [Apify API](https://docs.apify.com/api/v2).

### Use cases

- **Price monitoring** — track prices and discounts on Daraz across a category over time.
- **Competitor research** — see what other sellers list, at what price, and how much they sell.
- **Catalog building** — seed a price-comparison site or marketplace dataset with Daraz listings.
- **Market analysis** — measure assortment, brand share, and discount depth in Pakistan ecommerce.
- **Deal tracking** — surface the biggest discounts and best-selling products in a niche.

### How it works

1. **Input** — the scraper takes your category URLs or turns your `searchQuery` into a Daraz search URL.
2. **Listing** — it reads each listing page's product data (40 products per page).
3. **Paginate** — it walks through pages until `maxProducts`, `maxPages`, or the end of the listing.
4. **Filter** — out-of-stock products are skipped unless `includeOutOfStock` is on; duplicates across pages are removed.
5. Rows stream to the dataset.

### How much does it cost to scrape Daraz.pk?

This actor is **pay per result** — charged once per product saved to the dataset.

| Plan | Price per 1,000 products |
|------|--------------------------|
| Free | **$0.99** |
| Bronze | **$0.89** |
| Silver | **$0.89** |
| Gold | **$0.79** |

A small platform **Actor start** fee also applies per run. `maxProducts` is the exact number of billed rows. Scraping 1,000 products on the Free plan costs about **$0.99**. Apify's monthly free platform usage covers small runs.

### How to scrape Daraz.pk

1. Click **Try for free** and sign in to Apify.
2. Paste one or more Daraz.pk **category URLs**, or enter a **search keyword**.
3. Set **max products** (start low, e.g. 20) and **max pages**.
4. Optionally turn on **Include out-of-stock products**.
5. Click **Start**, then watch rows appear in the **Output** tab.
6. Export from **Storage**, or pull results via the API.

#### Run it via API

Python:

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("parsebird/daraz-pk-ecommerce-scraper").call(run_input={
    "startUrls": ["https://www.daraz.pk/mens-fashion/"],
    "maxProducts": 100,
})
for product in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(product["title"], "-", product["price"], "-", product.get("sellerName"))
```

JavaScript:

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

const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('parsebird/daraz-pk-ecommerce-scraper').call({
    searchQuery: 'iphone 15 pro max',
    maxProducts: 50,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

Schedule recurring runs, add webhooks, or push results to Google Sheets, Slack, Zapier, and Make with [Apify integrations](https://docs.apify.com/platform/integrations).

### FAQ

**Do I need a Daraz account or API key?**
No. The scraper reads public Daraz.pk listing pages only. Daraz has no public API — this actor is the alternative.

**How current is the data?**
Live. Each run reads Daraz at that moment. Use Apify's scheduler to keep a price dataset fresh.

**Does it work for daraz.com.bd, daraz.lk, or daraz.com.np?**
This actor targets **daraz.pk** (Pakistan). The other Daraz country sites use the same platform; contact us on the Issues tab if you need one of them.

**Why is the sold count approximate?**
Daraz shows units sold as a rounded badge (for example "49.3K sold"); the scraper converts that badge to a number, so it is an estimate, not an exact figure.

**Can I scrape a filtered listing?**
Yes. Apply filters on Daraz, copy the resulting URL, and paste it into `startUrls` — the scraper keeps your filters and only adds pagination.

**Something's not working.**
Open an issue on the **Issues** tab with your input and the run link — we respond quickly.

### Is it legal to scrape Daraz.pk?

Daraz product listings are public information that any visitor can see without logging in. Scraping publicly available pages is legal in most jurisdictions, and this actor does not access private data or bypass any login. You are responsible for how you use the data — follow Daraz's Terms of Use and applicable data-protection law, and consult a lawyer if you are unsure. See Apify's guide on [the legality of web scraping](https://blog.apify.com/is-web-scraping-legal/).

### Related actors

- [Jobbird Jobs Scraper](https://apify.com/parsebird/jobbird-jobs-scraper) — vacancies from Jobbird.com (Netherlands).
- [Jobs.ie Scraper](https://apify.com/parsebird/jobs-ie-scraper) — job listings from Ireland's Jobs.ie.
- [Trendyol Product Scraper](https://apify.com/parsebird/trendyol-product-scraper) — products from Trendyol.
- [Wayfair Scraper](https://apify.com/parsebird/wayfair-scraper) — furniture and home products from Wayfair.

Browse all [ParseBird actors](https://apify.com/parsebird) on Apify Store.

# Actor input Schema

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

Daraz.pk category or listing URLs, for example `https://www.daraz.pk/womens-fashion/` or a filtered listing URL. Used first when provided.

## `searchQuery` (type: `string`):

Search keywords, for example `iphone 15 pro max`. Used when no listing URLs are provided.

## `maxProducts` (type: `integer`):

Maximum products to save. Use 0 for unlimited. This is the number of billed rows.

## `maxPages` (type: `integer`):

Maximum listing pages to process per URL (40 products per page).

## `includeOutOfStock` (type: `boolean`):

Include products that are currently out of stock.

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

Optional proxy settings. Daraz.pk works without a proxy; add one for higher reliability on large runs.

## Actor input object example

```json
{
  "startUrls": [
    "https://www.daraz.pk/womens-fashion/"
  ],
  "maxProducts": 20,
  "maxPages": 50,
  "includeOutOfStock": false,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `dataset` (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.daraz.pk/womens-fashion/"
    ],
    "searchQuery": "",
    "maxProducts": 20,
    "maxPages": 50,
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("parsebird/daraz-pk-ecommerce-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.daraz.pk/womens-fashion/"],
    "searchQuery": "",
    "maxProducts": 20,
    "maxPages": 50,
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("parsebird/daraz-pk-ecommerce-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.daraz.pk/womens-fashion/"
  ],
  "searchQuery": "",
  "maxProducts": 20,
  "maxPages": 50,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call parsebird/daraz-pk-ecommerce-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parsebird/daraz-pk-ecommerce-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/mcporkRG7RiCZn9x1/builds/7uhXsKcJqZcpB0vdy/openapi.json
