PropertyGuru Malaysia Data Parser & API
PropertyGuru Malaysia is the country’s #1 property portal — with 500K+ active listings and roughly 10x the traffic of #3 EdgeProp (East & SE Asia research report) — and PropAPIS extracts its resale, rental, new-launch and commercial listings through a single REST API. One integration also spans the wider PropertyGuru network (Singapore, Thailand’s DDproperty, Vietnam’s Batdongsan and Indonesia’s Rumah123).
| Country | Malaysia |
|---|---|
| Type | Portal |
| Owner | PropertyGuru Group |
| Listing types | resale, rental, new-build, commercial |
| Monthly visits | #1 MY (~10x #3 EdgeProp) |
| Active listings | 500K+ |
| API access | No public API (parse-only) |
| Parse priority | ★★★★☆ |
| Official site | www.propertyguru.com.my |
Platform Overview
Market Position
- #1 property portal in Malaysia after acquiring iProperty.com.my from REA Group in 2021 — roughly 10x the traffic of #3 EdgeProp (per the East & SE Asia research report)
- Part of PropertyGuru Group, the same corporate data model behind PropertyGuru SG, DDproperty TH, Batdongsan VN and Rumah123 ID
- 500K+ active listings nationwide
- Sister-brand iProperty.com.my (#2 MY) and Brickz.my transaction data sit in the same group
Market Coverage
Geographic Coverage:
- Kuala Lumpur and Klang Valley
- Penang, Johor Bahru and Iskandar
- All states and federal territories
Property Types:
- Condominiums and serviced apartments
- Landed homes (terrace, semi-D, bungalow)
- New launches / developer projects
- Commercial properties
Data Availability
PropertyGuru Malaysia uses the group’s standardized residential schema — tenure, built-up area, price-per-square-foot, LRT/MRT proximity and project data — making its 500K+ listings consistent and structured for downstream analysis.
Listing Categories:
- Buy: resale and subsale properties
- Rent: long-term rentals
- New Launches: developer projects
- Commercial: offices, retail and industrial
Data Fields Available
PropAPIS extracts structured data from each PropertyGuru Malaysia listing:
Property Information
- Address: area, building and project
- Price: sale price or rent (MYR)
- Bedrooms and Bathrooms
- Property Type: condo, terrace, semi-D, bungalow, commercial
- Area: built-up / land size (sq ft)
- Tenure: freehold, leasehold
Listing Details
- Description: full listing text
- PSF: price per square foot
- Photos: image URLs
- Project: development / project name
- Added Date
Agent Information
- Agency: agency name
- Agent: listing agent name
- Agent Contact: phone where published
Location Data
- State and District
- LRT / MRT Proximity
- City / Region
- Coordinates: latitude and longitude
API Endpoints
Get Property Details
from propapis import PropAPIS
api = PropAPIS(api_key='your_api_key')
# Get a listing by URL or ID
property_data = api.platforms.propertyguru_my.get_property(
listing_id='12345678'
)
print(f"Title: {property_data.title}")
print(f"Price: RM{property_data.price:,}")
print(f"Type: {property_data.property_type}")
print(f"State: {property_data.state}")
print(f"Tenure: {property_data.tenure}")Search Listings
# Search PropertyGuru Malaysia listings
listings = api.platforms.propertyguru_my.search(
location='Kuala Lumpur',
purpose='for-sale',
min_price=500000,
property_type='Condo'
)
for listing in listings[:10]:
print(f"{listing.title} - RM{listing.price:,}")
print(f" {listing.bedrooms} bed | {listing.state}")Search New Launches
# Search new developer projects
projects = api.platforms.propertyguru_my.search(
location='Johor Bahru',
purpose='new-launch'
)
for project in projects[:5]:
print(f"{project.title} - from RM{project.price:,}")Quick Start
from propapis import PropAPIS
api = PropAPIS(api_key='your_api_key')
# Search PropertyGuru Malaysia listings
listings = api.platforms.propertyguru_my.search(
location='Kuala Lumpur', purpose='for-sale'
)
for listing in listings[:5]:
print(f"{listing.title} - RM{listing.price:,}")import { PropAPIS } from 'propapis';
const api = new PropAPIS({ apiKey: 'your_api_key' });
// Search PropertyGuru Malaysia listings
const listings = await api.platforms.propertyguru_my.search({
location: 'Kuala Lumpur',
purpose: 'for-sale',
});
listings.slice(0, 5).forEach((l) => {
console.log(`${l.title} - RM${l.price.toLocaleString()}`);
});curl "https://api.propapis.com/v1/platforms/propertyguru-my/search?location=Kuala+Lumpur&purpose=for-sale" \
-H "Authorization: Bearer your_api_key"