How to Scrape PropertyGuru and 99.co in 2026

PropertyGuru and 99.co hold the most comprehensive real estate listing data in Singapore, but both sites actively block scrapers. This guide shows you exactly how to scrape PropertyGuru and 99.co without getting blocked. You will learn which anti-scraping measures each portal uses, how to configure your scraper for both static and JS-rendered pages, and how to rotate Singapore mobile proxies to maintain reliable access. Every config example is tested and production-ready.

How to Scrape PropertyGuru and 99.co for Real Estate Data

Scraping Singapore real estate data — PropertyGuru, 99.co, EdgeProp — is one of the more technically demanding scraping tasks in Southeast Asia. Both major portals run aggressive bot detection, geo-restrict certain listing data, and flag non-residential IPs quickly. Getting consistent, accurate property data requires the right proxy setup, not just a standard rotating pool.

This guide covers the specific architecture for scraping Singapore property portals: what detection systems you’re actually up against, why Singapore mobile proxies outperform datacenter and residential alternatives for this use case, and how to configure your scraper to get reliable results without burning through IP pools.

What PropertyGuru and 99.co Actually Block

Before choosing a proxy type, it helps to understand what PropertyGuru and 99.co are actually checking. Both platforms have evolved their detection well beyond simple IP blacklists.

IP Reputation and ASN Filtering

The first filter is the IP’s network classification. Datacenter IPs — even clean ones from reputable providers — are flagged immediately on PropertyGuru because the ASN origin (AWS, GCP, Hetzner, etc.) identifies them as non-residential. The platform has blanket blocks on known datacenter ASNs.

Residential proxies from peer-to-peer networks pass the ASN check but introduce a different problem: those IPs have browsing histories from multiple simultaneous users. A single residential IP might appear to be accessing PropertyGuru from Singapore, Australia, and Germany within the same hour — a pattern the portal’s trust scoring system penalises.

Mobile carrier IPs solve both issues. Singapore carrier IPs (Singtel, StarHub, M1) are classified as consumer mobile traffic. They share IPs through carrier-grade NAT — meaning many legitimate users genuinely share the same IP, which is a known and trusted network behaviour that platforms cannot block without also blocking their legitimate mobile users.

Geo-Restrictions on Listing Data

PropertyGuru and 99.co serve different content based on location. Certain listing fields — transaction history, HDB valuation data, mortgage calculator integrations — are either hidden or return reduced data to non-Singapore IPs. This is not just a bot-blocking mechanism; it is a regional data licensing constraint.

If your scraper returns listings with missing price history or incomplete agent contact data, the issue is often the IP location rather than the scraper logic. Switching to a verified Singapore IP resolves this immediately.

Behavioral Pattern Detection

Both portals log request patterns: time between page loads, mouse movement events on the JS-rendered version, scroll depth, and session length. Scrapers that hit listing endpoints directly without simulating session behaviour are flagged within the first few hundred requests.

The fix is session continuity. A sticky session proxy that maintains the same IP across a full property search sequence — search results page to listing page to contact agent page — looks like a normal user browsing session. Rotating the IP on every request creates a detection signature that is trivial to identify.

Why You Need Singapore Mobile Proxies

The combination of requirements — clean residential ASN, verified Singapore geolocation, session continuity, and carrier NAT trust profile — points to Singapore mobile carrier proxies as the correct infrastructure choice for scraping Singapore real estate portals.

The comparison against alternatives is straightforward:

  • Datacenter proxies: Fast and cheap, but blocked by ASN classification on both PropertyGuru and 99.co. Unsuitable for sustained scraping.
  • Residential proxies (P2P): Pass geo-checks but have inconsistent trust scores due to shared usage patterns. Higher ban rates on property portals specifically.
  • Singapore mobile carrier proxies: Carrier NAT trust profile, clean ASN, verified SG geolocation, supports sticky sessions. Highest success rate for sustained property data extraction.

For why Singapore IPs carry a higher trust weight on regional platforms, see Why Singapore IPs Are Valuable for SEA Market Access.

PropertyGuru Scraper Setup

PropertyGuru serves both a server-rendered and a JavaScript-rendered version depending on the request profile. The configuration approach differs slightly depending on which you are targeting.

Static HTML Scraping Config

PropertyGuru’s listing data is available in the server-rendered HTML for most standard fields. Start with HTTP requests targeting the static version before reaching for headless browser infrastructure.

  • Session mode: Sticky — maintain the same IP for the full search to listing to next page sequence
  • Session duration: 10 to 30 minutes per session block
  • Request delay: 3 to 8 seconds between requests, randomised
  • User agent: Mobile Safari on iOS or Chrome on Android, rotated per session (not per request)
  • Headers: Include Accept-Language en-SG and a realistic Referer chain starting from a PropertyGuru search results URL
  • Concurrency: 1 to 3 concurrent sessions per proxy IP maximum

JavaScript-Rendered Scraping Config

For data that only appears after JS execution — dynamic pricing widgets, agent contact reveals — use a headless browser routed through the Singapore mobile proxy.

  • Proxy auth: Configure at the browser context level, not the page level — some frameworks apply proxy settings incorrectly which breaks IP consistency
  • Viewport: Set to a standard mobile resolution to match the mobile user agent
  • JavaScript fingerprint: Disable automation flags; use stealth plugins for Puppeteer or Playwright’s built-in evasion options
  • Cookie persistence: Maintain cookies across pages within a session; do not clear cookies between pages in the same session block

99.co Scraper Setup

99.co has a more aggressive rate-limiting system than PropertyGuru at the search results level, but is less strict on individual listing pages once you have a valid session established.

Scraping Search Results Pages

99.co’s search endpoint is the highest-risk part of the scrape. It has stricter rate limits and CAPTCHAs triggered by volume. Key configuration adjustments:

  • Limit search results scraping to 20 to 30 pages per session before rotating to a new sticky session
  • Start each session by loading the 99.co homepage first — do not go directly to search results as the first request in a new session
  • If a CAPTCHA appears, treat the session as spent; switch to a new proxy session rather than attempting to solve it

Scraping Individual Listing Pages

Once on an individual listing page, 99.co is relatively permissive. Delays of 2 to 4 seconds between requests are sufficient. The most valuable data — transaction history, floor area, psf price, district — is available in the page HTML without requiring JavaScript execution.

For understanding the broader challenges around CAPTCHAs and IP bans in scraping, see How Mobile Proxies Reduce CAPTCHAs and IP Bans.

Data Fields You Can Extract

With a correctly configured Singapore mobile proxy setup, these are the fields consistently available from both portals.

PropertyGuru Fields

  • Listing ID, title, listing type (sale or rental)
  • Property type (HDB, condo, landed, commercial)
  • District and planning area
  • Price — asking price for sale, monthly for rental
  • Floor area in sqft and sqm, and price per square foot
  • Number of bedrooms and bathrooms, floor level, and tenure
  • Agent name and agency
  • Date listed and last updated

99.co Fields

  • Listing ID, headline, listing status
  • Property type and subtype, HDB town or district code
  • Asking price and price PSF, floor area
  • Completion year and tenure
  • Transaction history — last 3 to 5 transactions where available
  • Agent contact (partial — full reveal requires session interaction)

Request Volume and IP Rotation Strategy

The right proxy rotation strategy depends on your scraping volume and how frequently you need fresh data.

For daily market snapshots (full portal crawl once per day): Use 5 to 10 Singapore mobile proxy IPs rotating on a per-session basis. Each session covers one district or property type category. This approach extracts 500 to 1,500 listings per IP per day without triggering ban events.

For real-time listing monitoring (tracking specific listings for price changes): Assign a dedicated sticky session to each monitored property cluster. Check every 4 to 6 hours. Low request volume per IP means less detection risk, but you need enough IPs to cover your monitoring list without concentrating requests.

For high-volume historical data extraction: Plan for 10 or more IPs, 3 to 5 second delays, and a nightly run window — midnight to 5am SG time — when platform traffic is lower and rate limit thresholds are more permissive.

For the full framework on IP rotation — and when rotating is actually the wrong choice — see IP Rotation Explained: How It Works, When to Use It, and When It Breaks Things.

Other Portals: EdgeProp, HDB Resale, and SRX

EdgeProp Singapore is the third major portal, primarily used for transaction data and price trend analysis. It is less aggressive on bot detection than PropertyGuru or 99.co, but still geo-restricts detailed transaction history to Singapore IPs.

The HDB Resale Portal on data.gov.sg is the cleanest source for historical HDB transaction data — it is a government open data endpoint with no bot detection and no geo-restrictions. Use it directly for HDB-specific historical data rather than scraping it from portal aggregators.

SRX (srx.com.sg) has stricter session limits but valuable valuation data. The same Singapore mobile proxy configuration applies, with shorter session windows — 5 to 10 pages — before rotation.

Common Scraping Mistakes to Avoid

  • Rotating IPs on every request: The most common mistake. Sticky sessions are required for property portals. Rotating per request creates an obvious detection signature.
  • Using datacenter IPs to save cost: They are blocked by ASN classification before your first request is processed. The cost saving is irrelevant.
  • Not including realistic request headers: Missing Accept-Language, incomplete Referer chains, and non-browser Accept headers are easy detection signals.
  • Starting sessions directly on listing endpoints: Begin each session on the portal’s homepage or search results page to establish a realistic session pattern.
  • Ignoring 429 responses: A rate limit response means the session is compromised. Retire it immediately; do not retry with the same IP.

Getting Started

If you are building a Singapore property data pipeline, the proxy infrastructure is the foundational decision. A correctly configured Singapore mobile proxy setup handles the geo-enforcement, ASN classification, and session trust requirements that cause consistent failures with other proxy types.

See our full guide to Singapore mobile proxy setup and use cases to understand the complete infrastructure approach. For Singapore-specific proxy specifications, visit our Singapore Mobile Proxy page.

Frequently Asked Questions

Is scraping PropertyGuru and 99.co legal in Singapore?

This depends on your jurisdiction, how the data is used, and the specific terms of service of each portal. We cover technical configuration only. If you are building a commercial data product using scraped portal data, consult a lawyer familiar with Singapore’s Computer Misuse Act and the portals’ terms of service before proceeding.

How many Singapore proxy IPs do I need for daily scraping?

For a standard daily market snapshot covering all district listings, 5 to 8 IPs rotating on a per-session basis is sufficient. For higher-frequency monitoring or concurrent multi-portal scraping, scale to 10 to 20 IPs.

Why do I get incomplete listing data with a Singapore IP?

Missing data fields are usually caused by one of three issues: the data requires JavaScript execution and your static scraper is not running the page JS; the session was flagged and is serving degraded responses; or the specific field requires a logged-in user session to display. Check which applies by loading the URL manually in a browser using a Singapore IP.

Can I use one proxy pool for both PropertyGuru and 99.co?

Yes, but do not mix portals within a single sticky session. Each session should be dedicated to one portal and one search context. Running requests for both platforms through the same IP within the same session creates an unusual cross-domain pattern that can trigger flags on both portals.

Related Singapore Proxy Guides

For the complete overview, see our Singapore Mobile Proxy Guide.

Need help choosing a provider? See our provider comparisons.

Scroll to Top