Building Density (QCVN 01) API
Maximum building density, footprint, floor area ratio and setback of a lot in Vietnam under QCVN 01:2021/BXD, with interpolation by lot area and height.
Send the lot area, the building type and (for apartments and services) the height, and get the maximum net building density (mật độ xây dựng thuần) of the national planning standard QCVN 01:2021/BXD: detached houses by lot area (Bảng 2.8: 100% up to 90 m², 90% at 100 m², 70% at 200 m² … 40% from 1,000 m²), apartment lots and service / mixed lots by lot area and height (Bảng 2.9, 2.10), public service lots (40% in new areas, 60% in existing areas). Values between two lot areas are interpolated linearly; heights between two rows use the higher row.
The answer adds the maximum footprint, the floor area ratio cap (7 for detached houses; Bảng 2.12 for apartment and service lots in existing areas; 13 for buildings of 46 m and more) with the resulting gross floor area, and, with road_width, the minimum setback from the red line by road width and height (Bảng 2.7). existing_area=true applies the rules of existing (renovated) areas.
QCVN 01:2026/BXD (Thông tư 46/2026/TT-BXD) replaces it from 1/1/2027 with the same values; date from 2027 cites the new table numbers. The approved detailed plan, urban design or local architecture regulation always prevails: these are national maxima for places where no such plan sets the indicator.
Parameters
| Name | In | Type | Required | Default | |
|---|---|---|---|---|---|
lot_area | query|body | number | yes | Lot area in m². | |
type | query|body | string | no | house | house (detached), apartment, service (services / mixed without housing), public. |
height | query|body | number | no | Building height in m (or floors, 3.6 m each); required for apartment / service. | |
road_width | query|body | number | no | Red-line width of the street in m, for the setback. | |
existing_area | query|body | boolean | no | Lot in an existing / renovated urban area. | |
date | query|body | string | no | Date of the rules (YYYY-MM-DD); from 2027 the QCVN 01:2026 table numbers. |
Example
curl "https://apibox.io.vn/v1/vn-build-density?lot_area=150&road_width=12" \
-H "Authorization: Bearer YOUR_API_KEY"const res = await fetch('https://apibox.io.vn/v1/vn-build-density?lot_area=150&road_width=12', {
method: 'GET',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
},
});
const data = await res.json();
console.log(data);import requests
res = requests.get(
"https://apibox.io.vn/v1/vn-build-density?lot_area=150&road_width=12",
headers={"Authorization": "Bearer YOUR_API_KEY"},
timeout=30,
)
print(res.json())<?php
$ch = curl_init('https://apibox.io.vn/v1/vn-build-density?lot_area=150&road_width=12');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer YOUR_API_KEY'],
]);
$response = curl_exec($ch);
print_r(json_decode($response, true));Response
{
"type": "house",
"lot_area_m2": 150,
"existing_area": false,
"max_density_percent": 80,
"max_footprint_m2": 120,
"table": "Bảng 2.8 QCVN 01:2021/BXD",
"max_floor_area_ratio": 7,
"max_gross_floor_area_m2": 1050,
"floors_at_max_density": 8,
"far_note": "Detached housing: floor area ratio ≤ 7 (note to the table).",
"setback": {
"min_setback_m": 0,
"road_width_m": 12,
"height_m": 12,
"assumed_height": "house height not given: < 19 m assumed",
"table": "Bảng 2.7 QCVN 01:2021/BXD",
"rule": "Minimum setback from the red line of roads of district level and above; a podium and a tower use their own heights."
},
"notes": [
"Linear interpolation between the two nearest lot areas of the table.",
"The approved detailed plan (quy hoạch chi tiết 1/500, 1/2000), urban design or local architecture regulation prevails; these national maxima apply where no such plan sets the indicator."
],
"legal": [
{
"text": "QCVN 01:2021/BXD (Thông tư 01/2021/TT-BXD)",
"effective_from": "2021-07-05",
"effective_to": "2026-12-31"
},
{
"text": "QCVN 01:2026/BXD (Thông tư 46/2026/TT-BXD, 30/6/2026)",
"effective_from": "2027-01-01"
}
],
"disclaimer": "Reference calculation, not legal advice; check the official text and the approved local plan.",
"reviewed": "2026-11-11"
}
Use cases
- Show the buildable footprint on a real-estate listing
- Pre-check a house design in an architecture or construction app
- Estimate gross floor area before a feasibility study
- Explain density and setback rules to buyers
FAQ
Which table is used for a 150 m² house lot?
Bảng 2.8 of QCVN 01:2021/BXD, interpolated between 100 m² (90%) and 200 m² (70%): 80%, so at most 120 m² of footprint.
Does the local plan override these values?
Yes. The approved detailed plan (1/500, 1/2000), urban design or local architecture regulation prevails; QCVN 01 gives the national maximum where no such plan sets the value.
What changes in 2027?
QCVN 01:2026/BXD takes effect on 1/1/2027 with the same density, setback and floor-area values (tables renumbered); plans approved earlier keep the old standard until their term ends.
Related APIs
JSON Validator
Check JSON syntax with exact line and column of errors, and validate data against a JSON Schema (draft 4, 7, 2019-09 or 2020-12).
{ }JSON Formatter
Pretty print JSON with 0-8 spaces or tabs, minify it, or sort object keys recursively. Syntax errors are reported with line and column.
CSVCSV to JSON
Convert CSV into an array of JSON objects using the header row, with delimiter auto-detection, number and boolean typing, and row-level errors.