sahibinden Property Scraper - Listings, Photos & Seller Details avatar

sahibinden Property Scraper - Listings, Photos & Seller Details

Pricing

from $1.20 / 1,000 listing results

Go to Apify Store
sahibinden Property Scraper - Listings, Photos & Seller Details

sahibinden Property Scraper - Listings, Photos & Seller Details

Scrape Turkish property listings from sahibinden: price, full attribute table (area, rooms, building age, floor, heating, dues, deed status and more), map coordinates, photo gallery, seller/store details and contact phone. Search by category, location and price, or paste search and listing URLs.

Pricing

from $1.20 / 1,000 listing results

Rating

0.0

(0)

Developer

Abot API

Abot API

Maintained by Community

Actor stats

0

Bookmarked

10

Total users

3

Monthly active users

a day ago

Last modified

Share

sahibinden Property Scraper

Collect Turkish property listings from sahibinden in clean, structured JSON. Search by category, location and price, or paste search and listing URLs. Every record carries the price, the full attribute table, map coordinates, the photo gallery, seller and store details, and the contact phone.

What it does

This scraper turns sahibinden property pages into a tidy dataset you can open in a spreadsheet, push to a database, or pipe into your own tools. It covers homes for sale and for rent, land, and commercial properties. Each listing is returned as one row with dozens of fields, so you do not have to copy anything by hand.

You can run it two ways:

  • Search by filters picks a category (for sale or for rent, plus the property type), a location, an optional keyword, a price range, a minimum room count and a sort order, then returns every matching listing.
  • Direct URLs takes sahibinden search-result pages or individual listing pages that you already have and scrapes exactly those.

Input

FieldDescription
Start mode"Search by filters" or "Direct URLs".
sahibinden URLsURL mode only. Search pages or listing pages, one per line.
Listing typeFor sale (satilik) or for rent (kiralik).
Property typeResidential, apartment, villa, detached house, land, commercial, office or shop.
LocationCity, district or neighborhood name. Leave empty for the whole country.
KeywordOptional free-text term to narrow results.
Minimum price / Maximum pricePrice range in the listing currency.
Minimum roomsSmallest room count to include.
Sort byNewest, oldest, price or area order.
Include listing detailsAdds the full attribute table, coordinates, photos, seller details, phone and description to each listing.
Max itemsHow many listings to collect. Default 20. Set 0 for unlimited.
Max pagesSafety cap on result pages to walk.
Proxy configurationTurkey-based residential connections are required. The Apify Residential Turkey pool is currently blocked by this source, so pick "Custom proxies" and paste a clean Turkish-ISP residential proxy URL that keeps one connection for the whole run.
MCP connectorsOptionally send results into Notion, Linear, Airtable or Apify.

Example input

{
"mode": "search",
"listingType": "satilik",
"propertyType": "konut",
"location": "istanbul",
"minPrice": 1000000,
"maxPrice": 3000000,
"sortBy": "price_asc",
"fetchDetails": true,
"maxItems": 20,
"proxy": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "TR" }
}

Output

One record per listing. With "Include listing details" on, each record carries the full attribute table, coordinates, gallery, seller block and contact phone. Sample data below is illustrative.

{
"id": "1000000000",
"title": "Sample 2+1 apartment in a gated complex",
"url": "https://www.sahibinden.com/ilan/sample-listing-1000000000/detay",
"price": 2095000,
"currency": "TRY",
"propertyType": "Satilik Daire",
"areaGross": "110",
"areaNet": "100",
"rooms": "2+1",
"buildingAge": "5",
"floor": "6",
"floorCount": "13",
"heating": "Combi (natural gas)",
"bathrooms": "1",
"balcony": "Yes",
"elevator": "Yes",
"parking": "Open and closed parking",
"furnished": "No",
"creditEligible": "Yes",
"deedStatus": "Floor ownership",
"fromWho": "From an agency",
"swap": "Yes",
"latitude": 41.02,
"longitude": 28.65,
"district": "Sample District",
"neighborhood": "Sample Neighborhood",
"categoryPath": ["Emlak", "Konut", "Satilik", "Satilik Daire"],
"sellerType": "store",
"sellerName": "Agent Name",
"storeName": "Sample Realty",
"storeUrl": "https://samplerealty.sahibinden.com",
"phoneMobile": "5000000000",
"phoneNumbers": [{ "label": "Cep", "number": "5000000000" }],
"imageCount": 24,
"images": ["https://example.com/photo-1.jpg"],
"description": "Spacious apartment close to transport and shops.",
"attributes": { "Oda Sayisi": "2+1", "Isitma": "Kombi (Dogalgaz)" }
}

Plan Requirement

This Actor needs a Turkey-based residential connection. Please read this before you run it: the source currently redirects anonymous connections to its sign-in page on many Turkey-based networks, so runs on the default pool can fail. When that happens the Actor automatically retries the whole run through a slower alternate connection lane: runs take longer (allow up to two minutes per page) but still return listings, and a per-run time budget keeps a degraded run from dragging on. For maximum reliability, choose "Custom proxies" in the proxy field and paste your own clean Turkish-ISP residential proxy URL that keeps one connection for the whole run. Pay only for what you collect under the per-event pricing shown on the Actor page; a run that cannot read any page fails without charging you for results.

Send results into your apps (MCP connectors)

You can optionally forward each result into the apps you already use through Model Context Protocol (MCP) connectors. Authorize a connector once under Apify, Settings, Integrations, then select it in the MCP connectors field. The connector receives a short, readable summary per item (title plus key fields); the complete record always stays in the dataset.

Supported connectors:

FAQ

Which countries can I scrape from? This source serves Turkey-based connections only. Clean Turkish connections can take several automatic rotations on the shared pools, so runs may start slower than usual. For maximum reliability, paste your own clean Turkish-ISP residential proxy under "Custom proxies" instead.

Why did my run fail with "Could not read any result pages"? Every page request was rejected by the source, both on the primary connection and on the automatic alternate connection lane, which is a connection problem rather than an empty search. It almost always means the source is requiring a signed-in account in your region or for your connection type. Switch the proxy field to "Custom proxies" with a Turkish-ISP residential URL and run it again. Failed runs of this kind do not charge you for results.

Can I scrape a single listing? Yes. Switch to Direct URLs mode and paste the listing page link.

How do I control cost? Set Max items to the number of listings you need, and turn off Include listing details if you only need the basic fields. Detail enrichment is billed once per listing only when it is enabled.

Will I get phone numbers? When a listing exposes a contact phone, it is returned in the phoneMobile and phoneNumbers fields.