Sahibinden Scraper | Real Estate and Car Listings avatar

Sahibinden Scraper | Real Estate and Car Listings

Pricing

from $3.39 / 1,000 listings

Go to Apify Store
Sahibinden Scraper | Real Estate and Car Listings

Sahibinden Scraper | Real Estate and Car Listings

Sahibinden scraper for sahibinden.com listings (sahibinden ilan çekme, veri çekme): flats, houses, cars and every category from a link, keyword or listing number. Price, rooms, year, km, district, seller type, store licence and phones. 20 listings in 33 seconds, 46 fields each. No login needed.

Pricing

from $3.39 / 1,000 listings

Rating

0.0

(0)

Developer

SilentFlow

SilentFlow

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

3 days ago

Last modified

Share

Sahibinden Scraper (sahibinden ilan çekme) | Real Estate, Cars and Seller Contacts (2026)

Sahibinden listings, 46 fields each, from any URL.

From SilentFlow. Creators of Facebook Search Scraper and JD Products Scraper (#1 for “jd scraper” in Apify Store search), with 750,000+ combined lifetime runs.

Every sahibinden.com listing you need, one row per listing, from a search link, a keyword or a listing number. Our default test run opened the Istanbul flats for sale (nearly 100,000 listings that morning) and saved the first 20 in 33 seconds, each with its price, m², rooms, price per m², district and neighborhood, the seller type, and for the 15 listings posted by a store, the store's licence number, address and the phone numbers it publishes for its consultants. No sahibinden account.

Why choose this actor?

Copying sahibinden listings into a spreadsheet one page at a time? Opening every listing to find out whether an agency or the owner is selling? Rebuilding the price per m² of a district by hand?

  • 44 filled fields per listing, not 40. On our default run (20 flats for sale in Istanbul), 44 data fields were filled on at least half of the rows: the category path, deal and property type, price, currency, price per m², gross m², rooms split into bedrooms and living rooms, district, quarter, neighborhood, listing date, seller type, photos, and the store's name, page, logo, licence number, tier, years on sahibinden, listing count, address, regions, consultants and phones. The example output of the most used sahibinden scraper shows 40 keys.
  • Three ways in: a sahibinden link, a keyword or a listing number. Paste a search you built on sahibinden.com with its own filters, type words as in the site's search box, or give the numbers of the listings you follow. In our tests the keyword fiat egea returned 15 cars, newest first and under 1.5 million TL, in 13 seconds, and three listing numbers returned their full rows in 8 seconds. The most used sahibinden scraper takes links only.
  • Nothing to fill in before the first run. No field is required. The form opens with a working search, and that prefilled form returned 20 listings in 33 seconds on our test machine. The most used sahibinden scraper does not start until you paste a link.

Try Sahibinden Scraper

Try your first 20 listings

Paste this input in the JSON tab of the Input page and press Start. It reads the first 20 flats for sale in Istanbul, with the seller and store details.

{
"startUrls": [{ "url": "https://www.sahibinden.com/satilik-daire/istanbul" }],
"maxItems": 20,
"includeDetails": true
}

It runs on the Apify Free plan. Each listing becomes one row of your dataset: open the Output tab to see the table, switch to the "Real estate" view for the deal, m², rooms and price per m², to the "Vehicles" view for make, model, year and km, or to the "Stores and contacts" view for the store behind each listing, its licence number and its phones. Export the rows as JSON, CSV or Excel.

How it works

Copy to your AI assistant

Paste this block into Claude, ChatGPT or Cursor to give it the full picture of this scraper:

You have access to the Sahibinden Scraper on Apify: silentflow/sahibinden-scraper
It reads listings of sahibinden.com (Turkey's classifieds site: real estate, vehicles and every other
category) without an account, and returns one row per listing.
Input schema (no field is required; with nothing to read it searches flats for sale in Istanbul):
- startUrls (array of {url}): sahibinden.com search or category pages with their filters
(https://www.sahibinden.com/satilik-daire/istanbul, https://www.sahibinden.com/otomobil?a5_min=2020),
store pages (https://<store>.sahibinden.com/) or listing pages (/ilan/...-1344961498/detay).
- searches (array of strings): keywords as typed in sahibinden's search box: "bmw 320i", "fiat egea",
"kadıköy kiralık daire". Each keyword is read in the category sahibinden files it under.
- listingIds (array of strings): listing numbers (İlan No) such as "1344961498", or listing links.
- maxItems (integer, default 100): listings saved in total.
- minPrice, maxPrice (integers): price range, in Turkish lira for most listings.
- sortBy (string, default "relevance"): relevance | newest | oldest | price_lowest | price_highest.
- postedWithin (string, default "any"): any | 1day | 3days | 7days | 15days | 30days.
- includeDetails (boolean, default true): adds seller type, neighborhood and the store profile
(licence number, tier, years, address, regions, consultants and phones). Off = search columns only.
Filters apply to keywords and search links (a form filter replaces the same filter in a link).
Output per listing (59 fields, null when sahibinden does not show the value):
- id, url, title
- category, categoryPath (array), transactionType (sale | rent | daily_rent | transfer, real estate),
propertyType, attributes (object: every column of the search page by its Turkish label)
- real estate: squareMeters, netSquareMeters, rooms ("3+1"), roomCount (3.5 for "3.5+1"), livingRoomCount
- vehicles: brand, series, model, trim, year, mileage, color, transmission, drivetrain, engine,
fuelType, condition (used | new | damaged)
- sellerType (owner | agency | developer | bank | dealer | authorized_dealer), storeName, storeUrl,
storeSlug, storeLogoUrl, storeLicenseNumber, storeTier, storeYears, storeListingsCount, storeAddress,
storeDistrict, storeCity, storeRegions (array), storePhones (array, +90 format),
storeConsultants (array of {name, phone, role})
- price, currency (TRY, USD, EUR, GBP), formattedPrice, pricePerSquareMeter
- address, neighborhood (mahalle), quarter (semt), district (ilçe), city (il), countryCode ("TR"),
listedAt (RFC 3339, the listing date at midnight Turkish time)
- imageUrl, thumbnailUrl, hasVideo, hasVirtualTour, isNew, isHighlighted
- searchUrl, scrapedAt
Use apify-client for Python or JavaScript: client.actor("silentflow/sahibinden-scraper").call(run_input=...).

How to scrape sahibinden listings

Three inputs, from the simplest to the most complete. Each one runs as is.

Get the flats for sale in Istanbul

Paste the search link from sahibinden.com. The link keeps every filter you set on the site.

{
"startUrls": [{ "url": "https://www.sahibinden.com/satilik-daire/istanbul" }],
"maxItems": 100
}

Pull the newest Fiat Egea under 1.5 million TL

Type the car as you would in sahibinden's search box. The run follows the keyword into the Otomobil category, so every row comes with make, series, model, trim, year, km, colour and gearbox.

{
"searches": ["fiat egea"],
"sortBy": "newest",
"maxPrice": 1500000,
"maxItems": 50
}

Track this week's rentals in Çankaya, Ankara, under 40,000 TL

Combine a district search with the form's filters: price ceiling, date window and order.

{
"startUrls": [{ "url": "https://www.sahibinden.com/kiralik-daire/ankara-cankaya" }],
"maxPrice": 40000,
"postedWithin": "7days",
"sortBy": "newest",
"maxItems": 200
}

Input parameters

FieldTypeDefaultWhat it does
startUrlsarray of linksIstanbul flats for sale (prefill)sahibinden search, category, store or listing pages. A search link keeps its own city, district, price, rooms, year, km and order.
searchesarray of textnoneKeywords as typed in sahibinden's search box: bmw 320i, iphone 15 pro, kadıköy kiralık daire.
listingIdsarray of textnoneListing numbers (İlan No): 1344961498. Listing links work too. Each number gives one row.
maxItemsinteger100Listings saved in total, across every link, keyword and number.
minPriceintegernoneLowest price, in Turkish lira for most listings.
maxPriceintegernoneHighest price.
sortBytextrelevancerelevance (sahibinden's order, or the link's own), newest, oldest, price_lowest, price_highest.
postedWithintextanyany, 1day, 3days, 7days, 15days or 30days.
includeDetailsbooleantrueSeller type, neighborhood and the store profile with its licence number, tier, address, consultants and phones. Off for quick price checks.

Accepted links:

  • Search and category pages: https://www.sahibinden.com/satilik-daire/istanbul, https://www.sahibinden.com/kiralik-daire/ankara-cankaya, https://www.sahibinden.com/otomobil?a5_min=2020&sorting=price_asc, https://www.sahibinden.com/kategori/minivan-panelvan
  • Keyword pages: https://www.sahibinden.com/kelime-ile-arama?query_text=iphone+15
  • Store pages: https://sadikogluinsaat.sahibinden.com/
  • Listing pages: https://www.sahibinden.com/ilan/emlak-konut-satilik-...-1344961498/detay or the short https://www.sahibinden.com/1344961498

Accepted keywords: any words you would type in sahibinden's search box, in Turkish or with brand names. When sahibinden files a keyword under a top category such as Vasıta, the run reads its subcategories one by one, largest first (Otomobil before Arazi, SUV & Pickup), because those pages carry the year, km, m² and rooms columns.

Accepted listing numbers: 1344961498, #1344961498, or any link that ends with the number. A number typed in the keywords field is read as a listing number, and a link typed there is read as a link.

What data can you extract from sahibinden?

One row per listing, 59 fields, flat and ready for a spreadsheet, grouped as follows:

GroupFields
Identityid, url, title
Category and dealcategory, categoryPath, transactionType, propertyType, attributes
Real estatesquareMeters, netSquareMeters, rooms, roomCount, livingRoomCount
Vehiclesbrand, series, model, trim, year, mileage, color, transmission, drivetrain, engine, fuelType, condition
Seller and storesellerType, storeName, storeUrl, storeSlug, storeLogoUrl, storeLicenseNumber, storeTier, storeYears, storeListingsCount, storeAddress, storeDistrict, storeCity, storeRegions, storePhones, storeConsultants
Priceprice, currency, formattedPrice, pricePerSquareMeter
Place and timeaddress, neighborhood, quarter, district, city, countryCode, listedAt
Media and badgesimageUrl, thumbnailUrl, hasVideo, hasVirtualTour, isNew, isHighlighted
MetasearchUrl, scrapedAt

A few facts that help when you use the data:

  • id is sahibinden's listing number (İlan No) and url the listing's permanent page. Use id to match the same listing across runs.
  • attributes holds every column the search page shows for the category, under its Turkish label: m² (Brüt) and Oda Sayısı for flats, Yıl and KM for cars. The columns integrators look for most also get their own field: squareMeters, rooms, year, mileage.
  • Real estate fields stay null on cars and vehicle fields stay null on flats. A row only fills the fields of its own category.
  • price is a number and currency its ISO code (TRY for most listings, USD, EUR or GBP when the seller priced it that way). formattedPrice is the price as sahibinden shows it. pricePerSquareMeter divides the price by the gross m².
  • rooms keeps sahibinden's notation (3+1, 3.5+1, Stüdyo (1+0)), roomCount and livingRoomCount split it into numbers you can filter on (3.5 and 1 for 3.5+1).
  • sellerType comes from the listing's own page: owner (sahibinden), agency (emlak ofisi), developer (inşaat firması), bank, dealer (galeri) or authorized_dealer. On our default run, 16 of 20 listings were posted by an agency and 4 by their owner.
  • The store fields are filled for listings posted by a store. On our default run, 15 of 20 rows carried a licence number and phones, 31 different phone numbers from 12 stores. storePhones lists the numbers a store publishes for its consultants on its sahibinden page, in +90 format; storeConsultants pairs each number with the consultant's name, or gives the person's role when the store publishes no number.
  • listedAt is the day the listing was posted, at midnight Turkish time, in RFC 3339. scrapedAt is the moment of the run, in UTC.
  • imageUrl is the main photo in 800x600 and thumbnailUrl the small one shown in the search. Photo links point to sahibinden's image server and disappear with the listing: save the photos you need to keep.

Output example

A real row from our default run (Istanbul flats for sale), with the consultants' names and phone numbers shortened:

{
"id": "1314151028",
"url": "https://www.sahibinden.com/ilan/emlak-konut-satilik-metrobuse-yakin-guvenlikli-havuzlu-site-ici-3-plus1-satilik-daire-1314151028/detay",
"title": "METROBÜSE YAKIN GÜVENLİKLİ HAVUZLU SİTE İÇİ 3+1 SATILIK DAİRE",
"category": "Satılık Daire",
"categoryPath": ["Emlak", "Konut", "Satılık", "Daire"],
"transactionType": "sale",
"propertyType": "Daire",
"attributes": { "Oda Sayısı": "3+1", "m² (Brüt)": 160 },
"squareMeters": 160,
"netSquareMeters": null,
"rooms": "3+1",
"roomCount": 3,
"livingRoomCount": 1,
"brand": null,
"series": null,
"model": null,
"trim": null,
"year": null,
"mileage": null,
"color": null,
"transmission": null,
"drivetrain": null,
"engine": null,
"fuelType": null,
"condition": null,
"sellerType": "agency",
"storeName": "AKVA MİMARLIK GAYRİMENKUL",
"storeUrl": "https://akvyapigayrimenkul.sahibinden.com/",
"storeSlug": "akvyapigayrimenkul",
"storeLogoUrl": "https://image5.sahibinden.com/stores/logos/89/16/98/3a606a8220e99486f6324d931648e82455b0916f.png",
"storeLicenseNumber": "3408120",
"storeTier": "Premium Ofis",
"storeYears": 1,
"storeListingsCount": 50,
"storeAddress": "Merkez, BARIŞ MAH. BELEDİYE CAD. GINZA LAVINYA NO: 30 İÇ KAPI NO: 259 BEYLİKDÜZÜ/ İSTANBUL",
"storeDistrict": "Beylikdüzü",
"storeCity": "İstanbul",
"storeRegions": ["Beylikdüzü, İstanbul", "Esenyurt, İstanbul", "Avcılar, İstanbul"],
"storePhones": ["+90536836XXXX", "+90535517XXXX"],
"storeConsultants": [
{ "name": "Emrullah G.", "phone": "+90536836XXXX", "role": null },
{ "name": "Merve G.", "phone": "+90535517XXXX", "role": null }
],
"price": 4250000,
"currency": "TRY",
"formattedPrice": "4.250.000 TL",
"pricePerSquareMeter": 26562.5,
"address": "Cumhuriyet Mah., Kavaklı, Beylikdüzü, İstanbul",
"neighborhood": "Cumhuriyet Mah.",
"quarter": "Kavaklı",
"district": "Beylikdüzü",
"city": "İstanbul",
"countryCode": "TR",
"listedAt": "2026-10-28T00:00:00+03:00",
"imageUrl": "https://i0.shbdn.com/photos/15/10/28/big_1314151028688.jpg",
"thumbnailUrl": "https://image5.sahibinden.com/primeRow/15/10/28/pr_thmb_1314151028pau.jpg",
"hasVideo": false,
"hasVirtualTour": false,
"isNew": false,
"isHighlighted": true,
"searchUrl": "https://www.sahibinden.com/satilik-daire/istanbul?pagingSize=50",
"scrapedAt": "2026-10-28T07:05:51Z"
}

Advanced usage

Refresh the listings you already follow

Give the listing numbers of a shortlist. Each one comes back with its current price and full row; a listing that was removed is skipped and named in the log, which tells you it sold or expired.

{
"listingIds": ["1344961498", "1348223713", "1343640912"]
}

In our test these three numbers (two flats and a car) returned their full rows in 8 seconds.

Read every listing of one agency or dealer

Paste a store's page. The run reads all its listings, page by page, and puts the store's licence number, address, consultants and phones on each row.

{
"startUrls": [{ "url": "https://sadikogluinsaat.sahibinden.com/" }],
"maxItems": 500
}

Our test read 10 listings of this office in 11 seconds, sale and rental mixed, each with the office's licence number and its two consultants' phones.

sahibinden shows at most 1,000 results per search. Ask for more and the run carries on through the same search cheapest first, without repeating a listing.

{
"startUrls": [{ "url": "https://www.sahibinden.com/kiralik-daire/ankara" }],
"includeDetails": false,
"maxItems": 5000
}

In our test a 1,100-listing run on Ankara rentals finished in 23 seconds with 1,100 different listings: the first 1,000 in sahibinden's order, the next 100 from the cheapest up.

Check prices fast, without the seller details

Turn the seller details off when all you need is price, size, place and date. A page of 50 listings then comes back in about a second.

{
"startUrls": [{ "url": "https://www.sahibinden.com/otomobil?a5_min=2022" }],
"includeDetails": false,
"sortBy": "price_lowest",
"maxItems": 500
}

Our test read 120 cars from 2022 or later, cheapest first, in 3 seconds.

Get a daily feed of new car listings

Schedule this input once a day from the Schedules page of Apify Console: it returns the BMW 320i listings posted in the last 24 hours, newest first, and you match them against your previous run with id.

{
"searches": ["bmw 320i"],
"postedWithin": "1day",
"sortBy": "newest",
"maxItems": 300
}

In our test sahibinden filed bmw 320i under BMW 3 Serisi and the run found 315 matching listings, each with series, model, year and km.

FAQ

What is sahibinden.com? sahibinden.com is Turkey's largest classifieds site, the Turkish counterpart of Craigslist and Leboncoin with the depth of Zillow and AutoTrader in one place. Owners, real estate agencies, developers, banks and car dealers list flats, houses, land, shops, cars, SUVs and almost anything else there, in every city of the country.

Do I need a sahibinden account or an API key? No. The actor reads the listings sahibinden shows to any visitor. No login, no sahibinden account, no key to set up.

What does one row contain? One listing with up to 59 fields: category and deal, price and price per m², every column of the search page, the real estate or vehicle fields of its category, district, quarter and neighborhood, the listing date, the seller type, the store's profile with its licence number and published phones, and the photos. On our default run 44 of these fields were filled on at least half of the rows.

Which categories can I scrape? All of them: Emlak (flats, houses, land, shops, offices, for sale, for rent, daily rentals, transfers), Vasıta (cars, SUVs, minivans, motorcycles, commercial vehicles) and the other categories of the site. Real estate rows fill the m² and rooms fields, vehicle rows the make, model, year and km fields, and every row keeps all its search columns in attributes.

Why are some fields empty? Each row only fills the fields of its category, so vehicle fields are null on flats and the other way round. Store fields are null when the owner posted the listing. A few commercial listings do not name their seller type on their page, and a few stores keep their page for logged-in members: those fields stay null rather than guessed. Turn includeDetails off and the seller and store fields stay empty on purpose.

Whose phone numbers are in the rows? The numbers a store publishes on its sahibinden page for its consultants, with their names. They are business contact numbers of agencies and dealers. Phone numbers of private owners are not collected.

How many listings can one search return? sahibinden shows 1,000 results per search. Ask for more and the run goes on through the same search cheapest first until it reaches your maxItems or the end of the search. For very large markets, split by city or district: /satilik-daire/istanbul-kadikoy instead of /satilik-daire/istanbul.

Can I combine filters? Yes, and they add up. sortBy: newest with postedWithin: 7days and maxPrice: 40000 on a Çankaya rental link returns the rentals posted in the last seven days under 40,000 TL, newest first. Any filter you set on sahibinden.com before copying the link (rooms, m², year, km, fuel, gearbox) is kept too.

Can I mix links, keywords and listing numbers in one run? Yes. Links are read first, then keywords, then listing numbers, and maxItems counts across all of them. A listing found twice is saved once.

How fresh is the data? Every run reads sahibinden live, at the moment you start it. There is no cache: the price and the listing date are the ones the site shows at that minute.

Is this sahibinden ilan çekme or sahibinden veri çekme? Both. Turkish users call it sahibinden ilan çekme (pulling listings) or sahibinden veri çekme (pulling data): this actor turns sahibinden listings into rows you can export to Excel, CSV or JSON, or send to your own tools through the Apify API.

Are the links permanent? url is the listing's permanent page for as long as the listing is online. storeUrl stays as long as the store exists. Photo links work while the listing is live: save the photos you want to keep.

More SilentFlow scrapers

🛒 E-commerce

💼 Jobs

🏠 Real estate

📣 Social media

🏢 Business data

✈️ Travel

🎯 Lead generation

🔎 SEO

📈 Marketing

🎬 Video

📰 News

🧰 More tools

Support

Need something this scraper doesn't do yet? We ship features fast.

  • Feature requests go straight to our backlog
  • Enterprise needs? We do custom integrations and high-volume plans
  • Pricing questions? Check the Monetization tab on the actor page

Response time: usually under 24 hours.

This Actor extracts publicly available listings from sahibinden.com. It does not bypass any login, paywall or CAPTCHA, and never uses a sahibinden account: store pages that sahibinden keeps for logged-in members are skipped. Users are responsible for complying with sahibinden's terms of service and applicable data protection laws (GDPR, CCPA, and PIPL where relevant, as well as Turkey's KVKK). Rows can carry the names and published phone numbers of agency and dealer consultants, and an owner who posts a listing is a person: treat these as personal data, keep only what you need, and honor removal requests. The data returned is informational; verify accuracy for regulated use cases.

Sahibinden Scraper by SilentFlow: sahibinden.com listings from a link, a keyword or a listing number, with the seller behind each one.