letgo API

Search Turkey's second-hand classifieds, then read any listing and its seller in full

letgo is Turkey's general second-hand classifieds app, and this API reads it as JSON.

no credit card1,000 free credits · instant API key · pay by card or crypto
Missing a letgo endpoint, or need a source we don't have yet?Contact us real people · same-day reply.
L
/letgo/v1

6 active endpoints, on 1 and 2 credit tiers.

  • POST/letgo/v1/search
  • POST/letgo/v1/item
  • POST/letgo/v1/seller
  • POST/letgo/v1/seller_listings
  • POST/letgo/v1/categories
  • POST/letgo/v1/locations

What letgo endpoints does ReefAPI ship?

6 live read endpoints. Read-only data API: no writes, no account actions, no dashboard access on the target site.

6 endpoints

search

2 cr

Search letgo, Turkey's general second-hand classifieds app.

required
—
optional
query, category_id, city_id, district_id, min_price, max_price, posted_within, min_seller_rating, free_shipping, sort, cursor, include_pii

item

1 cr

One letgo listing in full.

required
—
optional
id, url, include_pii

seller

2 cr

A letgo seller's public profile.

required
seller_id
optional
seller_id, include_pii

seller_listings

2 cr

Every live listing of one letgo seller, newest first or by price, with cursor paging.

required
seller_id
optional
seller_id, sort, cursor, include_pii

categories

2 cr

letgo's full category tree (15 top-level sections, 846 categories), flattened with ids, paren…

required
—
optional
parent_id, include_pii

locations

1 cr

The place ids search filters on.

required
—
optional
city_id, include_pii

Every parameter, every allowed value →

letgo API

5 of 6 endpoints, ready to run

View docs ↗

Second-hand sofas between 1,000 and 5,000 TL, cheapest first

2 credits0 required · 4 optional
POST/letgo/v1/search
idle
// 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 letgo API works

letgo is a normal ReefAPI surface — the same four rules that hold for every other engine on the key.

01
Authenticate
x-api-key header

No OAuth app, no request signing, no per-site account. One key covers all 438 engines.

02
Call
POST /letgo/v1/…

Every route is a POST with a JSON body. Parameters are validated against the published schema before anything is charged.

03
Pay
1 or 2 credits per call

Credits, not seats. Failed and blocked calls are never charged, and cache hits cost nothing.

04
Read
{ ok, data, meta, error }

One envelope everywhere. meta carries latency_ms, record_count and the endpoint that answered.

From a category and a city to priced listings with their sellers

Pick the ids, page the listings, read the ones that matter in full, then follow their sellers.

01categories?parent_id=15705
GET/letgo/v1/categories?parent_id=15705

The car section of letgo's tree: 27 categories with ids, paths and page URLs.

02locations?city_id=Ankara
GET/letgo/v1/locations?city_id=Ankara

Ankara's districts with the live number of listings in each.

03search?category_id=15706&city_id=Ankara&sort=newest
GET/letgo/v1/search?category_id=15706&city_id=Ankara&sort=newest

Listings with TL price, district, photo, promoted flag and the seller's id, name and rating; next_cursor for the following page.

04item?id=<id>
GET/letgo/v1/item?id=<id>

The full listing: description, year, kilometres, damage record, panel states, every photo, dates and the seller.

05seller_listings?seller_id=<seller_id>
GET/letgo/v1/seller_listings?seller_id=<seller_id>

Everything that seller is offering, newest first.

A dated, district-level feed of second-hand listings in Turkish lira with the full specs behind each one and the sellers who posted them.

request
curl -X POST https://api.reefapi.com/letgo/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"query":"koltuk","min_price":1000,"max_price":5000,"sort":"price_asc"}'
response envelope
{
  "ok": true,
  "data": { … },
  "meta": {
    "api": "letgo",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": …,
    "record_count": …
  },
  "error": null
}

What a letgo field actually contains

Fields that read differently from how they look. Every row was measured against live letgo responses on 2026-10-07.

FieldWhat it holds
price_try and price_displayprice_try is the number, price_display the exact string letgo prints ("1.325.000 TL", dot = thousands). They agreed on 126 of 126 search rows, and price_try matched the listing page's own published price on 8 of 8 items across six categories.
is_promotedTrue for paid "vitamin" listings. letgo places them first on every sort order, so on a price sort they appear before the cheapest organic listing. The organic rows after them were strictly in price order in every run.
title on car and motorbike rowsOn vehicle results the card heading is make and model ("Fiat DOBLO") and subtitle is year and kilometres ("2012 - 209.000 KM"), exactly as letgo prints the card. The seller's own title is in item.
parameters and attributesEvery structured field of the listing: key, the Turkish label, the value and the display form letgo prints (km 411000 is shown as "411.000"). attributes is the same as a flat key → value map. Cars carry about 30 of them, phones brand, model, memory and colour, clothing size and colour.
conditionThe seller's "Durum" choice (Yeni Gibi, Az Kullanılmış…) with condition_display, the short label letgo shows next to it ("2. El"). Cars have no condition field: null on vehicles.
city, districtProvince and district as letgo prints them. letgo does not publish the exact map point of a listing, so we return none.
sellerName, about text, member since, verification status, rating, review count and avatar, as on the listing page. has_phone says the seller registered a phone; the number itself is shown only to logged-in members and is not returned.
next_cursor, has_more, duplicates_droppedletgo pages with a cursor. Its consecutive pages can repeat one listing at the boundary; we drop the repeat and count it in duplicates_dropped. has_more turns false on the last page.
totalletgo's own count for the request. Under relevance sort it can change on later pages; on price or date sorts it stays put.

Without a city, letgo's relevance order puts listings near İstanbul first. Pass city_id, or sort by newest or price, for a nationwide view.

letgo coverage, measured

Every number below was read from live letgo responses on 2026-10-07, in two consecutive runs of 58 calls each.

Market

Turkey only, prices in Turkish lira, 81 provinces. 846 categories in 15 sections: cars, phones, electronics, home, motorbikes, clothing, beauty, kids, hobby, office, sports, other vehicles, DIY and garden, pets, antiques. 398,283 cars and 473,488 clothing listings live.

Filters that bite

koltuk 140,919 → 1,000-5,000 TL 29,068 (28 of 28 rows in band); iphone 82,381 → Ankara 8,031, last 24 hours 5,799, seller rating 4.5+ 9,935, free shipping 4,407; bisiklet İzmir 6,999 → Bayraklı 805; Araba 398,283 → cars only 61,099.

Field fill

On 126 search rows across sofas, phones, cars, clothing and bicycles: id, title, price, province, district, category, photo and seller 126/126. On 14 full listings: description, attributes, photos, dates and seller 14/14; condition 12/14 (cars carry none).

Price accuracy

The price matched the listing page's own published price on 8 of 8 items across six categories, and the printed price string on 126 of 126 rows.

Identity

Search to item round-trips on the same id, price, seller and province 8 of 8 times in both runs.

Limits

Phone numbers are for logged-in members and are not returned; no exact map point; no view counter (letgo shows 0); promoted listings lead every sort; pages hold 24 to 29 listings; removed listings return NOT_FOUND.

What people build with letgo

The jobs this data is most often used for.

6

endpoints

1/2

credits per call

01

Track second-hand prices in Turkey for phones, cars or furniture by province, with the date each listing went up.

02

Build a used-car dataset with year, kilometres, damage record and panel-by-panel paint state for every listing in a category.

03

Alert on new listings under a price in one district, using posted_within=24h and newest-first sort.

04

Find active sellers worth contacting: profile, verification, rating and their full list of live listings.

What letgo 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 →
$0.67–$1.50 / 1,000 credits
  • 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
curl -X POST https://api.reefapi.com/letgo/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"query":"koltuk","min_price":1000,"max_price":5000,"sort":"price_asc"}'
python
import requests

r = requests.post(
    "https://api.reefapi.com/letgo/v1/search",
    headers={"x-api-key": REEF_KEY},
    json={
  "query": "koltuk",
  "min_price": 1000,
  "max_price": 5000,
  "sort": "price_asc"
},
)
print(r.json()["data"])
FAQ

Have a question? We got answers.

The questions people actually ask before wiring up letgo.

Get a free key →
Do I need a letgo account?▾

No. Everything is read logged out, and you call reefapi.com from anywhere.

How do I search one city or district?▾

Pass city_id as the province id or its name (İzmir, Ankara). locations lists all 81 provinces, and locations with a city_id lists its districts with live listing counts. For bisiklet, İzmir narrowed 84,404 listings to 6,999 and its Bayraklı district to 805.

Which filters can I combine?▾

query, category_id, city_id, district_id, min_price and max_price, posted_within (24h, 3d, 7d, 15d), min_seller_rating (3, 3.5, 4, 4.5) and free_shipping. Each one was checked against the unfiltered count in the same minute: iphone 82,381 → 8,031 in Ankara, 5,799 posted in the last 24 hours, 9,935 from sellers rated 4.5 or more, 4,407 with free shipping.

Can I get a car's mileage, year and damage record?▾

Yes. item returns every field the seller filled: make, model, version, year, kilometres, fuel, gearbox, body type, colour, plate type, plate, the last six characters of the chassis number, the damage and insurance record, lien status, and the original, painted or replaced state of each body panel.

How do I page through all results?▾

Every page returns next_cursor; pass it back with the same filters. Pages hold 24 to 29 listings. A search for gramofon in Ankara returned all 84 listings over four pages with no repeats.

Can I get everything one seller is selling?▾

Yes. Every row carries seller_id. seller_listings pages through that seller's live listings (newest first or by price), and seller returns the profile with listings published, followers and following.

What does letgo not publish?▾

Phone numbers (members only), the exact map point of a listing, and a view counter (letgo returns 0 for every listing). Removed or sold listings return NOT_FOUND.

What is the letgo API?▾

letgo API is a ReefAPI endpoint group for turkey's second-hand classifieds: phones, cars, furniture and more with tl price, district, full specs and the seller. It returns live JSON through POST requests under /letgo/v1.

Is the letgo API free to try?▾

Yes. ReefAPI starts with 1,000 free credits, no card required. letgo calls use the same shared credit balance as every other ReefAPI engine.

Do I need a letgo login or account?▾

No login to letgo 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 letgo 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 letgo API use?▾

letgo actions currently cost 1-2 credits per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.

Can I call letgo from an AI assistant or MCP client?▾

Yes. Connect ReefAPI once through MCP and your assistant can call letgo actions with the same key, credit pool and JSON envelope used by normal REST requests.

Is the letgo API a letgo scraper?▾

It is the managed alternative to a DIY letgo 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 turkey's second-hand classifieds: phones, cars, furniture and more with tl price, district, full specs and the seller back as clean JSON.

99 Classifieds & Second-hand APIs on the same key

One key, one credit pool, one response envelope. If you are pulling letgo, 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.

0/4000

No account needed · we reply from [email protected]

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.