LandLens Home
Land Lens

Welcome Back

Sign in to continue to dashboard

By continuing, you agree to our Terms, Privacy Policy & Refund Policy

CMDA, DTCP, panchayats and RERA · one search

Building and Layout Approvals by Survey Number API

Yes. The LandLens approval search API takes a survey number (with its village) or a map point and returns every approval our consolidated register holds on that land: CMDA, DTCP, town and village panchayat layout approvals and building permits, completion certificates, and RERA registrations and orders. Results are grouped by place, because the same survey number repeats in hundreds of villages, and each record says whether it sits on this exact sub-division or only on the parent survey, and where its survey numbers were read from. About 327,000 records from five authorities are held. It costs 4 credits a search, and nothing when nothing is recorded.

POSThttps://verified.realestate/api/v1/tools/approval_search
Price
4 credits per answer
Source
CMDA, DTCP, panchayat and RERA registers, combined
Coverage
About 327,000 approval records, five authorities
Answers in
Usually under half a second; a broad survey can take a few seconds

Example

Request
curl -X POST https://verified.realestate/api/v1/tools/approval_search \
  -H "Authorization: Bearer $LANDLENS_KEY" \
  -H "Content-Type: application/json" \
  -d '{"survey":"1460/2","place":"Chengalpattu"}'
Responsereal answer
{
  "ok": true,
  "status": "ok",
  "data": {
    "status": "found",
    "place": {"text": "Chengalpattu", "applied": true, "resolved": true, "matched_name": "Chengalpattu"},
    "totals": {"records": 7, "exact_records": 3, "other_village_records": 5, "places": 4},
    "places": [
      {
        "label": "Chengalpattu",
        "taluk": "Thiruporur",
        "district": "Chengalpattu",
        "precision": "Tied to a government village record",
        "records": 2,
        "exact_records": 2,
        "other_village": false,
        "shown": [
          {
            "authority": "Directorate of Town and Country Planning",
            "authority_short": "DTCP",
            "also_authority": "Village Panchayat",
            "kind": "Layout approval",
            "stance": "approval",
            "number": "DGDLH7R1/2025",
            "date": "2025-10-25",
            "match": "exact",
            "other_village": false,
            "surveys": [{"survey": "1460/2", "exact": true}, {"survey": "1460/1A", "exact": false}, {"survey": "1460/1B", "exact": false}],
            "read_from": "Read from the approval document",
            "record_url": "https://verified.realestate/landlens/mini/approvals/ppa/249023"
          }
        ]
      }
    ],
    "coverage": {
      "authorities": [
        {"authority": "Village Panchayat", "records": 170827, "from": "2023-10-19", "to": "2026-10-09"},
        {"authority": "Chennai Metropolitan Development Authority", "short": "CMDA", "records": 52392, "from": "1989", "to": "2026-08-24"},
        "..."
      ],
      "records": 327150
    },
    "found": true
  },
  "credits_charged": 4
}

A real answer from the API, trimmed for length: one of four places and one record are shown, three of five authorities in coverage are cut, and the query echo, ids and note are left out.

What it returns

One call. Records are grouped under places; read match and other_village on each record before calling it an approval of this land.

FieldWhat it holds
statusfound or empty.
totalsrecords, exact_records (on this sub-division), other_village_records and places.
places[]Each place: label, taluk, district, how precisely its records are located (precision), and the records shown.
places[].shown[].authority, kind, stanceWho issued it (CMDA, DTCP, a panchayat, RERA), what it is (layout approval, building permit, completion certificate, registration, order), and whether it is an approval, a refusal or a dispute.
places[].shown[].number, date, year, valid_until, lapsedThe approval number and date, and its validity where the record gives one.
places[].shown[].matchexact when the record names this survey and sub-division; parent when it names only the parent survey or a sibling sub-division.
places[].shown[].other_villagetrue when the same survey number is in a different village of the taluk or district typed. That is another parcel.
places[].shown[].surveys, read_fromThe survey numbers on the record, which of them matched, and whether they were read from the listing, the approval document or a scanned letter.
places[].shown[].record_url, page, document_urlThe record's page in LandLens and the approval document.
coverageEvery authority searched, with its record count and the first and latest dates held.
noteHow to read exact, parent and other_village matches, or, on an empty answer, why it is not proof that no approval exists.

Inputs

The JSON body of the POST is the arguments. Send survey with place, or lat and lng on their own.

ArgumentTypeWhat to send
survey string The survey number, e.g. 506/1D2, or several separated by commas.
place string The village, taluk or district. Strongly recommended: a bare survey number repeats across the state.
lat number A map point to search from instead, resolved to its parcel first.
lng number

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/approval_search \
  -H "Authorization: Bearer $LANDLENS_KEY" \
  -H "Content-Type: application/json" \
  -d '{"survey":"1460/2","place":"Chengalpattu"}'

Responses

Every answer has the same envelope. What status can say for this call:

statusWhat it means
okOne or more approvals are recorded. Charged 4 credits.
not_foundNothing is recorded in what we hold, or no survey or point was sent. Nothing is charged, and the coverage block still says what was searched.
invalid_argsA phone number was written into a field. Nothing ran.
insufficient_creditsThe account has too few credits. Nothing ran.

Where the data comes from

Register

Our consolidated approvals register: the CMDA planning permissions and completion certificates, the DTCP, town panchayat and village panchayat permits from the state's online planning permission system, and the Tamil Nadu real estate register's registrations and orders, indexed by the survey numbers they name.

Coverage

About 327,000 records: 171,000 village panchayat (from October 2023), 52,000 CMDA (from 1989), 36,000 RERA (from August 2017), 34,000 DTCP (from June 2022) and 34,000 town panchayat (from August 2023). Every answer carries this coverage block, so a caller can say what was searched.

How current

The underlying registers are read every week (CMDA certificates nightly), and survey numbers are read out of new approval letters as they arrive. The coverage block gives each authority's first and latest record.

How we read it

The survey number is matched exactly and on its parent stem. Survey numbers come from the register listing where it gives them, and otherwise are read from the approval letter or the scanned approval document. The place narrows the answer to a village, taluk or district; a map point is resolved to its parcel and locked to its district first.

Who uses it

Plot buyers

Before paying an advance, see whether the survey number the seller gave carries any layout approval, and whether it is on this sub-division or a neighbour's.

Advocates

List every permit, certificate and RERA record on the schedule property for a title opinion, with the authority and date of each.

Lenders

Check that the approval in a loan file is the one recorded on the mortgaged survey number.

Limits and good practice

  • No result is not proof that no approval exists. It means nothing is recorded in the registers listed in coverage, for the years they span.
  • A parent match means the permit names the parent survey or a sibling sub-division, not necessarily this plot.
  • Some records are located only to a taluk or district. precision says so, and such a record cannot be tied to one exact survey.
  • RERA orders and refused applications come back with their stance. They are not approvals.
  • Without place, a survey number matches across the state. Always send the village.

Pricing

4 credits per answer

Each search costs 4 credits. A search that finds nothing is free. Credits come from the same LandLens wallet as the chat and the minis. How billing works.

Calling at volume?

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.

WhatsApp 99961 29996

Questions

Is there an API to check approvals by survey number in Tamil Nadu?

Yes, this one. The government portals look up a permit by its number; this looks up the land and returns every permit, certificate and RERA record that names it.

Which authorities are covered?

CMDA, DTCP, town panchayats, village panchayats and the state real estate register. Each answer's coverage block gives the record count and date span for each.

What is the difference between an exact and a parent match?

Exact means the record names this survey and sub-division. Parent means it names the parent survey or a sibling sub-division, so the approval may be on the land next door.

Why did I get results from another village?

The same survey number exists in many villages. Records flagged other_village are on a different parcel and should not be counted as this land's approval.

How much does it cost?

Each search costs 4 credits. Nothing is charged when nothing is recorded.

Updated 22 Oct 2026 · OpenAPI description