Realestate.com.kh Scraper - Cambodia Property Listings
Pricing
from $1.32 / 1,000 property searches
Realestate.com.kh Scraper - Cambodia Property Listings
Scrape realestate.com.kh, Cambodia's top property portal: USD price, rent, size, bedrooms, title type and GPS for Phnom Penh, Siem Reap and Sihanoukville.
Pricing
from $1.32 / 1,000 property searches
Rating
0.0
(0)
Developer
SIÁN OÜ
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
12 hours ago
Last modified
Categories
Share
Realestate.com.kh Scraper - Cambodia Property Listings 🇰🇭
🎉 About 46,000 live Cambodian property listings in US dollars, past the site's 1,000-result limit, from $1.50 per 1,000
Built for Phnom Penh agents, investors, developers, relocation firms and anyone pricing property in Cambodia
🔎 What is the Realestate.com.kh Property Scraper — and when should you use it?
The Realestate.com.kh Property Scraper turns public realestate.com.kh property listings from anywhere in Cambodia into clean, structured rows you can filter, export and feed straight into a spreadsheet, database or AI agent. No account, no portal API key, no browser automation to maintain.
Use it when you need: Cambodian rental and sale listings as rows: condos, apartments, serviced apartments, houses, villas, shophouses, land, offices and warehouses. Every search row carries the sale price and monthly rent in US dollars as numbers, price per m², bedrooms, bathrooms, floor and land area, the commune, district and province, a map point and the agency. Open each listing in full and you also get the advertiser's description, the title type, completion year, amenities, views and every photo.
Use something else when: you want property elsewhere in Southeast Asia. Use FazWaz Thailand Scraper for Thai sale and rent listings. Use PropertyGuru Scraper for Singapore, Malaysia and Thailand. Use Batdongsan Scraper for Vietnamese property listings. This actor reads realestate.com.kh only, for live listings. Sold prices are not returned, and private owners' names and phone numbers are never collected.
🤖 Use with AI agents
Already connected to the Apify MCP server? Just ask for this Actor by name: sian.agency/realestate-kh-property-scraper
Your agent can pay for its own runs. This Actor is eligible for agentic payments, so an agent can discover it, run it and settle the bill over x402 (USDC on Base) or Skyfire — without an Apify account or API token of its own. Billing is the same either way: per successful row, never for errors.
Otherwise copy this prompt into Claude, ChatGPT, Cursor or any MCP-enabled assistant:
I want Cambodian property listings with US-dollar prices and rents from realestate.com.kh using the Apify Actor `sian.agency/realestate-kh-property-scraper`.Use it when I need: Cambodian rental and sale listings as rows: condos, apartments, serviced apartments, houses, villas, shophouses, land, offices and warehouses. Every search row carries the sale price and monthly rent in US dollars as numbers, price per m², bedrooms, bathrooms, floor and land area, the commune, district and province, a map point and the agency. Open each listing in full and you also get the advertiser's description, the title type, completion year, amenities, views and every photo.Don't use it when: you want property elsewhere in Southeast Asia — use fazwaz-property-scraper or propertyguru-property-scraper or batdongsan-property-scraper instead.How to call it: set `listingType` (`rent` or `sale`), `propertyType` (`residential`, `apartment`, `serviced-apartment`, `house`, `villa`, `shophouse`, `flat`, `land`, `commercial`, `offices`, `warehouse`, `building`, `business`) and `location` (a commune such as `bkk-1`, a Phnom Penh district such as `toul-kork`, a province such as `siem-reap`, or `all-cambodia`). `minPrice` and `maxPrice` set a range in US dollars, `minBedrooms` a floor. Set `maxResults` above 1000 to collect a whole district. `includeDetails` opens each listing for the description, title type, amenities and every photo, for an extra charge per listing. For a place not in the list, pass its results address in `searchUrls`. To expand listings you already have, set `operation` to `detail` and pass `listingUrls`.Start with this input:{"operation": "search","listingType": "rent","propertyType": "apartment","location": "bkk-1","maxPrice": 1500,"minBedrooms": "2","maxResults": 200}Ask me which commune, district or province to cover, which property type, and whether it is for rent or for sale, then run the Actor and summarise the results as a table.
Things you can ask your agent for:
- List 2-bedroom condos for rent in BKK 1 under $1,500 a month and give me the median rent per m².
- Compare asking prices and monthly rents for condos in Toul Kork and Chroy Changvar and estimate the gross rental yield.
- Find hard-title land for sale in Siem Reap with its price per m² and land area.
Machine-readable API, MCP config and OpenAPI definition for this Actor are published at apify.com/sian.agency/realestate-kh-property-scraper.md.
📋 Overview
Realestate.com.kh is Cambodia's number-one property portal. This Actor reads its public results and listing pages and returns every listing as a flat row: condos in BKK 1, villas in Chroy Changvar, shophouses in Sen Sok, land in Siem Reap.
What you get:
- ✅ The numbers a Cambodian valuation needs: sale price and monthly rent in US dollars, price per m², bedrooms, bathrooms, floor and land area, floor level, as typed numbers.
- ✂️ Whole districts in one run. The site stops every search at 1,000 results. This Actor splits a bigger search into price bands and merges them without duplicates, so all 6,000 BKK 1 rentals are within reach.
- 🎯 Filters checked on every row. Sale-only listings that slip into rent searches, and off-type featured cards, are skipped and never charged.
- 📍 Commune, district and province as separate columns, plus the site's own GPS point on every row.
- 💰 $1.50 per 1,000 properties, charged per delivered row and never for a row that failed.
- 📜 Title type on the full listing: hard, soft or strata title (or a long-term lease), which decides what a foreign buyer can own.
✨ Features
- 🏢 Thirteen property types: apartments and condos, serviced apartments, houses, villas, shophouses, flats, land, offices, warehouses, whole buildings, businesses, plus all residential or all commercial in one go.
- 🔑 Rent or sale: monthly rents and asking prices, both on one row when a listing is offered both ways.
- 📍 31 places in the list: Phnom Penh as a whole, its districts and the expat communes (BKK 1, Tonle Bassac, Toul Tum Poung, Phsar Chas), Siem Reap, Sihanoukville, Kampot, Kep, Kandal and Battambang.
- 💵 Price and bedroom filters that the site applies and the Actor checks again on each row.
- 🏗️ Project and borey names on units in new developments.
- 🏢 Agency and agent contacts: agency name, office phone and page on every agency row; the agent's name and phone when the listing names one.
- 📄 Full listing option: the advertiser's description, title type, agency reference, completion year, features, amenities, views and every photo.
- 🔗 Paste any realestate.com.kh search link, in English, Khmer, Chinese or any language the site offers. Fields come back in English.
- 📦 About 50 flat fields, ready for CSV, Excel, JSON or the API.
🎬 Quick Start
Pick rent or sale, a property type and a place, then press Start. Rows land in the dataset as they are found. A run report goes to the key-value store with the counts and what they cost.
curl -X POST "https://api.apify.com/v2/acts/sian.agency~realestate-kh-property-scraper/runs?token=YOUR_TOKEN" \-H 'Content-Type: application/json' \-d '{"operation":"search","listingType":"rent","propertyType":"apartment","location":"bkk-1","maxResults":100}'
🚀 Getting Started (3 Simple Steps)
Step 1: Choose what and where
Pick rent or sale, a property type and a place: Phnom Penh, a district like Toul Kork, a commune like BKK 1, or a province like Siem Reap.
Step 2: Narrow it
Add a price range in US dollars or a minimum number of bedrooms if you want one. Leave them empty to get everything.
Step 3: Press Start
Set how many properties to collect. Switch on "Open each listing in full" when you need the description, title type, amenities and every photo.
That's it. Within a minute you'll have:
- Every matching property as a spreadsheet row
- Price, size, bedrooms and commune on each one
- A run report showing what was found, what failed and what it cost
📥 Input Configuration
| Field | Type | Required | Description |
|---|---|---|---|
| operation | string | No | search (default) or detail |
| listingType | string | No | rent (default) or sale |
| propertyType | string | No | residential, apartment (default), serviced-apartment, house, villa, shophouse, flat, land, commercial, offices, warehouse, building, business |
| location | string | No | phnom-penh (default), a district or commune such as bkk-1, toul-kork or sen-sok, a province such as siem-reap, or all-cambodia |
| minPrice / maxPrice | integer | No | Price range in US dollars; monthly rent for rentals |
| minBedrooms | string | No | 1 to 5: at least this many bedrooms |
| sortBy | string | No | newest (default), relevance, price-asc, price-desc |
| maxResults | integer | No | Properties to collect across the run (default 100, up to 20,000); Property Detail opens every listing you paste |
| includeDetails | boolean | No | Also open every listing page (billed as Property Detail) |
| searchUrls | array | No | realestate.com.kh results pages to use instead of the fields above |
| listingUrls | array | Detail mode | realestate.com.kh listing pages to open in full |
Example: 2-bedroom condos for rent in BKK 1 between $500 and $1,500 a month
{"operation": "search","listingType": "rent","propertyType": "apartment","location": "bkk-1","minPrice": 500,"maxPrice": 1500,"minBedrooms": "2","maxResults": 200}
Example: open listings you already have
{"operation": "detail","listingUrls": [{ "url": "https://www.realestate.com.kh/rent/bkk-1/1-bed-1-bath-condo-262621/" },{ "url": "https://www.realestate.com.kh/new-developments/vue-aston/2-bed-1-bath-condo-264555/" }]}
📤 Output
Results are saved to the Apify dataset with about 50 fields, including:
| Field | Type | Description |
|---|---|---|
| propertyTitle | string | The advertiser's headline |
| listingType | string | rent, sale or sale and rent |
| propertyCategory | string | Condo, Apartment, Villa, Shophouse, Land, Office… |
| salePrice / rentPrice | number | Asking price and monthly rent in USD; empty when the price is on application |
| salePricePerSqm / rentPricePerSqm | number | Price per m² as the site shows it |
| bedrooms / bathrooms | integer | Room counts |
| floorAreaSqm / landAreaSqm | number | Floor and land area in m² |
| projectName | string | The new development or borey a unit belongs to |
| commune / district / province | string | Location split from the address |
| latitude / longitude | number | The site's map point |
| sellerType | string | agency or private |
| agencyName / agencyPhone | string | The agency behind the listing (agency rows only) |
| listedAt | string | When the listing was created |
| titleType | string | Hard, soft or strata title, or a long-term leasehold (full listing) |
| descriptionText / amenities / imageUrls | string / array | The advertiser's text, amenities and every photo (full listing) |
Example (a real search row):
{"mainImageUrl": "https://images.realestate.com.kh/__sized__/listings/original/2024-07/img_7858-thumbnail-1040x780-70.jpeg","listingId": 244635,"propertyTitle": "1bedroom for rent sale at De Castle Royal","listingUrl": "https://www.realestate.com.kh/new-developments/de-castle-royal-condominium/1-bed-1-bath-condo-244635/","listingType": "sale and rent","propertyCategory": "Condo","salePrice": 125000,"rentPrice": 700,"priceText": "Sale $125,000 · Rent $700","currency": "USD","bedrooms": 1,"bathrooms": 1,"floorAreaSqm": 76,"floorLevel": 8,"projectName": "De Castle Royal Condominium","commune": "BKK 1","district": "Boeng Keng Kang","province": "Phnom Penh","latitude": 11.538952035522229,"longitude": 104.92166256295803,"sellerType": "agency","agencyName": "Elyza&Hellen-REAKH","agencyPhone": "+855 99 343 811","agentName": "Elyza Hen","adTier": "premium","badge": "Price Negotiable","highlights": ["Brand Developer", "Project Complete"],"photoCount": 9,"listedAt": "2024-07-29T13:28:41.413281+07:00","status": "success"}
💼 Use Cases & Examples
1. Rent per m² by Phnom Penh commune
Relocation consultants and landlords compare rents across BKK 1, Toul Kork and Tonle Bassac. Input: apartments for rent in each commune, newest first. Output: monthly rent, floor area and commune on every row. Use: one pivot table gives the median rent per m² for each commune.
2. Rental yield for investors
Overseas buyers check whether a condo pays before they wire money. Input: the same district once for sale and once for rent. Output: asking prices and monthly rents, with listings offered both ways carrying both on one row. Use: gross yield by commune and bedroom count.
3. Condo supply in new developments
Developers and analysts track how many units each project is still trying to sell. Input: apartments for sale in Phnom Penh, up to several thousand rows. Output: project names, bedrooms and asking prices per unit. Use: spot projects where supply is piling up and prices are being cut.
4. Agency lead lists
Proptech and service companies find the agencies with the most live stock. Input: all residential listings in a district. Output: agency name, office phone and page on every agency row. Use: rank agencies by live listings per district.
5. Expat rental market watch
HR and relocation teams budget housing allowances for staff moving to Phnom Penh. Input: serviced apartments and condos in BKK 1, Daun Penh and Tonle Bassac, run weekly on a schedule. Output: a dated feed of new listings with rents in US dollars. Use: a housing allowance grounded in what is actually on the market.
6. Land and title checks
Land buyers in Siem Reap, Kampot and Sihanoukville screen plots before visiting. Input: land for sale with the full listing switched on. Output: price, price per m², land area and title type. Use: shortlist hard-title plots at the right price per m².
🔗 Integration Examples
JavaScript/Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_TOKEN' });const run = await client.actor('sian.agency/realestate-kh-property-scraper').call({listingType: 'rent',propertyType: 'apartment',location: 'bkk-1',maxResults: 200,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items[0]);
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_TOKEN')run = client.actor('sian.agency/realestate-kh-property-scraper').call(run_input={'listingType': 'sale', 'propertyType': 'land', 'location': 'siem-reap', 'maxResults': 200})for item in client.dataset(run['defaultDatasetId']).iterate_items():print(item['salePrice'], item.get('salePricePerSqm'), item['commune'])
cURL
curl -X POST 'https://api.apify.com/v2/acts/sian.agency~realestate-kh-property-scraper/runs?token=YOUR_TOKEN' \-H 'Content-Type: application/json' \-d '{"listingType":"rent","propertyType":"villa","location":"phnom-penh","maxResults":100}'
Automation Workflows (N8N / Zapier / Make)
- Trigger: a schedule, for example every Monday morning
- HTTP Request: call the Actor API with your search
- Process: keep the rows newer than last week's run
- Action: write them to Google Sheets, Airtable or a CRM, or post a summary to Slack
📊 Performance & Pricing
FREE Tier (Try It Now)
- 25 properties per run, with every field and option
- No credit card required
- Enough to test a search before you scale it
PAID Tier (Production Ready)
- Up to 20,000 properties per run, past the site's 1,000-result limit
- $1.50 per 1,000 properties on the Bronze plan, less on higher plans
- $3.00 per 1,000 full listings when you switch the full listing on
- A small start fee per run ($0.005 on paid plans)
- Only delivered rows are charged: cards that fail your filters, duplicates and errors cost nothing
A 100-property search finishes in well under a minute. Search rows arrive at roughly 300 a minute, so 5,000 rentals take about 15 minutes. Opening each listing in full is slower, about 30 a minute.
❓ Frequently Asked Questions
Q: Does it cover all of Cambodia? A: Yes. Pick Phnom Penh, one of its districts or communes, Siem Reap, Sihanoukville, Kampot, Kep, Kandal, Battambang or All of Cambodia. For another commune, open it on realestate.com.kh and paste the results address into Search page URLs.
Q: What currency are prices in? A: US dollars, exactly as the listing states. Rent is the monthly rent. A listing marked POA (price on application) returns an empty price, never a zero.
Q: Why can a row have both a sale price and a rent? A: Many Cambodian listings are offered for sale and for rent at once. The row carries both prices and Rent or sale reads "sale and rent". It shows up in rent searches and in sale searches.
Q: The site only shows 1,000 results. How do I get a whole district? A: Set Properties to collect above 1,000. The Actor splits the search into price bands, each under the site's limit, and merges them without duplicates.
Q: Do I get phone numbers? A: Agency listings carry the agency's office phone, and the agent's name and phone when the listing names one. Listings posted by private owners come back without the owner's name, phone or email, and contact details typed into their description are removed.
Q: What is the title type? A: A hard title is registered with the national cadastre and a soft title only with the local authority. A strata title covers a unit in a condo building, which is what foreigners can own. Some listings say long-term leasehold instead. The full listing carries it when the advertiser states it.
Q: What output formats are available? A: JSON, CSV, Excel, XML or HTML, straight from the Apify dataset, or over the API.
🐛 Troubleshooting
The run returned fewer properties than I asked for
- The search may simply hold fewer listings. The run log prints how many the site has for your search.
- Cards that failed your filters are skipped and listed in the log, and you are not charged for them.
"No listings match this search right now"
- Widen the price range, clear the bedroom filter, or pick a larger place.
"realestate.com.kh has no results page at that address"
- A pasted address must be a results page, such as https://www.realestate.com.kh/rent/bkk-1/apartment/ . Open the search on the site and copy the address bar.
"realestate.com.kh would not serve this page"
- This is a temporary refusal. Run it again in a few minutes. Nothing is charged for it.
⚖️ Is it legal to scrape data?
Our actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.
However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.
You can also read Apify's blog post on the legality of web scraping.
Realestate.com.kh is a trademark of its respective owner. This Actor is not affiliated with, endorsed by, or sponsored by Realestate.com.kh.
🤝 Support
Join our active support community
- For issues or questions, open an issue on the Issues tab
- Check SIÁN Agency Store for more automation tools
- 📧 apify@sian-agency.online
Built by SIÁN Agency | More Tools