OSR Fee Calculator API: open space reservation in rupees
Yes. The LandLens OSR fee API works out the open space reservation for a layout or sub-division in Tamil Nadu under TNCDBR 2019. Send the site area (square metres, square feet or acres) and the guideline value of the land, with the jurisdiction (CMDA, DTCP urban or DTCP rural) and the kind of development, and you get the open space area, whether paying a fee in lieu is allowed, the fee in rupees and the area it is worked on, whether the land must be handed over by gift deed, who maintains it, and the rule basis. It costs nothing.
https://verified.realestate/api/v1/tools/osr_fee- Price
- Free
- Source
- TNCDBR 2019, rules 41 and 47
- Coverage
- Tamil Nadu, CMDA and DTCP areas
- Answers in
- Instant
Example
curl -X POST https://verified.realestate/api/v1/tools/osr_fee \
-H "Authorization: Bearer $LANDLENS_KEY" \
-H "Content-Type: application/json" \
-d '{"site_area":2,"site_unit":"acre","glv":1500,"glv_unit":"per_sq.ft","jurisdiction":"DTCP_URBAN"}'
{
"ok": true,
"status": "ok",
"data": {
"found": true,
"osr_applies": true,
"site_area_sqm": 8093.71,
"osr_area_sqm": 809.37,
"osr_area_sqft": 8711.99,
"fee_payable_rs": 8224240.31,
"fee_computed_on_sqm": 509.37,
"fee_option_available": true,
"must_reserve_land": false,
"gift_deed_required": true,
"maintenance_by": "Local Body",
"after_master_plan_cutoff": false,
"existing_addition_relaxation": false,
"jurisdiction": "DTCP_URBAN",
"dev_type": "RESIDENTIAL",
"rule_basis": "OSR applies with a choice: reserve 10% of the site as open space and hand it over to the local body by gift deed, OR pay the fee in lieu shown here.",
"needs": null
},
"credits_charged": 0
}
A real answer from the API for a 2 acre residential layout in a DTCP urban area at a guideline value of Rs 1,500 per sq ft, with the rule note left out.
What it returns
One call. Read osr_applies and fee_option_available first.
| Field | What it holds |
|---|---|
osr_applies | Whether any open space is due. False for 3,000 sq m or less. |
site_area_sqm, osr_area_sqm, osr_area_sqft | The site and the open space due. |
fee_option_available, must_reserve_land | Whether a fee in lieu may be paid, or land must be set aside. |
fee_payable_rs, fee_computed_on_sqm | The fee in rupees and the area it is worked on. Null when no guideline value was sent. |
gift_deed_required, maintenance_by | Whether the land goes to the local body by gift deed, and who maintains it. |
after_master_plan_cutoff, existing_addition_relaxation | Which branch of the rule the sub-division date and development status put the site in. |
rule_basis, needs, note | The answer in words, what is still needed for a rupee figure, and the rule citation. |
Inputs
The JSON body of the POST is the arguments. Send site_area with its unit, and glv for the rupees.
| Argument | Type | What to send |
|---|---|---|
site_arearequired |
number | The total site area, in site_unit. |
site_unit |
string: sq.m, sq.ft, acre | sq.m (default), sq.ft or acre. |
glv |
number | The guideline value of the land, for the fee in lieu. Without it no rupee figure comes back. |
glv_unit |
string: per_sq.m, per_sq.ft | per_sq.m (default) or per_sq.ft. |
jurisdiction |
string: CMDA, DTCP_URBAN, DTCP_RURAL | CMDA (default), DTCP_URBAN or DTCP_RURAL. |
dev_type |
string: RESIDENTIAL, COMMERCIAL, INDUSTRIAL, INSTITUTIONAL, GOVERNMENT | Defaults to RESIDENTIAL. |
dev_status |
string: NEW, REDEVELOPMENT, EXISTING | Defaults to NEW. |
existing_coverage |
number | Existing built-up coverage percent (0 to 100). Only read when dev_status is EXISTING. |
subdiv_date |
string | The date the land was sub-divided (YYYY-MM-DD), which decides the master plan cut-off branch. |
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/osr_fee \
-H "Authorization: Bearer $LANDLENS_KEY" \
-H "Content-Type: application/json" \
-d '{"site_area":2,"site_unit":"acre","glv":1500,"glv_unit":"per_sq.ft","jurisdiction":"DTCP_URBAN"}'
import os, requests
r = requests.post(
"https://verified.realestate/api/v1/tools/osr_fee",
headers={"Authorization": f"Bearer {os.environ['LANDLENS_KEY']}"},
json={
"site_area": 2,
"site_unit": "acre",
"glv": 1500,
"glv_unit": "per_sq.ft",
"jurisdiction": "DTCP_URBAN"
},
timeout=15,
)
body = r.json()
print(body["status"], body["credits_charged"], body["data"])
const res = await fetch("https://verified.realestate/api/v1/tools/osr_fee", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.LANDLENS_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"site_area": 2,
"site_unit": "acre",
"glv": 1500,
"glv_unit": "per_sq.ft",
"jurisdiction": "DTCP_URBAN"
}),
});
const body = await res.json();
console.log(body.status, body.credits_charged, body.data);
I have 2 acres in a DTCP area with a guideline value of Rs 1,500 a sq ft. How much OSR do I pay, or do I have to give the land?
Your AI works out the OSR and the fee in lieu. It is free.
Responses
Every answer has the same envelope. What status can say for this call:
| status | What it means |
|---|---|
ok | The OSR was worked out. |
not_found | The site area was zero or missing. Nothing is charged. |
invalid_args | site_area was missing. Nothing ran. |
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
Rule 41(1) of the Tamil Nadu Combined Development and Building Rules 2019 for a building site and rule 47(6) for a layout, unchanged by the amendments up to G.O.(Ms) No. 201 of 19 December 2025.
Any site in Tamil Nadu, under CMDA or DTCP. The guideline value is supplied by the caller; guideline_value returns it for a survey number or street.
Follows the rules as amended to December 2025.
Nil for the first 3,000 sq m. From 3,000 to 10,000 sq m, 10% as open space, or a fee in lieu equal to the guideline value of a tenth of the area above 3,000 sq m. Above 10,000 sq m, 10% as land with no fee option, except for an addition to an existing development. Industrial and institutional sites keep the space without a gift deed.
Who uses it
Layout promoters
Compare giving 10% of the land against paying the fee in lieu before planning the plots.
Land buyers
Budget the OSR on a site before buying it for development.
Architects and consultants
Put the OSR figure and the rule behind it in a feasibility note.
Limits and good practice
- An estimate for planning. The sanctioning authority fixes the final demand.
- The 10% is worked on the whole site as entered; the authority measures it net of the layout roads.
- The fee moves with the guideline value you send. Get it from guideline_value for the village or street.
Pricing
The OSR fee calculator costs nothing. Free calls have their own allowance per hour and per day, counted across every key and connected app on the account. 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 to calculate OSR charges in Tamil Nadu?
Yes. Send the site area and the guideline value and get the OSR area, the fee in lieu in rupees and whether land must be gifted, under TNCDBR 2019.
Can I pay instead of giving OSR land?
Between 3,000 and 10,000 sq m, yes: fee_option_available is true and fee_payable_rs gives the amount. Above 10,000 sq m the land must be given, except for an addition to an existing development.
Is OSR charged on a small plot?
No. The first 3,000 sq m of any site is nil, so osr_applies is false at or below it.
How much does it cost?
It costs nothing, within the account's free call allowance.
Updated 22 Oct 2026 · OpenAPI description