CMDA Planning Permission and Completion Certificate API
Yes. The LandLens CMDA approval API searches eight Chennai Metropolitan Development Authority registers by name, file number, permit number, address or village: planning permissions, completion certificates, the unauthorised construction list, locked and sealed buildings, lock and seal notices, registered developers, registered architects, engineers and surveyors (with licence validity), and CMDA government orders. You get up to 15 records with the file and permit numbers, dates, applicant, address, category and, for permits, a link to the record with its approval letter and plan. It costs 1 credit a search, and nothing when no record matches.
https://verified.realestate/api/v1/tools/cmda_check- Price
- 1 credit per answer
- Source
- CMDA's published registers
- Coverage
- About 31,000 planning permits and 6,200 completion certificates
- Answers in
- Usually under a quarter of a second
Example
curl -X POST https://verified.realestate/api/v1/tools/cmda_check \
-H "Authorization: Bearer $LANDLENS_KEY" \
-H "Content-Type: application/json" \
-d '{"query":"Thiruvanmiyur","subject":"planning_permission"}'
{
"ok": true,
"status": "ok",
"data": {
"found": true,
"register": "planning_permission",
"query": "Thiruvanmiyur",
"count": 15,
"total_matches": 712,
"note": "Showing the first 15 of 712 matches; narrow the query for the rest.",
"records": [
{
"file_no": "CMDA/PP/NHRB/S/0273/2026",
"applicant": null,
"permit_no": "OL-03308",
"permit_issued_date": "2026-07-08T18:30:00.000000Z",
"year": 2026,
"village": "Thiruvanmiyur",
"category": "Non High Rise Buildings",
"record_url": "https://verified.realestate/landlens/mini/approvals/cmda/30660"
},
{
"file_no": "CMDA/PP/HRB/S/0834/2025",
"applicant": null,
"permit_no": "OL-03218",
"permit_issued_date": "2026-06-16T18:30:00.000000Z",
"year": 2026,
"village": "Thiruvanmiyur",
"category": "High Rise Buildings",
"record_url": "https://verified.realestate/landlens/mini/approvals/cmda/30733"
}
]
},
"credits_charged": 1
}
A real answer from the API, trimmed to two of the 15 records.
What it returns
One call searches one register and returns up to 15 records. The fields depend on the register.
| Field | What it holds |
|---|---|
register, count, total_matches, note | Which register was searched, how many came back, how many matched in all, and whether more are left. |
planning_permission: file_no, permit_no, permit_issued_date, year, village, category, applicant | The CMDA file and permit numbers, the issue date, the village and the building category (high rise, non high rise and so on). |
planning_permission: record_url | The permit's page in LandLens, which carries the approval letter, the approved plan and the other documents held. |
completion_certificate: cc_number, cc_date, permit_no, permit_date, issued_for, address, applicant | The certificate, its date, the permit it closes and what it was issued for (floors, units, use). |
violation: file_no, owner, address, category, violation, action_taken | The building on the unauthorised construction list and what was done. |
locked_sealed, sealing_notice: file_no, owner, address, locked_sealed_date or notice_date, status, notice_reference | Buildings sealed, and notices served. |
developer: name_address, registration_number, registration_date, validity, registration_expired | A registered developer and whether the registration has lapsed. |
professional: name, profession, education, reg_no, reg_date, validity, licence_expired | A licensed architect, engineer or surveyor and whether the licence has lapsed. |
government_order: go_number, go_ms_number, date, department, subject | A government order that concerns CMDA. |
Inputs
The JSON body of the POST is the arguments. Both are required.
| Argument | Type | What to send |
|---|---|---|
subjectrequired |
string: planning_permission, violation, locked_sealed, sealing_notice, developer, professional, completion_certificate, government_order | Which register: planning_permission, completion_certificate, violation, locked_sealed, sealing_notice, developer, professional or government_order. |
queryrequired |
string | A name, file number, permit number, certificate number, street or village. |
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/cmda_check \
-H "Authorization: Bearer $LANDLENS_KEY" \
-H "Content-Type: application/json" \
-d '{"query":"Thiruvanmiyur","subject":"planning_permission"}'
import os, requests
r = requests.post(
"https://verified.realestate/api/v1/tools/cmda_check",
headers={"Authorization": f"Bearer {os.environ['LANDLENS_KEY']}"},
json={
"query": "Thiruvanmiyur",
"subject": "planning_permission"
},
timeout=20,
)
body = r.json()
print(body["status"], body["credits_charged"], body["data"])
const res = await fetch("https://verified.realestate/api/v1/tools/cmda_check", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.LANDLENS_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"query": "Thiruvanmiyur",
"subject": "planning_permission"
}),
});
const body = await res.json();
console.log(body.status, body.credits_charged, body.data);
Does the building at T.S.No.24, Block 38, Thiruvanmiyur have a CMDA completion certificate? And is its architect still licensed?
Your AI searches the completion certificate and professional registers 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 records matched. Charged 1 credit. |
not_found | No record matched. Nothing is charged. |
invalid_args | query or subject was missing, or a phone number was written into the search. Nothing ran. |
insufficient_credits | The account has too few credits. Nothing ran. |
Where the data comes from
The registers the Chennai Metropolitan Development Authority publishes: planning permissions (the online list from 2022 and the digitised files back to 1989), completion certificates, the violation and locked and sealed building lists, lock and seal notices, and the registers of developers and licensed professionals, with the government orders that concern CMDA.
About 31,000 planning permissions from 1989 to the present, 6,200 completion certificates from 2007, 6,700 registered professionals, 3,000 registered developers, about 990 lock and seal notices, 255 locked and sealed buildings, 194 listed violations and 38 government orders. The Chennai Metropolitan Area only.
Planning permissions are read again every week and completion certificates every night, and a record the authority later prints differently is corrected in place. The violation, sealing and professional registers are read again less often.
Searched in our copy of each register on file and permit numbers, names and addresses. For permits the village read from the approval letter is searched too, and a whole word match on the place or name comes first. A comma separated address that does not match as typed is retried word by word. Phone numbers and emails typed into names are masked.
Who uses it
Flat buyers
Check that a Chennai building has a planning permit and a completion certificate before booking, and that it is not on the violation or sealed lists.
Home loan teams
Match the permit and certificate numbers in a builder's file against the authority's own registers.
Owners hiring professionals
Confirm an architect or engineer is registered with CMDA and that the licence has not lapsed.
Advocates
Quote the permit and completion certificate in a title opinion, and note any sealing notice against the property.
Limits and good practice
- The Chennai Metropolitan Area only. Elsewhere in Tamil Nadu use ppa_approval.
- Dates come back as UTC timestamps at 18:30 on the day before; add five and a half hours for the Indian date (2026-07-08T18:30:00Z is 9 July 2026).
- The applicant is blank on many online permits; the approval letter on the record page names the applicant.
- High rise, non high rise, ordinary building and layout files from the older registers, and CMDA office orders, are in cmda_register.
- No match is not proof that a building is unapproved or unlisted. Search the address several ways.
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 for CMDA approvals?
Yes. Send a file number, permit number, name or village with subject planning_permission and the API returns the permits on record, each linked to its approval letter and plan.
Can I check a CMDA completion certificate by API?
Yes. Use subject completion_certificate with the certificate number, the permit number, the applicant or the address.
Can I check whether an architect is CMDA registered?
Yes. Use subject professional with the name or registration number. licence_expired says whether the validity date has passed.
Does it cover DTCP approvals outside Chennai?
No. Those are in ppa_approval.
How much does it cost?
Each search costs 1 credit. Nothing is charged when no record matches.
Updated 22 Oct 2026 · OpenAPI description