# Emlakjet Scraper (`olivine_lemur/emlakjet-scraper`) Actor

Extract comprehensive real estate data from Emlakjet.com using this advanced Selenium scraper. It seamlessly collects listings for residential properties, commercial spaces, and land for both sale and rent. Automate your market research and get structured, accurate property insights in seconds!

- **URL**: https://apify.com/olivine\_lemur/emlakjet-scraper.md
- **Developed by:** [Vide Supra](https://apify.com/olivine_lemur) (community)
- **Categories:** Real estate
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Emlakjet Scraper — Apify Actor

Emlakjet.com'dan satılık/kiralık konut, işyeri ve arsa ilanlarını Selenium ile çeker.

### Özellikler
- 7 farklı kategori desteği (satılık/kiralık konut, işyeri, devren, arsa)
- Paralel worker desteği
- Checkpoint ile kesintiden devam
- Apify Dataset'e otomatik çıktı

### Kategoriler
- `satilik_konut`, `kiralik_konut`
- `satilik_isyeri`, `kiralik_isyeri`, `devren_isyeri`
- `satilik_arsa`, `kiralik_arsa`

### Kullanım (Apify)

| Parametre | Tip | Varsayılan | Açıklama |
|-----------|-----|------------|----------|
| `categories` | array | tümü | Scrape edilecek kategoriler |
| `maxPages` | integer | `0` (sınırsız) | Kategori başına max sayfa |
| `workers` | integer | `1` | Worker sayısı |
| `delay` | number | `1.5` | İstekler arası bekleme (sn) |
| `settle` | number | `3.0` | DOM yerleşme bekleme (sn) |

### Çıktı Alanları

`url`, `listing_id`, `title`, `location`, `category`, `trade_type`, `price`, `currency`, `room_count`, `floor`, `gross_sqm`, `estate_type`, `quick_infos`, `scraped_at_utc`

### Apify'a Deploy

```bash
apify login
apify push
````

# Actor input Schema

## `categories` (type: `array`):

Scrape edilecek kategoriler. Seçenekler: satilik\_konut, kiralik\_konut, satilik\_isyeri, kiralik\_isyeri, devren\_isyeri, satilik\_arsa, kiralik\_arsa

## `maxPages` (type: `integer`):

Kategori başına işlenecek maksimum sayfa. 0 = sınırsız.

## `workers` (type: `integer`):

Kategori başına paralel sayfa worker sayısı. Her worker bir Chrome açar. scrapeDetails=false: 10 önerilir. scrapeDetails=true: 3-5 önerilir (detay sayfaları Chrome'ı uzun açık tutar).

## `delay` (type: `number`):

Sayfalar arasındaki bekleme süresi.

## `settle` (type: `number`):

Sayfa yüklendikten sonra DOM'un hazır olması için bekleme.

## `clearCheckpoint` (type: `boolean`):

True ise önceki çalışmadan kalan checkpoint silinir. Normalde false bırakın; kesintiden sonra kaldığı yerden devam eder.

## `maxConcurrentChrome` (type: `integer`):

Aynı anda açık tutulabilecek Chrome instance üst sınırı. scrapeDetails=false: 30-50 güvenli. scrapeDetails=true: workers×2 ile otomatik sınırlandırılır.

## `useProxy` (type: `boolean`):

True ise Apify Residential proxy (TR) aktif olur. Bloklanma durumunda etkinleştirin. Ek maliyet oluşturur.

## `scrapeDetails` (type: `boolean`):

True ise her ilan için detay sayfası ziyaret edilir. Koordinat, JetFırsat, fiyat endeksi, bölge raporu ve yakın mekan (ulaşım, eğitim, market, kafe, sağlık) verilerini çeker. İlan başına ~2-3s ek süre ekler.

## Actor input object example

```json
{
  "categories": [
    "satilik_konut",
    "kiralik_konut",
    "satilik_isyeri",
    "kiralik_isyeri",
    "devren_isyeri",
    "satilik_arsa",
    "kiralik_arsa"
  ],
  "maxPages": 0,
  "workers": 5,
  "delay": 0.8,
  "settle": 1.5,
  "clearCheckpoint": false,
  "maxConcurrentChrome": 30,
  "useProxy": false,
  "scrapeDetails": false
}
```

# Actor output Schema

## `url` (type: `string`):

İlanın emlakjet.com üzerindeki tam URL adresi

## `listing_id` (type: `string`):

Emlakjet iç ilan kimliği

## `title` (type: `string`):

İlanın başlığı

## `location` (type: `string`):

İlan kartındaki konum metni

## `district` (type: `string`):

Mülkün bulunduğu ilçe

## `neighborhood` (type: `string`):

Mülkün bulunduğu mahalle

## `city` (type: `string`):

Mülkün bulunduğu şehir veya il

## `lat` (type: `string`):

Mülkün enlem koordinatı (sayfa **NEXT\_DATA**'sından)

## `lon` (type: `string`):

Mülkün boylam koordinatı (sayfa **NEXT\_DATA**'sından)

## `category` (type: `string`):

İlan kategorisi (konut, işyeri, arsa vb.)

## `trade_type` (type: `string`):

İşlem türü (satılık veya kiralık)

## `price` (type: `string`):

Mülkün satış veya kira fiyatı

## `currency` (type: `string`):

Fiyatın para birimi (TL, USD, EUR vb.)

## `prev_price` (type: `string`):

İndirimden önceki fiyat (varsa)

## `room_count` (type: `string`):

Oda sayısı (örn. 3+1)

## `floor` (type: `string`):

Mülkün bulunduğu kat

## `gross_sqm` (type: `string`):

Mülkün metrekare alanı

## `estate_type` (type: `string`):

Emlak tipi (daire, villa, arsa vb.)

## `quick_infos` (type: `string`):

İlan kartındaki özet bilgiler

## `image_url` (type: `string`):

İlanın kapak fotoğrafı URL'i

## `scraped_at_utc` (type: `string`):

Verinin çekildiği UTC zaman damgası (ISO 8601)

## `is_jet_firsat` (type: `string`):

Emsallerine göre avantajlı fiyatlı ilan (true/false)

## `price_est_min` (type: `string`):

Yapay zeka fiyat tahmininin alt sınırı

## `price_est_max` (type: `string`):

Yapay zeka fiyat tahmininin üst sınırı

## `price_discount_pct` (type: `string`):

Tahmini fiyata göre yüzde ucuzluk (örn. %39)

## `region_avg_rental` (type: `string`):

Mahalle/bölgedeki ortalama kiralık fiyat

## `region_avg_sale` (type: `string`):

Mahalle/bölgedeki ortalama satılık fiyat

## `region_return_years` (type: `string`):

Bölgedeki ortalama yatırım geri dönüş süresi

## `region_value_change_1y` (type: `string`):

Bölge emlak fiyatlarının son 1 yıldaki değişim yüzdeleri

## `transport_nearby` (type: `string`):

Yakındaki ulaşım noktaları (JSON: \[{name, distance}])

## `education_nearby` (type: `string`):

Yakındaki okullar ve eğitim kurumları (JSON: \[{name, distance}])

## `market_nearby` (type: `string`):

Yakındaki marketler (JSON: \[{name, distance}])

## `cafe_restaurant_nearby` (type: `string`):

Yakındaki kafe ve restoranlar (JSON: \[{name, distance}])

## `health_nearby` (type: `string`):

Yakındaki eczane, klinik ve hastaneler (JSON: \[{name, distance}])

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("olivine_lemur/emlakjet-scraper").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 = {}

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

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

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

```

## CLI example

```bash
echo '{}' |
apify call olivine_lemur/emlakjet-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=olivine_lemur/emlakjet-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Emlakjet Scraper",
        "description": "Extract comprehensive real estate data from Emlakjet.com using this advanced Selenium scraper. It seamlessly collects listings for residential properties, commercial spaces, and land for both sale and rent. Automate your market research and get structured, accurate property insights in seconds!",
        "version": "0.1",
        "x-build-id": "Ik3iNl8qjuwj7TLBm"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/olivine_lemur~emlakjet-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-olivine_lemur-emlakjet-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/olivine_lemur~emlakjet-scraper/runs": {
            "post": {
                "operationId": "runs-sync-olivine_lemur-emlakjet-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/olivine_lemur~emlakjet-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-olivine_lemur-emlakjet-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "categories": {
                        "title": "Kategoriler",
                        "type": "array",
                        "description": "Scrape edilecek kategoriler. Seçenekler: satilik_konut, kiralik_konut, satilik_isyeri, kiralik_isyeri, devren_isyeri, satilik_arsa, kiralik_arsa",
                        "items": {
                            "type": "string"
                        },
                        "default": [
                            "satilik_konut",
                            "kiralik_konut",
                            "satilik_isyeri",
                            "kiralik_isyeri",
                            "devren_isyeri",
                            "satilik_arsa",
                            "kiralik_arsa"
                        ]
                    },
                    "maxPages": {
                        "title": "Maksimum Sayfa Sayısı",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Kategori başına işlenecek maksimum sayfa. 0 = sınırsız.",
                        "default": 0
                    },
                    "workers": {
                        "title": "Worker Sayısı (kategori başına)",
                        "minimum": 1,
                        "maximum": 20,
                        "type": "integer",
                        "description": "Kategori başına paralel sayfa worker sayısı. Her worker bir Chrome açar. scrapeDetails=false: 10 önerilir. scrapeDetails=true: 3-5 önerilir (detay sayfaları Chrome'ı uzun açık tutar).",
                        "default": 5
                    },
                    "delay": {
                        "title": "İstek Gecikmesi (saniye)",
                        "minimum": 0.3,
                        "type": "number",
                        "description": "Sayfalar arasındaki bekleme süresi.",
                        "default": 0.8
                    },
                    "settle": {
                        "title": "Sayfa Yerleşme Süresi (saniye)",
                        "minimum": 0.5,
                        "type": "number",
                        "description": "Sayfa yüklendikten sonra DOM'un hazır olması için bekleme.",
                        "default": 1.5
                    },
                    "clearCheckpoint": {
                        "title": "Checkpoint'i Temizle (Baştan Başla)",
                        "type": "boolean",
                        "description": "True ise önceki çalışmadan kalan checkpoint silinir. Normalde false bırakın; kesintiden sonra kaldığı yerden devam eder.",
                        "default": false
                    },
                    "maxConcurrentChrome": {
                        "title": "Maks Eş Zamanlı Chrome Sayısı",
                        "minimum": 5,
                        "maximum": 120,
                        "type": "integer",
                        "description": "Aynı anda açık tutulabilecek Chrome instance üst sınırı. scrapeDetails=false: 30-50 güvenli. scrapeDetails=true: workers×2 ile otomatik sınırlandırılır.",
                        "default": 30
                    },
                    "useProxy": {
                        "title": "Residential Proxy Kullan",
                        "type": "boolean",
                        "description": "True ise Apify Residential proxy (TR) aktif olur. Bloklanma durumunda etkinleştirin. Ek maliyet oluşturur.",
                        "default": false
                    },
                    "scrapeDetails": {
                        "title": "Detay Sayfasını Tara",
                        "type": "boolean",
                        "description": "True ise her ilan için detay sayfası ziyaret edilir. Koordinat, JetFırsat, fiyat endeksi, bölge raporu ve yakın mekan (ulaşım, eğitim, market, kafe, sağlık) verilerini çeker. İlan başına ~2-3s ek süre ekler.",
                        "default": false
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
