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

Hepsiburada API & Scraper

The Hepsiburada API returns product data from a leading Turkish e-commerce marketplace as clean JSON.

6 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 primary product/detail endpoint returns a product's title, brand, price (TRY), original price, discount rate, images, rating, review count, stock and seller, and you can pull product/reviews, product/offers, run a search, browse a category and pull a seller. It is built for price intelligence, catalog enrichment and Turkish e-commerce analytics that need Hepsiburada data without a scraper. One ReefAPI key, one shared credit pool, the standard envelope.

Reference

Hepsiburada ids, Turkish price formatting and two rating scales

One Hepsiburada product carries three different ids, and the response gives you the price twice on purpose, because Turkish formatting uses the dot for thousands and the comma for kuruş. The merchant score and the product score also run on different scales. Measured on 2026-08-27 against HBCV00008749EE, a MacBook Air M4, and a 'laptop' search.

FieldFormatMeasured value
sku"HBCV" plus 10 upper-case alphanumerics, 14 characters. This is what every action takesHBCV00008749EE
product_id"HBC" plus 10 characters, 13 long. Close to the sku but not equal to itHBC00008749ED
listing_idUUID identifying one merchant's offer on that product94e353b0-b2e7-41b8-ad56-4ddb0bb56b14
priceA plain number in TRY, kuruş as the decimals67199.04
price_formattedThe Turkish string as the site prints it: dot for thousands, comma for kuruş"67.199,04"
original_price + discount_ratePre-discount price and an integer percentage69999.0 and 4
rating / rating_countProduct score on a 0-5 scale4.9 over 302 ratings
merchant.ratingMerchant score on a 0-10 scale, a different scale from the product9.6 for PivotExpert, 10.0 for MegaCraft
other_offers[].quantityThat merchant's own stock count for the listing3 and 28 on the two competing offers
category (parameter)"<slug>-c-<id>", and the id comes back as category_idlaptop-notebook-dizustu-bilgisayarlar-c-98 returned category_id 98
gtin / variants[].barcodeRetail barcode digits"0195949890413"
meta.render"ssr" means real rows were served, "skeleton" means none wereskeleton returned record_count 0 with ok true

Review authors arrive pre-masked by Hepsiburada ("Ahmet A*****"), review dates are ISO YYYY-MM-DD, and roughly 10 reviews come back per page. Page one of both search and category returned 14 rows in this measurement, so page with meta.pagination rather than assuming a fixed page size.

Live example

Real request and response JSON

Captured from the indexed primary action, search, on .

Captured request
{
  "method": "POST",
  "url": "https://api.reefapi.com/hepsiburada/v1/search",
  "headers": {
    "x-api-key": "$REEF_KEY",
    "content-type": "application/json"
  },
  "body": {
    "query": "laptop"
  }
}
Captured response
{
  "ok": true,
  "meta": {
    "api": "hepsiburada",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": 4696.5,
    "record_count": 12,
    "bytes": 3532973,
    "cache_hit": false,
    "completeness_pct": 100,
    "render": "ssr",
    "pagination": {
      "page": 1,
      "has_more": true
    },
    "charged_credits": 3,
    "version": "0.2.0"
  },
  "data": {
    "results": [
      {
        "sku": "HBCV0000FC0KHB",
        "title": "Lenovo IdeaPad Slim 3 AMD Ryzen 7 170 16GB 512GB SSD Freedos 15.3\" Taşınabilir Bilgisayar 83K700PSTR",
        "brand": "Lenovo",
        "url": "https://www.hepsiburada.com/lenovo-ideapad-slim-3-amd-ryzen-7-170-16gb-512gb-ssd-freedos-15-3-tasinabilir-bilgisayar-83k700pstr-p-HBCV0000FC0KHB",
        "image": "https://productimages.hepsiburada.net/s/777/222-222/110001806741453.jpg",
        "price": 34999,
        "original_price": 34999,
        "discount_rate": 0,
        "currency": "TRY",
        "rating": 4.9,
        "rating_count": 25,
        "merchant": null,
        "installment_count": 6
      },
      {
        "sku": "HBCV0000FX57Q2",
        "title": "Acer Aspire Lite Intel Celeron N4500 8GB 256GB SSD Freedos 15.6\" Taşınabilir Bilgisayar NX.DHFEY.001",
        "brand": "Acer",
        "url": "https://www.hepsiburada.com/acer-aspire-lite-intel-celeron-n4500-8gb-256gb-ssd-freedos-15-6-tasinabilir-bilgisayar-nx-dhfey-001-p-HBCV0000FX57Q2",
        "image": "https://productimages.hepsiburada.net/s/777/222-222/110001851281810.jpg",
        "price": 13999,
        "original_price": 13999,
        "discount_rate": 0,
        "currency": "TRY",
        "rating": 3.5,
        "rating_count": 8,
        "merchant": null,
        "installment_count": 6
      },
      {
        "sku": "HBCV0000A9HHKX",
        "title": "Casper Excalibur G870 Intel Core i7 13620H 24GB 1TB SSD RTX5060 Freedos 15.6\" 165Hz Taşınabilir Bilgisayar G870.1362-CF60X-C",
        "brand": "Casper",
        "url": "https://www.hepsiburada.com/casper-excalibur-g870-intel-core-i7-13620h-24gb-1tb-ssd-rtx5060-freedos-15-6-165hz-tasinabilir-bilgisayar-g870-1362-cf60x-c-p-HBCV0000A9HHKX",
        "image": "https://productimages.hepsiburada.net/s/777/222-222/110001225302512.jpg",
        "price": 71699,
        "original_price": 71699,
        "discount_rate": 0,
        "currency": "TRY",
        "rating": 4.8,
        "rating_count": 243,
        "merchant": null,
        "installment_count": 6
      }
    ],
    "query": "laptop",
    "page": 1,
    "render": "ssr"
  }
}
Actions

What the Hepsiburada API does

ActionDescriptionConcrete use caseKey params
product/detailFull Hepsiburada product details by `url` or HB code (`sku`): title, brand, price, discount, images, rating, stock, seller (merchant), category, specifications, variants, top reviews, coupon/campaign badges, and all other_offers (every merchant selling the same product).Pricing teams call product/detail to get full Hepsiburada product details by `url` or HB code (`sku`).url, sku, max_rotations
product/reviewsPaginated customer reviews for a product by `sku` or `url`, in the order you ask for. `sort=newest` puts the most recently written reviews first and holds that order across pages, so you can poll a product for new reviews; without `sort` Hepsiburada returns its own default order, which is not chronological. Every page carries the honest totals — how many reviews exist, the full star histogram, the average computed from it, total_pages for your page_size, and how deep Hepsiburada actually lets you page. Note that Hepsiburada mixes written reviews with star-only ratings in the same list: rows carry `type` ('review' or 'rating') and `has_text` so you can keep only the ones with text. Up to 100 reviews per page. Reviewer names are published by Hepsiburada already masked (e.g. 'Ahmet K***') and the row's gender/birth-date fields are deliberately not returned.Marketplace operators call product/reviews to get paginated customer reviews for a product by `sku` or `url`, in the order you ask for.sku, url, page, page_size, sort, ...
product/offersEvery merchant listing (buybox + other sellers) for a product by `sku` or `url`: compare price, seller rating, shipping and stock across all sellers of the same item.Catalog enrichment teams call product/offers to get every merchant listing (buybox + other sellers) for a product by `sku` or `url`.sku, url, max_rotations
searchSearch Hepsiburada products by keyword with optional sort and price/brand filters — returns results with SKU, title, brand, price, list price, rating, image and merchant. Results may be empty for very niche queries; try a broader keyword.Retail analysts call search to search Hepsiburada products by keyword with optional sort and price/brand filters.query, page, sort, price_min, price_max, ...
categoryBrowse a Hepsiburada category page by its path (`category` = '<slug>-c-<id>', e.g. 'laptop-notebook-dizustu-bilgisayarlar-c-98') with optional sort/price filters and pagination. Use it to list everything in a category, not just a keyword match.Pricing teams call category to get browse a Hepsiburada category page by its path (`category` = '<slug>-c-<id>', e.g.category, page, sort, price_min, price_max, ...
sellerHepsiburada merchant (mağaza) profile + its product catalogue by store slug (`seller`, e.g. 'jollyshop') or full /magaza/<slug> URL. Returns seller info (name, rating, total product count) and a paginated list of the seller's products.Marketplace operators call seller to get hepsiburada merchant (mağaza) profile + its product catalogue by store slug (`seller`, e.g.seller, page, sort, price_min, price_max, ...
Code samples

Call search from your stack

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

Who uses this API and why

  • Pricing teams call search and product/offers to track Hepsiburada prices and seller competition.
  • Catalog-enrichment tools use product/detail to fill listings with images, specs and stock.
  • Review-analysis products pull product/reviews to monitor sentiment and ratings for a product.
FAQ

Questions developers ask before integrating

How does the API handle Turkish number formatting, where the dot means thousands?

It returns both forms so nothing has to be guessed. price is a plain number and price_formatted is the string exactly as the site prints it. For HBCV00008749EE that was price 67199.04 and price_formatted "67.199,04", which is sixty-seven thousand lira and four kuruş, not sixty-seven lira. The arithmetic checks out too: original_price 69999.0 with discount_rate 4 gives 67199.04.

What is the difference between sku, product_id and listing_id?

sku is the HBCV code in the URL and the value every action accepts, 14 characters, for example HBCV00008749EE. product_id is a shorter HBC code (HBC00008749ED) for the catalog entry. listing_id is a UUID for one merchant's offer, so a product has one listing_id per seller and those are what appear in other_offers[]. Fetch by sku.

Why is merchant.rating 9.6 when the product rating is 4.9?

They are two different scales inside the same response. Product ratings are the familiar 0-5, so 4.9 over 302 ratings on that MacBook. Merchant ratings are Hepsiburada's 0-10 store score, and the two sellers on that listing scored 9.6 and 10.0. The same 0-10 numbers appear as merchant_rating in other_offers[] and in the offers action, so do not normalise the two together.

Why did a search return ok true with zero results?

Because Hepsiburada served the page skeleton instead of rendered results, which happens on very narrow queries. The response says so: meta.render came back "skeleton" with record_count 0, against "ssr" with 14 rows for 'laptop'. Treat skeleton as 'ask again, more broadly', not as 'this product does not exist'.

Why is merchant null on search results but filled in on product detail?

The search grid does not publish the seller, so the field is left null rather than guessed. It was null on all 14 rows of a 'laptop' search. product/detail and product/offers read the buybox, so there you get merchant{name, id, city, country, rating, rating_count} plus seller_name, and every competing seller in other_offers[].

How do I compare every seller of the same product?

product/detail returns other_offers[] and offer_count, and product/offers returns those rows on their own. Each row carries merchant_name, merchant_id, price, original_price, discount_rate, in_stock, quantity, free_shipping, fast_shipping, fulfilled_by_hb, coupon_count, merchant_rating and buybox_order. Measured on that MacBook: two offers, 67199.04 from PivotExpert at buybox_order 1 and 99999.0 from MegaCraft at 2.

Are Hepsiburada variants separate products?

Yes. Each entry in variants[] has its own sku, url, price, price_formatted, barcode and a properties[] list of what makes it different. The 16GB/256GB MacBook (HBCV00008749EE at 67199.04) and the 24GB/512GB one (HBCV00008749MO at 82989.0) are separate SKUs that list each other as variants, so to price a specific configuration you fetch that variant's own sku.

Is there personal data in the reviews?

No. Hepsiburada masks review authors before publishing them, so they arrive as "Ahmet A*****" or "C**** D****" and there is nothing left to redact. Each review carries author, rating on the 0-5 scale, an ISO date such as "2025-09-05" and the body text. product/reviews serves about 10 per page and you walk them with page until meta.pagination.has_more is false.

What is the Hepsiburada API?

Hepsiburada API is a ReefAPI endpoint group for turkish marketplace products, prices and reviews. It returns live JSON through POST requests under /hepsiburada/v1.

Is the Hepsiburada API free to try?

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

Do I need a Hepsiburada login or account?

No login to Hepsiburada 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 Hepsiburada data?

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

How many credits does the Hepsiburada API use?

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

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

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

docs / hepsiburada

Hepsiburada

Turkish marketplace products, prices and reviews.

base /hepsiburada/v16 endpoints
post/hepsiburada/v1/product/detail2 credits

Full Hepsiburada product details by `url` or HB code (`sku`): title, brand, price, discount, images, rating, stock, seller (merchant), category, specifications, variants, top reviews, coupon/campaign badges, and all other_offers (every merchant selling the same product).

ParameterAllowed / rangeDescription
skuoptional—Hepsiburada product code (HB code) — the HBCV… token in the product URL (…-p-<code>). Take it from search results. Provide sku OR url.
urloptional—Full Hepsiburada product URL — alternative to sku.
max_rotations = 8optional1–14Advanced: how many times to retry a difficult request (1–14, default 8 — leave unchanged for typical use).
Try in playground →
post/hepsiburada/v1/product/reviews1 credit

Paginated customer reviews for a product by `sku` or `url`, in the order you ask for. `sort=newest` puts the most recently written reviews first and holds that order across pages, so you can poll a product for new reviews; without `sort` Hepsiburada returns its own default order, which is not chronological. Every page carries the honest totals — how many reviews exist, the full star histogram, the average computed from it, total_pages for your page_size, and how deep Hepsiburada actually lets you page. Note that Hepsiburada mixes written reviews with star-only ratings in the same list: rows carry `type` ('review' or 'rating') and `has_text` so you can keep only the ones with text. Up to 100 reviews per page. Reviewer names are published by Hepsiburada already masked (e.g. 'Ahmet K***') and the row's gender/birth-date fields are deliberately not returned.

ParameterAllowed / rangeDescription
skuoptional—Hepsiburada product code (HB code) — the HBCV… token in the product URL (…-p-<code>). Take it from search results. Provide sku OR url.
urloptional—Full Hepsiburada product URL — alternative to sku.
page = 1optional1–Review page — 1-BASED (1, 2, 3…); summary.total_pages tells you how many exist.
page_size = 10optional1–100Reviews per page (1–100, default 10). summary.total_pages is computed for this page size.
sort = relevantoptionalnewest · oldest · helpful · rating_desc · rating_asc · relevantReview ordering. Use `newest` to track the most recent reviews — the order holds across pages, so page 1 is always the freshest. `relevant` (the default) is Hepsiburada's own 'Varsayılan' order and is NOT chronological. Date ordering is day-resolution upstream: non-increasing by calendar day, unordered within a single day.
include_sibling_variants = trueoptional—true (default) counts and returns reviews for the whole product group, exactly as the Hepsiburada page does; false restricts to this one variant (same colour/size). The two totals differ a lot — 25,480 vs 9,349 on the reference sku — so pick deliberately.
max_rotations = 8optional1–14Advanced: how many times to retry a difficult request (1–14, default 8 — leave unchanged for typical use).
Try in playground →
post/hepsiburada/v1/product/offers1 credit

Every merchant listing (buybox + other sellers) for a product by `sku` or `url`: compare price, seller rating, shipping and stock across all sellers of the same item.

ParameterAllowed / rangeDescription
skuoptional—Hepsiburada product code (HB code) — the HBCV… token in the product URL (…-p-<code>). Take it from search results. Provide sku OR url.
urloptional—Full Hepsiburada product URL — alternative to sku.
max_rotations = 8optional1–14Advanced: how many times to retry a difficult request (1–14, default 8 — leave unchanged for typical use).
Try in playground →
post/hepsiburada/v1/category3 credits

Browse a Hepsiburada category page by its path (`category` = '<slug>-c-<id>', e.g. 'laptop-notebook-dizustu-bilgisayarlar-c-98') with optional sort/price filters and pagination. Use it to list everything in a category, not just a keyword match.

ParameterAllowed / rangeDescription
categoryrequired—Category path '<slug>-c-<id>' or a full category URL. Take the …-c-<id> path from a product's breadcrumb / category link.
page = 1optional1–Page number (1-BASED).
sort = defaultoptionaldefault · price_asc · price_desc · best_seller · most_reviewed · highest_rated · discount · newestResult ordering. One of: default, price_asc, price_desc, best_seller, most_reviewed, highest_rated, discount, newest.
price_minoptional0–Minimum price filter in TRY (optional).
price_maxoptional0–Maximum price filter in TRY (optional).
brandoptional—Brand filter — the brand slug, lowercase (e.g. 'asus', 'apple'). Optional.
max_rotations = 8optional1–14Advanced: how many times to retry a difficult request (1–14, default 8 — leave unchanged for typical use).
Try in playground →
post/hepsiburada/v1/seller3 credits

Hepsiburada merchant (mağaza) profile + its product catalogue by store slug (`seller`, e.g. 'jollyshop') or full /magaza/<slug> URL. Returns seller info (name, rating, total product count) and a paginated list of the seller's products.

ParameterAllowed / rangeDescription
sellerrequired—Store slug (the part after /magaza/, e.g. 'jollyshop') or a full https://www.hepsiburada.com/magaza/<slug> URL.
page = 1optional1–Product page within the store (1-BASED).
sort = defaultoptionaldefault · price_asc · price_desc · best_seller · most_reviewed · highest_rated · discount · newestResult ordering. One of: default, price_asc, price_desc, best_seller, most_reviewed, highest_rated, discount, newest.
price_minoptional0–Minimum price filter in TRY (optional).
price_maxoptional0–Maximum price filter in TRY (optional).
max_rotations = 8optional1–14Advanced: how many times to retry a difficult request (1–14, default 8 — leave unchanged for typical use).
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.