Singapore HDB Resale Flat Prices Scraper
Pricing
from $0.002 / transaction scraped
Singapore HDB Resale Flat Prices Scraper
Export every HDB resale flat transaction in Singapore (1990 to present, ~945k records): town, flat type, block, street, storey, floor area, lease, resale price, price per sqm and remaining lease. Filter by town, flat type, street, price and month. Public open data, no key.
Pricing
from $0.002 / transaction scraped
Rating
0.0
(0)
Developer
hiper soft
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 hours ago
Last modified
Categories
Share
Export every HDB resale flat transaction in Singapore — from 1990 to the present (~945,000 records) — into clean JSON, CSV or Excel. Each row has town, flat type, block & street, storey range, floor area, flat model, lease details, resale price, price per sqm and remaining lease. Powered by HDB's open data (data.gov.sg).
Perfect for property valuation, market research, price-trend analysis, renovation/agent tools and investment dashboards.

Why this actor
Unlike scrapers that only cover the latest dataset, this one unifies all of HDB's resale datasets (1990 → today) into a single feed, newest transactions first, and adds computed fields you'd otherwise have to derive yourself:
- 💲
pricePerSqm— resale price ÷ floor area - ⏳
remainingLeaseYears— parsed from the data, or computed from the lease-commencement year for older records - 🏠 Full record — month, town, flat type, block, street, storey range, floor area, flat model, lease commence year, resale price
Filters
town— e.g.TAMPINES,ANG MO KIO,BEDOKflatType— e.g.3 ROOM,4 ROOM,5 ROOM,EXECUTIVEstreet— match block+street textpriceMin/priceMax— resale price range (S$)monthFrom/monthTo—YYYY-MMrangemaxItems— cap the export (full history ~945k)
Example input
{ "town": "TAMPINES", "flatType": "4 ROOM", "monthFrom": "2024-01", "maxItems": 2000 }
Output

{"month": "2026-07","town": "TAMPINES","flatType": "4 ROOM","block": "123","streetName": "SIMEI ST 1","address": "123 SIMEI ST 1","storeyRange": "10 TO 12","floorAreaSqm": 104,"flatModel": "Model A","leaseCommenceYear": 1987,"remainingLease": "61 years 04 months","remainingLeaseYears": 61.4,"resalePrice": 653000,"pricePerSqm": 6279,"sourceUrl": "https://data.gov.sg/collections/189/view","collectedAt": "2026-07-30T12:00:00.000Z"}
Output schema
| Field | Type | Description |
|---|---|---|
id | string | Unique record ID for the transaction. |
month | string | Transaction month (YYYY-MM). |
town | string | HDB town, e.g. TAMPINES. |
flatType | string | Flat type, e.g. 4 ROOM. |
block | string | Block number. |
streetName | string | Street name. |
address | string | Full address (block + street). |
storeyRange | string | Storey band of the flat, e.g. 10 TO 12. |
floorAreaSqm | integer | Floor area in square metres. |
flatModel | string | HDB flat model, e.g. Model A. |
leaseCommenceYear | integer | Year the flat's 99-year lease began. |
remainingLease | string | Remaining lease as text (years and months). |
remainingLeaseYears | number | Remaining lease in decimal years. |
resalePrice | integer | Resale transaction price in SGD. |
pricePerSqm | integer | Resale price per square metre in SGD. |
sourceUrl | string (URL) | data.gov.sg source the record was pulled from. |
collectedAt | string (ISO date) | When this Actor collected the record. |
FAQ
Do I need an account or API key? No. Set your filters and run — no login, account, or API key is required.
How far back does the data go? Every HDB resale transaction from 1990 to the present (around 945,000 records), returned newest first.
Can I filter by town, flat type or price?
Yes. Filter by town, flatType, street, a priceMin/priceMax range and a monthFrom/monthTo window, and cap the export with maxItems.
What's the output format? Structured JSON — one clean record per transaction with town, flat type, address, floor area, lease details, resale price and price per sqm. Export it as JSON, CSV, Excel, or via the API.
Can I integrate this with other tools? The Singapore HDB Resale Flat Prices Scraper can be connected with almost any cloud service or web app thanks to integrations on the Apify platform. It works with Make, Zapier, Slack, Airbyte, GitHub, Google Drive and many more, plus the Apify API, JavaScript/Python clients and MCP. Or use webhooks to trigger an action whenever a run finishes.
Notes
Data is © HDB, published under the Singapore Open Data Licence (commercial reuse permitted). Use responsibly and in line with the licence terms.