Pazarama API & Scraper
The Pazarama API turns pazarama.com, the Turkish multi-seller marketplace, into clean JSON in two actions: search and product/detail.
🤖 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.
Every result is one seller's listing, so the same product sold by two shops comes back as two rows, each with its own price, stock and seller. search takes a keyword or any Pazarama category or brand URL, filters on a price range and a brand, pages 20 listings at a time and offers the site's seven sort orders. Each row carries the product id, the listing id, the product code and a barcode when that code is a valid GTIN, the title, a URL pointing at that seller's listing, brand, seller, the price the page shows, the lower in-basket price when a basket campaign applies, availability, stock and category. product/detail adds the listing's star rating with its rating count, how many of those ratings carry written text and the 1-5 histogram, the full attribute list with the variant axes flagged, the VAT rate, the image gallery, the seller's Pazarama score, the newest reviews, the breadcrumb and the description. In a live check of 22 listings across 9 top categories on 2026-09-15, title, price, stock, images, seller, category and attributes were filled on 22 of 22, and on 6 product pages compared against the page itself the title, the shown price, the in-basket price and the availability matched on all 6. Prices are TRY. No Pazarama account, no browser, one ReefAPI key and the standard { ok, data, meta, error } envelope.
Pazarama shows two prices, and the price sort follows the lower one
A Pazarama listing prints the sale price and, when a basket campaign runs, a lower "Sepette İndirimli Fiyatı" (in-basket price). The API returns them separately as price and basket_price, plus lowest_price, the lower of the two. That is the number the site's own price sort follows: on 2026-09-15 a price_asc and a price_desc page were both in perfect order by lowest_price and had 3 rows out of order by price.
| Listing (seller) | price (shown) | basket_price (in basket) | Also on the page |
|---|---|---|---|
| Philips Airfryer HD9285/96 (Martelektronik) | 8,565.00 TRY | 8,429.85 TRY | rating 4.5 |
| adidas Handball Spezial (korayspor) | 5,999.00 TRY | 5,519.08 TRY | unrated, so rating is null |
| V Yaka Tül Elbise (koton) | 2,799.99 TRY | 2,716.00 TRY | unrated, so rating is null |
| Xiaomi Redmi 15C (Pazarama) | 12,999.00 TRY | null, no basket discount | rating 4.6 |
Some listings also carry a higher internal list price that the page never displays anywhere. Returning it as a was-price would invent a discount, so price_before_discount is always null. The site's own structured data (ld+json) publishes the in-basket price as the offer price on 5 of the 6 pages compared, which is why reading it gives a different number than the one shoppers see first.
Real request and response JSON
Captured from the indexed primary action, search, on .
{
"method": "POST",
"url": "https://api.reefapi.com/pazarama/v1/search",
"headers": {
"x-api-key": "$REEF_KEY",
"content-type": "application/json"
},
"body": {
"query": "airfryer"
}
}{
"ok": true,
"meta": {
"api": "pazarama",
"endpoint": "search",
"mode": "live",
"latency_ms": 1024.5,
"record_count": 20,
"bytes": 374502,
"cache_hit": false,
"pagination": {
"page": 1,
"page_size": 20,
"total": 1963,
"has_more": true
}
},
"data": {
"results": [
{
"position": 1,
"product_id": "24e396a6-ef84-4279-8c7f-08db293427b9",
"listing_id": "0ee1a18d-c386-44ba-bb66-08dee9884827",
"product_code": "8720389015144",
"barcode": "8720389015144",
"title": "Philips Airfryer HD9285/96 5000 Serisi XXL Connected 7.2 lt Yağsız Fritöz",
"url": "https://www.pazarama.com/philips-hd9285-96-xxl-connected-wi-fi-baglanti-7-l-airfryer-p-8720389015144?magaza=hoki",
"image": "https://img.pzrmcdn.com/asset/8720389015144/images/philipshd928596xxlconnectedwifibalant7lairfryer-8.jpg",
"images": [
"https://img.pzrmcdn.com/asset/8720389015144/images/philipshd928596xxlconnectedwifibalant7lairfryer-8.jpg",
"https://img.pzrmcdn.com/asset/8720389015144/images/philipshd928596xxlconnectedwifibalant7lairfryer-9.jpg",
"https://img.pzrmcdn.com/asset/8720389015144/images/philipshd928596xxlconnectedwifibalant7lairfryer-10.jpg"
],
"brand": "Philips",
"brand_id": "df697132-834a-406a-5e3d-08db189b8a73",
"seller": {
"id": "f07e77d6-7232-40b1-2e46-08dd16bcecbc",
"name": "HoKi",
"slug": "hoki",
"url": "https://www.pazarama.com/magaza/hoki"
},
"price": 8419,
"price_display": "8.419,00 TL",
"basket_price": 7913.86,
"basket_price_display": "7.913,86 TL",
"lowest_price": 7913.86,
"plus_member_price": null,
"price_before_discount": null,
"basket_price_label": "Sepette İndirimli Fiyatı",
"discount_percent": null,
"currency": "TRY",
"lowest_price_in_30_days": true,
"search_index_rating": 4.5,
"search_index_rating_count": 52,
"rating_scale": 5,
"availability": "in_stock",
"in_stock": true,
"stock_count": 1,
"category": {
"id": "866c4ccb-0b83-4c0d-bc19-39418f151d88",
"name": "Fritözler"
},
"has_variants": false,
"variant_group_code": "3d173d41-3179-47b0-8e1f-67158188b4e2_siyah",
"pazarama_plus": false
},
{
"position": 2,
"product_id": "a4086df4-f423-4b91-bf91-e8988fd5801b",
"listing_id": "533885be-649b-46ef-a5ab-08de9efa86a3",
"product_code": "BSSARFRYKR0001",
"barcode": null,
"title": "Airfryer Pişirme Kağıdı, Fritöz Yağlı Kağıdı, Yanmaz Kağıt 50 Adet Kare",
"url": "https://www.pazarama.com/airfryer-pisirme-kagidi-fritoz-yagli-kagidi-yanmaz-kagit-50-adet-kare-p-BSSARFRYKR0001?magaza=omnicart",
"image": "https://img.pzrmcdn.com/asset/BSSARFRYKR0001/images/airfryerpiirmekadfritzyalkadyanmazkat50adetkare-1.jpg",
"images": [
"https://img.pzrmcdn.com/asset/BSSARFRYKR0001/images/airfryerpiirmekadfritzyalkadyanmazkat50adetkare-1.jpg",
"https://img.pzrmcdn.com/asset/BSSARFRYKR0001/images/airfryerpiirmekadfritzyalkadyanmazkat50adetkare-2.jpg",
"https://img.pzrmcdn.com/asset/BSSARFRYKR0001/images/airfryerpiirmekadfritzyalkadyanmazkat50adetkare-3.jpg"
],
"brand": "busstier",
"brand_id": "7700d83c-20fa-4776-a7e4-08dd07ac2dff",
"seller": {
"id": "f4523c23-8cb7-49eb-3a04-08de0c890944",
"name": "omnicart",
"slug": "omnicart",
"url": "https://www.pazarama.com/magaza/omnicart"
},
"price": 102.4,
"price_display": "102,40 TL",
"basket_price": 96.26,
"basket_price_display": "96,26 TL",
"lowest_price": 96.26,
"plus_member_price": null,
"price_before_discount": null,
"basket_price_label": "Sepette İndirimli Fiyatı",
"discount_percent": null,
"currency": "TRY",
"lowest_price_in_30_days": false,
"search_index_rating": 4.8,
"search_index_rating_count": 6,
"rating_scale": 5,
"availability": "in_stock",
"in_stock": true,
"stock_count": 245,
"category": {
"id": "6a1e8feb-910c-496c-88a3-21452f0c7d71",
"name": "Pişirme Kağıdı, Torbası"
},
"has_variants": false,
"variant_group_code": "A4086DF4-F423-4B91-BF91-E8988FD5801B",
"pazarama_plus": false
},
{
"position": 3,
"product_id": "e386b521-17b0-4843-436e-08daa507002e",
"listing_id": "c4e91f1d-75b0-4037-dd9c-08daa6fcf779",
"product_code": "8699131762677",
"barcode": "8699131762677",
"title": "Schafer Termochef XL 5 lt Yağsız Airfryer Siyah",
"url": "https://www.pazarama.com/schaffer-schafer-fit-fry-xl-siyah-sicak-hava-fritozu-p-8699131762677?magaza=schafer",
"image": "https://img.pzrmcdn.com/asset/8699131762677/1ecc1eb6-97f8-4098-51da-08da76bad675/schafferschaferfitfryxlsiyahscakhavafritz-1.jpg",
"images": [
"https://img.pzrmcdn.com/asset/8699131762677/1ecc1eb6-97f8-4098-51da-08da76bad675/schafferschaferfitfryxlsiyahscakhavafritz-1.jpg",
"https://img.pzrmcdn.com/asset/8699131762677/1ecc1eb6-97f8-4098-51da-08da76bad675/schafferschaferfitfryxlsiyahscakhavafritz-2.jpg",
"https://img.pzrmcdn.com/asset/8699131762677/1ecc1eb6-97f8-4098-51da-08da76bad675/schafferschaferfitfryxlsiyahscakhavafritz-3.jpg"
],
"brand": "Schafer",
"brand_id": "0fb5650e-3f5c-4cf3-80c9-b4727b65abb4",
"seller": {
"id": "7b26b685-4e02-4216-4297-08da9d3a3384",
"name": "Schafer",
"slug": "schafer",
"url": "https://www.pazarama.com/magaza/schafer"
},
"price": 2299,
"price_display": "2.299,00 TL",
"basket_price": 2184.05,
"basket_price_display": "2.184,05 TL",
"lowest_price": 2184.05,
"plus_member_price": null,
"price_before_discount": null,
"basket_price_label": "Sepette İndirimli Fiyatı",
"discount_percent": null,
"currency": "TRY",
"lowest_price_in_30_days": true,
"search_index_rating": 3.8,
"search_index_rating_count": 12,
"rating_scale": 5,
"availability": "in_stock",
"in_stock": true,
"stock_count": 515,
"category": {
"id": "866c4ccb-0b83-4c0d-bc19-39418f151d88",
"name": "Fritözler"
},
"has_variants": false,
"variant_group_code": "8af64fcc-ce95-acf5-21f7-e1903a4e6629_siyah",
"pazarama_plus": false
}
],
"count": 20,
"total_results": 1963,
"total_pages": 99,
"page": 1,
"page_size": 20,
"sort": "relevance",
"applied_filters": [
{
"field": "Search",
"value": "airfryer"
}
],
"breadcrumb": [
{
"name": "airfryer",
"url": "https://www.pazarama.com/arama?q=airfryer",
"category_id": null
}
],
"no_match_notice": null,
"page_notice": null,
"duplicate_rows_dropped": 0,
"listing_url": "https://www.pazarama.com/arama?q=airfryer"
}
}What the Pazarama API does
| Action | Description | Concrete use case | Key params |
|---|---|---|---|
| search | Search pazarama.com by keyword, or browse any Pazarama category or brand listing, with price range, brand and the site's seven sort orders. Each row is ONE seller's listing: product id and code, barcode (when the code is a valid GTIN), title, URL pointing at that seller, image, brand, seller, the price the site shows, the in-basket price when a basket campaign lowers it, the site's discount badge, star rating and Pazarama's search-index rating (the listing's own rating is in product/detail), availability and stock count, category and variant group. | Pricing teams call search to search pazarama.com by keyword, or browse any Pazarama category or brand listing, with price…. | query, url, page, sort, price_min, ... |
| product/detail | The full Pazarama listing by product URL (or product_code + seller): title, brand, barcode, seller SKU, the price the page shows and the in-basket price, VAT rate, stock count and availability, image gallery, every attribute (with the variant axes flagged), seller with its Pazarama seller score, star rating with the 1-5 breakdown and total counts, the newest reviews, breadcrumb and the description text. | Marketplace operators call product/detail to get the full Pazarama listing by product URL (or product_code + seller). | url, product_code, seller, max_rotations |
Call search from your stack
curl -X POST https://api.reefapi.com/pazarama/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"airfryer"}'import requests
r = requests.post(
"https://api.reefapi.com/pazarama/v1/search",
headers={"x-api-key": REEF_KEY},
json={
"query": "airfryer"
},
)
print(r.json()["data"])const res = await fetch("https://api.reefapi.com/pazarama/v1/search", {
method: "POST",
headers: {
"x-api-key": process.env.REEF_KEY,
"content-type": "application/json",
},
body: JSON.stringify({
"query": "airfryer"
}),
});
const { ok, data, meta, error } = await res.json();Ask your MCP-connected assistant: call reefapi.pazarama.search with {"query":"airfryer"}.Who uses this API and why
- Turkish price-monitoring teams track both the shown price and the in-basket price per seller, since the site sorts and discounts on the in-basket one.
- Brands watch which sellers list their products on Pazarama, at what price and with how much declared stock, by browsing their brand URL.
- Catalog teams pull the barcode, attributes, variant axes, breadcrumb and description for listings they match by GTIN.
- Marketplace analysts compare seller scores and 1-5 rating breakdowns across a category listing.
Questions developers ask before integrating
Is a Pazarama result a product or a seller's listing?
A seller's listing. Pazarama is a marketplace: the same product can be sold by several shops, each at its own price and stock. Every row carries product_id (the product), listing_id (that seller's offer), the seller's name and slug, and a URL that opens that seller's listing. Give product/detail that URL and you get that seller's record. Without a seller, Pazarama's product page shows its own default seller, which can be a different shop at a different price. If you ask for a seller that no longer sells the product, the response flags it with requested_seller_served set to false instead of quietly giving you someone else's price.
Which price should I store?
Usually both. price is the price the page shows. basket_price is the lower in-basket price when a basket campaign applies, and it is null when there is none. lowest_price is the lower of the two. Of 22 listings checked on 2026-09-15, 16 had a basket price. Pazarama Plus member prices are returned separately as plus_member_price, only when they are lower still.
Why does a search for a made-up word return nothing, when the site shows products?
Because those products are not results. When Pazarama does not know a keyword it prints a "not found here, maybe you are looking for these" notice and fills the page with unrelated items: 295 of them, tea and coffee, for a nonsense keyword on 2026-09-15. The API returns an empty results list with no_match_notice holding the site's own text, so a monitoring job never records unrelated products as matches.
Why is the rating on a search row named search_index_rating?
Because it is not the listing's own figure. Pazarama's search results carry a rating and a count from its search index, and on 2026-09-15 that count disagreed with the same listing's product page on 9 of 19 listings, sometimes by a lot (954 against 255), the rating on 6 of 19, and 2 listings had an index rating while their page shows none. So search rows return those two numbers under search_index_rating and search_index_rating_count. product/detail returns rating and rating_count exactly as the product page prints them ("51 Değerlendirme" becomes 51), and written_review_count for how many of those ratings have written text (31 of the 51 in that example).
Does the barcode field always hold a barcode?
No, on purpose. Pazarama's product code is a GTIN on most listings, but some sellers use their own SKU there. barcode is filled only when the code passes the GTIN check digit, and product_code always carries the raw value. On 22 detail listings, 16 had a valid barcode. The other 6 used seller codes such as 70401581, which are kept in product_code.
How do search filters and paging behave?
They were each checked against the unfiltered result. For airfryer (1,975 results), a 1,000-3,000 TRY price range gave 185, a 20,000 TRY floor gave 58 and the Philips brand gave 32, all of them Philips. Page 1 and page 2 shared no listings. Pages are 20 listings each and total_pages says how many exist. Asking past the last page returns an empty page with page_notice. The site itself would show page 1 again or an empty frame, and neither is passed on as data.
What does Pazarama not publish?
Other sellers' offers for the same product on the product page, the full list of sibling variants, and paged reviews: these three are not published to an anonymous visitor, so other_offers and variants are null and reviews are limited to the newest ones on the page plus the complete 1-5 breakdown. Also absent: a struck-through was-price (never displayed), a maximum for the seller score, shipping cost, and a barcode when the seller used its own code. has_variants and variant_attributes still tell you that variants exist and which colour or size this listing is.
What is the Pazarama API?
Pazarama API is a ReefAPI endpoint group for turkish marketplace: every seller's listing with price, in-basket price, stock and seller score. It returns live JSON through POST requests under /pazarama/v1.
Is the Pazarama API free to try?
Yes. ReefAPI starts with 1,000 free credits, no card required. Pazarama calls use the same shared credit balance as every other ReefAPI engine.
Do I need a Pazarama login or account?
No login to Pazarama 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 Pazarama 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 Pazarama API use?
Pazarama actions currently cost 1 credit per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.
Can I call Pazarama from an AI assistant or MCP client?
Yes. Connect ReefAPI once through MCP and your assistant can call pazarama actions with the same key, credit pool and JSON envelope used by normal REST requests.
Is the Pazarama API a Pazarama scraper?
It is the managed alternative to a DIY Pazarama scraper. Instead of building and maintaining your own scraper — proxies, headless browsers, captcha and constant breakage — you call one ReefAPI endpoint and get the same turkish marketplace: every seller's listing with price, in-basket price, stock and seller score back as clean JSON.