Planning Authority API: CMDA, DTCP or local planning area
Yes. The LandLens planning authority API takes a latitude and longitude in Tamil Nadu and returns the planning authority whose boundary covers it: the Chennai Metropolitan Development Authority, a local planning area under DTCP, or a corporation, municipality, town panchayat or panchayat, with its code and jurisdiction type. That is the office a building plan or layout goes to. It costs 1 credit a point, and nothing when no planning area covers the point.
https://verified.realestate/api/v1/tools/planning_authority- Price
- 1 credit per answer
- Source
- State planning boundary layer
- Coverage
- Tamil Nadu
- Answers in
- Usually under a second
Example
curl -X POST https://verified.realestate/api/v1/tools/planning_authority \
-H "Authorization: Bearer $LANDLENS_KEY" \
-H "Content-Type: application/json" \
-d '{"lat":12.901,"lng":80.2279}'
{
"ok": true,
"status": "ok",
"data": {
"found": true,
"authority": "Chennai Metropolitan Development Authority",
"authority_code": "CMDA",
"jurisdiction_type": "metropolitan",
"jurisdiction_label": "Metropolitan",
"lpa_name": null,
"authority_layer_district_name": "Kanchipuram",
"authority_layer_taluk_name": "Tambaram",
"authority_layer_village_name": "Sholinganallur"
},
"credits_charged": 1
}
A real answer from the API for a point in Sholinganallur, Chennai, with the reading note left out. The layer still names the pre 2019 district and taluk.
What it returns
One call, one answer.
| Field | What it holds |
|---|---|
authority, authority_code | The planning authority in full and its short code, e.g. Chennai Metropolitan Development Authority, CMDA. |
jurisdiction_type, jurisdiction_label | The kind of jurisdiction: metropolitan, lpa (a local planning area), corporation, municipality, town_panchayat or panchayat. |
lpa_name | The local planning area's name, when the point is in one. |
authority_layer_district_name, authority_layer_taluk_name, authority_layer_village_name | The place names as the boundary layer records them, to confirm which polygon matched. For the parcel's current district, taluk and village use resolve_parcel. |
message | On no match: the general rule for land outside any planning area. |
Inputs
The JSON body of the POST is the arguments. Send the plot's latitude and longitude in decimal degrees.
| Argument | Type | What to send |
|---|---|---|
latrequired |
number | Latitude in decimal degrees |
lngrequired |
number | Longitude in decimal degrees |
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/planning_authority \
-H "Authorization: Bearer $LANDLENS_KEY" \
-H "Content-Type: application/json" \
-d '{"lat":12.901,"lng":80.2279}'
import os, requests
r = requests.post(
"https://verified.realestate/api/v1/tools/planning_authority",
headers={"Authorization": f"Bearer {os.environ['LANDLENS_KEY']}"},
json={
"lat": 12.901,
"lng": 80.2279
},
timeout=20,
)
body = r.json()
print(body["status"], body["credits_charged"], body["data"])
const res = await fetch("https://verified.realestate/api/v1/tools/planning_authority", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.LANDLENS_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"lat": 12.901,
"lng": 80.2279
}),
});
const body = await res.json();
console.log(body.status, body.credits_charged, body.data);
My plot is at 12.9010, 80.2279. Is it under CMDA or DTCP, and where do I apply for building approval?
Your AI checks the planning boundary at the point and tells you the price first.
Responses
Every answer has the same envelope. What status can say for this call:
| status | What it means |
|---|---|
ok | A planning area covers the point. Charged 1 credit. |
not_found | No planning area covers the point, the point is outside Tamil Nadu, or the layer could not be read. Nothing is charged. |
invalid_args | lat or lng was missing. Nothing ran. |
insufficient_credits | The account has too few credits. Nothing ran. |
Where the data comes from
The boundary layer of planning jurisdictions in Tamil Nadu: the Chennai Metropolitan Area, the notified local planning areas, and the local bodies.
Points anywhere in Tamil Nadu. A point outside the state is refused at once.
The layer is held as published and changes when a planning area is notified or extended. The district, taluk and village names it carries are its own and can predate the 2019 district reorganisation.
The point is tested against the boundary polygons in our copy of the layer. A numeric code in front of a village name is removed, and the layer's own place names are returned under names that say where they came from.
Who uses it
Owners and builders
Know which office a building plan or layout goes to before hiring an architect.
Listing sites
Say "CMDA" or "DTCP" against a listing from its map pin, rather than from the seller's word.
Advocates
Check that the approval in a file was issued by the authority that actually governs the land.
Limits and good practice
- The layer's district, taluk and village names can be out of date. Use resolve_parcel for the parcel's current names.
- Outside the Chennai Metropolitan Area and the notified planning areas, layouts and buildings normally come under DTCP with the local body issuing the permit. That is the general rule, and the answer says so rather than claiming a reading.
Pricing
Each point costs 1 credit. A point no planning area covers is free. Credits come from the same LandLens wallet as the chat and the minis. How billing works.
For thousands of calls a month, a portfolio sweep or a platform built on these registers, we quote a customised bulk price, with invoicing to match.
Questions
Is there an API to check whether a plot is under CMDA or DTCP?
Yes. Send the latitude and longitude and the answer names the planning authority, its code and the kind of jurisdiction.
What is a local planning area?
An area notified for planning under DTCP with its own master plan, such as the area around a large town. jurisdiction_type is lpa and lpa_name names it.
Why does the district in the answer differ from the patta?
The planning layer keeps its own place names, some from before the 2019 district split. The authority is right; take the district from resolve_parcel.
How much does it cost?
Each point costs 1 credit. Nothing is charged when no planning area covers it.
Updated 22 Oct 2026 · OpenAPI description