# letgo Turkey Second-Hand Classifieds

> Search letgo, Turkey's general second-hand classifieds app: phones, electronics, furniture and home, cars and motorbikes, clothing, kids, hobby, pets. Free text plus the site's own filters (category, province, district, price range, posting date, seller rating, free shipping) and its four sort orders, with cursor paging. Nothing is required: no parameters browses the newest-ranked live listings.
> ReefAPI engine `letgo` · 6 endpoints · clean JSON, no scraping or browsers to manage.

## How to call
- **Endpoint:** `POST https://api.reefapi.com/letgo/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/letgo/v1/search — 2 credits
Search letgo, Turkey's general second-hand classifieds app: phones, electronics, furniture and home, cars and motorbikes, clothing, kids, hobby, pets. Free text plus the site's own filters (category, province, district, price range, posting date, seller rating, free shipping) and its four sort orders, with cursor paging. Nothing is required: no parameters browses the newest-ranked live listings.

**Parameters:**
- `query` (string, optional) — Free text as a Turkish shopper types it: `iphone 13`, `koltuk takımı`, `bisiklet`, `ford fiesta`. Without it the call browses a category or the whole site.
- `category_id` (integer, optional) — One letgo category id at any level (15000 Telefon, 15705 Araba, 15134 Ev & Yaşam, 15137 Koltuk). The full tree with ids is the `categories` action.
- `city_id` (string, optional) — Province: its id (İstanbul 4000040, Ankara 4000007, İzmir 4000041) or its name (`İzmir`, `izmir`). All 81 are in `locations`.
- `district_id` (integer, optional) — District inside the chosen city (needs city_id). Ids come from `locations` with city_id, e.g. Bayraklı 5000458 in İzmir.
- `min_price` (number, optional) — Lowest price in Turkish lira.
- `max_price` (number, optional) — Highest price in Turkish lira.
- `posted_within` (enum, optional) — Only listings published within this window (the site's 'İlan Tarihi' filter). [one of: 24h, 3d, 7d, 15d]
- `min_seller_rating` (number, optional) — Only sellers rated at least this (the site's 'Satıcı Puanı' filter): 3, 3.5, 4 or 4.5. [one of: 3, 3.5, 4, 4.5]
- `free_shipping` (boolean, optional) — Only listings that ship free (the site's 'Ücretsiz Kargo' filter).
- `sort` (enum, optional, default "relevance") — Order: relevance (the site's 'Akıllı Sıralama'), newest, price_asc, price_desc. Paid promoted rows are placed first on every order; is_promoted marks them. [one of: relevance, newest, price_asc, price_desc]
- `cursor` (string, optional) — Paging token: pass `next_cursor` from the previous page unchanged, with the same filters. Omit for the first page.
- `include_pii` (boolean, optional, default false) — Accepted for gateway compatibility; seller fields are returned as published.

**Returns:** {query, total, rows_on_page, duplicates_dropped, has_more, next_cursor, sort, filters_applied, listings[]}. Each listing: {id, url, title, subtitle, price_try, price_display, currency, is_promoted, promotions[], city, district, category_id, image, has_video, max_installment_count, seller_id, seller_name, seller_rating, is_successful_seller}. For cars and motorbikes `title` is the card heading (make + model) and `subtitle` is year and km, exactly as the results page prints them; the seller's own title is in `item`.

**Example request body:**
```json
{
  "query": "koltuk",
  "min_price": 1000,
  "max_price": 5000,
  "sort": "price_asc"
}
```

### POST https://api.reefapi.com/letgo/v1/item — 1 credit
One letgo listing in full: title, description, price, condition, every structured attribute the seller filled (for cars: make, model, year, km, fuel, gearbox, body, colour, plate, damage record and the paint/replacement state of each panel), category path, province and district, all photos and videos, posting and expiry dates, offer and payment options, and the seller — name, member since, verification, rating, review count.

**Parameters:**
- `id` (string, optional) — letgo listing id, exactly the `id` of a search row.
- `url` (string, optional) — Or the listing URL (https://www.letgo.com/item/<slug>-iid-<id>).
- `include_pii` (boolean, optional, default false) — Accepted for gateway compatibility; seller fields are returned as published.

**Returns:** {id, url, title, description, price_try, price_display, currency, price_mismatch, status, status_label, is_active, is_promoted, promotions[], condition, condition_display, category_id, category_name, category_path[], attributes{}, parameters[{key,label,value,display,code}], city_id, city, district_id, district, country, images[{url,width,height}], image_count, videos[], favorite_count, created_at, first_published_at, republished_at, updated_at, valid_to, max_installment_count, offers_enabled, hand_delivery, secure_payment, card_payment_on_delivery, seller_type, member_since_text, seller_id, seller{id, name, about, member_since, is_business, verification_status, account_status, rating, review_count, is_successful_seller, has_phone, avatar, profile_url}}. Either `id` or `url`.

**Example request body:**
```json
{
  "url": "https://www.letgo.com/item/ikea-fjallbo-raf-unitesi-kitaplik-iid-1724093900"
}
```

### POST https://api.reefapi.com/letgo/v1/seller — 2 credits
A letgo seller's public profile: name, about text, member since, business or private, verification status and what they verified with (phone, e-mail, Facebook…), avatar, and the profile counters — listings published, followers, following, items bought.

**Parameters:**
- `seller_id` (integer, required) — The seller's numeric 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, name, about, profile_url, member_since, is_business, is_banned, verification_status, verified_with[], has_phone, subscription_active, avatar, listings_published, followers, following, items_bought, favourites}

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

### POST https://api.reefapi.com/letgo/v1/seller_listings — 2 credits
Every live listing of one letgo seller, newest first or by price, with cursor paging. The seller id is on every search row and listing.

**Parameters:**
- `seller_id` (integer, required) — The seller's numeric id: `seller_id` of any search row or listing.
- `sort` (enum, optional, default "newest") — Order: newest (default), price_asc, price_desc. [one of: newest, price_asc, price_desc]
- `cursor` (string, optional) — Paging token: pass `next_cursor` from the previous page unchanged, with the same filters. Omit for the first page.
- `include_pii` (boolean, optional, default false) — Accepted for gateway compatibility; seller fields are returned as published.

**Returns:** {seller_id, total, rows_on_page, duplicates_dropped, has_more, next_cursor, sort, listings[{id, url, title, price_try, price_display, currency, is_promoted, city, district, category_id, created_at, image, attributes{}, seller_id, seller_name}]}

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

### POST https://api.reefapi.com/letgo/v1/categories — 2 credits
letgo's full category tree (15 top-level sections, 846 categories), flattened with ids, parent ids, the readable path and the category page URL. Use the ids as `category_id` in search.

**Parameters:**
- `parent_id` (integer, optional) — Only this category and everything under it (e.g. 15705 Araba).
- `include_pii` (boolean, optional, default false) — Accepted for gateway compatibility; seller fields are returned as published.

**Returns:** {count, categories[{id, name, slug, parent_id, path, depth, is_leaf, url}]}

**Example request body:**
```json
{
  "parent_id": 15705
}
```

### POST https://api.reefapi.com/letgo/v1/locations — 1 credit
The place ids search filters on: without a city, Turkey's 81 provinces; with a city_id (or name), that province's districts with the live number of listings in each.

**Parameters:**
- `city_id` (string, optional) — Omit to list the 81 provinces. Give a province id or name to list its districts with live listing counts.
- `include_pii` (boolean, optional, default false) — Accepted for gateway compatibility; seller fields are returned as published.

**Returns:** {level: 'city'|'district', city_id, city, count, locations[{id, name, listings}]}

**Example request body:**
```json
{
  "city_id": "4000041"
}
```

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