Building Value API: PWD plinth area rates for Tamil Nadu
Yes. The LandLens building value API values a building's structure on the Tamil Nadu Public Works Department's plinth area rates, the working the Registration Department uses for the building in a property: a rate per square metre for each floor by its wall construction, joinery and roof, less depreciation for its age from the published table, plus the regional percentage (20% in and around Chennai), with portico, garage and compound wall added. You get each floor's value and depreciation and the total. It costs nothing.
https://verified.realestate/api/v1/tools/building_value- Price
- Free
- Source
- PWD Common Schedule of Plinth Area Rates
- Coverage
- Every region of Tamil Nadu, rate periods since 2013
- Answers in
- Instant
Example
curl -X POST https://verified.realestate/api/v1/tools/building_value \
-H "Authorization: Bearer $LANDLENS_KEY" \
-H "Content-Type: application/json" \
-d '{"period":"25","region":"1","building_type":"7000801","area_unit":"sqft","age":10,"construction":"4-4-9","ground_area":1200,"upper_floors":1,"compound_wall_length":120}'
{
"ok": true,
"status": "ok",
"data": {
"ok": true,
"found": true,
"period": "16-Aug-25 To 15-Aug-26",
"region": "Chennai corporation limits and belt area of 32 Km around Chennai corporation limits",
"region_addition_pct": 20,
"age_years": 10,
"floors": [
{ "floor": "Ground Floor", "area_sqm": 111.48, "rate_per_sqm": 13175, "value": 1468749, "depreciation": 140442, "net": 1328307 },
{ "floor": "First Floor", "area_sqm": 111.48, "rate_per_sqm": 12310, "value": 1372319, "depreciation": 131221, "net": 1241098 }
],
"total_floor_value": 2841068,
"total_depreciation": 271663,
"net_floor_value": 2569405,
"portico_value": 0,
"garage_value": 0,
"compound_wall_value": 171907,
"net_building_value": 2741312,
"regional_addition": 548262,
"total_building_value": 3289574,
"notes": [],
"basis": "Common Schedule of Plinth Area Rates for the Valuation of Buildings, Public Works Department, as applied by the Registration Department. Structure only; land value is separate. Amenities and flooring are not included in this figure. Indicative, not a certified valuation."
},
"credits_charged": 0
}
A real answer from the API, with the calculator link left out.
What it returns
One call, one valuation. found is false (status not_found) when the region, period or floors cannot be valued, with the reason in error.
| Field | What it holds |
|---|---|
floors[] | Each floor: floor, area_sqm, rate_per_sqm, value, depreciation and net. rate_per_sqm is null when the schedule rates no such construction. |
total_floor_value, total_depreciation, net_floor_value | The floors added up, before and after depreciation. |
portico_value, garage_value, compound_wall_value | The extras, when given. |
net_building_value, regional_addition, total_building_value | The net value, the regional percentage on it, and the total. |
period, region, region_addition_pct, age_years | What the valuation was worked on. |
notes | Plain lines on anything valued at nil, with the nearest combinations the schedule does rate. |
basis, calculator_url | The schedule used and what the figure leaves out, and the web calculator. |
Ways to call it
Describe the building floor by floor, or in one line when every floor is built the same way.
One construction for the whole building
construction is material-wood-roof (4-4-9 is cement mortar walls, teak joinery and an RCC framed roof), with the ground floor area and how many floors sit above it.
{"period": "25","region": "1","building_type": "7000801","area_unit": "sqft","age": 10,"construction": "4-4-9","ground_area": 1200,"upper_floors": 1}
Floor by floor
One entry per floor (basements too) with its own area, material, wood and roof.
{"period": "25","region": "1","building_type": "7000801","area_unit": "sqft","age": 10,"floors": [{"floor_id": "1","area": 1200,"material": "4","wood": "4","roof": "9"},{"floor_id": "2","area": 1000,"material": "4","wood": "4","roof": "9"}]}
Inputs
The JSON body of the POST is the arguments. period, region, building_type, area_unit and age are required. period 25 is the current one. Not every material, joinery and roof combination carries a rate; notes names the nearest that do.
| Argument | Type | What to send |
|---|---|---|
periodrequired |
string: 25, 24, 23, 22, 21, 16, 15, 12, 9, 3, 2, 1 | Rate period. 25 = 16-Aug-25 To 15-Aug-26; 24 = 16-Aug-24 To 15-Aug-25; 23 = 16-Aug-23 To 15-Aug-24; 22 = 16-Aug-22 To 15-Aug-23; 21 = 16-Sep-21 To 15-Sep-22; 16 = 16-Aug-20 To 15-Sep-21; 15 = 16-Aug-19 To 15-Aug-20; 12 = 16-Aug-18 To 15-Aug-19; 9 = 16-Aug-17 To 15-Aug-18; 3 = 16-Aug-16 To 15-Aug-17; 2 = 01-Aug-14 To 07-Oct-16; 1 = 02-Jan-13 To 02-Jan-14. Use the first for a present-day value. |
regionrequired |
string: 1, 2, 3, 5, 4, 6 | 1 = Chennai corporation limits and belt area of 32 Km around Chennai corporation limits (+20%); 2 = Coimbatore,Erode and Tiruppur corporation limits (+15%); 3 = Trichy,Madurai,Salem,Tirunelveli,Thoothukudi and Vellore corporation limits (+10%); 5 = Nilgiris,Kodaikanal , Yercaud and other hills area (+10%); 4 = Municipal limits (+5%); 6 = Others (+0%) |
building_typerequired |
string: 7000801, 7000802, 7000803 | 7000801 = independent house, 7000802 = flat, 7000803 = other building type (godown, garage, thatched), which is valued on a single rate for the whole area |
area_unitrequired |
string: sqm, sqft | Unit of every area and length given |
agerequired |
integer | Age of the building in completed years, 0 to 60 |
construction |
string: 1-1-1, 1-1-2, 1-1-3, 1-1-4, 1-1-5, 1-1-6, 1-1-7, 1-1-8, 1-2-1, 1-2-2, 1-2-3, 1-2-4, 1-2-5, 1-2-6, 1-2-7, 1-2-8, 1-2-9, 1-3-1, 1-3-2, 1-3-3, 1-3-4, 1-3-5, 1-3-6, 1-3-7, 1-3-8, 1-3-9, 1-4-1, 1-4-2, 1-4-3, 1-4-4, 1-4-5, 1-4-6, 1-4-7, 1-4-8, 1-4-9, 2-1-1, 2-1-2, 2-1-3, 2-1-4, 2-1-5, 2-1-6, 2-1-7, 2-1-8, 2-1-9, 3-1-1, 3-1-2, 3-1-3, 3-1-4, 3-1-5, 3-1-6, 3-1-7, 3-1-8, 3-1-9, 3-4-1, 3-4-2, 3-4-3, 3-4-4, 3-4-5, 3-4-6, 3-4-7, 3-4-8, 3-4-9, 4-1-9, 4-2-9, 4-3-9, 4-4-9, 4-8-9, 5-1-1, 5-1-2, 5-1-3, 5-1-4, 5-1-5, 5-1-6, 5-1-7, 5-1-8 | Instead of floors: one construction for the whole building, as material-wood-roof ids (e.g. 4-4-2 = Cement Mortar walls, Teak joinery, RCC Slab roof). Only these published combinations carry a rate. |
ground_area |
number | Instead of floors: plinth area of the ground floor (for building_type 7000803, the whole building) |
upper_floors |
integer | Instead of floors: how many floors above the ground floor, 0 to 48 |
upper_area |
number | Instead of floors: plinth area of EACH upper floor; omit when equal to the ground floor |
basements |
integer | Instead of floors: basements, 0 to 4 |
basement_area |
number | Instead of floors: plinth area of each basement; omit when equal to the ground floor |
floors |
array | One entry per floor, including basements |
portico_area |
number | Balcony or portico projecting outside the face of the building, optional |
garage |
object | Optional garage |
compound_wall_length |
number | Length of the compound wall, optional |
other_class |
string: 1, 2, 3 | Only for building_type 7000803: 1 = Godowns; 2 = Garage; 3 = Thatched |
other_area |
number | Only for building_type 7000803: total area of the building |
Code
Set LANDLENS_KEY to your key. In an AI app, connect https://verified.realestate/mcp once and ask in plain words instead. In Postman, download this API's collection, import it (File, Import) and set apiKey.
curl -X POST https://verified.realestate/api/v1/tools/building_value \
-H "Authorization: Bearer $LANDLENS_KEY" \
-H "Content-Type: application/json" \
-d '{"period":"25","region":"1","building_type":"7000801","area_unit":"sqft","age":10,"construction":"4-4-9","ground_area":1200,"upper_floors":1,"compound_wall_length":120}'
import os, requests
r = requests.post(
"https://verified.realestate/api/v1/tools/building_value",
headers={"Authorization": f"Bearer {os.environ['LANDLENS_KEY']}"},
json={
"period": "25",
"region": "1",
"building_type": "7000801",
"area_unit": "sqft",
"age": 10,
"construction": "4-4-9",
"ground_area": 1200,
"upper_floors": 1,
"compound_wall_length": 120
},
timeout=20,
)
body = r.json()
print(body["status"], body["credits_charged"], body["data"])
const res = await fetch("https://verified.realestate/api/v1/tools/building_value", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.LANDLENS_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"period": "25",
"region": "1",
"building_type": "7000801",
"area_unit": "sqft",
"age": 10,
"construction": "4-4-9",
"ground_area": 1200,
"upper_floors": 1,
"compound_wall_length": 120
}),
});
const body = await res.json();
console.log(body.status, body.credits_charged, body.data);
What is the building value of my 10-year-old two-storey house in Chennai? 1,200 sq ft on each floor, cement mortar walls, teak doors and windows, RCC framed roof, 120 ft of compound wall.
Your AI fills in the schedule codes, values each floor and gives you the total with depreciation. It is free.
Responses
Every answer has the same envelope. What status can say for this call:
| status | What it means |
|---|---|
ok | The building was valued. Read notes for any floor valued at nil. |
not_found | The region or period is not one the schedule has, or no floor had an area, or a godown, garage or thatched class has no rate in that period. The reason is in error. |
invalid_args | A required input (period, region, building_type, area_unit or age) is missing. |
free_limit_reached | The account has used its free calls for the hour or the day. retry_after says how many seconds to wait; paid calls keep working. |
Where the data comes from
The Common Schedule of Plinth Area Rates for the Valuation of Buildings, published by the Tamil Nadu Public Works Department and applied by the Registration Department, with its depreciation table and regional additions.
Twelve rate periods from 2 January 2013 to 15 August 2026, and the six regions the schedule names: Chennai and the 32 km belt around it (+20%), Coimbatore, Erode and Tiruppur corporations (+15%), Trichy, Madurai, Salem, Tirunelveli, Thoothukudi and Vellore corporations (+10%), the hills (+10%), municipal limits (+5%) and the rest of the state (+0%). Independent houses, flats, godowns, garages and thatched buildings.
The current period runs from 16 August 2025 to 15 August 2026. A new period is added when the department publishes its rates.
Each floor's plinth area times the rate the schedule publishes for its floor and its material, joinery and roof, less depreciation by the building's age. The regional percentage is added to the net total. Only the combinations the schedule actually rates carry a value; any other is valued at nil and the answer names the nearest rated combinations. The working mirrors the department's own building value calculator.
Who uses it
Valuers and document writers
Put the structure value in a valuation or a sale deed schedule on the same rates the sub registrar uses.
Tax advisers
Value the building separately from the land for a capital gains working, for the period the sale fell in.
Insurers
Get a schedule-based depreciated value of a house before fixing the sum insured.
Limits and good practice
- Structure only. Land is valued separately (guideline_value, or pricemap for the market rate).
- Amenities and flooring are not included.
- Only the combinations of material, joinery and roof the schedule rates carry a value. Any other floor is valued at nil, and notes says which combinations are rated.
- Age runs from 0 to 60 completed years.
- An indicative figure on the published schedule, not a certified valuation.
Pricing
Building value costs nothing. Free calls have their own allowance per hour and per day, counted across every key and connected app on the account, and it is larger once the account has bought credits. Credits come from the same LandLens wallet as the chat and the minis. How billing works.
Free calls have an hourly and daily allowance. For more than that, or a platform built on these registers, we set up limits and a plan to match.
Questions
Is there an API for the PWD building value in Tamil Nadu?
Yes, this one. It applies the PWD plinth area rates, the depreciation table and the regional addition, floor by floor.
Why did a floor come back at zero?
The schedule publishes rates only for certain combinations of wall construction, joinery and roof. A floor in a combination it does not rate is valued at nil, and notes lists the nearest combinations that are rated.
Can I value a building as it stood in an earlier year?
Yes. Pick the rate period by its dates; the periods go back to 2013.
Does it include the land?
No. It values the structure only. Add the land from guideline_value for the government figure.
Does it work for a flat?
Yes, set building_type to 7000802 and give the flat's floor and area. For the registration value of a flat, the composite rate (composite_value) is what the sub registrar applies.
Updated 22 Oct 2026 · OpenAPI description