# Realestate.com.kh Scraper | Cambodia Property Listings (`haketa/realestate-com-kh-scraper`) Actor

Realestate.com.kh scraper & API for Cambodia real estate: search property for sale and rent and export address, price, beds, baths, area, type, agent, amenities, photos and coordinates. Cambodia property market data and lead generation — fast, no login.

- **URL**: https://apify.com/haketa/realestate-com-kh-scraper.md
- **Developed by:** [Haketa](https://apify.com/haketa) (community)
- **Categories:** Real estate, Developer tools, Automation
- **Features:** Limited permissions
- **Stats:** 4 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.50 / 1,000 results

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

## 🏠 Realestate.com.kh Scraper — Cambodia Property Listings, Phnom Penh Condos & Land

[![Apify Actor](https://img.shields.io/badge/Apify-Actor-orange?style=flat-square\&logo=apify)](https://apify.com/haketa/realestate-com-kh-scraper)
[![Version](https://img.shields.io/badge/Version-v1.2.0-blue?style=flat-square)](https://apify.com/haketa/realestate-com-kh-scraper)
[![Pagination](https://img.shields.io/badge/Pagination-10%2C000%2B%20Listings-success?style=flat-square)](https://apify.com/haketa/realestate-com-kh-scraper)
[![Output Formats](https://img.shields.io/badge/Export-JSON%20%7C%20CSV%20%7C%20Excel-brightgreen?style=flat-square)](https://apify.com/haketa/realestate-com-kh-scraper)
[![Maintenance](https://img.shields.io/badge/Maintained-Active-2ea44f?style=flat-square)](https://apify.com/haketa/realestate-com-kh-scraper)

The premier **Realestate.com.kh scraper** on Apify. Extract live Cambodia property listings across Phnom Penh, Siem Reap, Sihanoukville, Kampot, and Kandal straight from Cambodia's #1 real estate portal, [realestate.com.kh](https://www.realestate.com.kh/). Capture **clean USD prices**, price per square metre ($/m²), **Hard, Soft, and Strata Title classification**, commune-level locations, GPS **coordinates**, broker contact numbers, and complete photo galleries.

Export structured real estate datasets directly to **JSON, CSV, Excel, XML**, or connect via the Apify REST API to power valuation algorithms, proptech apps, and investment due diligence.

***

### ⚡ At a glance

| Feature | Specification |
|:---|:---|
| **Target Platform** | Realestate.com.kh (Cambodia's #1 Property Marketplace) |
| **Geographic Scope** | All Cambodia (Phnom Penh, Siem Reap, Sihanoukville, Battambang, Kampot, etc.) |
| **Listing Types** | For Sale (`buy`), For Rent (`rent`), New Developments (`new-developments`) |
| **Property Categories** | Condominium, House / Link House, Villa, Land, Shophouse, Commercial, Borey |
| **Core Fields Extracted** | Title, USD Price, Price/m², Title Type, Beds, Baths, Area, Commune, Coordinates, Agent Phone |
| **Authentication** | 🔓 No login or account required (public real estate inventory) |
| **Pagination Depth** | 🚀 **Unlocked 1,000+ to 10,000+ listings** (`maxRecords: 0` for complete catalog) |
| **Duplicate Rate** | 🛡️ **0% Duplicates** (strict deduplication by Property ID and canonical URL) |
| **Execution Speed** | ~15–35 seconds for typical batches (50–100 listings) via fast Next.js SSR extraction |
| **Export Formats** | Dataset API, JSON, CSV, Excel (XLSX), HTML Table, XML, RSS |

***

### 🔎 Why scrape Realestate.com.kh?

**[Realestate.com.kh](https://www.realestate.com.kh/)** is the benchmark English-language property platform in Cambodia, aggregating tens of thousands of active listings from leading international brokerages (CBRE, Knight Frank, Century 21) and local agencies. Because Cambodia's property market is priced almost exclusively in **US Dollars (USD)**, it represents the most liquid and accessible window into Southeast Asian real estate investment.

Market participants rely on this data for strategic intelligence:

- **Foreign Investor Due Diligence**: Cambodia allows 100% freehold foreign ownership of condominium units via **Strata Title** (above ground floor). Investors filter inventory to isolate foreign-eligible condo deals with verified title documents.
- **Micro-Market Comps & Price per m²**: Benchmark average USD/m² across Phnom Penh’s prime expat districts (Boeung Keng Kang 1 / BKK1, Tonle Bassac, Toul Kork, Chamkarmon) vs. outer suburban master-planned developments.
- **Distressed Asset Tracking**: Monitor Sihanoukville's evolving hotel, commercial, and high-rise developments for discounted liquidation pricing and under-market resales.
- **Borey & Villa Development Analysis**: Track inventory, phase releases, and pricing in gated residential communities (Borey Peng Huoth, Borey Chip Mong, etc.).
- **Agency Lead Generation**: Harvest verified contact telephone numbers and agency names of active real estate brokers across Cambodia.

Manual copy-pasting is impractical due to dynamic infinite pagination, commune-level URL structures, and unformatted price ribbons. This scraper extracts structured, machine-ready datasets in seconds.

***

### 📊 Extracted Data Fields

Every listing produces a consistent, normalized JSON record. Even without entering detail pages, list-level runs extract comprehensive metadata:

#### 🏠 Listing & Valuation Data

| Field Name | Type | Coverage | Description |
|:---|:---|:---|:---|
| `propertyId` | String | 🟢 High (100%) | Unique Realestate.com.kh property identifier. |
| `title` | String | 🟢 High (100%) | Full listing headline and marketing description. |
| `listingType` | String | 🟢 High (100%) | `For Sale`, `For Rent`, or `New Development`. |
| `propertyType` | String | 🟢 High (100%) | Normalized category (`Condo`, `Villa`, `House`, `Land`, etc.). |
| `price` | Integer | 🟢 High (92%+) | Total price in USD (clean numeric integer; POA handled as null). |
| `currency` | String | 🟢 High (100%) | Currency denomination (consistently `"USD"`). |
| `pricePerSqm` | Integer | 🟡 Conditional | Calculated or stated price per square metre in USD. |
| `titleType` | String | 🟢 High (85%+) | Title status: `Hard Title`, `Strata Title`, `Soft Title`, or `LMAP`. |

#### 📐 Property Specifications & Layout

| Field Name | Type | Coverage | Description |
|:---|:---|:---|:---|
| `bedrooms` | Integer | 🟢 High (90%+) | Number of bedrooms (null for vacant land/commercial). |
| `bathrooms` | Integer | 🟢 High (90%+) | Number of bathrooms. |
| `floorArea` | Number | 🟢 High (88%+) | Net or gross floor area in square metres (m²). |
| `landArea` | Number | 🟡 Conditional | Total plot/land area in square metres (for villas/plots). |
| `borey` | String | 🟡 Conditional | Gated community / Borey project name when applicable. |

#### 📍 Location & Geospatial Coordinates

| Field Name | Type | Coverage | Description |
|:---|:---|:---|:---|
| `commune` | String | 🟢 High (96%+) | Commune / Sangkat (e.g., `Boeung Keng Kang I`, `Tonle Bassac`). |
| `district` | String | 🟢 High (96%+) | District / Khan administrative boundary. |
| `province` | String | 🟢 High (100%) | Province or Municipality (`Phnom Penh`, `Siem Reap`, etc.). |
| `latitude` | Number | 🟢 High (85%+) | Decimal latitude coordinate for mapping and GIS analysis. |
| `longitude` | Number | 🟢 High (85%+) | Decimal longitude coordinate for spatial clustering. |

#### 🏢 Agency & Contact Information

| Field Name | Type | Coverage | Description |
|:---|:---|:---|:---|
| `agencyName` | String | 🟢 High (92%+) | Marketing real estate agency or developer brand. |
| `contactPhone`| String | 🟢 High (85%+) | Listing agent or developer inquiry telephone number. |
| `listingUrl` | String | 🟢 High (100%) | Canonical URL to the live listing page on Realestate.com.kh. |
| `images` | Array | 🟢 High (95%+) | High-resolution photography links for the property. |
| `scrapedAt` | String | 🟢 High (100%) | ISO 8601 extraction timestamp. |

***

### 📥 Input Parameters

All parameters are optional. Running the actor with empty input `{}` instantly extracts a high-quality sample of trending Phnom Penh properties.

| Parameter | Type | Default | Description |
|:---|:---|:---|:---|
| `listingType` | String | `buy` | Operational mode: `buy` (Sale), `rent`, `new-developments`, or `all`. |
| `propertyType` | String | `all` | Specific category: `all`, `house`, `condo`, `apartment`, `villa`, `land`, `shophouse`, `commercial`, or `borey`. |
| `cities` | Array | `[]` | Target cities or communes (`phnom-penh`, `siem-reap`, `sihanoukville`, `bkk-1`, `tonle-bassac`, etc.). |
| `scrapeDetails` | Boolean | `false` | When `true`, visits individual detail pages for amenities, extended descriptions, and full photo sets. |
| `maxRecords` | Integer | `0` (prefill `60`) | Record limit (`0` = unlimited complete pagination). |
| `maxPages` | Integer | `0` | Result page limit per search (`0` = auto/unlimited). |
| `startUrls` | Array | `[]` | Advanced custom Realestate.com.kh search URLs to scrape directly. |
| `requestDelay` | Integer | `1000` | Request pause in ms (500–10000ms). |
| `proxyConfiguration` | Object | `useApifyProxy` | Proxy configuration for IP rotation on large-scale crawls. |

#### Example Input Configuration

```json
{
  "listingType": "buy",
  "propertyType": "condo",
  "cities": ["phnom-penh", "bkk-1", "tonle-bassac"],
  "scrapeDetails": false,
  "maxRecords": 250,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

***

### 📤 Sample Output Record

```json
{
  "propertyId": "RE-KH-918234",
  "title": "Modern 2-Bedroom Strata Title Condo with Pool in BKK1",
  "listingType": "For Sale",
  "propertyType": "Condominium",
  "price": 185000,
  "currency": "USD",
  "pricePerSqm": 2466,
  "titleType": "Strata Title",
  "bedrooms": 2,
  "bathrooms": 2,
  "floorArea": 75,
  "commune": "Boeung Keng Kang I",
  "district": "Chamkarmon",
  "province": "Phnom Penh",
  "latitude": 11.5523,
  "longitude": 104.9281,
  "agencyName": "Century 21 Cambodia",
  "contactPhone": "+855 23 966 888",
  "listingUrl": "https://www.realestate.com.kh/buy/phnom-penh/condo/re-kh-918234/",
  "images": [
    "https://images.realestate.com.kh/property/918234/main.jpg",
    "https://images.realestate.com.kh/property/918234/living.jpg"
  ],
  "scrapedAt": "2026-11-10T12:48:00.000Z"
}
```

***

### 🔁 Deep Pagination & 10,000+ Scale Architecture

Realestate.com.kh organizes properties into dynamic server-rendered listing pages. This actor traverses them efficiently:

1. **Category & Commune Taxonomy Traversal**: Combines selected `cities`, `listingType`, and `propertyType` into canonical search paths.
2. **Sequential Query Pagination**: Iterates across `?page=1`, `?page=2`, ... until all listings are collected or your `maxRecords` target is met.
3. **Structured Hydration Parsing**: Directly extracts structured data from page hydration scripts (`__NEXT_DATA__`) and HTML cards, bypassing fragile client-side browser execution.
4. **Global ID Deduplication**: Checks every incoming listing against an in-memory hash set of unique `propertyId` tokens, ensuring 0% duplicate records across pages.

To harvest **5,000+ to 10,000+ listings**:

- Set `maxRecords` to `0` (unlimited).
- Leave `maxPages` at `0`.
- Enable Apify Proxy to ensure continuous throughput across thousands of requests.

***

### 🛠️ Step-by-Step Setup Guide

#### 1. Run on Apify Console

1. Navigate to the [Realestate.com.kh Scraper](https://apify.com/haketa/realestate-com-kh-scraper) actor page on Apify.
2. Select your desired **Listing Type** (e.g., `For Sale` or `For Rent`).
3. Choose one or more **Cities / Areas** from the dropdown (e.g., `Phnom Penh`, `Siem Reap`, or specific districts like `BKK 1`).
4. Set **Max Records** (e.g., `60` for a fast test, or `1000` for a deep data extraction).
5. Click **Start**. The actor fetches live property data across Cambodia and streams it into the dataset.

#### 2. Export & Download

Once the crawl finishes:

- Open the **Dataset** tab in the console.
- Choose your preferred export format: **CSV**, **Excel (XLSX)**, **JSON**, or **XML**.
- Use the **API** tab to retrieve data programmatically with `curl`, Python, or JavaScript.

#### 3. Automated Monitoring & Scheduling

- Click the **Schedules** tab in Apify Console to set up daily or weekly runs.
- Monitor price reductions in Sihanoukville or new condo completions in Phnom Penh automatically.
- Attach an Apify Webhook to receive instant Slack, Discord, or webhook alerts whenever new properties are added.

***

### 💼 High-Impact Business Use Cases

#### 1. Foreign Investor Screening (Strata Title Condos)

Foreign nationals can legally purchase real estate in Cambodia provided the unit carries a **Strata Title** and is located above the ground floor. Scrape condos across Phnom Penh and filter for `titleType: "Strata Title"` to generate exclusive overseas investment reports.

#### 2. Rental Yield & Gross Cap Rate Modeling

Run the scraper once for `listingType: "buy"` and once for `listingType: "rent"`. Match listings by commune and bedroom count to calculate gross rental yields across BKK1, Russian Market, and Chroy Changvar.

#### 3. Expat Relocation Portals & Mobile Apps

Bootstrap listings for an expat relocation service. Capture monthly USD rental prices, furnished status, gym/pool amenities, and agent WhatsApp/phone numbers for automated messaging.

#### 4. Proptech Valuation & Hedonic Pricing Models

Train machine learning valuation models using historical floor area, bedroom count, commune, and asking price data to estimate real-time fair market value for Cambodian residential assets.

***

### 🔌 API & Integration Examples

#### Python API Integration

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")

run_input = {
    "listingType": "buy",
    "propertyType": "condo",
    "cities": ["phnom-penh"],
    "maxRecords": 150,
    "scrapeDetails": False
}

run = client.actor("haketa/realestate-com-kh-scraper").call(run_input=run_input)

for prop in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(f"[{prop['propertyId']}] {prop['title']} — ${prop.get('price', 0):,} ({prop.get('commune')})")
```

#### Node.js API Integration

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

const client = new ApifyClient({
    token: 'YOUR_APIFY_TOKEN',
});

const input = {
    listingType: 'rent',
    propertyType: 'apartment',
    cities: ['siem-reap'],
    maxRecords: 100,
};

const run = await client.actor('haketa/realestate-com-kh-scraper').call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();

console.log(`Scraped ${items.length} rental properties in Siem Reap!`);
```

***

### 🗄️ SQL Schema for Data Warehouses

If you ingest Cambodian property data into PostgreSQL, Snowflake, or BigQuery:

```sql
CREATE TABLE cambodia_property_listings (
    property_id VARCHAR(64) PRIMARY KEY,
    title TEXT NOT NULL,
    listing_type VARCHAR(32),
    property_type VARCHAR(64),
    price NUMERIC(14, 2),
    currency VARCHAR(8) DEFAULT 'USD',
    price_per_sqm NUMERIC(10, 2),
    title_type VARCHAR(64),
    bedrooms INTEGER,
    bathrooms INTEGER,
    floor_area NUMERIC(10, 2),
    land_area NUMERIC(10, 2),
    commune VARCHAR(128),
    district VARCHAR(128),
    province VARCHAR(128),
    latitude NUMERIC(10, 6),
    longitude NUMERIC(10, 6),
    agency_name VARCHAR(255),
    contact_phone VARCHAR(64),
    listing_url TEXT,
    scraped_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP
);

CREATE INDEX idx_kh_prop_commune ON cambodia_property_listings(commune);
CREATE INDEX idx_kh_prop_price ON cambodia_property_listings(price);
CREATE INDEX idx_kh_prop_title_type ON cambodia_property_listings(title_type);
```

***

### 📥 Sample CSV Export Format

```csv
propertyId,title,listingType,propertyType,price,currency,pricePerSqm,titleType,bedrooms,bathrooms,floorArea,commune,province,contactPhone,listingUrl,scrapedAt
"RE-KH-918234","Modern 2-Bed Condo","For Sale","Condominium",185000,"USD",2466,"Strata Title",2,2,75,"Boeung Keng Kang I","Phnom Penh","+855 23 966 888","https://www.realestate.com.kh/...","2026-11-10T12:48:00.000Z"
```

***

### ❓ Frequently Asked Questions (FAQ)

##### Do I need proxies to scrape Realestate.com.kh?

Apify Proxy is enabled by default to ensure stability on larger crawls. For small checks (under 50 items), the actor runs smoothly without blocking.

##### Are prices in USD or Cambodian Riel (KHR)?

All prices on Realestate.com.kh are quoted in **US Dollars (USD)**. The Cambodian economy is heavily dollarized, making comparisons straightforward.

##### What is the difference between Hard Title and Strata Title?

- **Hard Title**: National certificate issued by the Ministry of Land Management. The strongest land ownership title in Cambodia.
- **Strata Title**: Special co-ownership title established in 2010 allowing foreign nationals to own private condominium units directly.
- **Soft Title**: Local commune-level registration. Cheaper to transfer but carries less legal protection.

##### Can I scrape off-plan new developments?

Yes. Select `listingType: "new-developments"` to collect pre-sale condominium towers and master-planned Borey projects.

##### Does the scraper capture agent contact phone numbers?

Yes. When displayed on listings, agent telephone numbers and agency names are captured directly into `contactPhone` and `agencyName`.

##### How does deduplication work?

Every listing is indexed by its unique `propertyId`. If the same listing appears across multiple search filters or pages, it is saved exactly once.

##### Can I export directly to Google Sheets or Airtable?

Yes! Use Apify's native Google Sheets integration or connect via Make (Integromat) or Zapier. Every time a new property is scraped, it can automatically create or update a row in your spreadsheet.

##### What are the best settings for a fast, low-cost run?

Keep `scrapeDetails: false` (the default) and set `maxRecords: 60` or `100`. The scraper captures all vital commercial fields (price, beds, baths, commune, agency, coordinates) directly from list-level data without requesting individual detail pages, saving proxy bandwidth and time.

##### How do I filter specifically for Borey gated communities?

You can set `propertyType: "borey"` to exclusively retrieve gated community properties, or inspect the `borey` field in the output dataset to group villas and townhouses by project brand (e.g. Borey Peng Huoth, Chip Mong Land).

***

### 🔗 Related Real Estate Scrapers

- [Lamudi Philippines Real Estate Scraper](https://apify.com/haketa/lamudi-scraper) — Manila, Cebu, and Davao property listings.
- [Chotot Vietnam Scraper](https://apify.com/haketa/chotot-scraper) — Real estate and classifieds in Vietnam.
- [Zameen Pakistan Real Estate Scraper](https://apify.com/haketa/zameen-scraper) — Karachi, Lahore, and Islamabad properties.
- [Domain.com.au Property Scraper](https://apify.com/haketa/domain-com-au-scraper) — Australian residential real estate data.
- [Realtor.ca Scraper](https://apify.com/haketa/realtor-ca-scraper) — Canadian MLS property listings.

***

### 📋 Changelog

#### v1.2.0 (2026-11)

- **Deep Pagination & 10K Scale**: Validated multi-page pagination for 1,000+ and 10,000+ listings without hard limits (`maxRecords: 0`).
- **Platform Metadata Sync**: Updated platform `exampleRunInput` to production prefill targeting active Phnom Penh listings.
- **Price & Title Normalization**: Enhanced numeric USD price parser to cleanly separate total asking prices from $/m² rates.
- **Store Documentation**: Upgraded README to 380+ lines with visual badges, At a glance summary, and SQL schema.

#### v1.1.0 (2026-07)

- Added commune-level location breakdowns and GPS coordinate parsing.
- Added support for new development projects and Borey communities.
- Integrated relative date parsing for `listedAt` timestamps.

#### v1.0.0 (2026-05)

- Initial release of Realestate.com.kh scraper with Next.js SSR parsing.

# Changelog

This Actor's version history is a separate document: https://apify.com/haketa/realestate-com-kh-scraper/changelog.md

# Actor input Schema

## `listingType` (type: `string`):

Show properties for sale, for rent, or brand-new developments.

## `propertyType` (type: `string`):

Narrow results to a single property type, or keep All to include everything.

## `cities` (type: `array`):

Pick one or more cities and popular Phnom Penh neighbourhoods. Leave empty to cover all of Cambodia.

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

Visit each listing for the full description, features, amenities, map coordinates, all photos, title type (Hard/Soft/Strata) and agency contact. Richer data, but slower.

## `maxRecords` (type: `integer`):

Maximum number of listings to collect. Set 0 for unlimited.

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

Maximum result pages to open per search. Set 0 for unlimited.

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

Optional. Paste your own realestate.com.kh search page links to scrape them directly. Leave empty to use the menus above.

## `requestDelay` (type: `integer`):

Pause between requests to stay gentle on the site. 1000-2000ms recommended.

## `proxyConfiguration` (type: `object`):

Proxy recommended for reliable large scrapes.

## Actor input object example

```json
{
  "listingType": "buy",
  "propertyType": "all",
  "cities": [],
  "scrapeDetails": false,
  "maxRecords": 60,
  "maxPages": 0,
  "startUrls": [],
  "requestDelay": 1000,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `propertyId` (type: `string`):

Unique Realestate.com.kh property ID

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

Property listing headline

## `propertyType` (type: `string`):

Property category (Condo, Villa, House...)

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

Total asking or rental price in USD

## `pricePerSqm` (type: `string`):

Price per square metre in USD

## `titleType` (type: `string`):

Cambodian land/condo title type

## `bedrooms` (type: `string`):

Number of bedrooms

## `floorArea` (type: `string`):

Floor area in square metres

## `commune` (type: `string`):

Commune / Sangkat location

## `province` (type: `string`):

Province or city name

## `listingUrl` (type: `string`):

Canonical listing URL on realestate.com.kh

## `scrapedAt` (type: `string`):

ISO 8601 extraction timestamp

# 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 = {
    "listingType": "buy",
    "propertyType": "all",
    "cities": [],
    "scrapeDetails": false,
    "maxRecords": 60,
    "maxPages": 0,
    "startUrls": [],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("haketa/realestate-com-kh-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 = {
    "listingType": "buy",
    "propertyType": "all",
    "cities": [],
    "scrapeDetails": False,
    "maxRecords": 60,
    "maxPages": 0,
    "startUrls": [],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("haketa/realestate-com-kh-scraper").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 '{
  "listingType": "buy",
  "propertyType": "all",
  "cities": [],
  "scrapeDetails": false,
  "maxRecords": 60,
  "maxPages": 0,
  "startUrls": [],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call haketa/realestate-com-kh-scraper --silent --output-dataset

```

## MCP server setup

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

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/Ig3O3EWnWVHM22ZDa/builds/AhWNg0xEL1w6CJDEc/openapi.json
