PropertyGuru MY $1๐ฐ Search By URLs and Keywords
Pricing
from $1.00 / 1,000 results
PropertyGuru MY $1๐ฐ Search By URLs and Keywords
From $1/1K. Fast, reliable scraper for propertyguru.com.my. Extract sale and rent listings with 30+ structured fields including price (MYR), built-up area, tenure, nearby transit, agent details, and GPS coordinates.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
AbotAPI
Maintained by CommunityActor stats
0
Bookmarked
4
Total users
1
Monthly active users
33 minutes ago
Last modified
Categories
Share
PropertyGuru Malaysia Scraper
Fast, reliable scraper for propertyguru.com.my - Malaysia's largest property portal. Extract sale and rent listings with 30+ structured fields including price (MYR), built-up area, tenure, nearby transit, agent details, and GPS coordinates.
Features
- High throughput - 20 listings per page, ~60 listings/min with pagination
- Sale & Rent listings with full filter support
- Property types: Condo / Apartment, Landed (terrace houses), Commercial (shop / office / factory), Residential Land
- 30+ data fields per listing including price, PSF, features, transit distance, agent info
- Coordinate enrichment via detail-page extraction (lat/lng)
- Robust - handles site protection automatically
- State-aware - dropdown for all 13 states + 3 federal territories, plus free-text fallback for towns/neighbourhoods
Quick Start
All properties for sale in Kuala Lumpur
{"mode": "search","listing_type": "sale","state": "kuala-lumpur","max_pages": 5}
Condos for rent in Mont Kiara
{"mode": "search","listing_type": "rent","property_type": "condo","search": "Mont Kiara"}
Landed houses in Selangor under MYR 1,500,000
{"mode": "search","listing_type": "sale","property_type": "landed","state": "selangor","bedrooms": 4,"max_price": 1500000}
Commercial properties in Penang
{"mode": "search","listing_type": "sale","property_type": "commercial","state": "penang"}
Custom URL mode
{"mode": "url","urls": ["https://www.propertyguru.com.my/condo-for-sale?freetext=Bangsar&bedrooms=3"],"max_pages": 10}
Input Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
mode | string | search | search (build URL from filters) or url (use provided URLs) |
urls | array | - | URLs to scrape (url mode only) |
listing_type | string | sale | sale or rent |
property_type | string | - | condo, landed, commercial, or land |
state | string | - | Malaysian state slug (see table below). Pick this OR search, not both. |
search | string | - | Free-text location (e.g. "Mont Kiara", "Bangsar", "Cyberjaya") |
min_price | integer | - | Minimum price in MYR |
max_price | integer | - | Maximum price in MYR |
bedrooms | integer | - | Number of bedrooms (0=Studio) |
sort | string | date | Sort by date, price, or psf |
sort_order | string | desc | asc or desc |
max_properties | integer | 10 | Max properties to scrape (0=unlimited) |
max_pages | integer | 20 | Max search result pages (20 listings/page) |
enable_detail_pages | boolean | true | Fetch detail pages for richer fields (coords, description, facilities, schools) |
proxy | object | Apify Residential MY | Proxy configuration |
Note:
stateandsearchare mutually exclusive. If both are set,searchwins.property_typefilters via URL path; all other filters go in the query string and can be freely combined.
Malaysian States & Federal Territories
| Slug | Name | Slug | Name |
|---|---|---|---|
kuala-lumpur | Kuala Lumpur (FT) | terengganu | Terengganu |
selangor | Selangor | kelantan | Kelantan |
penang | Penang (Pulau Pinang) | perlis | Perlis |
johor | Johor | melaka | Melaka (Malacca) |
perak | Perak | sabah | Sabah |
kedah | Kedah | sarawak | Sarawak |
pahang | Pahang | putrajaya | Putrajaya (FT) |
negeri-sembilan | Negeri Sembilan | labuan | Labuan (FT) |
Send results into your apps (MCP connectors)
Optionally pipe the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. This is an extra delivery step after the scrape โ the Apify dataset is never changed.
What gets written to the connector: a condensed, human-readable summary of each record โ not the full JSON. Each item becomes one entry with a title and its key fields flattened to plain text. The complete record always stays in the Apify dataset.
- Authorize a connector once under Apify โ Settings โ Integrations (Notion, Linear, Airtable, or Apify).
- Select it in the "Pipe results into your apps" input field. (If the picker is empty, you haven't authorized a connector yet.)
- For Notion, also set
notionParentPageUrlto the page where items should be created.
The connection is mediated by Apify's MCP proxy, so this actor never sees your third-party credentials. Leave the field empty to skip.
Output Fields
Each listing record contains 30+ fields:
| Category | Fields |
|---|---|
| Identity | id, title, address, url, status |
| Price | price, price_formatted, currency (MYR), price_psf |
| Features | bedrooms, bathrooms, floor_area, land_area, tenure |
| Property | property_type, property_type_group, badges |
| Location | state, region, city, nearby_mrt |
| Coordinates | latitude, longitude, location_source |
| Agent | agent_name, agent_id, agent_license, agency_name |
| Developer | developer, is_developer_listing |
| Media | images[], image_count |
| Dates | posted_date, posted_unix, recency |
Detail-page enrichment (when enable_detail_pages=true) adds: description, headline, latitude/longitude, project_name, total_units, tenure_detail, furnishing, floor_plans[], virtual_tour_url, nearby_schools[], agent_mobile, reference_number, and more.