DEV Community

agenthustler
agenthustler

Posted on

How to Scrape PropertyGuru Data in Singapore: 2026 Guide

Singapore's property market moves fast. Whether you're an investor tracking price trends across districts, a real estate agent doing competitive research, or a developer building market analysis tools — you need structured property data.

PropertyGuru is Singapore's dominant property portal, with over 200,000 active listings covering HDB flats, condos, landed properties, and commercial spaces. It's the Zillow of Southeast Asia, and it holds a goldmine of data that's frustratingly hard to extract at scale.

What Data Is Available on PropertyGuru?

Each PropertyGuru listing contains rich structured data:

  • Price — asking price, PSF (per square foot), and historical price changes
  • Property details — size (sqft), bedrooms, bathrooms, floor level, tenure (freehold/leasehold/999-year)
  • Location — district number, street address, nearest MRT station and distance
  • Agent info — agent name, agency, contact details, number of active listings
  • Project details — developer name, TOP date, total units, facilities

For Singapore specifically, you'll want to understand the geographic classification:

  • CCR (Core Central Region) — Districts 9, 10, 11, Downtown Core. Orchard Road, Marina Bay. Premium pricing.
  • RCR (Rest of Central Region) — Districts like Queenstown, Toa Payoh, Geylang. Mid-tier pricing with growth potential.
  • OCR (Outside Central Region) — Jurong, Woodlands, Punggol. Mass market, HDB-heavy. This is where 80% of Singaporeans live.
  • URA Planning Areas — 55 distinct zones used by the Urban Redevelopment Authority for planning. Critical for understanding development potential and future MRT lines.

Understanding these regions is essential for any meaningful property analysis in Singapore.

Why People Need This Data

Property investors track PSF trends across districts to identify undervalued areas before en-bloc fever hits. When a new MRT line is announced, prices in surrounding districts shift — having historical data lets you model these patterns.

Real estate agents monitor competitor listings, pricing strategies, and agent market share. If a rival agency is dominating District 15 listings, you want to know.

PropTech developers build tools like mortgage calculators, investment dashboards, and rental yield estimators. All of these need fresh listing data as input.

Researchers and analysts study housing affordability, the HDB resale market, and the impact of cooling measures on transaction volumes.

Current Options (And Why They Fall Short)

Manual export: PropertyGuru lets you browse and filter, but there's no bulk export. Copy-pasting 50 listings is tedious. Doing 5,000 is impossible.

Existing Apify actors: As of early 2026, the PropertyGuru scrapers on Apify Store are deprecated and returning 0 results. The site has changed its structure, and nobody has updated these actors.

Enterprise solutions: Services like Bright Data offer pre-built datasets, but pricing starts at enterprise levels — overkill if you just need listing data for a specific district or property type.

Building Your Own PropertyGuru Scraper

Here's a basic approach using Python and requests:

import requests
from bs4 import BeautifulSoup
import json
import time

def scrape_propertyguru(district: int, listing_type: str = "sale", pages: int = 5):
    """Scrape PropertyGuru listings for a specific district."""
    results = []
    headers = {
        "User-Agent": "Mozilla/5.0 (compatible; research bot)"
    }

    for page in range(1, pages + 1):
        url = f"https://www.propertyguru.com.sg/property-for-{listing_type}/{district}"
        params = {"page": page}

        resp = requests.get(url, headers=headers, params=params)
        soup = BeautifulSoup(resp.text, "html.parser")

        # Extract listing cards - inspect the page for current selectors
        listings = soup.select("[data-listing-id]")

        for listing in listings:
            data = {
                "listing_id": listing.get("data-listing-id"),
                "title": listing.select_one(".listing-title"),
                "price": listing.select_one(".listing-price"),
                "size": listing.select_one(".listing-floorarea"),
                "district": district,
            }
            # Clean text from elements
            for key in ["title", "price", "size"]:
                if data[key]:
                    data[key] = data[key].get_text(strip=True)
            results.append(data)

        time.sleep(2)  # Be respectful with rate limiting

    return results

# Example: Scrape District 15 (East Coast/Katong) sale listings
listings = scrape_propertyguru(district=15, listing_type="sale", pages=3)
print(f"Found {len(listings)} listings in District 15")
Enter fullscreen mode Exit fullscreen mode

Important notes:

  • Always check PropertyGuru's robots.txt and terms of service
  • Use reasonable rate limiting (2+ seconds between requests)
  • Selectors change frequently — you'll need to maintain your scraper
  • Consider using Playwright or Selenium if the site relies heavily on JavaScript rendering

Using Apify for Custom Tasks

If you don't want to maintain your own scraper infrastructure, you can build a custom Apify actor. Apify handles proxy rotation, scheduling, and storage — you just write the scraping logic.

For complementary location data, the Google Maps Scraper on Apify can help you enrich property listings with nearby amenities — schools, MRT stations, hawker centres, malls, and clinics. Proximity to amenities is one of the biggest price drivers in Singapore real estate.

For example, combine property listings with Google Maps data to answer: "Which District 19 condos are within 500m of an MRT station AND have 3+ schools nearby?"

Practical Tips for Singapore Property Data

  1. HDB vs Private — These are fundamentally different markets. HDB resale is regulated by HDB with transaction data publicly available at data.gov.sg. Private property (condos, landed) is where scraped data adds the most value.

  2. New launches vs Resale — New launch pricing comes from developers and is often only on PropertyGuru temporarily. Resale listings stay longer and have richer data.

  3. PSF is king — Price per square foot is how Singaporeans compare properties. Always normalize by size.

  4. MRT proximity matters enormously — Properties within 500m of an MRT station command a 10-15% premium. The Thomson-East Coast Line (TEL) completions through 2025-2026 are reshaping values in Districts 15 and 18.

  5. Check URA caveats — Some listings are in areas zoned for future development or have plot ratio restrictions. Cross-reference with URA Master Plan data.

What's Next

The gap in the market for a reliable, maintained PropertyGuru scraper is real. The existing solutions are broken, and Singapore's property data needs are growing as more investors and PropTech startups enter the market.

If you build something useful, consider publishing it on the Apify Store — there's clear demand from the Singapore market, and the existing actors aren't delivering.


Have questions about scraping property data in Singapore? Drop a comment below.

Top comments (0)