DTCP and Panchayat Planning Permission API
Yes. The LandLens planning permission approval API searches the permits issued through Tamil Nadu's online planning permission system by DTCP, town panchayats and rural panchayats, from 2022 onwards. Search by application or approval number, district, taluk, village, year, approval type or department, and you get each permit's number, department, type, issue date, total fees and links to the approval letter, the approved plan and the demand details, with the village, survey numbers, extent and purpose where the listing records them. About 242,000 permits across 37 districts are held. It costs 1 credit a search, and nothing when no permit matches.
https://verified.realestate/api/v1/tools/ppa_approval- Price
- 1 credit per answer
- Source
- The state online planning permission register
- Coverage
- About 242,000 permits, 2022 onwards
- Answers in
- Usually one to three seconds
Example
curl -X POST https://verified.realestate/api/v1/tools/ppa_approval \
-H "Authorization: Bearer $LANDLENS_KEY" \
-H "Content-Type: application/json" \
-d '{"application_no":"PUK85XHO"}'
{
"ok": true,
"status": "ok",
"data": {
"found": true,
"register": "ppa",
"count": 2,
"total_matches": 2,
"records": [
{
"application_no": "PUK85XHO",
"approval_no": "PUK85XHO",
"approval_type": "Layout Approval",
"department": "DTCP",
"district": "Chengalpattu",
"village": "Chengalpattu",
"year": 2025,
"permit_issue_date": "2025-04-11",
"survey_numbers": "1460/2",
"extent": "0.40.49 Hectare",
"purpose": "Residential",
"total_fees": "156,214.00",
"documents": {
"approval_letter": {"name": "Approval Letter", "url": "https://verified.realestate/planning-permissions/chengalpattu-puk85xho-2025/document/approval-letter"},
"approved_plan": {"name": "Approved Plan", "url": "https://verified.realestate/planning-permissions/chengalpattu-puk85xho-2025/document/approved-plan"},
"demand_details": {"name": "Demand Details", "url": "https://verified.realestate/planning-permissions/chengalpattu-puk85xho-2025/document/demand-details"}
},
"record_url": "https://verified.realestate/landlens/mini/approvals/ppa/1721"
},
{
"application_no": "PUK85XHO",
"approval_no": "PUK85XHO/2025/TCP",
"approval_type": "Layout Approval",
"department": "Rural Panchayat",
"district": "Chengalpattu",
"permit_issue_date": "2025-05-01",
"total_fees": "153,504.00",
"...": "documents and record_url as above"
}
]
},
"credits_charged": 1
}
A real answer from the API, trimmed for length: the filters, narrow_by and disclaimer are left out and the second permit is shortened. The same application number carries a DTCP technical approval and the panchayat's final order.
What it returns
One call returns up to 20 permits, newest first. total_matches says how many matched in all, and on a broad search breakdown shows the mix by type and department.
| Field | What it holds |
|---|---|
records[].application_no, records[].approval_no | The application number and the approval number printed on the order. approval_no is left out when the register prints only a placeholder. |
records[].approval_type, records[].department | Building Plan or Layout Approval, and the sanctioning body: DTCP, Town Panchayat or Rural Panchayat. |
records[].permit_issue_date, records[].year | When the permit was issued. |
records[].district, taluk, village | Where the permit is, as the register records it. Taluk and village are blank on many listings. |
records[].survey_numbers, extent, purpose | The survey numbers, the extent and the use, when the listing carries them. The approval letter always does. |
records[].total_fees | The total fees paid, in rupees. |
records[].documents | Links to the approval letter, the approved plan and the demand details, each with its name. |
records[].record_url | The permit's own page in LandLens, to hand to a person. |
fees_breakdown | The fee heads and amounts, only when exactly one permit matched. |
count, total_matches, narrow_by, breakdown | How many came back, how many matched, which filters you have not used yet, and the mix of types and departments on a broad search. |
Inputs
The JSON body of the POST is the arguments. Send at least one filter. A number on its own finds one permit; a district with a year, a type or a village narrows a place search.
| Argument | Type | What to send |
|---|---|---|
query |
string | Free text matched against the application number, the approval number, the district and the village. |
application_no |
string | The application number, exact or a fragment, e.g. PUK85XHO. |
approval_no |
string | The approval number as printed on the order, or part of it. |
district |
string | District name, e.g. Tiruvallur, Coimbatore |
taluk |
string | |
village |
string | |
year |
integer | The permit year, 2022 onwards. |
approval_type |
string: Building Plan, Layout Approval | Building Plan = a single building permit. Layout Approval = a plotted layout / subdivision. |
department |
string: DTCP, Rural Panchayat, Town Panchayat | Sanctioning department. DTCP = Directorate of Town and Country Planning. |
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/ppa_approval \
-H "Authorization: Bearer $LANDLENS_KEY" \
-H "Content-Type: application/json" \
-d '{"application_no":"PUK85XHO"}'
import os, requests
r = requests.post(
"https://verified.realestate/api/v1/tools/ppa_approval",
headers={"Authorization": f"Bearer {os.environ['LANDLENS_KEY']}"},
json={
"application_no": "PUK85XHO"
},
timeout=30,
)
body = r.json()
print(body["status"], body["credits_charged"], body["data"])
const res = await fetch("https://verified.realestate/api/v1/tools/ppa_approval", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.LANDLENS_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"application_no": "PUK85XHO"
}),
});
const body = await res.json();
console.log(body.status, body.credits_charged, body.data);
Is layout application PUK85XHO in Chengalpattu approved? Who approved it, when, and on which survey number?
Your AI searches the planning permission register 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 | One or more permits matched. Charged 1 credit. |
not_found | No permit matched, or no filter was sent. Nothing is charged. A self-certified building permit number is recognised and explained. |
invalid_args | A phone number was written into a search field. Searches by phone number are refused. |
insufficient_credits | The account has too few credits. Nothing ran. |
Where the data comes from
The permits published on Tamil Nadu's online planning permission approval system: building plan permits and layout approvals sanctioned by the Directorate of Town and Country Planning, town panchayats and rural panchayats.
About 242,000 permits across 37 districts, issued from June 2022 to October 2026: roughly 200,000 building plan permits (most of them from rural panchayats) and 41,500 layout approvals. The Chennai Metropolitan Area is not in this register, because CMDA approves there.
The register is read again every week, every year from 2022 to the present, and a changed permit is updated in place. A permit issued in the last week may not be in it yet.
Searched in our copy of the register, newest permit first. An exact application number is matched first; anything else is matched as a fragment. The approval letter, approved plan and demand details are served from our own file host.
Who uses it
Plot buyers and brokers
Check that a "DTCP approved" layout outside Chennai really has a permit, and open the approved plan to see the plot on it.
Lenders
Pull the approval letter and fees for a building plan before sanctioning a construction loan.
Analysts and developers
Count new layouts and building permits by district and year to read where land is being opened up.
Limits and good practice
- The register starts in 2022. Older approvals were not issued through this system and are not here.
- The Chennai Metropolitan Area is approved by CMDA. Use cmda_register there.
- Many listings carry no village or survey number. The approval letter does; read it before relying on a match.
- A search returns the 20 newest matches. Add a village, a year, a type or a department to reach older ones.
- No match is not proof that a site is unapproved. It may be in another register or before 2022.
Pricing
Each search costs 1 credit. A search that matches nothing 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 layout is DTCP approved?
Yes. Send the approval or application number, or the district and village with approval_type Layout Approval, and the API returns the permits on record with the approval letter and the approved plan.
Does it cover Chennai?
No. Chennai and the metropolitan area are approved by CMDA, which is a separate register and a separate call, cmda_register.
Can I search by survey number?
Not well here, because many listings carry no survey number. layout_lookup and approval_search match permits to a survey number, including numbers read out of the approval letters.
Why does one application number return two permits?
A layout often carries a DTCP technical approval and the panchayat's own order under the same application. Both are returned, each with its department and date.
How much does it cost?
Each search costs 1 credit. Nothing is charged when no permit matches.
Updated 22 Oct 2026 · OpenAPI description