# Sahibinden Search Scraper Pro | Extracts Phone Numbers (`clearpath/sahibinden-scraper-pro`) Actor

Extract phone numbers, prices, locations, photos, and seller details from Sahibinden listing, category, and search URLs. Get enriched classifieds data from cars, real estate, shopping, and more.

- **URL**: https://apify.com/clearpath/sahibinden-scraper-pro.md
- **Developed by:** [ClearPath](https://apify.com/clearpath) (community)
- **Categories:** Lead generation, E-commerce, Real estate
- **Features:** Limited permissions
- **Stats:** 535 total users, 107 monthly users, 99.1% runs succeeded, 4 bookmarks
- **User rating**: 4.01 out of 5 stars

## Pricing

from $3.29 / 1,000 listings

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

[![100+ output fields. Seller phones. Painted and replaced parts. Damage amounts.](https://api.apify.com/v2/key-value-stores/pJ7iaZsTFhR3k9tjV/records/sahibinden-pro-readme-hero-2b3176657960.png)](https://console.apify.com/actors/4g5NTbwYYuuQsoo3c/input)

From **Clearpath**, creators of [Sahibinden Real Estate](https://apify.com/clearpath/sahibinden-real-estate), [Sahibinden Phone Scraper](https://apify.com/clearpath/sahibinden-phone-scraper) and [Leboncoin Scraper](https://apify.com/clearpath/leboncoin-api). Classified listings and seller contacts from the same team.

### Neden bu Actor? / Why choose this actor?

**100+ alan, işe yarayan ayrıntılar.** Araç, emlak ve ürün ilanlarını kategoriye özel özellikleriyle dışa aktarın. **100+ fields with useful depth:** listing specs, descriptions, photos, locations and seller details in one consistent export. The output has 120 fields; populated values depend on the category, listing and enrichment settings.

**Telefon ve satıcı bilgileri birlikte.** Mevcut telefon numaralarını satıcı adı ve mağaza bilgileriyle eşleştirin. **Put a seller behind each listing.** Enrichment adds available mobile, home or work numbers, seller names and store profiles. Phone availability varies by listing.

**Araçlarda boya, değişen ve tramer.** Daha ayrıntılı araç karşılaştırmaları yapın. **Compare vehicle condition in detail.** Get painted and replaced panels, equipment and factory specs where published. Seller-reported damage amounts are extracted from the listing description, with the supporting text retained.

<a href="https://console.apify.com/actors/4g5NTbwYYuuQsoo3c/input" data-demo-cta="true"><img src="https://api.apify.com/v2/key-value-stores/pJ7iaZsTFhR3k9tjV/records/sahibinden-pro-readme-cta-0e7111f8f02c.svg" width="236" height="48" alt="Try five enriched listings" /></a>

#### Önce 5 ilan deneyin / Try five listings first

```json
{
  "startUrls": [
    "https://www.sahibinden.com/kategori/minivan-panelvan"
  ],
  "enrichment": true,
  "maxResults": 5
}
```

[Open actor input](https://console.apify.com/actors/4g5NTbwYYuuQsoo3c/input) and paste your own Sahibinden listing, category or search URL. Keep `enrichment` enabled for the phone and detail fields shown above. Use original Turkish URLs; export JSON, CSV or Excel. JSON preserves nested specifications and seller information.

**Zenginleştirme ek ücretlidir. / Enrichment is an add-on:** $2.99 per 1,000 enriched listings on top of $3.99 per 1,000 listings on the Free and Starter plans, less on Scale and Business. See [Pricing](#pricing).

<table>
<tr>
<td style="background:#FFE800;padding:10px 12px;border-radius:4px 4px 0 0"><strong style="color:#191600;font-size:14px">Clearpath · Classifieds Suite</strong></td>
</tr>
<tr>
<td style="padding:6px;border:1px solid #E9DFA3;border-top:none;border-radius:0 0 4px 4px;background:#FFF9D8">
<span style="display:inline-block;vertical-align:top;margin:4px;padding:8px 12px;border:1px solid #E9DFA3;border-radius:4px;background:#FFF3A3"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/DSvMCAwsufMyZeLyt-actor-4g5NTbwYYuuQsoo3c-mC5CsVFJIb-sahibinden-phone-scraper-logo.png" width="20" height="20" style="display:inline;vertical-align:middle" alt="">&nbsp;<a href="https://apify.com/clearpath/sahibinden-scraper-pro" style="color:#332D0B;font-weight:700;font-size:13px;text-decoration:none">Scraper Pro</a></span><br><span style="color:#554B21;font-size:12px;white-space:nowrap">You are here</span></span>
<span style="display:inline-block;vertical-align:top;margin:4px;padding:8px 12px;border:1px solid #E9DFA3;border-radius:4px;background:#FFF9D8"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/DSvMCAwsufMyZeLyt-actor-OCfsByJOX4xk4G5ee-q6T9LiJpgI-sahibinden-phone-scraper-logo.png" width="20" height="20" style="display:inline;vertical-align:middle" alt="">&nbsp;<a href="https://apify.com/clearpath/sahibinden-phone-scraper" style="color:#332D0B;font-weight:700;font-size:13px;text-decoration:none">Phones</a></span><br><span style="color:#554B21;font-size:12px;white-space:nowrap">Seller contacts</span></span>
<span style="display:inline-block;vertical-align:top;margin:4px;padding:8px 12px;border:1px solid #E9DFA3;border-radius:4px;background:#FFF9D8"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/DSvMCAwsufMyZeLyt-actor-OCfsByJOX4xk4G5ee-q6T9LiJpgI-sahibinden-phone-scraper-logo.png" width="20" height="20" style="display:inline;vertical-align:middle" alt="">&nbsp;<a href="https://apify.com/clearpath/sahibinden-vehicle-valuation" style="color:#332D0B;font-weight:700;font-size:13px;text-decoration:none">Valuation</a></span><br><span style="color:#554B21;font-size:12px;white-space:nowrap">Car price estimates in TRY</span></span>
<span style="display:inline-block;vertical-align:top;margin:4px;padding:8px 12px;border:1px solid #E9DFA3;border-radius:4px;background:#FFF9D8"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/DSvMCAwsufMyZeLyt-actor-z4v4lnrbobs8Nnf3N-CaRg48OBfX-sahibinden-phone-scraper-logo.png" width="20" height="20" style="display:inline;vertical-align:middle" alt="">&nbsp;<a href="https://apify.com/clearpath/sahibinden-real-estate" style="color:#332D0B;font-weight:700;font-size:13px;text-decoration:none">Real Estate</a></span><br><span style="color:#554B21;font-size:12px;white-space:nowrap">Property leads</span></span>
<span style="display:inline-block;vertical-align:top;margin:4px;padding:8px 12px;border:1px solid #E9DFA3;border-radius:4px;background:#FFF9D8"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/DSvMCAwsufMyZeLyt-actor-CDvphBGp91pZvOkr5-47ocnQWbXl-icon-512.png" width="20" height="20" style="display:inline;vertical-align:middle" alt="">&nbsp;<a href="https://apify.com/clearpath/turkey-real-estate-scraper" style="color:#332D0B;font-weight:700;font-size:13px;text-decoration:none">Hepsiemlak &amp; Emlakjet</a></span><br><span style="color:#554B21;font-size:12px;white-space:nowrap">Turkish property</span></span>
<span style="display:inline-block;vertical-align:top;margin:4px;padding:8px 12px;border:1px solid #E9DFA3;border-radius:4px;background:#FFF9D8"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/DSvMCAwsufMyZeLyt-actor-4g5NTbwYYuuQsoo3c-mC5CsVFJIb-sahibinden-phone-scraper-logo.png" width="20" height="20" style="display:inline;vertical-align:middle" alt="">&nbsp;<a href="https://apify.com/clearpath/sahibinden-car-scraper" style="color:#332D0B;font-weight:700;font-size:13px;text-decoration:none">Car Scraper</a></span><br><span style="color:#554B21;font-size:12px;white-space:nowrap">Cars &amp; damage</span></span>
<span style="display:inline-block;vertical-align:top;margin:4px;padding:8px 12px;border:1px solid #E9DFA3;border-radius:4px;background:#FFF9D8"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/DSvMCAwsufMyZeLyt-actor-nfWPDHJzRb80PsNo1-75H3RM9GEy-leboncoin-api-scraper.png" width="20" height="20" style="display:inline;vertical-align:middle" alt="">&nbsp;<a href="https://apify.com/clearpath/leboncoin-api" style="color:#332D0B;font-weight:700;font-size:13px;text-decoration:none">Leboncoin</a></span><br><span style="color:#554B21;font-size:12px;white-space:nowrap">French classifieds</span></span>
<span style="display:inline-block;vertical-align:top;margin:4px;padding:8px 12px;border:1px solid #E9DFA3;border-radius:4px;background:#FFF9D8"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/DSvMCAwsufMyZeLyt-actor-dcuhr77odKyZhWcNn-4x34on6Y9o-gumtree-logo.png" width="20" height="20" style="display:inline;vertical-align:middle" alt="">&nbsp;<a href="https://apify.com/clearpath/gumtree-scraper" style="color:#332D0B;font-weight:700;font-size:13px;text-decoration:none">Gumtree</a></span><br><span style="color:#554B21;font-size:12px;white-space:nowrap">AU, UK &amp; ZA classifieds</span></span>
</td>
</tr>
</table>

#### Copy to your AI assistant

Copy this block into ChatGPT, Codex, Cursor, or any LLM to start using this actor.

```text
clearpath/sahibinden-scraper-pro on Apify. Call: ApifyClient("TOKEN").actor("clearpath/sahibinden-scraper-pro").call(run_input={"startUrls":["https://www.sahibinden.com/kategori/minivan-panelvan"],"enrichment":true,"maxResults":10}), then client.dataset(run["defaultDatasetId"]).list_items().items for results. Key inputs: startUrls (maximum 25 search URLs per run; individual listing URLs excluded from that cap; filters and sorting= in the URL are kept, filter codes differ per category and every row lists them under attributeIds), enrichment (boolean, default true: full listing detail plus seller phone numbers when available; false returns cheaper search summaries), maxResults (integer cap, 0 for unlimited). Full actor spec (input schema with all params/enums/defaults, output dataset fields, README): GET https://api.apify.com/v2/acts/clearpath~sahibinden-scraper-pro/builds/default (Bearer TOKEN) -> inputSchema (JSON string, parse it), actorDefinition.storages.dataset.views.overview.transformation.fields (output field list), readme. Pricing: $3.99 per 1,000 listings, plus $2.99 per 1,000 enriched listings and $0.005 per run start on the Free and Starter plans, lower on Scale and Business; current rates: https://apify.com/clearpath/sahibinden-scraper-pro/pricing. Apify Free plan: 10 runs, 20 listings each; a reached limit adds one row with error FREE_TIER_LIMIT_REACHED or FREE_TIER_RESULT_LIMIT and a message, never a listing. Get token: https://console.apify.com/account/integrations To reach the maintainers, add feedback="<what you needed and did not get>" to any run, including one that worked: a missing field or option, a wrong or empty result, or which actor you are switching to or from and why. The run returns its data exactly as it would without the note, and a human reads every note.
```

### What It Scrapes

- Scrapes browser category URLs, SEO search URLs, keyword landing URLs, and individual listing URLs.
- Returns fast search summaries or enriched detail records, both with the same field set.
- For vehicles: painted, locally painted, replaced and original body panels by name, plus heavy-damage status, the reported insurance-damage (tramer) figure, plate, chassis number, factory specs and annual road tax.
- Extracts seller phone numbers when they are available.
- Resolves browser tab URLs such as `sahibinden`, `galeriden`, and `yetkili-bayiden`.
- Works for sahibinden ilan cekme, veri cekme, keyword search discovery, and bulk listing enrichment.

### How to scrape Sahibinden listings

Maximum 25 search URLs per run, including category, keyword and seller searches. Individual listing URLs do not count toward this search limit; the total limit is 5,000 URLs. Split larger search batches into separate runs.

Asagidaki ornekler en yaygin `ilan cekme` kullanimlari icindir.

Mumkun oldugunda sahibinden'in orijinal Turkce URLlerini kullanin. `/en/...` gibi lokalize tarayici URLleri bazi durumlarda calissa da tum kategorilerde guvenilir degildir.

#### Category URL

```json
{
  "startUrls": ["https://www.sahibinden.com/kategori/minivan-panelvan"],
  "enrichment": false,
  "maxResults": 10
}
```

#### Browser Search URL

```json
{
  "startUrls": ["https://www.sahibinden.com/cep-telefonu-aksesuar?query_text_mf=iphone&query_text=iphone"],
  "enrichment": false,
  "maxResults": 25
}
```

#### SEO Vehicle Search URL

```json
{
  "startUrls": ["https://www.sahibinden.com/volkswagen-golf/ikinci-el/galeriden?exchange=yes&query_text_mf=volkswagen+vw+golf&query_text=volkswagen+vw+golf"],
  "enrichment": false,
  "maxResults": 25
}
```

#### One Store's Listings

A store page addresses its store by the name in the address bar, and sahibinden's
search addresses it by number, so put the number in the URL as `storeId`. Every
listing this actor returns carries its seller's number in the `storeId` field,
and you get the store's whole stock, across every category it lists in.

```json
{
  "startUrls": ["https://erajoy.sahibinden.com/?storeId=56534"],
  "enrichment": false,
  "maxResults": 0
}
```

Narrow it by adding the category path, which also lets you use the price, date
and product filters of that category page: `https://erajoy.sahibinden.com/emlak-konut-satilik?storeId=56534`.
For one person's listings rather than a whole store, use `userId` the same way:
`https://www.sahibinden.com/?userId=106845986`.

#### Generic Keyword Landing URL

```json
{
  "startUrls": ["https://www.sahibinden.com/kelime-ile-arama?query_text=usb"],
  "enrichment": false,
  "maxResults": 50
}
```

#### Enriched Listing Data

```json
{
  "startUrls": ["https://www.sahibinden.com/kategori/vasita"],
  "enrichment": true,
  "maxResults": 25
}
```

#### Single Listing URL

```json
{
  "startUrls": ["https://www.sahibinden.com/ilan/1310352887"],
  "enrichment": true,
  "maxResults": 1
}
```

### Input Parameters

| Field | Type | Default | Description |
|---|---:|---:|---|
| `startUrls` | array | required | Sahibinden listing URLs, category URLs, browser search URLs, SEO search URLs, `kelime-ile-arama` keyword landing URLs, or a store URL carrying `?storeId=<number>`. |
| `enrichment` | boolean | `true` | Full listing detail plus seller phone numbers when available. Turn off for cheaper, faster search-summary rows. |
| `maxResults` | integer | `100` | Maximum listings across all URLs. Use `0` for unlimited. |

Supported browser URL families include:

- `https://www.sahibinden.com/cep-telefonu-aksesuar?query_text_mf=iphone&query_text=iphone`
- `https://www.sahibinden.com/cep-telefonu-aksesuar/ikinci-el?query_text_mf=iphone&query_text=iphone`
- `https://www.sahibinden.com/cep-telefonu-aksesuar/sifir?hasSecureTrade=true&query_desc=true&exchange=no&query_text_mf=iphone&query_text=iphone`
- `https://www.sahibinden.com/volkswagen-golf/ikinci-el?exchange=yes&query_text_mf=volkswagen+vw+golf&query_text=volkswagen+vw+golf`
- `https://www.sahibinden.com/volkswagen-golf/ikinci-el/galeriden?exchange=yes&query_text_mf=volkswagen+vw+golf&query_text=volkswagen+vw+golf`
- `https://www.sahibinden.com/volkswagen-golf/ikinci-el/yetkili-bayiden?exchange=yes&query_text_mf=volkswagen+vw+golf&query_text=volkswagen+vw+golf`
- `https://www.sahibinden.com/volkswagen-golf/ikinci-el/sahibinden?exchange=yes&query_text_mf=volkswagen+vw+golf&query_text=volkswagen+vw+golf`
- `https://www.sahibinden.com/kelime-ile-arama?query_text=usb`

Native Turkish category/search URLs are the supported default. If your browser auto-localizes sahibinden into `/en/...`, paste the original Turkish URL instead.

`kelime-ile-arama` URLs are handled as category discovery first, then the actor searches the discovered categories in sahibinden's own order. If sahibinden only returns an intermediate landing page with no searchable categories, the actor skips that URL explicitly instead of pretending it worked.

Supported browser filter params currently include category/status path suffixes such as `/ikinci-el`, `/sifir`, and comma-joined vehicle status suffixes like `/ikinci-el,yurtdisindan-ithal-sifir,sifir`, plus query params such as `query_text`, `query_text_mf`, `exchange`, `date`, `hasSecureTrade`, `query_desc`, `hasVideo`, `hasClip`, `hasPhoto`, `hasMegaPhoto`, `offerable`, address filters, price filters, `sorting`, and any native `a*` attribute filters already present in the pasted URL. On pages like `cep-telefonu-aksesuar`, `Teslimat Tercihi` collapses to the same `hasSecureTrade` URL state, so the actor does not invent a separate shipping filter that sahibinden is not actually encoding there.

Filter codes differ per category: year is `a5` on Otomobil and `a277` on Arazi, SUV & Pickup. A range or checkbox code from another category (`a5_min` on an SUV page) is applied as that page's code for the same filter, and the log names any filter or sort order the page does not offer, instead of returning the whole category without a word. Sort values: `price_asc`, `price_desc`, `date_desc`, `date_asc`, `address_asc`, `address_desc`, and on vehicle pages `km-nu_asc`, `km-nu_desc`, `yil-nu_asc`, `yil-nu_desc`. `/arazi-suv-pickup-fiat-egea-cross?a277_min=2023&a277_max=2023&sorting=km-nu_asc` returns 2023 Egea Cross listings, lowest km first. Past the first 1,000 listings of one search, the rest arrive in price order.

Service URLs such as `oto-ekspertiz-hizmetleri`, `hizmetler`, and `oto360` are skipped.

This actor is best for users searching for `Sahibinden scraper`, `Sahibinden ilan cekme`, `Sahibinden veri cekme`, or seller phone extraction from listing URLs.

### What data you get from Sahibinden

Every dataset item is one listing. Both record types carry the same 120 fields in the same order, so fast summaries and enriched details load into a single table without reshaping.

| Record | `recordType` | What it holds |
|---|---|---|
| Search summary | `searchSummary` | Price, every listing attribute by name (model year, mileage, rooms, m², heating, seller type and the rest for the category), plate, chassis number, cover photo, location, store, category. Returned without opening the listing, so it is the cheap shape for re-checking prices. |
| Enriched detail | `detail` | Everything above plus the description, every photo at every resolution up to 1600x1200, body-panel condition, the tramer figure read out of the description, equipment lists, manufacturer catalogue specs and annual vehicle tax, the third-party inspection report and its PDF when the listing has one, video and virtual-tour links, whether the listing passed the Ministry of Trade's EİDS authorization check, card instalment offers, buyers' public questions with the seller's answers, seller and store profile, and phone numbers when requested. |

Fields a search summary cannot answer are still present, just empty, and never guessed.

**Every attribute is named, in every category.** Attributes arrive under their sahibinden label (`Oda Sayısı`, `m² (Net)`, `Kimden`, `Yıl`), never as codes, whether the listing is a car, a flat, a computer or a job ad. `attributeIds` gives each label's sahibinden filter code (`Oda Sayısı` → `a20`), the one a sahibinden.com filter URL uses, on searched and pasted listings alike; a label with no code in its category, such as `Takas`, has none. A handful of values sahibinden attaches to listings without ever naming or showing them stay under `unpublishedAttributes`, keyed by that code: kept, not dropped and not given a guessed name. A number the seller left empty comes back as `null`.

**Insurance damage (tramer).** Sellers state it in the description text, in about seven different wordings, so `tramerStatus` says `reported`, `none` or `unknown`, `tramerAmount` carries the figure in TL **only when the text is unambiguous**, and `tramerMentions` always gives you the sentences both were read from. A listing that says "TRAMER KAYDI YOKTUR" comes back as `none` with `0`, and one that says "10.000 TL civarında" comes back as `reported` with no number rather than a number we are not sure of. On 111 sampled cars: 49 with a figure, 24 explicit zeros, 36 with no mention, 2 deliberately left unparsed.

Vehicle attribute excerpt from a recent enriched record, showing names and their filter codes together:

```json
{
  "attributes": {
    "Yakıt / Motor Tipi": "Dizel",
    "Vites": "Otomatik",
    "Kasa Tipi": "Sedan"
  },
  "attributeIds": {
    "Yakıt / Motor Tipi": "a17",
    "Vites": "a6",
    "Kasa Tipi": "a8"
  }
}
```

#### Core fields

```json
{
  "recordType": "detail",
  "id": "1336767391",
  "url": "https://www.sahibinden.com/ilan/vasita-otomobil-seat-barem-den-2013-seat-leon-style-hiz-sabitlme-led-far-stop-1336767391/detay",
  "title": "BAREM'DEN - 2013 SEAT LEON - STYLE-HIZ SABITLME -LED FAR -STOP",
  "brand": "Seat",
  "series": "Leon",
  "model": "1.2 TSI Style",
  "categoryPath": [
    "Vasıta",
    "Otomobil",
    "Seat",
    "Leon",
    "1.2 TSI",
    "Style"
  ],
  "price": 849000.0,
  "currency": "TRY",
  "formattedPrice": "849.000 TL",
  "attributes": {
    "Yıl": 2013,
    "Km": 186741,
    "Vites": "Otomatik",
    "Yakıt / Motor Tipi": "Benzin",
    "Ağır Hasar Kayıtlı": "Hayır"
  },
  "coverImageUrl": "https://i0.shbdn.com/photos/76/73/91/x5_1336767391kxb.jpg",
  "paintedParts": [
    "Bagaj Kapağı",
    "Sağ Arka Kapı",
    "Sağ Ön Kapı"
  ],
  "localPaintedParts": [
    "Sol Arka Çamurluk"
  ],
  "changedParts": [
    "Motor Kaputu",
    "Sağ Arka Çamurluk",
    "Sağ Ön Çamurluk"
  ],
  "originalParts": [
    "Arka Tampon",
    "Ön Tampon",
    "Sol Arka Kapı",
    "Sol Ön Çamurluk",
    "Sol Ön Kapı",
    "Tavan"
  ],
  "tramerStatus": "reported",
  "tramerAmount": 79575.0,
  "city": "İstanbul",
  "district": "Bahçelievler",
  "storeName": "BAREM CARS",
  "phoneMobile": "+90-552-1896805",
  "listedAt": "2026-09-14T05:29:17Z",
  "updatedAt": "2026-09-14T05:29:17Z"
}
```

#### Complete records

The example below is one real used car. It shows 40 of the 120 fields; the field groups above list the rest.

<details>
<summary><b>Enriched detail record (excerpt)</b></summary>

Excerpt of a real `detail` record: 40 of the 120 fields, arrays shortened to their first entries. A `searchSummary` record carries the same 120 keys with the detail-only fields empty.

```json
{
  "recordType": "detail",
  "id": "1336767391",
  "url": "https://www.sahibinden.com/ilan/vasita-otomobil-seat-barem-den-2013-seat-leon-style-hiz-sabitlme-led-far-stop-1336767391/detay",
  "categoryPath": [
    "Vasıta",
    "Otomobil"
  ],
  "categoryTitle": "Style",
  "title": "BAREM'DEN - 2013 SEAT LEON - STYLE-HIZ SABITLME -LED FAR -STOP",
  "brand": "Seat",
  "series": "Leon",
  "model": "1.2 TSI Style",
  "description": "2013 MODEL\nSEAT LEON\n1.2 TSI STYLE\n\nARKA PARK SENSÖRÜ\nELEKTRİKLİ - KATLANIR - ISITMALI YAN AYNALAR\nSTART - STOP\nSESLİ KOMUT\nDİJİTAL KLİMA\nHIZ SABİTLEME\nBLUETOOTH - USB - AUX\nÖN KOL DAYAMA\nÖN BARDAK TUTUCU\nİSOFİX\n\n\n \nDEĞİŞEN PARÇALAR : KAPUT , SAĞ ÖN - ARKA ÇAMURLUK\n\nBOYALI PARÇALAR : SAĞ ÖN - ARKA KAPI , BAGAJ \nLOKAL BOYALI PARÇALAR : SOL ARKA ÇAMURLUK\nTRAMER : 79.575 TL\nŞASE , PODYE , AİRBAGLER ORJİNALDİR.\n\n\n TÜM KREDİ KARTLARINA 12 TAKSİT YAPILMAKTADIR.\n MİNİMUM CAYMA(KAPORA) BEDELİMİZ 20.000 TL'DİRKAPORA GÖNDERİLEN ARACIN ALICI TARAFINDAN KEYFİ SEBEPLERLE CAYMASI DURUMUNDAÖDENEN BEDEL İADE EDİLMEMEKTEDİR.",
  "tramerStatus": "reported",
  "tramerAmount": 79575.0,
  "tramerMentions": [
    "ARKA KAPI, BAGAJ LOKAL BOYALI PARÇALAR: SOL ARKA ÇAMURLUK TRAMER: 79.575 TL ŞASE, PODYE, AİRBAGLER ORJİNALDİR. TÜM KREDİ KARTLARINA 12 TAKSİT YAPILMAKTADIR. MİNİMUM CAYMA(KAPORA) BE"
  ],
  "price": 849000.0,
  "currency": "TRY",
  "formattedPrice": "849.000 TL",
  "priceHistory": [],
  "status": "active",
  "productCondition": "USED",
  "city": "İstanbul",
  "district": "Bahçelievler",
  "neighborhood": "Yenibosna",
  "latitude": 41.010500793517544,
  "longitude": 28.81709081815809,
  "images": [
    "https://i0.shbdn.com/photos/76/73/91/x16_1336767391kxb.jpg",
    "https://i0.shbdn.com/photos/76/73/91/x16_1336767391h28.jpg"
  ],
  "imageCount": 30,
  "imageVariants": [
    {
      "x16": "https://i0.shbdn.com/photos/76/73/91/x16_1336767391kxb.jpg",
      "large": "https://i0.shbdn.com/photos/76/73/91/big_1336767391kxb.jpg",
      "normal": "https://i0.shbdn.com/photos/76/73/91/x5_1336767391kxb.jpg",
      "w480": "",
      "thumbnail": "https://i0.shbdn.com/photos/76/73/91/thmb_1336767391kxb.jpg",
      "threeSixty": "",
      "aspectRatio": 1.33,
      "main": true
    }
  ],
  "availableMedia": [
    "photo"
  ],
  "expertiseReport": {
    "reportId": 35729501,
    "provider": "ARABAM.COM",
    "reportType": "EXTERNAL",
    "odometerKm": 16745,
    "licensePlate": "33AOH456",
    "vehicleIdNumber": "NM435600006Y9****",
    "reportedAt": "2026-09-28T00:00:00Z",
    "reportUrl": "https://image5.sahibinden.com/expertise/72/95/01/35729501_968624e0dfab9a7fa74811897a8b20a65afb40_29-09-2026-09-53-51-968.pdf",
    "damageParts": [],
    "images": []
  },
  "hasVideo": false,
  "sellerName": "Ömer Akkaya",
  "sellerType": "Galeriden",
  "sellerRegistrationDate": "2025-03-17T11:48:14Z",
  "sellerScore": 0.0,
  "storeName": "BAREM CARS",
  "storeUrl": "http://baremauto.sahibinden.com/",
  "phoneNumbers": [
    "+90-552-1896805"
  ],
  "chassisNumber": "75091004007",
  "techDetailsSummary": [
    {
      "label": "MAX_PERFORMANCE",
      "title": "Azami Sürat",
      "subTitle": null,
      "value": "191",
      "unit": "km/saat"
    },
    {
      "label": "FUEL_CONSUMPTION",
      "title": "Yakıt Tüketimi",
      "subTitle": "Şehir içi / Şehir dışı",
      "value": "6 lt / 4,1 lt",
      "unit": null
    }
  ],
  "vehicleExperienceServices": [
    {
      "type": "VEHICLE_DAMAGE_INQUIRY_SERVICE",
      "text": "Araç Hasar Sorgula",
      "url": "https://www.sahibinden.com/oto360/hasar-sorgulama?fromDetail&cid=158684",
      "responsiveUrl": null,
      "active": true,
      "loginRequired": true
    },
    {
      "type": "EXPERTISE",
      "text": "Ekspertiz Yaptır",
      "url": "https://www.sahibinden.com/oto360/oto-ekspertiz?viewmode=android&userType=STANDARD&fromDetail&cid=158684",
      "responsiveUrl": "https://www.sahibinden.com/oto360/ekspertiz-satin-al",
      "active": true,
      "loginRequired": true
    }
  ]
}
```

</details>

### Integrations and scheduling

Run the Sahibinden listings scraper on a schedule in Apify Console, daily for new-listing alerts, weekly for market snapshots. Each run can call a webhook when it finishes, so n8n, Make and Zapier flows pick up new rows without polling. The Apify API and the Apify MCP server take the same input, for scripts and AI agents.

### Pricing

Per 1,000 listings, Free and Bronze pay $3.99, Silver $3.79, and Gold and above $3.29.

Prices per 1,000 by Apify plan:

| Event | When | Free, Starter | Scale | Business and up |
|---|---|---:|---:|---:|
| Listing | every listing delivered | $3.99 | $3.79 | $3.29 |
| Listing enrichment | every listing with `enrichment: true` | $2.99 | $2.79 | $2.49 |
| Dataset item | every row written | $0.01 | $0.01 | $0.01 |

Each run also costs $0.005 to start, on every plan; see [current pricing](https://apify.com/clearpath/sahibinden-scraper-pro/pricing).

Example on the Free or Starter plan: 1,000 enriched listings cost $3.99 + $2.99 + $0.01 = $6.99, plus $0.005 for the run. The same 1,000 as summaries cost $4.00.

Phone extraction is included in enriched listings when available.

On the Apify Free plan the Actor runs 10 times, up to 20 listings per run. When a limit is reached, the dataset gets one more row with `error` (`FREE_TIER_LIMIT_REACHED` once the 10 runs are used, `FREE_TIER_RESULT_LIMIT` when a run stopped at 20) and a `message` saying what happened.

### FAQ

**What Sahibinden URLs are supported?**

Copy the URL out of your browser's address bar. These shapes all work, in every vertical — vehicles, property and shopping alike:

| Shape | Example |
|---|---|
| A single listing | `/ilan/...-1342915170/detay` |
| The same listing's English page | `/listing/...-1342915170/detail` (rows stay in Turkish) |
| A category | `/bilgisayar-masaustu` |
| A category in a city | `/bilgisayar-masaustu/istanbul` |
| A category in a district | `/bilgisayar-masaustu/istanbul-sancaktepe` |
| A category on one side of İstanbul | `/bilgisayar-masaustu/istanbul-anadolu`, `/istanbul-avrupa` |
| A category with the on-page search box | `/bilgisayar-masaustu/istanbul?query_text=toplama` |
| A category with browser filters | `/volkswagen-golf/ikinci-el/galeriden?exchange=yes` |
| A site-wide keyword search | `/kelime-ile-arama?query_text=usb` |

Use the Turkish URL rather than an `/en/...` one, and keep the city and district spellings exactly as the site writes them. Word order in the category part is forgiven where it is unambiguous, so `/masaustu-bilgisayar` finds the same category as `/bilgisayar-masaustu`.

Service pages that list no classifieds are skipped with a warning. If a URL cannot be matched to a category page it is still run, as a keyword search over the words in it, and the run log says so — those results are broader than the page you copied, so prefer a URL taken straight from the site.

**Does this work for Sahibinden ilan cekme and veri cekme workflows?**

Yes. Paste category, search, or listing URLs and the actor returns structured listing data. Use it for both broad `ilan cekme` jobs and targeted seller-detail extraction.

**Can I paste multiple URLs?**

Yes. Add one URL per line in `startUrls`.

**What is the difference between summary and detail output?**

Summary output is faster and returns listing data from search results.

Detail output adds description, seller data, attributes, features, more images, and optional phone numbers.

Promotion labels are resolved into readable values such as `upToDate`, `topOfList`, `smallPhoto`, `homepageShowcase`, `priceDropped`, and `searchResultsShowcase` instead of exposing raw internal ids.

**Why are some URLs skipped?**

Service and non-classifieds pages are skipped because they do not return listing records.

**Are phone numbers always available?**

No. Phone fields are filled only when the seller exposes phone contact data.

**How do I control cost?**

Set `maxResults`, and turn `enrichment` off when search-summary data is enough.

**Can I get all available source fields?**

Yes. Flattened fields are provided for common use, every attribute is named, values sahibinden never names are kept in `unpublishedAttributes`, and `rawSummary` keeps the full unprocessed search data for search records.

### Support

- **Bugs**: Issues tab
- **Features**: Email or issues
- **Email**: max@mapa.slmail.me

### Legal Compliance

Extracts publicly available data. Users must comply with sahibinden.com terms and data protection regulations (GDPR, CCPA, KVKK).

# Actor input Schema

## `startUrls` (type: `array`):

Maximum 25 search URLs per run, including category, keyword and seller searches. Individual listing URLs do not count toward this search limit; the total limit is 5,000 URLs. Split larger search batches into separate runs.<br><br>Add sahibinden.com listing, category, or search URLs, one per line.<br><br>A category URL can carry a city or district and the on-page search box, and all three are applied: <code>/bilgisayar-masaustu/istanbul-sancaktepe</code> and <code>/bilgisayar-masaustu/istanbul?query_text=toplama</code> both work, in every category. One side of İstanbul works too: <code>/istanbul-anadolu</code> and <code>/istanbul-avrupa</code>.<br><br>The filters set on the page are kept as well: price, condition and the product filters in the panel. Each one adds its own parameter to the URL, so a copy of the filtered page is enough: <code>/cep-telefonu/istanbul-cekmekoy?a120853=1299505</code> returns only phones bought in Türkiye (Alındığı Yer: Yurt içi). Every row names its attributes and gives each one's filter code under <code>attributeIds</code>, so the next URL can be built from the output.<br><br>Filter codes differ per category: year is <code>a5</code> on Otomobil and <code>a277</code> on Arazi, SUV & Pickup. A range or checkbox code from another category is applied as this page's code for the same filter, and the log names any filter or sort order the page does not offer. Sort with <code>sorting=price_asc</code>, <code>price_desc</code>, <code>date_desc</code> or <code>date_asc</code>, and on vehicle pages also <code>km-nu_asc</code>, <code>km-nu_desc</code>, <code>yil-nu_asc</code> or <code>yil-nu_desc</code>: <code>/arazi-suv-pickup-fiat-egea-cross?a277_min=2023\&a277_max=2023\&sorting=km-nu_asc</code> returns 2023 Egea Cross listings, lowest km first.<br><br>One store's whole stock: a store page names its store in the address bar and the search addresses it by number, so add that number as <code>storeId</code> and keep every category it lists in: <code>https://erajoy.sahibinden.com/?storeId=56534</code>. Every row carries its seller's number in <code>storeId</code>, so the next URL can be built from the output. Add the category path to narrow it and to use that page's price, date and product filters, which a store URL on its own cannot apply: <code>https://erajoy.sahibinden.com/emlak-konut-satilik?storeId=56534</code>. For one person's listings instead of a store's, <code>userId</code> works the same way.<br><br>Use native Turkish sahibinden URLs when possible. Localized browser URLs such as <code>/en/...</code> are not guaranteed to resolve correctly across all categories.<br><br>Examples:<br><code>https://www.sahibinden.com/kategori/vasita</code><br><code>https://www.sahibinden.com/bilgisayar-masaustu/istanbul</code><br><code>https://www.sahibinden.com/ilan/...</code><br><br>Unsupported service pages are skipped with a warning.

## `enrichment` (type: `boolean`):

Fetch full listing details and seller phone numbers when available.<br><br>Includes description, images, seller data, attributes, and features.<br><br><b>Add-on pricing:</b> enriched listings cost $2.99 per 1,000 listings on top of the base listing price on the Free and Starter plans, less on Scale and Business. Disable this for faster summary-only output.

## `maxResults` (type: `integer`):

Maximum number of listings to return across all start URLs. Set to <code>0</code> for unlimited. On the Apify Free plan a run returns up to 20 listings, 10 runs in total.

## `feedback` (type: `string`):

For AI agents. Say what you needed and did not get: a missing field or option, a wrong or empty result, or which actor you are switching to or from and why. Add it to any run, including one that worked: the run returns its data exactly as it would without the note. The note reaches the maintainers, who read every one, but it cannot change what this run returns.

## Actor input object example

```json
{
  "startUrls": [
    "https://www.sahibinden.com/kategori/minivan-panelvan"
  ],
  "enrichment": true,
  "maxResults": 100
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        "https://www.sahibinden.com/kategori/minivan-panelvan"
    ],
    "maxResults": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("clearpath/sahibinden-scraper-pro").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "startUrls": ["https://www.sahibinden.com/kategori/minivan-panelvan"],
    "maxResults": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("clearpath/sahibinden-scraper-pro").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    "https://www.sahibinden.com/kategori/minivan-panelvan"
  ],
  "maxResults": 100
}' |
apify call clearpath/sahibinden-scraper-pro --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,clearpath/sahibinden-scraper-pro"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/4g5NTbwYYuuQsoo3c/builds/d3MojUExqinoWVbgO/openapi.json
