Daraz Product Scraper
Pricing
$1.00 / 1,000 results
Daraz Product Scraper
Scrape Daraz products by keyword or category URL across Pakistan, Bangladesh, Nepal, Sri Lanka, and Myanmar. Supports bulk searches with multiple keywords and category URLs, automatic pagination, built-in deduplication, price sorting, rating and price-range filters, and in-stock-only filtering.
Pricing
$1.00 / 1,000 results
Rating
5.0
(8)
Developer
ITclan BD
Maintained by CommunityActor stats
4
Bookmarked
127
Total users
12
Monthly active users
12 days ago
Last modified
Categories
Share
Turn Daraz search and category pages into clean, structured JSON product data.
🇵🇰 Pakistan · 🇧🇩 Bangladesh · 🇳🇵 Nepal · 🇱🇰 Sri Lanka · 🇲🇲 Myanmar
Prices · Discounts · Sellers · Ratings · Stock · Badges · Images · URLs
What this Actor does
Daraz Product Scraper extracts structured product data from Daraz, one of South Asia's largest e-commerce platforms. It supports Pakistan, Bangladesh, Nepal, Sri Lanka, and Myanmar. Search by keyword or provide a category, catalog, or search URL to receive 25+ clean, normalized fields per product, including prices, discounts, sellers, ratings, stock status, badges, images, and links.
There are no selectors to maintain, proxies to configure, or blocked IPs to manage. The Actor is ideal for price monitoring, competitor analysis, market research, and building product datasets at scale. It collects search and listing data only—it does not scrape individual product-detail pages or customer-review text.
Supported Daraz marketplaces
| Code | Country | Domain | Currency |
|---|---|---|---|
pk | 🇵🇰 Pakistan | daraz.pk | PKR |
bd | 🇧🇩 Bangladesh | daraz.com.bd | BDT |
np | 🇳🇵 Nepal | daraz.com.np | NPR |
lk | 🇱🇰 Sri Lanka | daraz.lk | LKR |
mm | 🇲🇲 Myanmar | shop.com.mm | MMK |
Key features
Collect
- Multi-keyword search — pass an array, each term runs as its own search, results merge into one dataset
- Up to 100 category URLs — category, catalog, and search URLs, each crawled independently
- Automatic pagination — capped by
maxProductsormaxPages, applied per keyword and per URL - Built-in deduplication — the same product across pages, keywords, and categories is stored once
Filter at the source (applied by Daraz, so you only pay for results you want)
- Best Match sorting — the buyer's-eye view of what actually ranks
- Price sorting — surface the budget floor or the premium ceiling
- Rating filter (1–5) — skip untested, low-quality listings
- Price range — target a specific band in local currency
- In-stock only — keep pricing averages accurate
Ship to production
- 25+ normalized fields — prices arrive as numbers, not
"Rs. 119,999"strings - Fast & resilient — concurrent requests, automatic retries, managed proxy rotation
- Any format — JSON, CSV, Excel, XML, HTML, or direct API access
How to scrape Daraz product data
Open the Daraz Product Scraper in Apify Console, enter an input below, and start the Actor. The resulting product records are available in the run's default dataset.
Quick start
1. Search by keyword…
{"country_domain": "pk","search_keywords": ["wireless headphones"]}
…or point it at a category URL
{"country_domain": "pk","startUrls": [{ "url": "https://www.daraz.pk/smartphones/" }]}
2. Get products back
{"title": "Airpods Pro 3","price": 119999,"priceFormatted": "Rs. 119,999","originalPrice": 125000,"discountPct": 4,"currency": "PKR","brand": "Apple","sellerName": "Retail - Apple Flagship Store","rating": null,"inStock": true,"isSponsored": false,"badges": ["campaign", "freeShipping", "mall", "voucher"],"location": "Sindh","productUrl": "https://www.daraz.pk/products/airpods-pro-3-i1960043391.html","country": "Pakistan","scrapedAt": "2026-07-29T11:16:26Z"}
Why use Daraz product data?
Use the normalized output to track listings, compare sellers, understand demand, and build reliable product datasets across Daraz marketplaces.
| Use case | Setup |
|---|---|
| Price monitoring | Daily scheduled runs on competitor categories → detect cuts within hours |
| Market research | Scrape a full category → analyze price distribution and gaps |
| Product intelligence | Track rating, reviewCount, soldCount over time → spot winners early |
| Inventory analysis | includeOutOfStock: false → find stockouts you can capture |
| AI training data | Titles, images, and prices at scale → real listings, not synthetic |
| Trend analysis | Re-run identical keywords weekly → seasonal pricing shifts |
| Lead generation | Aggregate sellerName + location → targeted B2B seller list |
Configure Actor input
Source selection
| Parameter | Type | Description |
|---|---|---|
country_domain | string | Marketplace: pk · bd · np · lk · mm |
search_keywords | array<string> | Search terms — e.g. ["airpods", "iphone charger"] |
startUrls | array<object> | Up to 100 Daraz URLs — e.g. [{ "url": "https://www.daraz.pk/smartphones/" }] |
country_domainis required. Provide at least one ofsearch_keywordsorstartUrls; both are supported and run in the same job.
Filters & sorting
| Parameter | Type | Default | Description |
|---|---|---|---|
sortBy | string | Daraz default | popularity (Best Match) · priceasc · pricedesc |
minRating | integer | — | Minimum average stars, 1–5 |
minPrice | integer | — | Minimum price, local currency |
maxPrice | integer | — | Maximum price, local currency |
includeOutOfStock | boolean | true | Set false to drop unavailable listings |
Limits
| Parameter | Type | Default | Description |
|---|---|---|---|
limitType | string | maxProducts | Which cap applies: maxProducts or maxPages |
maxProducts | integer | 100 | Products per keyword / per URL. 0 = unlimited |
maxPages | integer | 3 | Result pages per keyword / per URL, 1–100 |
Limits are per input, not per run. 3 keywords ×
maxProducts: 100= up to 300 products.
Full example
{"country_domain": "pk","search_keywords": ["airpods", "wireless earbuds"],"startUrls": [{ "url": "https://www.daraz.pk/audio-headphones/" }],"sortBy": "priceasc","minRating": 4,"maxPrice": 60000,"includeOutOfStock": false,"limitType": "maxProducts","maxProducts": 100}
Sorting and filtering cheat sheet
| Goal | Setting |
|---|---|
| See what shoppers see first | "sortBy": "popularity" |
| Find a category's price floor | "sortBy": "priceasc" |
| Isolate the premium tier | "sortBy": "pricedesc" |
| Credible products only | "minRating": 4 ← recommended |
| Target a price band | "minPrice": 5000, "maxPrice": 50000 |
| Accurate pricing averages | "includeOutOfStock": false |
Two things to know:
- Prices use local currency.
minPrice: 40000onpkmeans 40,000 PKR — don't convert to USD. - The
minRatingfilter runs server-side, so unrated new listings are excluded when it's active. OmitminRatingfor complete category coverage.
Output: structured Daraz product dataset
Each product is stored as one item in the run's default dataset, with an identical schema across all five marketplaces. You can export the dataset as JSON, CSV, Excel, XML, or HTML, or access it through the Apify API.
| Group | Fields |
|---|---|
| Identity | title · description · productId · skuId / sku · brand · brandId · categoryIds |
| Pricing | price · priceFormatted · originalPrice · discountPct · currency |
| Seller | sellerName · sellerId · location |
| Social proof | rating · reviewCount · soldCount |
| Status | inStock · isSponsored · badges · badgeText |
| Links & meta | imageUrl · productUrl · country · scrapedAt |
Full field reference
| Field | Type | Description |
|---|---|---|
title | string | Product name as listed on Daraz |
description | array<string> | Listing description / spec lines, when provided |
productId | string | Unique Daraz product identifier |
skuId / sku | string | SKU identifiers for the specific variant |
brand | string | null | Brand name; null when unbranded |
brandId | string | null | Daraz brand identifier |
categoryIds | array<string> | Daraz category IDs the product belongs to |
price | number | Current selling price, unformatted |
priceFormatted | string | Current price with currency symbol and separators |
originalPrice | number | null | Pre-discount price, when a discount is active |
discountPct | number | null | Discount percentage off the original price |
currency | string | ISO code — PKR, BDT, NPR, LKR, MMK |
sellerName | string | Store or seller display name |
sellerId | string | Seller identifier |
rating | number | null | Average customer rating, 1–5; null when unrated |
reviewCount | integer | null | Number of customer reviews |
soldCount | integer | null | Units sold, when Daraz publishes it |
inStock | boolean | null | Availability; null when Daraz doesn't report it |
isSponsored | boolean | Whether the listing is a paid placement |
badges | array<string> | Promo labels — mall, freeShipping, voucher, campaign, coins, choice, flashSale |
badgeText | string | null | Human-readable badge text, e.g. "Coins save ৳ 155" |
location | string | Seller's shipping location or region |
imageUrl | string | Direct URL to the primary product image |
productUrl | string | Canonical product page URL |
country | string | Full marketplace country name, e.g. Pakistan |
scrapedAt | string | UTC collection timestamp (ISO 8601) |
brand,rating,reviewCount,soldCount, andinStockcan benullwhen Daraz doesn't publish them — common for new listings. Null-check before aggregating.
Run the Actor via API
curl -H "Content-Type: application/json" \--data '{"country_domain": "pk","search_keywords": ["laptop"],"sortBy": "pricedesc","maxProducts": 100}' \"https://api.apify.com/v2/acts/itclan-bd~daraz-product-scraper/run-sync-get-dataset-items?token=YOUR_API_TOKEN"
Find your token under Settings → Integrations in the Apify Console. Never commit it.
Best practices
- Start small — test with
maxProducts: 20before a large run - Categories for coverage, keywords for discovery — categories give a stable slice; keywords show what buyers find
- Filter at the source —
minRating,minPrice,maxPricecost nothing extra and shrink the dataset before download - Pick the right limit —
maxProductsfor a fixed sample size,maxPagesfor consistent depth across categories - Schedule at the same hour — clean day-over-day comparisons
- Key on
productId+scrapedAt— makes price time-series trivial - Use
maxProducts: 0carefully — unlimited runs on broad keywords return tens of thousands of listings
FAQ
Do I need a Daraz account, API key, or proxies?
No to all three. You only need an Apify account — proxy rotation is handled automatically.
Can I scrape multiple countries in one run?
No. Each run targets one country_domain. Run the Actor once per country and merge the datasets.
Can I use keywords and category URLs together?
Yes. Provide both search_keywords and startUrls — they're processed in the same run and merged into one dataset.
Why did I get fewer products than my limit?
Three common reasons: duplicates were removed, your filters were narrow, or Daraz doesn't have that many matching listings.
Why is rating null on so many products?
Daraz only publishes ratings once a product has reviews. New listings have null for rating, reviewCount, and soldCount.
What's the difference between maxProducts and maxPages?
maxProducts caps products; maxPages caps result pages crawled. limitType decides which one applies. Both are per keyword and per start URL, not per run.
Which currency do minPrice and maxPrice use?
The marketplace's local currency — PKR, BDT, NPR, LKR, or MMK. Don't convert to USD.
Can I scrape a single product page?
No. startUrls accepts category, catalog, and search URLs — not individual product-detail pages.
How do I exclude sponsored listings?
They're returned with isSponsored: true. Filter them out in your export or downstream processing.
Can I schedule automatic runs?
Yes. Use Apify Schedules for daily, hourly, or any cron expression — ideal for price tracking.
What happens if some pages fail or get blocked?
Individual page failures never stop the run. Blocked or failed pages are automatically retried, then skipped if they still fail — the run completes successfully and returns everything collected from the pages that succeeded (partial results). Skipped pages are reported in the run log and the RUN_SUMMARY record in the key-value store.
How do I track price changes over time?
Schedule recurring runs and store each dataset. Key on productId and use scrapedAt as your time dimension.
Can I also scrape the customer reviews of a product?
This Actor returns each product's reviewCount and average rating, but not the individual review texts. To collect full customer reviews (review text, star rating, reviewer, and date), use our companion Daraz Product Reviews Scraper.
Related Actors
- Daraz Product Reviews Scraper — already have the products from this Actor? Feed their
productUrls into the Reviews Scraper to extract full customer reviews (review text, star rating, reviewer name, and date) across all five Daraz marketplaces. A natural next step for sentiment analysis, quality monitoring, and deeper product research.