# Nadirkitap Turkey Second-Hand & Rare Book Marketplace

> Search Nadirkitap, Turkey's marketplace of ~1,100 second-hand and rare booksellers (sahaf): books, magazines and ephemera. Free text, or the site's advanced filters: title, author, publisher, translator, ISBN, language (incl. Ottoman Turkish), category, publication year range, binding, price range, new only, signed, first edition, fine binding, seller. Each row is ONE copy offered by one seller. Give `query` or at least one filter.
> ReefAPI engine `nadirkitap` · 4 endpoints · clean JSON, no scraping or browsers to manage.

## How to call
- **Endpoint:** `POST https://api.reefapi.com/nadirkitap/v1/<action>` with a JSON body.
- **Auth:** header `x-api-key: <YOUR_REEFAPI_KEY>` — create one free (1,000 credits, no card): https://reefapi.com/signup
- **Response (every call):** `{ ok: boolean, data: ..., meta: { record_count, credits, ... }, error: { code, message } }` — branch on `ok`. Failed calls are free except verified SHEIN NOT_FOUND on product/detail and price (4 credits).
- **One key + one shared credit pool** across every ReefAPI API. Per-call credits are listed on each endpoint below.
- **Use it from an AI agent (MCP):** connect `https://api.reefapi.com/mcp` (remote streamable-http). Send the key as `Authorization: Bearer <key>`, or put it in the URL (`?key=<key>`) when the client has no header field, as ChatGPT does.

## Endpoints

### POST https://api.reefapi.com/nadirkitap/v1/search — 3 credits
Search Nadirkitap, Turkey's marketplace of ~1,100 second-hand and rare booksellers (sahaf): books, magazines and ephemera. Free text, or the site's advanced filters: title, author, publisher, translator, ISBN, language (incl. Ottoman Turkish), category, publication year range, binding, price range, new only, signed, first edition, fine binding, seller. Each row is ONE copy offered by one seller. Give `query` or at least one filter.

**Parameters:**
- `query` (string, optional) — Free text as typed in the site's search box, matched against title AND author: `nutuk`, `sait faik`, `tutunamayanlar`. On its own it uses the site's keyword search; combined with any filter it is matched against the title only (meta.warnings says so).
- `type` (enum, optional, default "book") — What to search: book (kitap), magazine (dergi) or ephemera (Sanat & Koleksiyon: posters, postcards, photos, coins, stamps, records, documents). [one of: book, magazine, ephemera]
- `title` (string, optional) — Words in the title (Eser adı), e.g. `tutunamayanlar`.
- `author` (string, optional) — Author name as listed, e.g. `Oğuz Atay`.
- `publisher` (string, optional) — Publisher (Yayınevi), e.g. `İletişim`.
- `translator` (string, optional) — Translator (Çeviren).
- `editor` (string, optional) — Editor / compiler (Hazırlayan).
- `place` (string, optional) — Place of publication (Yayın Yeri), e.g. `İstanbul`.
- `isbn` (string, optional) — ISBN-10 or ISBN-13, with or without hyphens.
- `language` (string, optional) — Language: a Nadirkitap language id or name — 1 Türkçe, 2 Osmanlıca (Ottoman script), 3 Almanca, 4 Arapça, 6 Fransızca, 7 İngilizce, 18 Ermenice, 49 Yunanca… (53 in all; English names like `english` work too).
- `category_id` (integer, optional) — Category id. Books: 77 Edebiyat, 169 Tarih, 3 Osmanlıca, 150 Sanat, 59 Çocuk… Ephemera: 247 Pul & Filateli, 249 Fotoğraf & Kartpostal, 248 Para & Madalya, 288 Plak… Sub-category ids from a listing's category_path work too. Every search answer lists category_facets with live counts.
- `year_min` (integer, optional) — Earliest year of publication.
- `year_max` (integer, optional) — Latest year of publication.
- `binding` (enum, optional) — Binding: paperback, hardcover, dust_jacket, cloth, leather. [one of: paperback, hardcover, dust_jacket, cloth, leather]
- `new_only` (boolean, optional, default false) — Only new (unused) copies.
- `min_price` (number, optional) — Lowest price in Turkish lira.
- `max_price` (number, optional) — Highest price in Turkish lira.
- `signed` (boolean, optional, default false) — Only signed copies (İmzalı).
- `first_edition` (boolean, optional, default false) — Only first editions (Birinci baskı).
- `fine_binding` (boolean, optional, default false) — Only fine bindings (Güzel ciltli).
- `seller_id` (integer, optional) — Only this seller's listings (seller.id of any row).
- `sort` (enum, optional) — Result order, the site's own menu: price_asc, price_desc, author_az, author_za, title_az, title_za, year_asc (oldest edition first), year_desc, newest (latest listed). Unset = the site's default (keyword search: cheapest first; filtered search: newest listings first). [one of: price_asc, price_desc, author_az, author_za, title_az, title_za, year_asc, year_desc, newest]
- `page` (integer, optional, default 1) — 1-based page. A search reaches at most 10,000 results: 417 pages of 24 with filters, 358 pages of 28 for a plain keyword search.
- `include_pii` (boolean, optional, default false) — Accepted for gateway compatibility; seller fields are returned as published.

**Returns:** {query, route, total, total_capped, page, per_page, last_page, has_more, filters_applied, category_facets[{id,name,count}], listings[]}. Each listing: {id, type, url, title, author, publisher, year, condition, condition_stars, price_try, original_price_try, discounted, price_text, currency, stock, image, seller_id, seller{id, name, url, success_rate_pct, transactions}, shipping_badges[], seller_campaigns[]}

**Example request body:**
```json
{
  "title": "tutunamayanlar",
  "author": "Oğuz Atay",
  "sort": "price_asc"
}
```

### POST https://api.reefapi.com/nadirkitap/v1/listing — 2 credits
One Nadirkitap listing in full: title, author, translator, editor, publisher, year, place, language, pages, size, binding, ISBN, condition (stars + label), the seller's description, the price printed on the page (and the struck price when the seller runs a discount), stock, category path, images, shipping payer, carrier, dispatch estimate and shipping prices, and the seller: shop name, link, success rate and transaction count.

**Parameters:**
- `id` (integer, optional) — Listing id (Ürün Kodu), exactly the `id` of a search row.
- `url` (string, optional) — Or the listing URL (https://www.nadirkitap.com/<slug>-kitap<id>.html).
- `include_pii` (boolean, optional, default false) — Accepted for gateway compatibility; seller fields are returned as published.

**Returns:** {id, url, title, author, translator, editor, publisher, year, place, language, pages, size, binding, isbn, isbn_normalized, features, state, condition, condition_stars, fine_binding, signed, description, price_try, original_price_try, discounted, ld_price_try, price_mismatch, currency, stock, in_stock, category_path[], images[], shipping_payer, dispatch_estimate, carrier, shipping_one_item_try, shipping_multi_item_try, seller_campaign, seller{id,name,url,success_rate_pct,transactions}, specs{}}. Either `id` or `url` is required.

**Example request body:**
```json
{
  "url": "https://www.nadirkitap.com/gencler-icin-nutuk-mustafa-kemal-ataturk-kitap48119869.html"
}
```

### POST https://api.reefapi.com/nadirkitap/v1/offers — 3 credits
Every live copy of one edition across all sellers, by ISBN (or by a listing id, whose ISBN is read first): price, condition, stock and seller of each copy, plus the cheapest and dearest price and the number of distinct sellers on the page. Cheapest first by default. Give `isbn` or `id`.

**Parameters:**
- `isbn` (string, optional) — ISBN-10 or ISBN-13 of the edition.
- `id` (integer, optional) — Or a listing id: its ISBN is read from the listing, then every copy of that edition is listed (2 requests).
- `sort` (enum, optional) — Result order, the site's own menu: price_asc, price_desc, author_az, author_za, title_az, title_za, year_asc (oldest edition first), year_desc, newest (latest listed). Unset = the site's default (keyword search: cheapest first; filtered search: newest listings first). [one of: price_asc, price_desc, author_az, author_za, title_az, title_za, year_asc, year_desc, newest]
- `page` (integer, optional, default 1) — 1-based page. A search reaches at most 10,000 results: 417 pages of 24 with filters, 358 pages of 28 for a plain keyword search.
- `include_pii` (boolean, optional, default false) — Accepted for gateway compatibility; seller fields are returned as published.

**Returns:** {isbn, source_listing_id, offer_count, page, per_page, last_page, has_more, lowest_price_try, highest_price_try, distinct_sellers, offers[]} — each offer is a search row.

**Example request body:**
```json
{
  "isbn": "978-605-9350-97-6"
}
```

### POST https://api.reefapi.com/nadirkitap/v1/seller — 2 credits
One sahaf (seller shop) as its page shows it: name, city, avatar, success rate, transaction count, badges (contract carrier, basket discount), how many books / ephemera it lists, the running campaign, carrier, dispatch estimate, shipping prices and its showcase listings. Its full stock is `search` with `seller_id`.

**Parameters:**
- `seller_id` (integer, required) — Seller (sahaf) id: seller.id / seller_id of any search row or listing.
- `include_pii` (boolean, optional, default false) — Accepted for gateway compatibility; seller fields are returned as published.

**Returns:** {id, url, name, city, avatar, success_rate_pct, transactions, badges[], listing_counts{book, ephemera…}, campaign, campaign_ends, carrier, dispatch_estimate, shipping_one_item_try, shipping_multi_item_try, showcase[]}

**Example request body:**
```json
{
  "seller_id": 1139541
}
```

## At scale
- **Volume:** 5M+ requests a day, measured at 60 requests a second across the fleet with no
  central bottleneck. Per-key limits are raised for high-volume accounts; volume pricing on request.
- **Missing a source:** tell us a site we do not cover and it becomes an engine. A customer asked
  for bestprice.gr on 21 Sep 2026 and it was in the catalog on 22 Sep.
- **Support:** 2 minute median time from a question in the live chat to the first answer. Setup
  help included, no support tier to buy.
- **One key, one credit pool** across every API. No per-site plans, no separate subscriptions.

## More
- Try it live, no code: https://reefapi.com/playground?engine=nadirkitap
- Human docs page: https://reefapi.com/docs/nadirkitap
- Overview page: https://reefapi.com/nadirkitap-api
- Every ReefAPI API in one file (for your AI): https://reefapi.com/llms-full.txt
