OrbTop

99co Singapore Property Scraper

REAL ESTATEBUSINESS

99co Singapore Property Scraper

Scrape property listings from 99.co — Singapore's #2 property portal. Extracts sale, rent, new launch, and commercial listings with pricing, location, agent details, and region classification (CCR / RCR / OCR).

What it does

For each listing type you request (sale, rent, new launch, or commercial), the actor:

  1. Loads the 99.co search page using a real browser with residential Singapore proxy to clear Cloudflare protection
  2. Calls the internal search API (/api/v10/web/search/listings) using the browser's authenticated session
  3. Extracts listing details directly from the API response — no separate detail-page visits
  4. Paginates automatically until maxItems is reached

Input

Field Type Required Description
maxItems Integer Yes Maximum number of listings to return (min: 1)
listingTypes Array No Listing types to include. Options: sale, rent, new-launch, commercial. Defaults to ["sale", "rent"]

Example input

{
  "maxItems": 100,
  "listingTypes": ["sale", "rent"]
}

Output

Each record contains:

Field Description
listing_id Unique listing identifier
listing_type sale, rent, etc.
title Listing title or address
description Listing description
property_type Property type (Condo, HDB, Landed, etc.)
tenure Freehold / Leasehold
district District number (1–28)
district_code District code (e.g. D10)
region CCR / RCR / OCR classification
project_name Development or project name
address Street address
postal_code Singapore postal code
latitude / longitude GPS coordinates
price_sgd Asking price or monthly rent in SGD
price_psf_sgd Price per square foot in SGD
bedrooms Number of bedrooms
bathrooms Number of bathrooms
floor_area_sqft Floor area in square feet
land_area_sqft Land area in square feet (landed properties)
completion_year Year of completion
school_within_1km Nearby schools within 1 km
amenities Property amenities and features
agent_name Listing agent name
agent_cea_no Agent CEA registration number
agent_phone Agent contact number
agency Agency name
listing_url Direct URL to the listing
image_urls Array of property photo URLs (up to 20)
posted_at Date the listing was posted
scraped_at ISO timestamp of when the record was scraped

Notes

  • Cloudflare bypass: The actor uses a real Chromium browser with residential Singapore proxies to pass Cloudflare's JS challenge. This is why it requires more compute than a simple HTTP crawler.
  • Rate limits: Run with maxItems at 500 or fewer per run to stay within reasonable query limits. For large extracts, split by listing type.
  • Data freshness: The search API returns live listings — data is current at scrape time.
  • Memory: Requires 2048 MB due to the browser-based extraction.