# Gardrops Turkey Second-Hand Fashion Marketplace

> Search Gardrops, Turkey's second-hand fashion marketplace: women, men, kids, home and electronics, listed by private sellers. Free text plus the site's own filters (category, brand, size, colour, condition, price, seller city, premium, celebrity closets) and its five sort orders. Nothing is required: no parameters browses the live catalogue.
> ReefAPI engine `gardrops` · 8 endpoints · clean JSON, no scraping or browsers to manage.

## How to call
- **Endpoint:** `POST https://api.reefapi.com/gardrops/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/gardrops/v1/search — 2 credits
Search Gardrops, Turkey's second-hand fashion marketplace: women, men, kids, home and electronics, listed by private sellers. Free text plus the site's own filters (category, brand, size, colour, condition, price, seller city, premium, celebrity closets) and its five sort orders. Nothing is required: no parameters browses the live catalogue.

**Parameters:**
- `query` (string, optional) — Free text as a Turkish shopper types it: `zara elbise`, `nike air force`, `vintage deri ceket`. The source reads brands and categories out of the text (returned as `interpreted_as`) and ranks by relevance; loosely related items pad the tail, so the total is a relevance count, not an exact-match count.
- `keyword` (string, optional) — Strict word filter (the site's 'Kelime ile filtrele'): only listings whose text contains the word. Unlike `query` it is not padded with related items, so a word nobody uses returns 0. Combine it with `category` for an exact in-category search.
- `category` (string, optional) — A Gardrops category code, the same code the site puts in its URLs: rc1 = Kadın, cg1 = Kadın › Giyim, c2 = Elbise, c2-sc203 = Uzun Elbise. Codes come from the `categories` action or a product's category.code. (Bare numeric ids are refused: the same number means different categories at different levels.)
- `brand_ids` (array, optional) — One or more Gardrops brand ids (Zara 3101 …), from `filters`, `suggest` or a product's brand_id.
- `size_ids` (array, optional) — One or more size ids from `filters`. Ids are per size table: clothing 38 is 21, shoe 38 is 176.
- `colour_ids` (array, optional) — One or more colour ids (Siyah 2, Beyaz 17 …), from `filters`.
- `condition` (array, optional) — Item condition, one or more of the site's five: NEW_WITH_TAGS (Yeni & Etiketli), LIKE_NEW (Yeni, no tag), VERY_GOOD (Çok iyi durumda), GOOD (İyi durumda), FAIR (Makul ürün). [one of: NEW_WITH_TAGS, LIKE_NEW, VERY_GOOD, GOOD, FAIR]
- `min_price` (number, optional) — Lowest price in Turkish lira.
- `max_price` (number, optional) — Highest price in Turkish lira.
- `city_ids` (array, optional) — Seller city ids (İstanbul Anadolu 341, İstanbul Avrupa 342, Ankara 6, İzmir 35 …), from `filters`.
- `premium_only` (boolean, optional, default false) — Only Gardrops Premium listings (items the platform sells on the owner's behalf).
- `celebrity_only` (boolean, optional, default false) — Only listings from the site's celebrity closets.
- `sort` (enum, optional, default "relevance") — Result order, the site's five: relevance (Önerilen), newest, oldest, price_asc, price_desc. [one of: relevance, newest, oldest, price_asc, price_desc]
- `page` (integer, optional, default 1) — 1-based page of 72 rows. Gardrops serves at most 50 pages (3,600 rows) of any result; `last_page` says where this one ends.
- `include_pii` (boolean, optional, default false) — Accepted for gateway compatibility; seller fields are returned as published.

**Returns:** {query, total, total_display, page, page_size, last_page, has_more, sort, filters_applied, interpreted_as[], products[]}. Each product: {id, seller_id, url, slug, brand_name, size, listed_price_try, price_raw, currency, image, like_count, free_shipping, is_premium, is_new_listing, is_sold, premium_coupon_try, seller{id, nickname, profile_url, avatar}}. Rows carry no title: pass id + seller_id to `product` for the full record. seller.nickname is as the search index holds it and can lag a rename; seller_id is the stable key.

**Example request body:**
```json
{
  "query": "zara elbise",
  "condition": [
    "NEW_WITH_TAGS"
  ],
  "sort": "newest"
}
```

### POST https://api.reefapi.com/gardrops/v1/product — 1 credit
One Gardrops listing in full: title, description, price, every image, brand, category path, size, colour, condition, shipping, badges, bundle coupons, buy / offer availability and the seller (nickname, profile link, rating, rating count). Needs the product id AND its seller id, both on every search row.

**Parameters:**
- `id` (integer, optional) — Gardrops product id: the `id` of a search or listing row.
- `seller_id` (integer, optional) — The product's seller id: the `seller_id` of the same row. Gardrops needs both.
- `url` (string, optional) — Or the product URL (https://www.gardrops.com/<slug>-p-<id>-<seller_id>).
- `include_pii` (boolean, optional, default false) — Accepted for gateway compatibility; seller fields are returned as published.

**Returns:** {id, seller_id, url, slug, title, description, brand_name, brand_id, category{name, code, path[{name, code}]}, size, colour, condition, condition_label, listed_price_try, final_price_try, price_raw, currency, is_sold, free_shipping, shipping_label, is_premium, is_swappable, can_buy, can_make_offer, like_count, image, images[], images_count, badges[], coupons[], bundle_offer, attributes[{name, value}], seller{id, nickname, profile_url, avatar, rating_average, rating_count}}. Give `id` + `seller_id`, or `url`.

**Example request body:**
```json
{
  "url": "https://www.gardrops.com/zara-bohem-elbise-70aa60e30c668ec1-p-71680169-996726"
}
```

### POST https://api.reefapi.com/gardrops/v1/seller — 1 credit
A Gardrops seller's public profile: nickname, bio, membership age, last seen, listing / sold / bought counts, rating and review count, followers, verification badges, vacation mode and city when the seller shows it.

**Parameters:**
- `seller_id` (integer, required) — The seller's numeric id: `seller_id` of any search row or product.
- `include_pii` (boolean, optional, default false) — Accepted for gateway compatibility; seller fields are returned as published.

**Returns:** {id, nickname, profile_url, avatar, bio, member_since_text, last_seen_text, location, is_verified, is_phone_verified, is_premium_store, vacation_mode, donation_active, listing_count, sold_count, bought_count, rating_average, rating_count, follower_count, following_count}

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

### POST https://api.reefapi.com/gardrops/v1/seller_listings — 1 credit
Every live listing in one seller's closet, 18 per page, newest first. Rows have the same shape and ids as `search` rows.

**Parameters:**
- `seller_id` (integer, required) — The seller's numeric id: `seller_id` of any search row or product.
- `page` (integer, optional, default 1) — 1-based page of 18 rows.
- `include_pii` (boolean, optional, default false) — Accepted for gateway compatibility; seller fields are returned as published.

**Returns:** {seller_id, page, page_size, has_more, products[]}. Each product: {id, seller_id, url, slug, brand_name, size, listed_price_try, price_raw, currency, image, like_count, free_shipping, is_premium, is_new_listing, is_sold, premium_coupon_try, seller{id, nickname, profile_url, avatar}}

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

### POST https://api.reefapi.com/gardrops/v1/seller_reviews — 1 credit
The reviews buyers left for a seller, 18 per page, newest first: star rating, text, how long ago, and the reviewer's nickname and profile link.

**Parameters:**
- `seller_id` (integer, required) — The seller's numeric id: `seller_id` of any search row or product.
- `page` (integer, optional, default 1) — 1-based page of 18 rows.
- `include_pii` (boolean, optional, default false) — Accepted for gateway compatibility; seller fields are returned as published.

**Returns:** {seller_id, rating_average, rating_count, page, page_size, has_more, reviews[{id, rating, text, date_text, reviewer{id, nickname, profile_url, avatar, is_verified}}]}

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

### POST https://api.reefapi.com/gardrops/v1/filters — 2 credits
The filter values Gardrops offers for a query: brands, sizes per size table, colours, conditions, sub-categories with live counts, price bands and seller cities. Use it to find the ids `search` filters on.

**Parameters:**
- `query` (string, optional) — Free text as a Turkish shopper types it: `zara elbise`, `nike air force`, `vintage deri ceket`. The source reads brands and categories out of the text (returned as `interpreted_as`) and ranks by relevance; loosely related items pad the tail, so the total is a relevance count, not an exact-match count.
- `keyword` (string, optional) — Strict word filter (the site's 'Kelime ile filtrele'): only listings whose text contains the word. Unlike `query` it is not padded with related items, so a word nobody uses returns 0. Combine it with `category` for an exact in-category search.
- `category` (string, optional) — A Gardrops category code, the same code the site puts in its URLs: rc1 = Kadın, cg1 = Kadın › Giyim, c2 = Elbise, c2-sc203 = Uzun Elbise. Codes come from the `categories` action or a product's category.code. (Bare numeric ids are refused: the same number means different categories at different levels.)
- `brand_ids` (array, optional) — One or more Gardrops brand ids (Zara 3101 …), from `filters`, `suggest` or a product's brand_id.
- `size_ids` (array, optional) — One or more size ids from `filters`. Ids are per size table: clothing 38 is 21, shoe 38 is 176.
- `colour_ids` (array, optional) — One or more colour ids (Siyah 2, Beyaz 17 …), from `filters`.
- `condition` (array, optional) — Item condition, one or more of the site's five: NEW_WITH_TAGS (Yeni & Etiketli), LIKE_NEW (Yeni, no tag), VERY_GOOD (Çok iyi durumda), GOOD (İyi durumda), FAIR (Makul ürün). [one of: NEW_WITH_TAGS, LIKE_NEW, VERY_GOOD, GOOD, FAIR]
- `min_price` (number, optional) — Lowest price in Turkish lira.
- `max_price` (number, optional) — Highest price in Turkish lira.
- `city_ids` (array, optional) — Seller city ids (İstanbul Anadolu 341, İstanbul Avrupa 342, Ankara 6, İzmir 35 …), from `filters`.
- `premium_only` (boolean, optional, default false) — Only Gardrops Premium listings (items the platform sells on the owner's behalf).
- `celebrity_only` (boolean, optional, default false) — Only listings from the site's celebrity closets.
- `brand_limit` (integer, optional, default 200) — How many brands to return (the list holds about 1,800, alphabetical).
- `include_pii` (boolean, optional, default false) — Accepted for gateway compatibility; seller fields are returned as published.

**Returns:** {query, total_display, sort, interpreted_as[], brand_count, brands[{id, name}], sizes[{id, name, group, section}], colours[{id, name, swatch}], conditions[{code, id, name, description}], subcategories[{id, name, section, parent, count}], price_bands[], cities[{id, name}]}

**Example request body:**
```json
{
  "query": "zara elbise",
  "brand_limit": 20
}
```

### POST https://api.reefapi.com/gardrops/v1/categories — 2 credits
The whole Gardrops category tree (Kadın, Erkek, Çocuk, Ev, Elektronik down to leaf categories), each node with the `code` that `search` takes as `category`.

**Parameters:**
- `include_pii` (boolean, optional, default false) — Accepted for gateway compatibility; seller fields are returned as published.

**Returns:** {count, categories[{code, id, level, name, children[]}]}

### POST https://api.reefapi.com/gardrops/v1/suggest — 1 credit
Gardrops' own search suggestions for a few letters, each with the ready-made `search` parameters it stands for (brand, category, text).

**Parameters:**
- `query` (string, required) — What the shopper has typed so far.
- `include_pii` (boolean, optional, default false) — Accepted for gateway compatibility; seller fields are returned as published.

**Returns:** {query, suggestions[{text, context, params}]}

**Example request body:**
```json
{
  "query": "zara"
}
```

## 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=gardrops
- Human docs page: https://reefapi.com/docs/gardrops
- Overview page: https://reefapi.com/gardrops-api
- Every ReefAPI API in one file (for your AI): https://reefapi.com/llms-full.txt
