PropertyGuru Scraper avatar

PropertyGuru Scraper

Pricing

Pay per usage

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

Pay per usage

Rating

5.0

(1)

Developer

Shahid Irfan

Shahid Irfan

Maintained by Community

Actor stats

0

Bookmarked

27

Total users

10

Monthly active users

12 days ago

Last modified

Share

PropertyGuru Malaysia Listings Scraper

Extract complete property listing data from PropertyGuru Malaysia in a fast, reliable, and structured format. Collect pricing, location details, property specs, agent details, and full photo sets at scale. Built for real estate research, market monitoring, and data-driven decision making.

Features

  • Fast listing collection — Collect hundreds of records quickly with stable pagination support
  • Full listing coverage — Get pricing, specs, recency, agent details, and project references
  • Multiple images per property — Export both a primary image and full image_urls arrays
  • Clean output quality — Duplicate and empty records are filtered before dataset export
  • Simple input setup — Start with one URL and control result/page limits

Use Cases

Market Research

Track asking prices, listing volume, and property mix across Malaysian markets. 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
startUrlStringNoPropertyGuru search URL to start from
results_wantedIntegerNo20Maximum number of properties to collect
max_pagesIntegerNo10Maximum number of result pages to process
proxyConfigurationObjectNo{"useApifyProxy":true}Proxy settings for reliable extraction

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
price_per_areaStringPrice per area text
locationStringAddress or area text
bedroomsStringBedroom count
bathroomsStringBathroom count
sizeStringProperty size text
property_typeStringProperty type
tenureStringTenure type
build_yearStringBuild year
listing_typeStringListing category
listed_byStringListing source label
is_verifiedBooleanVerification status
is_official_listingBooleanOfficial listing flag
is_developer_listingBooleanDeveloper listing flag
posted_onStringPosted date text
recencyStringListing recency label
descriptionStringListing description
image_urlStringPrimary image URL
image_urlsArrayAll available image URLs
image_countIntegerTotal image count detected
agent_nameStringAgent name
agent_companyStringAgency or company name
project_idIntegerRelated project identifier
search_urlStringSearch URL used for that record
search_pageIntegerResult page number where record was collected

Usage Examples

Quick Start

Use defaults and collect up to 20 properties.

{
"results_wanted": 20
}

Higher Volume Collection

Collect larger batches across more pages.

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

Custom Search URL

Start from a specific PropertyGuru results page.

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

Sample Output

{
"listing_id": 501016902,
"external_id": "501016902",
"title": "Service Residence in Jalan Ipoh, Kuala Lumpur",
"url": "https://www.propertyguru.com.my/property-listing/eco-sky-for-sale-by-bosco-lum-501016902",
"price": "RM 460,000",
"price_value": 460000,
"currency": "MYR",
"price_per_area": "RM 496.76 psf",
"location": "Jalan Kuching, Taman Wahyu, Jalan Ipoh, Kuala Lumpur",
"bedrooms": "2",
"bathrooms": "2",
"size": "926 sqft",
"property_type": "Service Residence",
"tenure": "Freehold",
"build_year": "2018",
"listing_type": "For Sale",
"listed_by": "Listed by",
"is_verified": false,
"is_official_listing": true,
"is_developer_listing": false,
"posted_on": "1 Apr 2026",
"recency": "Listed on Apr 01, 2026",
"description": "Many 926sqft units on hand in Ecosky, Ready tenant or vacant",
"image_url": "https://my1-cdn.pgimgs.com/listing/501016902/UPHO.287951111.V800/Eco-Sky-Jalan-Ipoh-Malaysia.jpg",
"image_urls": [
"https://my1-cdn.pgimgs.com/listing/501016902/UPHO.287951111.V800/Eco-Sky-Jalan-Ipoh-Malaysia.jpg",
"https://my1-cdn.pgimgs.com/listing/501016902/UPHO.287951118.V800/Eco-Sky-Jalan-Ipoh-Malaysia.jpg"
],
"image_count": 16,
"agent_name": "Bosco Lum",
"agent_company": "MCENTURY PROPERTIES SDN BHD [ E (1) 1862 ]",
"project_id": 9329,
"search_url": "https://www.propertyguru.com.my/property-for-sale?listingType=sale&isCommercial=false&locale=en",
"search_page": 1
}

Tips for Best Results

Use Working Search URLs

  • Use a valid PropertyGuru result URL in startUrl
  • Prefer focused searches for 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 workflow

Keep Proxy Enabled

  • Keep useApifyProxy enabled for stable runs
  • Use repeated scheduled runs for consistency
  • If a run returns fewer records than expected, rerun with the same input

Proxy Configuration

Recommended default:

{
"proxyConfiguration": {
"useApifyProxy": true
}
}

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?

It can collect large batches depending on available pages and your input limits. Use results_wanted and max_pages to control output size.

Do I need to provide startUrl?

No. If startUrl is not provided, the actor starts from a default PropertyGuru sale listings page.

Can I collect data from multiple pages?

Yes. The actor automatically processes multiple pages up to max_pages.

Why are some fields missing on certain records?

Some listings do not expose every field publicly. The actor saves all available fields and skips empty values.

Does output include multiple photos per property?

Yes. Use image_urls for full photo sets and image_count for total image volume.

Is duplicate data filtered?

Yes. Duplicate records are filtered by stable listing keys before export.

Can I automate daily runs?

Yes. Use Apify schedules and connect outputs to integrations such as webhooks, Make, or Zapier.

Is this suitable for commercial analytics?

Yes. Output is structured for market analysis, reporting, lead workflows, 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.