Singapore HDB Resale Flat Prices Scraper
Pricing
Pay per event
Singapore HDB Resale Flat Prices Scraper
Scrape ~976,000 Singapore HDB resale transactions from data.gov.sg, 1990 to present. Returns town, flat type, block, storey range, floor area, lease, resale price, and derived price-per-sqft. Filter by town, flat type, and month range. Refreshed monthly.
Pricing
Pay per event
Rating
0.0
(0)
Developer
BowTiedRaccoon
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Singapore HDB Resale Flat Prices Scraper — data.gov.sg HDB Transaction History API
Crawls historical HDB (Housing & Development Board) public housing resale transactions from Singapore's open-data portal (data.gov.sg). Use it as an HDB resale price API and Singapore property data export: query HDB resale prices by town, by flat type, and by month, with derived price-per-sqft. HDB flats house roughly 80% of Singapore residents, making this the foundational SG residential-property dataset.
What you get
- ~976,000 transactions spanning January 1990 to the current month, refreshed monthly
- For each record:
- Location: town, block, street name, formatted address, storey range
- Property: flat type (3-room / 4-room / 5-room / executive / multi-gen), flat model (Improved, Maisonette, DBSS, Premium Apartment, etc.), floor area in sqm and sqft
- Lease: lease commencement year, remaining lease in years (derived for pre-2015 records using the 99-year HDB lease)
- Price: resale price in SGD, derived price-per-sqft and price-per-sqm
- Provenance: source dataset id, transaction basis (resale-approval pre-Mar-2012, registration after), scrape timestamp
Inputs
- Towns — filter to one or more of Singapore's 26 HDB towns (ANG MO KIO, BISHAN, TAMPINES, …). Empty = all towns.
- Flat types — 1/2/3/4/5 ROOM, EXECUTIVE, MULTI-GENERATION. Empty = all types.
- Month from / Month to — YYYY-MM bounds. Useful for incremental refreshes (
monthFrom: 2025-01to pull only the latest year). - Sort order — newest-first (default) or oldest-first.
- Max items — caps total records across all matching datasets. Default 15 for previews; set to
0for an unlimited bulk pull. - Proxy — Apify residential rotation by default. data.gov.sg's open-data endpoint rate-limits aggressively per IP, so spreading requests across many residential exit nodes is required for reliable bulk pulls.
Source & freshness (data.gov.sg Resale Flat Prices)
The actor combines five child datasets that make up data.gov.sg's "Resale Flat Prices" collection:
| Coverage | Records (~) | Notes |
|---|---|---|
| 1990 – 1999 | 287,000 | resale-approval basis |
| 2000 – Feb 2012 | 369,000 | resale-approval basis |
| Mar 2012 – 2014 | 52,000 | switched to registration basis |
| 2015 – 2016 | 37,000 | adds published remaining_lease |
| Jan 2017 onward | 230,000+ | rolling, refreshed monthly by HDB |
Pre-2015 records do not ship a remaining_lease field — the actor derives it from lease_commence_date plus the transaction month using the standard 99-year HDB lease.
Live for-sale listings
The original spec asked for active resale listings (asking price, HDB valuation, agent contact). Those live behind Singpass — Singapore's national digital-identity gateway, restricted to citizens and permanent residents — so they are not collectable from this actor. Only the historical transaction record is included.
Pricing
Pay-per-event: $0.10 per actor start + $0.001 per record returned. Default test runs (15 records) cost roughly $0.115; a full historical pull (~976,000 records) costs roughly $976.10.
FAQ
How do I get HDB resale prices by town?
Set the towns filter to one or more of Singapore's 26 HDB towns (e.g. ANG MO KIO, BISHAN, TAMPINES). Each returned transaction includes town, flat type, storey range, floor area, resale price in SGD, and derived price-per-sqft, covering 1990 to the current month.
Need more?
File a request via the actor's issue tracker or contact form on the OrbLabs storefront if you need additional fields, a different cadence, or a related Singapore property dataset.