hk_property_buildings
HK building directory with geo, district and completion
Download a file
CSV and Parquet. Filtered exports.
See pricingQuery with SQL
DBeaver, DuckDB, MotherDuck, or HTTPS. Sub-second latency.
Open connection detailsConnect to AI
MCP for Claude Desktop, Cursor, ChatGPT, Goose. 1-line install.
See setupMaster list of Hong Kong residential buildings from Centaline, a tier of the estate→phase→building→unit hierarchy. English and Chinese estate, phase, building and address names, the parent estate and phase codes, district and county, latitude/longitude, completion date, unit and floor counts, flats per floor, the assigned school net, and a facilities summary. Reconciled across several Centaline sources, newest observation per field.
Evaluate it in full below: the evidence and a working sample are open to everyone. Buy or subscribe to unlock the complete dataset — your account is created automatically at checkout.
The evidence
Schema & column quality (45 columns)
Scroll table sideways to see more columns →
| Column | Type | Description | Populated | Distinct |
|---|---|---|---|---|
| building_code | String | Centaline building code — primary identifier. Canonical form is exactly 10 uppercase letters (the '<phase>-' prefix carried by some source feeds is stripped upstream) | — | — |
| centa_bldg_id | Nullable(Int64) | Stable numeric Centaline building id (centabldg) — a vintage-independent integer alternate key; null for buildings never seen in a transaction | — | — |
| estate_code | Nullable(String) | Centaline estate code — links to hk_property_estates; the large multi-phase development this building belongs to. Null for standalone single-phase developments | — | — |
| centa_estate_id | Nullable(Int64) | Stable numeric Centaline estate id — integer alternate key to hk_property_estates; null where estate_code is null | — | — |
| estate_name_en | Nullable(String) | Estate name in English | — | — |
| estate_name_zh | Nullable(String) | Estate name in Chinese | — | — |
| phase_code | Nullable(String) | Centaline phase code — links to hk_property_phases; the development phase this building belongs to. Null where the phase is unknown | — | — |
| phase_name_en | Nullable(String) | Phase name in English (where the estate is phased) | — | — |
| phase_name_zh | Nullable(String) | Phase name in Chinese | — | — |
| building_name_en | Nullable(String) | Building/block name in English | — | — |
| building_name_zh | Nullable(String) | Building/block name in Chinese | — | — |
| building_address_en | Nullable(String) | Street address in English | — | — |
| building_address_zh | Nullable(String) | Street address in Chinese | — | — |
| district_en | Nullable(String) | Official Hong Kong district (one of the 18 District Council districts) in English, e.g. Sai Kung District. Centaline's own sub-areas (Tseung Kwan O, Lai King / Lai Wan) are folded into their parent district here and exposed separately as sub_district_*. | — | — |
| district_zh | Nullable(String) | Official Hong Kong district in Chinese (e.g. 西貢區), same folding as district_en | — | — |
| district_code | Nullable(String) | Official district on Centaline's stable letter code (A..T, 18 values; I and O unused) — links to hk_property_districts. Centaline's sub-area codes U/V are folded to Q/S here; the unfolded code is sub_district_code. | — | — |
| county | Nullable(String) | Territory of the official district: Hong Kong Island, Kowloon, New Territories East/West | — | — |
| sub_district_code | Nullable(String) | Centaline's own browse-area code (A..V) that district_code was folded from — equals district_code for the 18 real districts; U (Tseung Kwan O, inside Sai Kung) and V (Lai King / Lai Wan, inside Kwai Tsing) are the two sub-areas. Same code space as hk_property_transactions.district_code. | — | — |
| sub_district_en | Nullable(String) | Centaline browse area in English — the district name for the 18 real districts, or the sub-area name (Tseung Kwan O; Lai King / Lai Wan) | — | — |
| sub_district_zh | Nullable(String) | Centaline browse area in Chinese (將軍澳; 華景 / 荔灣 for the two sub-areas, verbatim from Centaline) | — | — |
| hma_id | Nullable(String) | Centaline neighbourhood id (HMA###) — links to hk_property_neighbourhoods (populated for the ~28% of buildings with a scope-bearing transaction) | — | — |
| hma_name | Nullable(String) | Neighbourhood name in Chinese, where known | — | — |
| schoolnet | Nullable(String) | Primary One Admission school net code (小一校網) the building falls in, e.g. '11', '74', '91' — normalised to the bare net code across all feeds; empty where no feed carries it (~0.3%) | — | — |
| facilities_zh | Nullable(String) | Building/estate facilities summary in Chinese (clubhouse, pool, etc.), where known | — | — |
| latitude | Nullable(Float64) | Latitude (WGS84); falls back to the phase centre when the building lacks its own point | — | — |
| longitude | Nullable(Float64) | Longitude (WGS84); falls back to the phase centre when the building lacks its own point | — | — |
| date_of_completion | Nullable(Date32) | Building completion/occupation date where known, including completions before 1970 | — | — |
| number_of_units | Nullable(Int64) | Number of residential units in the building (where known) | — | — |
| number_of_floors | Nullable(Int64) | Number of floors in the building (where known) | — | — |
| flats_per_floor | Nullable(Int64) | Typical flats per floor — the building master's reported value where present, else the native unit grid's width (distinct flat columns), else round(number_of_units / number_of_floors); flats_per_floor_source declares which | — | — |
| flats_per_floor_source | Nullable(String) | Provenance of flats_per_floor — 'reported' (building master), 'unit_grid' (native grid width) or 'derived' (units/floors); null where unknown | — | — |
| secondary_school_net | Nullable(String) | Secondary-school (SSPA) allocation scope as its district name, e.g. 'Yuen Long District' — SSPA nets align with the 18 districts, so the district IS the net; where known | — | — |
| developer | Nullable(String) | Property developer name for the estate (e.g. 'TAI HUNG FAI'), where known | — | — |
| estate_usage | Nullable(String) | Estate usage / property-type classification (e.g. private residential, HOS), where known | — | — |
| estate_description | Nullable(String) | Free-text estate description (plain text; any source HTML is stripped), where known | — | — |
| management_company | Nullable(String) | Property management company name (Chinese), where known | — | — |
| walk_mtr_minutes | Nullable(String) | Walking time to the nearest MTR station (free text, e.g. '5'), where known | — | — |
| estate_unit_count | Nullable(Int64) | Total residential units in the parent estate (distinct from number_of_units, which is per-building), where known | — | — |
| mtr_station | Nullable(String) | Name of the nearest MTR station (Centaline estateinfo.mtrStation, English), where known — complements walk_mtr_minutes with the station identity | — | — |
| hk_grid_x | Nullable(Float64) | HK1980 Grid projected easting of the building/estate centre (Centaline cMap lpt_x), in metres — distinct from the WGS84 longitude column; use with hk_grid_y for local-projection GIS work | — | — |
| hk_grid_y | Nullable(Float64) | HK1980 Grid projected northing of the building/estate centre (Centaline cMap lpt_y), in metres — distinct from the WGS84 latitude column; use with hk_grid_x for local-projection GIS work | — | — |
| developer_name_zh | Nullable(String) | Property developer's Chinese legal-entity name (Centaline estateinfochinese.developer) — a join key to the CRHK company registry; distinct from the English trading name in the `developer` column | — | — |
| scope_market_region | Nullable(String) | Centaline market-region code (scope.scp_mkt) — the coarse market bucket the building sits in (e.g. HK = Hong Kong Island, KL = Kowloon, NW/NE = New Territories West/East) | — | — |
| updated_at | Nullable(DateTime64(3)) | Timestamp of the latest source observation for this building; null for buildings with no dated source observation | — | — |
| id | String | Stable unique identifier for this row — the last column of every export. Use it to deduplicate, to key an incremental load, or to reference one specific row. It is additive: the entity and join keys you already use (building_code) are unchanged. | — | — |
A slice of the building register, the most recently completed first, full schema: names, address, coordinates, completion date, unit and floor counts and school net.
Choose your access
A Pass gives you freshness within a rolling window. The Full Archive gives you the full history we hold for the dataset, frozen at purchase. They solve different problems, and they work together.
Pass subscription
Hong Kong Property — Property Pass
Continuously updated, with API access.
View full package →- Access window
- Full history (no window)
- Updates
- Continuous, within hours of the source
- Delivery
- API, SQL and downloads
- Exports
- 1,000,000 rows/month included
Included Datasets
Get notified when this dataset is updated.
Questions about this data?
Our data experts are ready to help clarify any aspects of this dataset.
Contact Our Team