Search Turkey's booksellers and antique dealers, then follow their auctions bid by bid
Kitantik is the Turkish marketplace where second-hand booksellers (sahaf) and antique dealers list rare and used books, periodicals, postcards, coins, banknotes, stamps, records and collectibles, and where those shops also run timed auctions (mezat / müzayede).
5 active endpoints, on 1, 2 and 3 credit tiers.
- POST/kitantik/v1/search
- POST/kitantik/v1/product
- POST/kitantik/v1/auctions
- POST/kitantik/v1/auction_lots
- POST/kitantik/v1/lot_prices
What Kitantik endpoints does ReefAPI ship?
5 live read endpoints. Read-only data API: no writes, no account actions, no dashboard access on the target site.
Kitantik API
5 of 5 endpoints, ready to run
Search rare and second-hand books in Turkish
// Press "Try it" and this pane shows exactly what the // live site returned this second — including an empty // result, if that is the truth. No key, no account.
How the Kitantik API works
Kitantik is a normal ReefAPI surface — the same four rules that hold for every other engine on the key.
No OAuth app, no request signing, no per-site account. One key covers all 438 engines.
Every route is a POST with a JSON body. Parameters are validated against the published schema before anything is charged.
Credits, not seats. Failed and blocked calls are never charged, and cache hits cost nothing.
One envelope everywhere. meta carries latency_ms, record_count and the endpoint that answered.
From an open auction to a bid watch list
Find the auctions running now, read their lots with the current bids, then refresh only the lots you care about.
Open auctions with shop, description, closing time and number of lots.
Lot number, title, photo, grade and the bid state of each lot: starting bid, current bid, bids, watchers, buy-it-now and time left.
The same bid state for up to 50 lots in one small call, as often as you need it.
The full lot page: every photo, the grade, the description and the shop's rating and record.
A watch list of Turkish auction lots with their live bids and closing times, plus the shops running them and their track record.
curl -X POST https://api.reefapi.com/kitantik/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"nutuk"}'{
"ok": true,
"data": { … },
"meta": {
"api": "kitantik",
"endpoint": "search",
"mode": "live",
"latency_ms": …,
"record_count": …
},
"error": null
}What a Kitantik field actually contains
Fields that read differently from how they look. Every row was measured against live Kitantik pages on 2026-10-07.
| Field | What it holds |
|---|---|
| price_try | The price the page prints, after the shop's own discount. Kitantik writes it Turkish style ("1.250,00 TL" is 1,250 lira). In 36 checks over 22 different fixed-price listings it matched the search card, the product page and the page's structured data every time. |
| original_price_try, store_discount_pct | The struck-through price and the shop's discount percentage when a shop runs one ("% 20 Mağaza indirimi"). Null when there is no discount. |
| is_auction (search) | True for a listing that is in a running auction. Auction cards print "Müzayede" instead of a price, so price_try is null on them; the bids come from auction_lots, lot_prices or product. |
| schema_price_try | The price in the page's structured data. For a fixed listing it equals price_try. For an auction lot it is the item's own list price, not a bid: one lot carried 750 TL there while it opened at 50 TL. |
| auction.bids | starting_bid_try, current_bid_try (null until someone bids), bid_count, watcher_count, buy_it_now_price_try (null when the lot has no buy-it-now) and remaining_text, the time left as the site prints it. |
| shipping_paid_by, shipping_fee_try | "Alıcı Öder" (buyer pays) with the fee in lira and the carrier, or seller-paid shipping with no fee. The fee is the number the page states for that listing. |
| condition, condition_grade | condition is İkinci El (second-hand) or Yeni (new); condition_grade is the shop's own grade such as "Çok iyi" or "İyi". |
| seller | The shop: name, store_id, link, average rating and the number of reviews behind it, completed orders, success rate, the order value above which shipping is free, shops it shares shipping with, and its own about text. No e-mail or phone: Kitantik does not print them. |
| lot_status | in_auction while the auction runs. After an auction closes, unsold lots come back as ordinary listings with a fixed price (listed_after_auction); the final hammer price is not published. |
Search reaches the first 501 pages of 20 results (10,020 listings) of any query; narrow with a category, shop or filter to see the rest. The total is Kitantik's own count.
Kitantik coverage, measured
Every number below was read from live Kitantik pages on 2026-10-07, in two consecutive runs of 38 calls each plus 8 controlled failures.
Turkey, prices in Turkish lira. Three roots: books, ephemera (coins, stamps, postcards, records) and antiques. "roman" matched 457,587 listings; 51 shop auctions were open.
nutuk 3,787 → new 327, second-hand 3,460, auction lots 108, History category 2,462; roman 457,587 → signed 4,777, first edition 28,466, leather binding 392, 100-300 TL 160,431; nutuk from 500 TL 672. A free-shipping toggle exists on the site but did not change any count, so it is not offered.
Search card price, product page price and the page's structured data agreed in 36 of 36 checks over 22 fixed-price listings across books, ephemera and antiques. Lot bids from auction_lots and from the lot's own page agreed on 4 of 4 lots.
On 179 search rows: title, shop, condition and category path 179/179, photo 160/179. On 22 full listings: shop block and stock 22/22, shipping fee 19/22, author and publisher only on books.
The product_id from search opens the same listing in product, and a lot's product_id opens the lot page naming the same auction, in both runs.
Search stops at page 501 (10,020 results) of any query. Bid history, bidder names and the hammer price of finished auctions are not published; lots of a finished auction return as fixed-price listings.
What people build with Kitantik
The jobs this data is most often used for.
endpoints
credits per call
Price rare and second-hand Turkish books: search a title or author, filter signed or first edition and track TL prices across shops.
Watch live coin, stamp and banknote auctions and alert on lots still at their opening bid near closing time.
Build a dealer directory of Turkish booksellers and antique shops with rating, review count, completed orders and stock size.
Monitor how often a title appears for sale and at what condition grade, for a collector's want list.
What Kitantik data costs
The cheapest call here is 1 credit, so $15/mo (Pro) buys 10,000 of them — $1.50 per 1,000 credits. Credits roll over and never expire, and failed or blocked calls are not charged.
Full pricing →- 1,000 free credits on signup, no card
- One key, all 438 APIs, one credit pool
- Failed and blocked calls are never charged
- Credits roll over and never expire
Call it in two lines
Sign up, get 1,000 credits and one key that works on every engine. Then this is the whole protocol.
curl -X POST https://api.reefapi.com/kitantik/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"nutuk"}'import requests
r = requests.post(
"https://api.reefapi.com/kitantik/v1/search",
headers={"x-api-key": REEF_KEY},
json={
"query": "nutuk"
},
)
print(r.json()["data"])Have a question? We got answers.
The questions people actually ask before wiring up Kitantik.
Get a free key →Do I need a Kitantik account?▾
No. Everything is read logged out: listings, shops, auctions and the current bids. Placing a bid and the bid history need an account and are not part of this API.
Can I follow an auction while it runs?▾
Yes. auction_lots gives every lot with its auction_product_id and current bid; pass up to 50 of those ids to lot_prices for a cheap refresh of starting bid, current bid, bid count, watchers and time left.
What happens to a lot when the auction ends?▾
The auction moves to the archive (auctions with status=closed). Lots that did not sell are re-listed by the shop at a fixed price and show lot_status listed_after_auction; Kitantik does not publish the hammer price.
Can I search only signed or first-edition books?▾
Yes, features=signed or features=first_edition. For "roman" that narrowed 457,587 listings to 4,777 signed and 28,466 first editions. Leather bindings: 392.
How do I get one shop's whole stock?▾
Every product carries seller.store_id; pass it to search as store_id, alone or with a query. One Ankara shop we measured had 17,734 live listings.
Which categories are covered?▾
All three roots: Kitap (books, category_id 181), Efemera, Müzik, Sinema (ephemera, coins, stamps, postcards, records, 103) and Antika-Koleksiyon, Hobi-Sanat (antiques and collectibles, 1). Every search returns the category facet with ids and counts.
How deep can I page?▾
Up to page 501 of 20 results. Past that Kitantik itself stops answering, so reachable_total and last_page tell you where the window ends.
Are authors and publishers available for antiques too?▾
Only for books. Antiques and ephemera carry title, grade, description, attributes when the shop fills them, price and photos; author, publisher and year were empty on all 9 non-book items we read.
What is the Kitantik API?▾
Kitantik API is a ReefAPI endpoint group for turkey's rare-book and antiques marketplace: second-hand books, ephemera, coins, stamps and live shop auctions with current bids. It returns live JSON through POST requests under /kitantik/v1.
Is the Kitantik API free to try?▾
Yes. ReefAPI starts with 1,000 free credits, no card required. Kitantik calls use the same shared credit balance as every other ReefAPI engine.
Do I need a Kitantik login or account?▾
No login to Kitantik 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 Kitantik 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 Kitantik API use?▾
Kitantik 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 Kitantik from an AI assistant or MCP client?▾
Yes. Connect ReefAPI once through MCP and your assistant can call kitantik actions with the same key, credit pool and JSON envelope used by normal REST requests.
191 E-commerce & Marketplaces APIs on the same key
One key, one credit pool, one response envelope. If you are pulling Kitantik, you are one call away from the rest of the category — no second contract, no second integration.
Need something this API does not do?
Name the endpoint, the field, or a source we do not carry yet. We ship new APIs every week and you would be first to get the key. Real people read every message and reply the same day.
Try it on your own data before you pay anything
The call above is the real endpoint, not a recording. A free key gives you 1,000 credits, the other 437 APIs, and the same envelope everywhere.
Endpoints, parameters and credit costs on this page are read from the live catalog and cannot drift from what the API accepts. Field notes were captured on 2026-10-07.