Comparable-sales valuations for Singapore residential property — queryable in one HTTP call, with the comparables and adjustments shown, not just a number. Rental yield, price trends, and lease-decay risk are on the roadmap.
Photo by Lily Banse on Unsplash
Every valuation returns the comparables used, their individual adjustments (time, storey, size), and a confidence label — not a black-box number. If you need to justify a valuation to a risk or compliance team, you can.
Backtested against held-out real transactions, out-of-sample by construction — each valuation only uses data that existed on or before that transaction's own month, and is never allowed to use the transaction to value itself. Current results: 6.29% mean absolute error on HDB resale (84.2% of estimates within 10% of actual price), 6.17% on condo/EC/ apartment (81.6% within 10%). A specific, dated number, not a marketing round figure.
Most projects have enough of their own resale history for a direct comparable-sales estimate. When one doesn't, the API doesn't force a weak comparison out of a thin pool — it falls back to a hedonic regression model built specifically for that gap, validated against three independent holdout tests before being trusted with a live estimate. It also never hides which method produced a number: the comparable-sales reasoning is always returned, even on calls where the fallback model is the one used.
For HDB resale, a computed gap between a listed price and this
API's own valuation estimate — historically called
"cash-over-valuation" — before you commit an option fee. One
property_type field
switches the same endpoints between HDB and private
residential, both keyed off the same postal code — verified
against real address data that a single project name can span
several physical postal codes, and built accordingly from day
one. Nothing generic ported in from a US or UK AVM.
Singapore has excellent property data — HDB resale prices, URA private transactions, market indices are all publicly filed. What doesn't exist is a way to query it programmatically. Every consumer property platform has a valuation tool bolted onto its listings business. None of them offer a documented, self-serve API. If you're building a lending product, a proptech tool, or anything that needs a valuation as a backend input — not a lead-gen widget — your options today are: scrape something you shouldn't, negotiate a bespoke data deal, or build your own AVM from scratch.
An API-first alternative — built to be called from inside your product, not visited by an end user. Your customers never see our brand.
Not for: individual buyers or agents looking for a free valuation estimate — that's what the existing consumer tools are for. This is infrastructure, not a lead-gen widget.
/valuation directly./valuation (or /cov) with flat
type, floor area, and storey — either an exact floor number or
HDB's band format, your choice.POST /resolve-postal-code
Content-Type: application/json
{
"postal_code": "190012",
"flat_type": "5 ROOM"
}
{
"postal_code": "190012",
"block": "12",
"street_name": "NTH BRIDGE RD",
"town": "KALLANG/WHAMPOA",
"lease_commence_date": 1975,
"floor_area_suggestion": {
"suggested_sqm": 114.0,
"confidence": "estimate",
"observed_sqm": [114.0, 117.0, 119.0]
}
}
POST /valuation
Content-Type: application/json
{
"town": "KALLANG/WHAMPOA",
"street_name": "NTH BRIDGE RD",
"flat_type": "5 ROOM",
"floor_area_sqm": 114,
"storey": 20,
"lease_commence_date": 1975
}
{
"estimated_value": 847500.0,
"estimated_psm": 7434.37,
"estimated_psf": 690.68,
"confidence": "medium",
"confidence_reason": "6 comparable(s), psm spread (CV) 3.9%",
"comp_tier": "street",
"lookback_months": 24,
"remaining_lease_months": 576,
"comparables": [
{
"source_id": 228768,
"month": "2026-03",
"block": "12",
"street_name": "NTH BRIDGE RD",
"storey_range": "16 TO 18",
"floor_area_sqm": 114,
"resale_price": 839999,
"weight": 0.2
},
{
"source_id": 228767,
"month": "2026-01",
"block": "12",
"street_name": "NTH BRIDGE RD",
"storey_range": "07 TO 09",
"floor_area_sqm": 117,
"resale_price": 810000,
"weight": 0.0893
},
{
"source_id": 209150,
"month": "2025-08",
"block": "12",
"street_name": "NTH BRIDGE RD",
"storey_range": "22 TO 24",
"floor_area_sqm": 114,
"resale_price": 825000,
"weight": 0.0833
}
// ... 3 more comparables omitted for brevity, all NTH BRIDGE RD
]
}
Real output, both calls chained exactly as shown, captured from
the live database — not a mockup. Passing street_name
(returned by /resolve-postal-code above) is what keeps
comparables anchored to the actual block — omit it and the API
still works, but broadens to town-wide comparables instead.
/cov takes the
same body as /valuation plus asking_price
and adds price_vs_estimate_gap. The same two endpoints also
value condo/EC/apartment units — pass
"property_type": "condo" with
district/area_sqm/floor_range/
tenure_type instead of the HDB fields shown above; see
/docs for the full condo schema and a live
"Try it out" example. Try any of these yourself, with your own
inputs, at /docs.
HDB resale and private residential (condo, apartment, Executive
Condominium) valuation and asking-price-vs-estimate comparison are
both live —
property_type switches between them on the same
/valuation//cov endpoints. Landed
property, rental yield, price trends, and en-bloc probability are
on the roadmap — get in touch
if you want to know what's next or request early access to a
specific endpoint.
Usage-metered, no seat fees. Early pilot customers get direct-issued API keys and input into what we build next. Request pilot access to talk pricing for your volume.
SG Property API — built on public data.gov.sg HDB resale data. Not financial advice; valuations are estimates, not appraisals.
Contains information from HDB Resale Flat Prices, accessed on 2026-07-24 from data.gov.sg, which is made available under the terms of the Singapore Open Data Licence version 1.0.
Contains information from URA Private Residential Property Transactions (PMI_Resi_Transaction), accessed on 2026-07-24 from the Urban Redevelopment Authority (URA), which is made available under the terms of the Singapore Open Data Licence version 1.0.
Licence: https://data.gov.sg/open-data-licence. Both datasets are refreshed periodically via this API's own ingestion pipelines — the access date above reflects when this notice was last reviewed, not a one-time pull.