99co Singapore Property Scraper
REAL ESTATEBUSINESS
Independent tool. Trademarks referenced on this page are the property of their respective owners and are used only to identify the public website this tool reads. No affiliation or endorsement.
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:
- Loads the 99.co search page, clearing its bot protection on the way in
- Pulls the full listing set from that session
- Extracts listing details directly from the API response — no separate detail-page visits
- Paginates automatically until
maxItemsis 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
- Bot protection cleared: 99.co's challenge is cleared for you. It costs more compute than an unprotected site would, which is reflected in the price.
- Rate limits: Run with
maxItemsat 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.
Further reading: Building Permit Data and Property Records: Where to Get Them in Bulk