
TikTok Shop Scraper
scrape.ly/store/shelfbright/tiktok-shop-scraperE-commerceSocial media
1 monthly user

Scrape Daraz products from searches, categories and brand pages in Pakistan, Bangladesh, Nepal, Sri Lanka and Myanmar: prices, discounts, sellers, ratings, sold counts, stock and badges. No login needed.
Get clean product data from Daraz in Pakistan, Bangladesh, Nepal, Sri Lanka and Myanmar: prices, discounts, sellers, ratings, sold counts, stock and badges for every product in a search, category or brand page. No login and no browser needed, 1,000 products take well under a minute, and you pay only for the products you get.
smartphone) and pick the country, or paste Daraz search, category or brand URLs.| Field | What it does |
|---|---|
searchKeywords | Keywords to search. Each keyword is its own search. |
startUrls | Daraz search, category or brand page URLs from any of the five sites. Sort and filters already in the URL are kept unless you set the same option in the input. |
country | Marketplace for keyword searches: pk, bd, np, lk or mm. URLs always use their own site. |
maxProducts | Products per keyword and per URL (0 = no limit). |
sortBy | popularity (best match), priceasc or pricedesc. |
minPrice / maxPrice | Price range in the local currency (PKR, BDT, NPR, LKR, MMK). |
minRating | Minimum stars, 1 to 5. Daraz then also drops products with no rating yet. |
includeOutOfStock | Turn off to skip products Daraz reports as unavailable. |
maxPages | Optional page limit per keyword or URL (40 products per page). |
{
"searchKeywords": ["smartphone", "wireless earbuds"],
"startUrls": [{ "url": "https://www.daraz.com.bd/smartphones/" }],
"country": "pk",
"maxProducts": 100,
"sortBy": "priceasc",
"minPrice": 1000,
"maxPrice": 60000,
"includeOutOfStock": false
}
One row per product.
| Field | Description |
|---|---|
productId, skuId, sku | Daraz item, variant and SKU IDs |
title | Product name |
description | Key-feature bullets Daraz shows with the listing |
brand, brandId | Brand (null for "No Brand") and its ID |
categoryIds | Daraz category IDs, broadest first |
sellerName, sellerId | Shop selling the product |
price, priceFormatted, originalPrice, discountPct, currency | Current price, the price as shown, the price before discount, discount % and currency code |
rating, reviewCount | Average stars and number of ratings (null when not rated yet) |
soldCount, soldText | Units sold as a number and as shown |
inStock, isSponsored | Availability and whether it is a paid placement |
badges, badgeText | Badges such as freeShipping, mall, coins, voucher, and their text |
location | Region the product ships from |
imageUrl, productUrl | Main image and product page |
country, marketplace | Marketplace country and code |
searchQuery, sourceUrl, page, position | Where the product was found |
scrapedAt | UTC time of collection |
Example (from a test run, smartphone on daraz.pk):
{
"productId": "1958170417",
"skuId": "14018980060",
"sku": "1958170417_PK",
"title": "Infinix Smart 20 4GB / 64GB",
"description": ["Infinix Smart 20 4GB / 64GB"],
"brand": "Infinix",
"brandId": "12941",
"categoryIds": ["2", "3"],
"sellerName": "Infinix Flagship Store",
"sellerId": "6005653264002",
"price": 37399,
"priceFormatted": "Rs. 37,399",
"originalPrice": 39999,
"discountPct": 7,
"currency": "PKR",
"rating": 4.91,
"reviewCount": 87,
"soldCount": 3100,
"soldText": "3.1K sold",
"inStock": true,
"isSponsored": false,
"badges": ["freeShipping", "mall", "voucher"],
"badgeText": null,
"location": "Punjab",
"imageUrl": "https://static-01.daraz.pk/p/4e624c69db6f934474218264dc87afb2.jpg",
"productUrl": "https://www.daraz.pk/products/infinix-smart-20-4gb-64gb-i1958170417.html",
"country": "Pakistan",
"marketplace": "pk",
"searchQuery": "smartphone",
"sourceUrl": "https://www.daraz.pk/catalog/?q=smartphone",
"page": 1,
"position": 4,
"scrapedAt": "2026-10-21T14:44:11.325Z"
}
The run's key-value store also holds an OUTPUT summary: products saved per keyword or URL, how many products Daraz reports, and any skipped inputs.
You pay $0.80 per 1,000 products saved ($0.0008 per product), plus a small platform usage charge for compute and proxy traffic. In our tests usage came to about $0.004 per 1,000 products at the default 256 MB memory.
Empty searches, invalid URLs and failed pages cost nothing. Set a maximum charge on the run if you want a hard cap: the run stops cleanly when it is reached.
Is it legal to scrape Daraz? The scraper only reads public product listings that anyone can see without an account. You are responsible for how you use the data; check Daraz's terms and the laws that apply to you, and don't use the data to spam sellers.
Do I need a Daraz account, cookies or my own proxy? No. No login is used. The default platform datacenter proxy works for Daraz; if Daraz starts refusing those exits, the run switches to residential exits in the marketplace's country on its own.
How many products can I get? As many as Daraz has. One Daraz listing shows at most 4,080 products; when you ask for more (or set the limit to 0), the scraper walks price bands to collect the rest. Note that the limit applies to each keyword and each URL separately.
In what order are products saved? Up to the size of one listing, products follow Daraz's order (best match or your sort). When the scraper walks price bands to get more, the extra products come grouped by price, lowest first. Daraz reshuffles its best-match order on every page load, so the order is never exactly the same twice.
Why are some fields empty?
They are empty on Daraz too: new products have no rating or sold count, unbranded products show "No Brand" (saved as null), and originalPrice / discountPct are only set for discounted products.
Can I schedule runs or use the API? Yes. Schedule the scraper for daily price tracking, call it from the API, or connect it to webhooks and integrations to push the data where you need it.
Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
searchKeywordsarrayOptionalSearch keywords
Product keywords to search on the marketplace picked in Country, e.g. 'smartphone' or 'wireless earbuds'. Each keyword is its own search and gets its own product limit.
startUrlsarrayOptionalDaraz URLs
Daraz search, category or brand pages, e.g. https://www.daraz.pk/smartphones/ or https://www.daraz.com.bd/catalog/?q=watch. Any of the five Daraz sites works, and each URL uses its own site. Sort and filters already in the URL are kept unless you set the same option below. Single product pages are not supported.
countryenumOptionaldefault "pk"Country
Daraz marketplace used for keyword searches. URLs always use the site they point to.
maxProductsintegerOptionaldefault 20Max products per keyword or URL
Stop after this many products for each keyword and each URL. Set 0 for no limit. Daraz lists up to 4,080 products per listing; above that the scraper walks price bands to reach more.
Applied by Daraz itself, so filtered runs need fewer requests.
sortByenumOptionalSort by
Result order. Leave empty to keep Daraz's default order (or the sort already in a URL).
minPriceintegerOptionalMinimum price
Only products at or above this price, in the marketplace's own currency (PKR, BDT, NPR, LKR or MMK).
maxPriceintegerOptionalMaximum price
Only products at or below this price, in the marketplace's own currency.
minRatingintegerOptionalMinimum rating
Only products rated at least this many stars (1 to 5). Daraz also drops products that have no rating yet when this is set.
includeOutOfStockbooleanOptionaldefault trueInclude out-of-stock products
Turn off to skip products Daraz reports as unavailable.
maxPagesintegerOptionalMax pages per keyword or URL
Optional page limit (40 products per page) for each keyword and URL. Daraz serves at most 102 pages per listing. Leave empty or 0 to use only the product limit.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy configuration
Datacenter exits work for Daraz. If Daraz starts refusing them, the run switches to residential exits in the marketplace's country by itself.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| productId | string | null | Daraz item ID, the stable key of the listing. |
| skuId | string | null | ID of the variant shown in the listing. |
| sku | string | null | Daraz SKU code of the listed variant. |
| title | string | null | Product name as shown on Daraz. |
| description | array | Key-feature bullets Daraz shows with the listing. |
| brand | string | null | Brand name; null for unbranded products ('No Brand'). |
| brandId | string | null | Daraz brand ID. |
| categoryIds | array | Daraz category IDs, broadest first. |
| sellerName | string | null | Shop selling the product. |
| sellerId | string | null | Daraz seller ID. |
| price | number | null | Current price in the local currency. |
| priceFormatted | string | null | Price as Daraz displays it, with the currency sign. |
| originalPrice | number | null | Price before discount; null when not discounted. |
| discountPct | number | null | Discount percentage. |
| currency | string | null | ISO currency code: PKR, BDT, NPR, LKR or MMK. |
| rating | number | null | Average rating 0-5; null when not rated yet. |
| reviewCount | number | null | Number of ratings and reviews. |
| soldCount | number | null | Units sold, expanded from Daraz's short form (3.1K = 3100). |
| soldText | string | null | Sold count as Daraz shows it. |
| inStock | boolean | null | Availability as reported by Daraz. |
| isSponsored | boolean | null | True for paid placements. |
| badges | array | Listing badges: freeShipping, mall, coins, voucher and others. |
| badgeText | string | null | Text on the badges, e.g. the coins saving. |
| location | string | null | Region the product ships from. |
| imageUrl | string | null | Main product image URL. |
| productUrl | string | null | Product page on Daraz. |
| country | string | null | Marketplace country name. |
| marketplace | string | null | Marketplace code: pk, bd, np, lk or mm. |
| searchQuery | string | null | Keyword that found the product (null for category and brand URLs). |
| sourceUrl | string | null | Listing the product was found on. |
| page | number | null | Listing page number. |
| position | number | null | Position in the listing. |
| scrapedAt | string | null | UTC time the product was collected. |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Product | One Daraz product saved to the dataset (title, price, discount, brand, seller, rating, reviews, sold count, stock, badges, image and link). | $0.0008 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('shelfbright/daraz-scraper').call({
"searchKeywords": [
"smartphone"
],
"country": "pk",
"maxProducts": 20,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"DATACENTER"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run shelfbright/daraz-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=shelfbright/daraz-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Two keyword searches on daraz.pk in one run.
Scrape a category page URL from daraz.com.bd.
Price range, lowest price first, out-of-stock products skipped.
No product limit: collects the whole filtered listing on daraz.lk.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.