Looking for the overview — what this API returns, what it costs, and a call you can run without a key? See the Daraz API page →
E-commerce & Marketplaces

Daraz API & Scraper

The Daraz API turns Daraz, the largest online marketplace in Pakistan and Bangladesh, into clean JSON in five actions across four separate storefronts: Pakistan in PKR, Bangladesh in BDT, Sri Lanka in LKR and Nepal in NPR.

5 actionsLive JSON1,000 free credits$0.67–$1.50 / 1,000 creditsMCP-ready
Get a free keyOpen in playground

🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.

The country is a real parameter, not a language switch. The four are independent catalogues: on the same query the first five product ids are entirely different in every country, and a search for shoes returns 1,881 matches in Bangladesh where the other three saturate at Daraz's own display ceiling of 4,080. search returns the product grid with the price actually charged, the strikethrough price, the real discount, rating and review count, units sold, the seller id and name, the shipping region, the brand and the ids needed to read the product. category walks any category or tag page with the same rows, and narrows genuinely: the query phone returns 4,080 matches across Pakistan and 2,108 inside the smartphones category. Filters were each measured against an unfiltered baseline taken in the same minutes. A price band of 5,000 to 15,000 rupees cuts 4,080 matches to 311, and all 40 returned rows fall inside the band. A four-star minimum removes every row below 4.0 where the unfiltered page carried two. A shipping-region filter returns 40 of 40 rows from Punjab where the unfiltered page was 15 Punjab and 25 Sindh. A cheapest-first sort returns 39 of 39 adjacent pairs in ascending order. product returns the full record: title, the full description as text and as the original HTML, brand, every image, the colour and size variant axes, the SKU table, the category path, availability and the return policy, together with the charged price, the strikethrough price, the real discount, the rating, the review count, the units sold and the seller's name. product/reviews returns the published reviews with the star rating, the text, the date, the buyer's display name, a verified-purchase flag, the reviewer's photos, the helpful votes, Daraz's three per-purchase sub-scores and the seller's reply, beside the aggregate 1-5 star histogram; the star filter agrees with that histogram exactly, returning 727 one-star reviews where the histogram says 727 and 6,300 five-star where it says 6,300. Verified on 2026-09-23: every action returned 100 percent of its calls, every published string across all successful calls was scanned and none contained any HTML, six product ids taken from search resolved to the same record with the same price six out of six, and prices were checked against the figure Daraz itself prints on 20 rows across all four countries. No Daraz account - one ReefAPI key and the standard { ok, data, meta, error } envelope.

Reference

Which number is the price, and why the country is part of the question

Daraz prints two prices on a product and the API keeps them in separate, currency-named fields. Measured on 2026-09-23 on the Pakistan storefront, against the figures Daraz publishes for the same items.

Daraz product (PK)price_pkrlist_price_pkrdiscount_percent
Apple iPhone 17 Pro Max 512GB54299961279911
DELL Chromebook 128GB154007699980
Rice cooker (Mobiles & Kitchen)59591200050
Lawn suit, unstitched1449249942
Men's sports shoes899199955
Blender / juicer4199499916

price_pkr is what a shopper is charged and list_price_pkr is Daraz's strikethrough price; list_price is null when there is no discount rather than repeating the selling price, so a zero-percent discount is never invented. The field is named after the currency in every country - price_pkr, price_bdt, price_lkr, price_npr - because Pakistan, Sri Lanka and Nepal all print prices as Rs. while meaning three different currencies, and merging them into one price column would be a silent error. discount_percent is worked out from the two prices and discount_percent_source is Daraz's own figure, published beside it so a disagreement is visible rather than absorbed. On a small share of rows Daraz rounds its own printed price to the whole unit - 9 rows in 320 measured across the four countries, for example a numeric 592.89 printed as Rs. 593 - and the API returns the precise number while keeping Daraz's string verbatim in price_display.

Live example

Real request and response JSON

Captured from the indexed primary action, search, on .

Captured request
{
  "method": "POST",
  "url": "https://api.reefapi.com/daraz/v1/search",
  "headers": {
    "x-api-key": "$REEF_KEY",
    "content-type": "application/json"
  },
  "body": {
    "query": "rice cooker",
    "country": "pk"
  }
}
Captured response
{
  "ok": true,
  "meta": {
    "api": "daraz",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": 3273.5,
    "record_count": 40,
    "bytes": 175002,
    "cache_hit": false,
    "stop_reason": "limit_reached",
    "upstream_requests": 1,
    "total_results": 4080,
    "total_results_capped": true,
    "country": "pk",
    "currency": "PKR",
    "charged_credits": 2,
    "version": "1.0.0"
  },
  "data": {
    "products": [
      {
        "item_id": "436061519",
        "sku_id": "2886596463",
        "sku": "436061519_PK",
        "cheapest_sku": "436061519_PK-2886596463",
        "url": "https://www.daraz.pk/products/-i436061519.html",
        "title": "Hot Plate - Electric Stove - Electric Kettle - Electric Cooking Machine - Electric Cooker - Hot Pot - Noodle Pot - Mini Rice Cooker - Non Stick Pan - Food Warmer - Baby Feeder Warmer & Sterilizer - Egg And Rice Boiler - Egg Steamer - Water Heating Machine",
        "currency": "PKR",
        "price_pkr": 1748,
        "list_price_pkr": 7999,
        "price_display": "Rs. 1,748",
        "list_price_display": null,
        "discount_percent": 78,
        "discount_percent_source": 78,
        "discount_display": "78% Off",
        "rating": 4.78,
        "rating_scale": null,
        "review_count": 64,
        "sold_count": 283,
        "sold_count_display": "283 sold",
        "brand_id": "39704",
        "brand_name": "No Brand",
        "seller_id": "2445",
        "seller_name": "Electroginal (Lahore)",
        "location": "Punjab",
        "in_stock": true,
        "image": "https://static-01.daraz.pk/p/376931c876199b497b7340551e5e23fd.png",
        "images": [],
        "sponsored": false,
        "highlights": [
          "Capacity 1.2 /1.8 Liters",
          "Material Stainless steelelectric Hot pot 1.2L, one button switch for easy use, adjustable temperature, choose different temperature to cook delicious food quickly. Transparent glass lid, anti-scalding handle, non-slip heat insulation, comfortable grip, meet your different needs of boiling, stir-frying, frying and hot pot. Enough for you and your friends to enjoy dining.",
          "Mini Multifunctional Electric Hot Pot Mini cooking soup pot noodle pot, perfect for stewing, cooking noodles, soup, porridge, dumplings, eggs, cereals and other kinds of delicious food, also can be used to fry steak, chicken, stir fry, cook noodles, eggs, fondue and so on. Cook a variety of cuisines for youTop Highlights"
        ]
      },
      {
        "item_id": "897336031",
        "sku_id": "3936136605",
        "sku": "897336031_PK",
        "cheapest_sku": "897336031_PK-3936136605",
        "url": "https://www.daraz.pk/products/15l-i897336031.html",
        "title": "Hotplate - Hotpot Multi-function 1.5L Mini Rice Cooker Portable Electric Cooker - Egg Streamer and Electric Stove - Noodle Pot Electric Kettle - Non-stick Mini Cooker - Electric Cooker Pan - Double Layer Pan for Kitchen Hotpot - Hotplate",
        "currency": "PKR",
        "price_pkr": 3999,
        "list_price_pkr": 9999,
        "price_display": "Rs. 3,999",
        "list_price_display": null,
        "discount_percent": 60,
        "discount_percent_source": 60,
        "discount_display": "60% Off",
        "rating": 4.89,
        "rating_scale": null,
        "review_count": 18,
        "sold_count": 104,
        "sold_count_display": "104 sold",
        "brand_id": "39704",
        "brand_name": "No Brand",
        "seller_id": "6005318064472",
        "seller_name": "SavvyCollection",
        "location": "Khyber Pakhtunkhwa",
        "in_stock": true,
        "image": "https://static-01.daraz.pk/p/575d2e2f71bfce7ab68406ec89832fda.jpg",
        "images": [],
        "sponsored": false,
        "highlights": [
          "*Multi-Functional*: Rice cooker, hotpot, noodle pot, electric kettle, and egg streamer in one- *Compact and Portable*: Easy to carry and store, ideal for small kitchens, dorms, or outdoor use- *Stainless Steel Construction*: Durable, easy to clean, and resistant to corrosion- *Double-Layer Pan Design*: Efficient heat distribution and retention for perfectly cooked meals- *Easy to Use*: Simple and intuitive controls make cooking a breeze"
        ]
      },
      {
        "item_id": "491254688",
        "sku_id": "14042227769",
        "sku": "491254688_PK",
        "cheapest_sku": "491254688_PK-14042227769",
        "url": "https://www.daraz.pk/products/raf-5l-r178-i491254688.html",
        "title": "RAF Electric Rice Cooker 5L capacity Original Best quality R.178",
        "currency": "PKR",
        "price_pkr": 14999,
        "list_price_pkr": 17499,
        "price_display": "Rs. 14,999",
        "list_price_display": null,
        "discount_percent": 14,
        "discount_percent_source": 14,
        "discount_display": "14% Off",
        "rating": 3.86,
        "rating_scale": null,
        "review_count": 7,
        "sold_count": 20,
        "sold_count_display": "20 sold",
        "brand_id": "39704",
        "brand_name": "No Brand",
        "seller_id": "6005174272815",
        "seller_name": "Umair Traders Imports",
        "location": "Balochistan",
        "in_stock": true,
        "image": "https://pk-live-21.slatic.net/kf/S7954862545cc4d1bb14d14cee148b48bp.jpg",
        "images": [],
        "sponsored": false,
        "highlights": [
          "pre { white-space: pre-wrap; }• Stainless Steel pot material for durable and efficient cooking.• 5L capacity suitable for large families or gatherings.• Fuzzy logic (Digital) rice cooker for precise cooking results.• 900W power consumption for quick and efficient cooking.• Automatic operating mode for convenient and hassle-free cooking.• Imported from China, ensuring quality and reliability.• Sleek black color family for a modern kitchen aesthetic.• Ideal for cooking a variety of rice types with precision.• Original best quality rice cooker for long-lasting performance.• Perfect for Quetta wit"
        ]
      }
    ],
    "count": 40,
    "non_product_tiles_dropped": 0,
    "filler_rows_dropped": 0,
    "page": 1,
    "per_page": 40,
    "last_page": 102,
    "currency": "PKR",
    "country": "pk",
    "total_results": 4080,
    "total_results_capped": true,
    "no_more_pages": false,
    "venture": "PK",
    "breadcrumb": [
      {
        "name": "Home",
        "url": "https://www.daraz.pk"
      },
      {
        "name": "Search Results",
        "url": null
      }
    ],
    "query": "rice cooker"
  }
}
Actions

What the Daraz API does

ActionDescriptionConcrete use caseKey params
searchSearch one Daraz storefront and get the product grid: the price actually charged in local currency, the strikethrough price, the real discount, rating and review count, units sold, the seller's id and name, the shipping region, the brand and both ids needed to read the product. Narrow by price band, minimum rating or shipping region — every filter offered here was measured to bite. 🔴 Daraz matches the words in a product title and does not do fuzzy multi-word matching: measured, `Samsung Galaxy S23 Ultra 512GB` returns 4 results while `iPhone 15 Pro Max 256GB Natural Titanium` returns ZERO. Search the way a shopper types, in two or three words.Pricing teams call search to search one Daraz storefront and get the product grid.query, country, page, price_min, price_max, ...
categoryWalk one Daraz category or tag page by page, with the same product rows and the same filters as `search`, plus an optional keyword applied INSIDE the category. Measured on PK: the whole `phone` search returns 4 080 matches and the `smartphones` category narrows it to 2 105. Category values come from the `category` facet — turn `include_facets` on in `search` to list them. A category Daraz does not publish returns NOT_FOUND rather than an empty success.Marketplace operators call category to get walk one Daraz category or tag page by page, with the same product rows and the same filters….category, country, query, page, price_min, ...
browseDocumented alias of `category` — identical parameters and identical response.Catalog enrichment teams call browse to get documented alias of `category`.category, country, query, page, price_min, ...
productThe full record for one product: title, full description (as text and as the original HTML), brand, every image and video, the colour/size variant axes, the SKU table with per-order limits, the category path, availability and the return policy — plus the price actually charged, the strikethrough price, the real discount, rating, review count, units sold and the seller's name. 🔴 The last group does not exist on Daraz's product page at all (its ld+json offer carries no price key, and its only price string was measured to be the STRUCK-THROUGH price on 12 of 12 products where the two differ), so this action also reads Daraz's own catalogue entry for the same item and tags every field it took from there with `price_source: "catalogue"`. That is why it costs two upstream requests. If the catalogue has no live entry, the price fields are null and `price_source` says `unavailable` — nothing is guessed.Retail analysts call product to get the full record for one product.item_id, country, sku_id
product/reviewsThe published customer reviews for one product: the star rating, the text, the date, the buyer's display name, whether it is a verified purchase, the reviewer's photos, the helpful votes, Daraz's three per-purchase sub-scores and the seller's reply where there is one — with the aggregate 1-5 star histogram beside them. 🔴 The histogram deliberately does not sum to `total_reviews`: Daraz withholds some reviews from the public list and states how many in `hidden_review_count` (measured: 8 308 visible across the histogram against a stated 8 362, with 2 482 hidden). Reviews can be read at most 1 000 deep per product.Pricing teams call product/reviews to get the published customer reviews for one product.item_id, country, page, limit, stars, ...
Code samples

Call search from your stack

curl -X POST https://api.reefapi.com/daraz/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"query":"rice cooker","country":"pk"}'
MCP one-liner
Ask your MCP-connected assistant: call reefapi.daraz.search with {"query":"rice cooker","country":"pk"}.
Use cases

Who uses this API and why

  • Track competitor pricing across Pakistan, Bangladesh, Sri Lanka and Nepal in one pipeline, with the charged price and the strikethrough price in separate currency-named fields so a discount is never confused with a price cut.
  • Monitor a brand's presence on South Asia's largest marketplace: which sellers list it, at what price, in which shipping regions, and how the four national catalogues diverge.
  • Build a price-comparison or deal-alert product for Pakistani and Bangladeshi shoppers, using the real discount computed from both prices rather than the marketing badge.
  • Pull customer reviews with the full 1-5 star histogram and verified-purchase flags for product research, sentiment analysis or review-summarisation, with the withheld-review count exposed so the sample is honest.
  • Feed a marketplace-intelligence or seller-analytics dashboard with category-level assortment, per-row seller and brand attribution, and units-sold signals across four countries.
FAQ

Questions developers ask before integrating

Which countries does this cover, and are they really different?

Four storefronts: Pakistan in PKR, Bangladesh in BDT, Sri Lanka in LKR and Nepal in NPR. They are genuinely separate catalogues rather than one catalogue in four skins. On the same query the first five product ids are entirely disjoint across all four, prices differ by magnitudes that are not a currency conversion of one shared number, and the match counts differ too - a search for shoes returns 1,881 matches in Bangladesh while Pakistan, Sri Lanka and Nepal all reach Daraz's display ceiling. Daraz's Myanmar storefront, daraz.com.mm, is not offered: as of 23 September 2026 the domain no longer serves a working site at all, and asking for it returns a clear MARKET_UNAVAILABLE rather than a confusing error.

Why does the price field have the currency in its name?

Because three of the four storefronts print the same symbol for three different currencies. Pakistan, Sri Lanka and Nepal all show prices as Rs., meaning Pakistani, Sri Lankan and Nepalese rupees, which are not the same unit of money, and Daraz publishes no currency code anywhere in its data. If the API returned a plain price field, a caller pulling two countries into one table would silently be adding together three different currencies. So the field is price_pkr, price_bdt, price_lkr or price_npr, the currency is always stated in the response, and the mistake becomes impossible to make by accident.

How many results can I get for one query?

Forty products a page. Daraz reports an exact match count up to 4,080 and truncates its own figure there, so the response tells you which case you are in: total_results carries Daraz's number, total_results_capped says whether that number is the real count or the ceiling, and last_page plus no_more_pages give you the real end. A search for Samsung Galaxy S23 Ultra 512GB returns 4 matches and exactly 4 rows; a search for Nike Air Force 1 returns 3,164 and ends at page 80, which is 3,164 divided by 40. Asking for a page beyond the end returns an empty page with an explanation in page_note rather than filler, because past its real last page Daraz keeps answering with forty unrelated products and nothing in its response says they are not results.

Which filters actually work?

Only the ones measured to change the result, and the page documents what each one does to the count. A price band cuts the query phone from 4,080 matches to 311 with all 40 returned rows inside the band, and a category narrows the same query to 2,108. A minimum rating and a shipping region genuinely change the rows - the rating filter removed every row below four stars where the unfiltered page had two, and the region filter returned 40 of 40 rows from Punjab against an unfiltered split of 15 Punjab and 25 Sindh - but Daraz does not recalculate its reported total for either, so on those two the rows are authoritative and the total is not, and the API says so in the parameter description rather than letting you find out. Brand, seller and service filters are deliberately not offered: Daraz advertises them, accepts them and then ignores them, and a filter that silently does nothing is worse than no filter. Brand and seller are still returned on every row, so you can filter on them yourself.

Can I sort by price and then page through the results?

You can sort by price, on page one. Cheapest-first and dearest-first both work and were checked row by row: 39 of 39 adjacent pairs came back correctly ordered in each direction. But Daraz returns the identical forty rows on page one, page two and page ten of a price-sorted query, so paging a price sort would hand you the same products over and over while looking like progress. Asking for a page beyond the first together with a price sort returns INVALID_PARAM explaining exactly that. To walk a catalogue by price, drop the sort and step through price bands instead.

What is in a product record that is not in a search row?

The full description as clean text and as the original HTML, every gallery image and video, the colour and size variant axes with each value's own image, the SKU table with per-order limits, the category path, the brand link, availability and the return policy. Across 18 products in six categories, title, description, brand, images, category path and currency were present on all 18, and the variant axes on 16 - the two without them are genuinely single-variant items. The product record also carries the charged price, rating, review count, units sold and seller name, which Daraz does not put on its product page at all; the API resolves them for you in the same call and tags them with price_source so you always know which of Daraz's own documents a number came from.

How complete are ratings and sold counts?

It depends on the country, and the honest answer is published rather than averaged away. On Pakistan and Sri Lanka, rating arrives on roughly 30 to 34 rows in 40 and units sold on 21 to 33. On Nepal it is far sparser - on one 40-row laptop search, rating arrived on 2 rows and units sold on 1 - because the Nepali catalogue carries much less review activity. If you are building on rating or sold count, choose the country with that in mind. Daraz states no rating scale anywhere, so rating_scale is returned as null rather than being assumed to be out of five, and any field Daraz does not publish comes back null rather than as a guess.

How far do reviews go, and does the star filter agree with the histogram?

Up to 50 reviews a page and 1,000 deep per product, and the aggregate figures cover the whole product however deep you page. The star filter and Daraz's own histogram agree exactly: filtering to one star returned 727 where the histogram says 727, and to five stars 6,300 where it says 6,300. One thing worth knowing is that the histogram does not add up to the stated total, and that is Daraz's own arithmetic rather than a rounding error on our side - on one product the five star buckets sum to 8,308 against a stated 8,362, because Daraz withholds some reviews from the public list. The count it withholds is returned as hidden_review_count so you can see the gap instead of discovering it as a bug.

What is the Daraz API?

Daraz API is a ReefAPI endpoint group for south asia's biggest marketplace across pakistan, bangladesh, sri lanka and nepal: four catalogues, four currencies, with the charged price and the strikethrough kept apart. It returns live JSON through POST requests under /daraz/v1.

Is the Daraz API free to try?

Yes. ReefAPI starts with 1,000 free credits, no card required. Daraz calls use the same shared credit balance as every other ReefAPI engine.

Do I need a Daraz login or account?

No login to Daraz is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.

How fresh is the Daraz data?

The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.

How many credits does the Daraz API use?

Daraz actions currently cost 2-3 credits per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.

Can I call Daraz from an AI assistant or MCP client?

Yes. Connect ReefAPI once through MCP and your assistant can call daraz actions with the same key, credit pool and JSON envelope used by normal REST requests.

docs / daraz

Daraz

South Asia's biggest marketplace across Pakistan, Bangladesh, Sri Lanka and Nepal: four catalogues, four currencies, with the charged price and the strikethrough kept apart.

base /daraz/v15 endpoints
post/daraz/v1/category2 credits

Walk one Daraz category or tag page by page, with the same product rows and the same filters as `search`, plus an optional keyword applied INSIDE the category. Measured on PK: the whole `phone` search returns 4 080 matches and the `smartphones` category narrows it to 2 105. Category values come from the `category` facet — turn `include_facets` on in `search` to list them. A category Daraz does not publish returns NOT_FOUND rather than an empty success.

ParameterAllowed / rangeDescription
categoryrequired—A Daraz category slug (`smartphones`), a tag (`tag/iphone`) or a full Daraz category URL. 🔴 Daraz only honours a category as a URL PATH — passing it as a query parameter is silently ignored (measured: 4 080 -> 4 080, unchanged), which is why this is its own action.
queryoptional—Optional keyword applied inside the category.
country = pkoptionalpk · bd · lk · npWhich Daraz storefront to read. 🔴 This is not a language switch: the four storefronts are SEPARATE catalogues priced in four different currencies, and the same search returns different products in each. Note that Pakistan, Sri Lanka and Nepal all print prices as "Rs." while meaning PKR, LKR and NPR — the response always names the currency and the price field carries the currency in its name.
page = 1optional1–1-based page number. Daraz serves 40 products a page, and `last_page` in the response is the last page that holds real results. 🔴 Asking for a page beyond it does NOT return an error or an empty page: Daraz answers HTTP 200 with 40 unrelated products (measured — page 100 000 of a 3 164-result query returned a full page of toys and phone cases). This API drops those and says so in `page_note`, so a page past the end comes back empty rather than wrong.
price_minoptional0–Lowest price, in the storefront's own currency and whole units. Measured on the query `phone` (PK): 4 080 matches unfiltered, 312 between 5 000 and 15 000 PKR, and 0 of the 40 returned rows fell outside the band.
price_maxoptional1–Highest price, in the storefront's own currency. Sent to Daraz as one band with `price_min`; this is the one filter that also corrects the reported total.
min_ratingoptional1–5Only products rated at least this many stars. 🔴 It really does filter the ROWS (measured on `phone`: the unfiltered page carried 2 rows under 4.0, the filtered page 0) but Daraz does NOT recompute `total_results` for it — that figure stays at the unfiltered value. Trust the rows, not the total, when this is set.
locationoptional—Only products shipped from this region, spelled as Daraz spells it. Turn `include_facets` on to see the regions a query actually offers. 🔴 Same caveat as `min_rating`: measured on `phone`, the unfiltered page was 17 Punjab / 23 Sindh and the filtered page 40/40 Punjab — but `total_results` did not change.
sortoptionalpopularity · price_asc · price_descResult order, read off Daraz's own sort bar. 🔴 A price sort cannot be paged: measured, `price_asc` returns the identical 40 rows on pages 1, 2 and 10, so asking for page > 1 together with a price sort is rejected rather than served as duplicates. Daraz offers no 'newest' or 'best selling' order on this site.
include_facets = falseoptional—Also return `facets`: the filter block Daraz itself shows for this query — categories, brands, shipping regions, services and the category-specific attributes, each with the value to pass back. Measured 13 facet groups on a `laptop` search. 🔴 Daraz does not publish a product COUNT beside its facet values, so `count` is null on every one; the values are real, the counts are not published. Costs no extra upstream request.
Try in playground →
post/daraz/v1/browse2 credits

Documented alias of `category` — identical parameters and identical response.

ParameterAllowed / rangeDescription
categoryrequired—See `category`.
country = pkoptionalpk · bd · lk · npWhich Daraz storefront to read. 🔴 This is not a language switch: the four storefronts are SEPARATE catalogues priced in four different currencies, and the same search returns different products in each. Note that Pakistan, Sri Lanka and Nepal all print prices as "Rs." while meaning PKR, LKR and NPR — the response always names the currency and the price field carries the currency in its name.
page = 1optional1–1-based page number. Daraz serves 40 products a page, and `last_page` in the response is the last page that holds real results. 🔴 Asking for a page beyond it does NOT return an error or an empty page: Daraz answers HTTP 200 with 40 unrelated products (measured — page 100 000 of a 3 164-result query returned a full page of toys and phone cases). This API drops those and says so in `page_note`, so a page past the end comes back empty rather than wrong.
Try in playground →
post/daraz/v1/product3 credits

The full record for one product: title, full description (as text and as the original HTML), brand, every image and video, the colour/size variant axes, the SKU table with per-order limits, the category path, availability and the return policy — plus the price actually charged, the strikethrough price, the real discount, rating, review count, units sold and the seller's name. 🔴 The last group does not exist on Daraz's product page at all (its ld+json offer carries no price key, and its only price string was measured to be the STRUCK-THROUGH price on 12 of 12 products where the two differ), so this action also reads Daraz's own catalogue entry for the same item and tags every field it took from there with `price_source: "catalogue"`. That is why it costs two upstream requests. If the catalogue has no live entry, the price fields are null and `price_source` says `unavailable` — nothing is guessed.

ParameterAllowed / rangeDescription
item_idrequired—The numeric Daraz item id or any Daraz product URL. Every `search` row carries both.
country = pkoptionalpk · bd · lk · npWhich Daraz storefront to read. 🔴 This is not a language switch: the four storefronts are SEPARATE catalogues priced in four different currencies, and the same search returns different products in each. Note that Pakistan, Sri Lanka and Nepal all print prices as "Rs." while meaning PKR, LKR and NPR — the response always names the currency and the price field carries the currency in its name.
sku_idoptional—Which variant to read. A Daraz item can hold several SKUs at different prices (measured: one rice cooker's two SKUs print 12 000 and 9 999), so pass the `sku_id` from the search row when you have it. Omitted, Daraz picks its own default.
Try in playground →
post/daraz/v1/product/reviews2 credits

The published customer reviews for one product: the star rating, the text, the date, the buyer's display name, whether it is a verified purchase, the reviewer's photos, the helpful votes, Daraz's three per-purchase sub-scores and the seller's reply where there is one — with the aggregate 1-5 star histogram beside them. 🔴 The histogram deliberately does not sum to `total_reviews`: Daraz withholds some reviews from the public list and states how many in `hidden_review_count` (measured: 8 308 visible across the histogram against a stated 8 362, with 2 482 hidden). Reviews can be read at most 1 000 deep per product.

ParameterAllowed / rangeDescription
item_idrequired—The numeric Daraz item id or a Daraz product URL. 🔴 A SKU id is NOT accepted here — Daraz returns an empty list for one, because the two id spaces are different.
country = pkoptionalpk · bd · lk · npWhich Daraz storefront to read. 🔴 This is not a language switch: the four storefronts are SEPARATE catalogues priced in four different currencies, and the same search returns different products in each. Note that Pakistan, Sri Lanka and Nepal all print prices as "Rs." while meaning PKR, LKR and NPR — the response always names the currency and the price field carries the currency in its name.
page = 1optional1–1-based page number. Daraz serves 40 products a page, and `last_page` in the response is the last page that holds real results. 🔴 Asking for a page beyond it does NOT return an error or an empty page: Daraz answers HTTP 200 with 40 unrelated products (measured — page 100 000 of a 3 164-result query returned a full page of toys and phone cases). This API drops those and says so in `page_note`, so a page past the end comes back empty rather than wrong.
limit = 20optional1–50Reviews per page, up to 50 (default 20: 119 KB a call against 308 KB at 50). 🔴 Daraz returns ZERO rows for a larger value rather than clamping it, so this API clamps it instead. `page x limit` may not exceed 1000, which is how deep Daraz serves reviews however many exist.
starsoptional1–5Only reviews with exactly this many stars. Verified against Daraz's own histogram: the 1-star filter returned 727 where the histogram says 727, the 5-star filter 6 300 where it says 6 300.
sort = relevanceoptionalrelevance · recentReview order. Daraz accepts two further values and returns a byte-identical list for both, so they are not offered here.
Try in playground →
Built for volume
5M+ requests a day

Measured at 60 requests a second across the fleet, with no central bottleneck. Volume pricing is on request, and per-key limits are raised for high-volume accounts.

Missing a source?
We build it

Tell us a site we do not cover yet and it becomes an engine. A customer asked for bestprice.gr on a Sunday and it was in the catalog the next day.

Support
2 minute median reply

Median time from a question in the live chat to the first answer, measured across every answered conversation. Setup help included, no support tier to buy.

One key, one balance
Every API included

No per-site plans and no separate subscriptions. One key and one credit pool across the whole catalog, so adding a source costs nothing up front.

Planning something large? Tell us the volume and the sources and we will come back with what it costs and what we would have to build.