PropertyGuru Scraper avatar

PropertyGuru Scraper

Pricing

from $1.00 / 1,000 results

Go to Apify Store
PropertyGuru Scraper

PropertyGuru Scraper

Extract detailed real estate data from PropertyGuru, Southeast Asia's leading property portal. Scrape listings, prices, and market trends efficiently for your analysis. For seamless performance and reliability, residential proxies are highly recommended.

Pricing

from $1.00 / 1,000 results

Rating

5.0

(5)

Developer

Shahid Irfan

Shahid Irfan

Maintained by Community

Actor stats

2

Bookmarked

88

Total users

14

Monthly active users

7 days ago

Last modified

Share

PropertyGuru Malaysia & Singapore Property Scraper

Extract structured property listing data from PropertyGuru Malaysia and PropertyGuru Singapore at scale. Collect pricing, location details, room counts, tenure, agent profiles, image sets, and listing freshness across both domains for market research, investment screening, and analytics workflows.

Features

  • Malaysia and Singapore coverage - Collect listings from propertyguru.com.my and propertyguru.com.sg
  • Multi-page collection - Automatically paginates to reach your target result count
  • Full listing details - Pricing, specs, recency, tenure codes, agent metadata, project references, and feature blocks
  • Residential proxy support - Works with Apify residential proxies for smooth multi-page runs
  • Image sets per property - Primary image plus full image_urls arrays with count
  • Duplicate filtering - Clean output with stable key-based deduplication
  • Flexible input URLs - Root domains, sale pages, or filtered search URLs all work

Use Cases

Market Research

Track asking prices, listing volume, and property mix across Malaysia or Singapore. Build weekly or monthly snapshots to monitor direction and momentum.

Investment Screening

Create comparable datasets to shortlist properties by price, size, and location context. Review listing freshness and agent information for faster lead qualification.

Lead Generation

Collect active listings and source URLs to power outreach workflows. Keep records structured for CRM imports and scoring.

Portfolio Monitoring

Watch listing changes around areas where you own or plan to buy. Use recurring runs to spot shifts in supply and pricing.

Real Estate Analytics

Feed BI dashboards with normalized listing data, image coverage metrics, and pagination-based crawl history for reporting.


Input Parameters

ParameterTypeRequiredDefaultDescription
startUrlStringNo-PropertyGuru Malaysia or Singapore root URL, sale page, or filtered search URL
results_wantedIntegerNo20Maximum properties to collect
max_pagesIntegerNo10Maximum result pages to process
proxyConfigurationObjectNo{"useApifyProxy":true,"apifyProxyGroups":["RESIDENTIAL"]}Proxy settings. Residential proxies reduce blocking on multi-page runs.

Output Data

Each dataset item can include:

FieldTypeDescription
listing_idIntegerUnique listing identifier
external_idStringExternal listing reference
titleStringListing title
urlStringListing detail URL
priceStringFormatted price text
price_valueNumberNumeric price value
currencyStringCurrency code (MYR, SGD)
price_per_areaStringPrice per area text
locationStringAddress or area text
bedroomsStringBedroom count
bathroomsStringBathroom count
sizeStringProperty size text
property_typeStringProperty type label
listing_type_codeStringListing type code
tenureStringTenure type label
tenure_codeStringRaw tenure code
build_yearStringBuild year or completion info
listing_typeStringListing category
listing_statusStringListing status code
listed_byStringListing source label
is_verifiedBooleanVerification status
is_official_listingBooleanOfficial listing flag
is_developer_listingBooleanDeveloper listing flag
is_developer_unit_listingBooleanDeveloper unit flag
is_prioritizedBooleanPriority placement flag
posted_onStringPosted date text
recencyStringListing recency label
availabilityStringAvailability text
descriptionStringListing description or headline
image_urlStringPrimary image URL
image_urlsArrayAll available image URLs
image_countIntegerTotal image count
agent_nameStringAgent name
agent_companyStringAgency or company name
agent_idIntegerAgent identifier
agent_agency_idIntegerAgency identifier
agent_is_verifiedBooleanAgent verification flag
agent_profile_urlStringAgent profile URL
agent_licenseStringAgent license text
project_idIntegerRelated project identifier
property_type_groupStringHigh-level property group
project_type_codeStringProject type code
area_textStringArea name
area_codeStringArea code
districtStringDistrict name
district_codeStringDistrict code
regionStringRegion name
region_codeStringRegion code
viewed_labelStringViewed label text
account_type_codeStringAccount type code
cross_listing_typeStringCross-listing type
listing_featuresArrayStructured feature blocks
search_originStringSource PropertyGuru domain
search_urlStringSearch URL for that record
search_pageIntegerPage number where collected

Usage Examples

Quick Start

Collect up to 20 properties with defaults. Proxy is enabled automatically.

{
"results_wanted": 20
}

Higher Volume Collection

Collect larger batches across more pages.

{
"results_wanted": 300,
"max_pages": 15
}

Start from a specific Kuala Lumpur search URL.

{
"startUrl": "https://www.propertyguru.com.my/property-for-sale?listingType=sale&freetext=Kuala+Lumpur",
"results_wanted": 200,
"max_pages": 10
}

Singapore Root Domain

Start from the Singapore domain. The actor normalizes it to sale listings automatically.

{
"startUrl": "https://www.propertyguru.com.sg/",
"results_wanted": 40,
"max_pages": 2
}

Search Jurong East area in Singapore.

{
"startUrl": "https://www.propertyguru.com.sg/property-for-sale?listingType=sale&market=residential&freetext=Jurong+East",
"results_wanted": 60,
"max_pages": 3
}

Sample Output

{
"listing_id": 501016902,
"external_id": "501016902",
"title": "Hillview Green",
"url": "https://www.propertyguru.com.sg/listing/for-sale-hillview-green-23177314",
"price": "S$ 2,580,000",
"price_value": 2580000,
"currency": "SGD",
"price_per_area": "S$ 1,724.60 psf",
"location": "67 Hume Avenue",
"bedrooms": "3",
"bathrooms": "3",
"size": "1496 sqft",
"property_type": "Condominium",
"listing_type_code": "SALE",
"tenure": "999-year Leasehold",
"tenure_code": "L999",
"build_year": "1998",
"listing_type": "For Sale",
"listing_status": "ACT",
"listed_by": "Listed by",
"is_verified": false,
"is_official_listing": true,
"is_developer_listing": false,
"is_developer_unit_listing": false,
"is_prioritized": false,
"posted_on": "7 Jun 2026",
"recency": "Listed on Jun 07, 2026 (2m ago)",
"description": "Rare Ground floor unit at Hillview Green, corner",
"image_url": "https://sg1-cdn.pgimgs.com/listing/23177314/UPHO.150473566.V800/Hillview-Green-Clementi-Park-Upper-Bukit-Timah-Singapore.jpg",
"image_urls": [
"https://sg1-cdn.pgimgs.com/listing/23177314/UPHO.150473566.V800/Hillview-Green-Clementi-Park-Upper-Bukit-Timah-Singapore.jpg",
"https://sg1-cdn.pgimgs.com/listing/23177314/UPHO.124570156.V800/Hillview-Green-Clementi-Park-Upper-Bukit-Timah-Singapore.jpg"
],
"image_count": 17,
"agent_name": "Heng Heng",
"agent_id": 6414,
"agent_agency_id": 4618,
"agent_is_verified": false,
"agent_profile_url": "https://www.propertyguru.com.sg/agent/heng-heng-6414",
"agent_license": "R014221F",
"project_id": 367,
"district": "Clementi Park / Upper Bukit Timah",
"district_code": "D21",
"region": "Newton / Bt. Timah (D11, 21)",
"region_code": "C",
"viewed_label": "Viewed",
"account_type_code": "NORMAL",
"cross_listing_type": "ORIGINAL",
"listing_features": [
{ "id": "listing-card-v2-bedrooms", "text": "3" },
{ "id": "listing-card-v2-bathrooms", "text": "3" }
],
"search_origin": "https://www.propertyguru.com.sg",
"search_url": "https://www.propertyguru.com.sg/property-for-sale",
"search_page": 1
}

Tips for Best Results

Use Working Search URLs

  • Use a valid PropertyGuru Malaysia or Singapore URL in startUrl
  • Root domains, property-for-sale pages, and filtered search URLs all work
  • Focused searches produce cleaner datasets
  • Re-run periodically for fresh market snapshots

Tune Volume Controls

  • Start with results_wanted: 20 for quick validation
  • Increase max_pages for deeper coverage
  • Balance speed and volume based on your needs

Keep Proxy Enabled

  • Keep useApifyProxy enabled for stable runs
  • Use ["RESIDENTIAL"] proxy group to avoid blocking
  • Re-run with the same input if a run returns fewer results than expected

Integrations

Connect your data with:

  • Google Sheets - Share and analyze listing data with teams
  • Airtable - Build searchable listing databases
  • Slack - Send alerts from scheduled runs
  • Webhooks - Deliver records to custom systems
  • Make - Automate enrichment and routing workflows
  • Zapier - Trigger downstream actions from fresh datasets

Export Formats

  • JSON - For APIs and custom processing
  • CSV - For spreadsheet workflows
  • Excel - For reporting and presentations
  • XML - For legacy system integrations

Frequently Asked Questions

How many listings can this scraper collect?

You can collect all available listings up to your results_wanted limit. The actor paginates through result pages automatically until it reaches your target or runs out of pages.

Do I need to provide a start URL?

No. If startUrl is empty, the actor starts from a default PropertyGuru sale listings page. You can also pass a Malaysia or Singapore root domain, a property-for-sale URL, or any PropertyGuru search URL and it normalizes automatically.

Can I collect data from multiple pages?

Yes. The actor handles pagination automatically. Set max_pages to control how many pages to process and results_wanted to limit the total output.

Which proxy setup works best?

Use Apify Proxy with the RESIDENTIAL group. This is the recommended configuration and is the most reliable option for avoiding blocks on PropertyGuru.

Why are some fields missing?

Some listings do not expose every field. The actor saves all available fields and skips empty values. Fields like agent_license or build_year may be absent on certain property types.

Does output include multiple photos?

Yes. Use image_urls for the full photo array and image_count for the total number of images detected.

Is duplicate data filtered?

Yes. Duplicate records are removed using stable listing keys before the final dataset export.

Can I automate daily runs?

Yes. Use Apify schedules and connect outputs to webhooks, Make, or Zapier for automated workflows.

Is this suitable for commercial analytics?

Yes. The output is structured for market analysis, lead generation, reporting, and BI pipelines.


Support

For issues or feature requests, contact support through the Apify Console.

Resources


This actor is designed for legitimate data collection purposes. Users are responsible for ensuring compliance with PropertyGuru terms of service and applicable laws. Use data responsibly and respect rate limits.