# Emlakjet Property Scraper (`seralifatih/turkish-real-estate-api-1`) Actor

Scrape for-sale and rental property listings from Emlakjet with prices, areas, room layout, floor, building age, coordinates, agency details, and listing metadata. Ideal for lead generation, market research, and property data pipelines in Turkey.

- **URL**: https://apify.com/seralifatih/turkish-real-estate-api-1.md
- **Developed by:** [Fatih İlhan](https://apify.com/seralifatih) (community)
- **Categories:** Real estate, Lead generation
- **Stats:** 1 total users, 1 monthly users, 0.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event + usage

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## 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 Property Scraper — Turkish Real Estate Data API

**The only dedicated Emlakjet scraper on Apify.** Extract property listings, prices, specs, agency info, and more from [emlakjet.com](https://www.emlakjet.com) — Turkey's third-largest real estate portal.

---

### What It Does

- Scrapes search result pages and individual listing detail pages from Emlakjet
- Extracts full property specs: rooms, area (brüt/net), floor, building age, heating, deed status
- Extracts seller/agency info including phone numbers
- Extracts image gallery URLs
- Supports filter-based search (city, district, rooms, price range, area range) or direct URL input
- Follows pagination automatically

---

### Why Emlakjet?

- **Zero other scrapers exist on Apify for Emlakjet** — clean market opportunity
- 3rd largest Turkish real estate portal after Sahibinden and Hepsiemlak
- Strong listing volume for Istanbul, Ankara, Izmir, and all major cities
- Structured, mostly server-rendered HTML — reliable and fast to scrape
- JSON-LD structured data on detail pages for high-quality extraction

---

### Input

Two modes:

#### Filter-Based (builds URL automatically)

```json
{
  "filters": {
    "listingType": "satilik",
    "propertyType": "daire",
    "city": "istanbul",
    "district": "kadikoy",
    "rooms": "3+1",
    "priceMin": 2000000,
    "priceMax": 8000000,
    "areaMin": 100,
    "areaMax": 200
  },
  "maxListings": 200,
  "scrapeDetails": true,
  "proxyConfig": { "useApifyProxy": true }
}
````

#### Direct URLs

```json
{
  "searchUrls": [
    "https://www.emlakjet.com/satilik-daire/istanbul/kadikoy/"
  ],
  "listingUrls": [
    "https://www.emlakjet.com/ilan/example-listing-12345678"
  ],
  "maxListings": 100,
  "scrapeDetails": true,
  "proxyConfig": { "useApifyProxy": true }
}
```

#### Input Parameters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `searchUrls` | array | `[]` | Emlakjet search result page URLs |
| `listingUrls` | array | `[]` | Direct property detail page URLs |
| `filters` | object | — | Build search URL from filters |
| `filters.listingType` | string | `"satilik"` | `satilik` or `kiralik` |
| `filters.propertyType` | string | `"daire"` | `daire`, `villa`, `arsa`, `ofis`, etc. |
| `filters.city` | string | — | City slug, e.g. `istanbul` |
| `filters.district` | string | — | District slug, e.g. `kadikoy` |
| `filters.rooms` | string | — | Room layout, e.g. `3+1` |
| `filters.priceMin` | integer | — | Min price in TRY |
| `filters.priceMax` | integer | — | Max price in TRY |
| `filters.areaMin` | integer | — | Min area in m² |
| `filters.areaMax` | integer | — | Max area in m² |
| `maxListings` | integer | `200` | Max listings to scrape (0 = unlimited) |
| `scrapeDetails` | boolean | `true` | Follow detail pages for full data |
| `proxyConfig` | object | — | Apify proxy config |

***

### Output

Each property is saved as one record in the dataset. Sample output:

```json
{
  "listingId": "19199348",
  "title": "Kadıköy Moda'da 3+1 Satılık Daire",
  "url": "https://www.emlakjet.com/ilan/kadikoy-moda-3-1-satilik-daire-19199348",
  "listingType": "satilik",
  "propertyType": "daire",
  "city": "İstanbul",
  "district": "Kadıköy",
  "neighborhood": "Moda",
  "fullAddress": "Moda Caddesi, Kadıköy, İstanbul",
  "latitude": 40.9878,
  "longitude": 29.0234,
  "price": { "amount": 6500000, "currency": "TRY" },
  "pricePerSqm": 54166.67,
  "dues": { "amount": 1200, "currency": "TRY" },
  "roomLayout": {
    "rooms": 3,
    "halls": 1,
    "label": "3+1",
    "totalRooms": 4,
    "isStudio": false
  },
  "grossArea": 130,
  "netArea": 120,
  "floor": { "floor": 4, "totalFloors": 8 },
  "buildingAge": "5-10",
  "estimatedBuildYear": 2019,
  "heating": "dogalgaz_kombi",
  "bathroomCount": 1,
  "balcony": true,
  "furnished": false,
  "inComplex": true,
  "deedStatus": "kat_mulkiyeti",
  "creditEligible": true,
  "swapAvailable": false,
  "features": ["Asansör", "Otopark", "Güvenlik", "Yüzme Havuzu", "Kapalı Otopark"],
  "sellerType": "emlak_ofisi",
  "sellerName": "Kadıköy Emlak Ofisi",
  "sellerPhone": "+905321234567",
  "agencyName": "Kadıköy Emlak Ofisi",
  "agencyLicense": "TR-12345",
  "listingDate": "2024-03-15",
  "imageUrls": [
    "https://imaj.emlakjet.com/resize/736/415/listing/19199348/ABC123.jpg"
  ],
  "imageCount": 12,
  "description": "Moda'nın kalbinde, deniz manzaralı...",
  "specifications": {
    "Oda Sayısı": "3+1",
    "Brüt m²": "130",
    "Net m²": "120",
    "Bulunduğu Kat": "4. Kat",
    "Bina Yaşı": "5-10",
    "Isıtma": "Doğalgaz (Kombi)",
    "Tapu Durumu": "Kat Mülkiyeti",
    "Krediye Uygun": "Evet"
  },
  "scrapedAt": "2024-11-01T12:00:00.000Z",
  "source": "emlakjet"
}
```

#### Output Fields Reference

| Field | Type | Description |
|-------|------|-------------|
| `listingId` | string | Unique Emlakjet listing ID |
| `listingType` | string | `satilik` or `kiralik` |
| `propertyType` | string | `daire`, `villa`, `arsa`, `ofis`, etc. |
| `price` | object | `{ amount, currency }` |
| `pricePerSqm` | number | Price per m² (uses net area, falls back to gross) |
| `dues` | object | Monthly aidat (building maintenance fee) |
| `roomLayout` | object | Parsed `3+1` → `{ rooms, halls, totalRooms, isStudio }` |
| `grossArea` | number | Brüt m² |
| `netArea` | number | Net m² |
| `floor` | object | `{ floor, totalFloors }` — supports named floors |
| `buildingAge` | string | Age category e.g. `"5-10"` |
| `estimatedBuildYear` | number | Estimated year of construction |
| `heating` | string | Normalized heating type |
| `deedStatus` | string | `kat_mulkiyeti`, `kat_irtifaki`, `hisseli`, etc. |
| `creditEligible` | boolean | Krediye uygun |
| `features` | array | Amenities list (Asansör, Otopark, etc.) |
| `sellerType` | string | `emlak_ofisi`, `sahibinden`, or `insaat_firmasi` |
| `imageUrls` | array | Full-res image URLs from Emlakjet CDN |
| `specifications` | object | Raw spec key→value map from detail page |

***

### Pricing

**$5 per 1,000 listings** (pay-per-event)

Typical run costs:

- 200 listings with details: ~$1
- 1,000 listings with details: ~$5
- 10,000 listings without details: ~$5

***

### Technical Notes

- **Framework:** Emlakjet is server-rendered HTML (not Next.js). Cheerio is sufficient — no browser needed.
- **JSON-LD:** Detail pages contain `Product` JSON-LD structured data with price, seller, and images.
- **Pagination:** `?sayfa=N` query param, 30 listings per page.
- **Proxy:** Datacenter proxies work fine. Residential proxies not required.
- **Rate limiting:** Built-in 60 req/min throttle to avoid blocks.
- **Images:** Served from `imaj.emlakjet.com` CDN. URLs normalized to 736×415 resolution.

***

### Use Cases

- **Foreign property investors** — price discovery for citizenship-by-investment ($400K+ threshold)
- **Proptech startups** — building Turkish market analytics dashboards
- **Real estate agencies** — competitive pricing research
- **Relocation consultants** — helping expats and digital nomads find housing
- **Academic researchers** — studying Turkish urbanization and housing affordability
- **Airbnb operators** — analyzing purchase-vs-rent yields

***

### 🇹🇷 Turkish Data Intelligence Portfolio

This actor is part of a suite of 9 specialized Turkish market data tools:

**E-Commerce Intelligence:**

- N11 Product Scraper — Turkey's third-largest marketplace
- Turkish Marketplace Seller Intelligence — Trendyol, Hepsiburada, N11 seller profiles
- Turkish E-Commerce Review Aggregator — Cross-platform reviews with sentiment analysis

**Automotive Intelligence:**

- Arabam.com Vehicle Scraper — Used car listings with paint condition data
- Turkish Auto Price Tracker — Cross-platform vehicle valuation
- Turkish Auto Dealer Intelligence — Galeri profiles and inventory analytics

**Real Estate Intelligence:**

- Emlakjet Property Scraper — Zero-competition property data
- Turkish Property Valuation Engine — Cross-platform pricing with rental yield analysis
- Turkish Real Estate Agency Scraper — Emlak ofisi profiles and portfolios

All actors share consistent output schemas, Turkish language support, and transparent
pay-per-event pricing. Built and maintained by \[your username].

This actor is part of a suite of 9 specialized Turkish market data tools:

**E-Commerce Intelligence:**

- N11 Product Scraper ? Turkey's third-largest marketplace
- Turkish Marketplace Seller Intelligence ? Trendyol, Hepsiburada, N11 seller profiles
- Turkish E-Commerce Review Aggregator ? Cross-platform reviews with sentiment analysis

**Automotive Intelligence:**

- Arabam.com Vehicle Scraper ? Used car listings with paint condition data
- Turkish Auto Price Tracker ? Cross-platform vehicle valuation
- Turkish Auto Dealer Intelligence ? Galeri profiles and inventory analytics

**Real Estate Intelligence:**

- Emlakjet Property Scraper ? Zero-competition property data
- Turkish Property Valuation Engine ? Cross-platform pricing with rental yield analysis
- Turkish Real Estate Agency Scraper ? Emlak ofisi profiles and portfolios

All actors share consistent output schemas, Turkish language support, and transparent
pay-per-event pricing. Built and maintained by \[your username].

This actor is part of a suite of 9 specialized Turkish market data tools:

**E-Commerce Intelligence:**

- N11 Product Scraper ? Turkey's third-largest marketplace
- Turkish Marketplace Seller Intelligence ? Trendyol, Hepsiburada, N11 seller profiles
- Turkish E-Commerce Review Aggregator ? Cross-platform reviews with sentiment analysis

**Automotive Intelligence:**

- Arabam.com Vehicle Scraper ? Used car listings with paint condition data
- Turkish Auto Price Tracker ? Cross-platform vehicle valuation
- Turkish Auto Dealer Intelligence ? Galeri profiles and inventory analytics

**Real Estate Intelligence:**

- Emlakjet Property Scraper ? Zero-competition property data
- Turkish Property Valuation Engine ? Cross-platform pricing with rental yield analysis
- Turkish Real Estate Agency Scraper ? Emlak ofisi profiles and portfolios

All actors share consistent output schemas, Turkish language support, and transparent
pay-per-event pricing. Built and maintained by \[your username].

This actor is part of a suite of 9 specialized Turkish market data tools:

**E-Commerce Intelligence:**

- N11 Product Scraper ? Turkey's third-largest marketplace
- Turkish Marketplace Seller Intelligence ? Trendyol, Hepsiburada, N11 seller profiles
- Turkish E-Commerce Review Aggregator ? Cross-platform reviews with sentiment analysis

**Automotive Intelligence:**

- Arabam.com Vehicle Scraper ? Used car listings with paint condition data
- Turkish Auto Price Tracker ? Cross-platform vehicle valuation
- Turkish Auto Dealer Intelligence ? Galeri profiles and inventory analytics

**Real Estate Intelligence:**

- Emlakjet Property Scraper ? Zero-competition property data
- Turkish Property Valuation Engine ? Cross-platform pricing with rental yield analysis
- Turkish Real Estate Agency Scraper ? Emlak ofisi profiles and portfolios

All actors share consistent output schemas, Turkish language support, and transparent
pay-per-event pricing. Built and maintained by \[your username].

### SEO Keywords

**English:** Turkey property data, Turkish real estate scraper, Istanbul property prices, Turkey property investment, Turkish citizenship by investment real estate, emlakjet API, Turkish housing market data, Istanbul apartment prices

**Turkish:** emlak veri çekme, konut fiyat analizi, türkiye emlak piyasası, satılık daire veri, emlakjet scraper, istanbul gayrimenkul fiyatları, türkiye konut verileri

***

### Tags

`turkey` `turkish` `real-estate` `property` `emlak` `konut` `emlakjet` `apartment` `daire` `listing` `ilan`

`turkey` `turkish` `real-estate` `property` `emlak` `konut` `emlakjet` `apartment` `daire` `listing` `ilan`

`turkey` `turkish` `real-estate` `property` `emlak` `konut` `emlakjet` `apartment` `daire` `listing` `ilan`

`turkey` `turkish` `real-estate` `property` `emlak` `konut` `daire` `fiyat` `istanbul` `emlakjet` `gayrimenkul` `scraper`

# Actor input Schema

## `searchUrls` (type: `array`):

Emlakjet search or category result page URLs to scrape. Leave empty to use filter-based mode.

## `listingUrls` (type: `array`):

Direct Emlakjet property detail page URLs to scrape without visiting search pages first.

## `filters` (type: `object`):

Build a search URL from validated filters. Used when Search URLs is empty.

## `maxListings` (type: `integer`):

Maximum number of listings to scrape. Use 0 for unlimited pagination.

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

If enabled, follow each listing to its detail page for full specs, features, agency info, and images.

## `proxyConfig` (type: `object`):

Apify proxy configuration. Datacenter proxies are usually sufficient for Emlakjet.

## Actor input object example

```json
{
  "searchUrls": [
    "https://www.emlakjet.com/satilik-daire/istanbul/"
  ],
  "maxListings": 200,
  "scrapeDetails": true,
  "proxyConfig": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `listings` (type: `string`):

Structured Emlakjet property listing records with location, pricing, features, seller metadata, and scrape timestamps.

## `runSummary` (type: `string`):

Operational summary of the scrape, including listing counts, detail-page coverage, duration, and error totals.

# 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("seralifatih/turkish-real-estate-api-1").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("seralifatih/turkish-real-estate-api-1").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 seralifatih/turkish-real-estate-api-1 --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=seralifatih/turkish-real-estate-api-1",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Emlakjet Property Scraper",
        "description": "Scrape for-sale and rental property listings from Emlakjet with prices, areas, room layout, floor, building age, coordinates, agency details, and listing metadata. Ideal for lead generation, market research, and property data pipelines in Turkey.",
        "version": "0.0",
        "x-build-id": "xcCDebMWBknQrZNEN"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/seralifatih~turkish-real-estate-api-1/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-seralifatih-turkish-real-estate-api-1",
                "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/seralifatih~turkish-real-estate-api-1/runs": {
            "post": {
                "operationId": "runs-sync-seralifatih-turkish-real-estate-api-1",
                "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/seralifatih~turkish-real-estate-api-1/run-sync": {
            "post": {
                "operationId": "run-sync-seralifatih-turkish-real-estate-api-1",
                "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": {
                    "searchUrls": {
                        "title": "Search URLs",
                        "type": "array",
                        "description": "Emlakjet search or category result page URLs to scrape. Leave empty to use filter-based mode.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "listingUrls": {
                        "title": "Listing URLs",
                        "type": "array",
                        "description": "Direct Emlakjet property detail page URLs to scrape without visiting search pages first.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "filters": {
                        "title": "Search Filters",
                        "type": "object",
                        "description": "Build a search URL from validated filters. Used when Search URLs is empty.",
                        "properties": {
                            "listingType": {
                                "title": "Listing Type",
                                "type": "string",
                                "description": "Listing intent to scrape: satilik for sale or kiralik for rent.",
                                "enum": [
                                    "satilik",
                                    "kiralik"
                                ],
                                "default": "satilik"
                            },
                            "propertyType": {
                                "title": "Property Type",
                                "type": "string",
                                "description": "Property category slug used by Emlakjet, such as daire, villa, arsa, or ofis.",
                                "enum": [
                                    "konut",
                                    "daire",
                                    "villa",
                                    "mustakil-ev",
                                    "arsa",
                                    "isyeri",
                                    "ofis",
                                    "depo"
                                ],
                                "default": "daire"
                            },
                            "city": {
                                "title": "City",
                                "type": "string",
                                "description": "Turkish province name or slug. Validated against the official list of 81 provinces.",
                                "example": "istanbul"
                            },
                            "district": {
                                "title": "District",
                                "type": "string",
                                "description": "Optional Turkish district name or slug. Validated against the selected province.",
                                "example": "kadikoy"
                            },
                            "rooms": {
                                "title": "Room Layout",
                                "type": "string",
                                "description": "Room filter such as 1+1, 2+1, or 3+1.",
                                "example": "3+1"
                            },
                            "priceMin": {
                                "title": "Min Price (TRY)",
                                "type": "integer",
                                "description": "Minimum asking price in Turkish lira.",
                                "example": 2000000
                            },
                            "priceMax": {
                                "title": "Max Price (TRY)",
                                "type": "integer",
                                "description": "Maximum asking price in Turkish lira.",
                                "example": 8000000
                            },
                            "areaMin": {
                                "title": "Min Area (m2)",
                                "type": "integer",
                                "description": "Minimum gross area in square meters.",
                                "example": 80
                            },
                            "areaMax": {
                                "title": "Max Area (m2)",
                                "type": "integer",
                                "description": "Maximum gross area in square meters.",
                                "example": 200
                            }
                        }
                    },
                    "maxListings": {
                        "title": "Max Listings",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of listings to scrape. Use 0 for unlimited pagination.",
                        "default": 200
                    },
                    "scrapeDetails": {
                        "title": "Scrape Detail Pages",
                        "type": "boolean",
                        "description": "If enabled, follow each listing to its detail page for full specs, features, agency info, and images.",
                        "default": true
                    },
                    "proxyConfig": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Apify proxy configuration. Datacenter proxies are usually sufficient for Emlakjet.",
                        "default": {
                            "useApifyProxy": true
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
