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 · searched by what the permit says

Building Approvals by Street, Address or Name API

Yes. The LandLens approval identifier API searches the consolidated approvals register by what is written on the permit rather than the land under it: street, locality, village, plot or door number, PIN code, block, ward, the applicant or promoter, a permit number, the authority, the kind of record and a year range. Filters combine, and each match comes back with its authority, kind, permit number and date, the address parts, the party and a link to the record. It covers about 171,000 CMDA, DTCP, panchayat and RERA records. A search that carries a permit number costs 1 credit; a search by address or name alone costs more, as the live price list shows. Nothing is charged when nothing matches.

POSThttps://verified.realestate/api/v1/tools/approval_identifier_search
Price
1 to 4 credits per answer
Source
CMDA, DTCP, panchayat and RERA registers, combined
Coverage
About 171,000 records with an address, party or number
Answers in
Usually under half a second

Example

Request
curl -X POST https://verified.realestate/api/v1/tools/approval_identifier_search \
  -H "Authorization: Bearer $LANDLENS_KEY" \
  -H "Content-Type: application/json" \
  -d '{"street":"2nd Avenue","locality":"Anna Nagar"}'
Responsereal answer
{
  "ok": true,
  "status": "ok",
  "data": {
    "found": true,
    "filters": ["street", "locality"],
    "total": 72,
    "shown": 72,
    "records": [
      {
        "authority": "CMDA",
        "kind": null,
        "kind_label": "Building plan approval",
        "permit_number": "OL-03411",
        "permit_date": "2026-08-10",
        "year": "2026",
        "plot": "700",
        "door": "12",
        "street": "2nd Avenue Extension",
        "street_confirmed": false,
        "locality": "Anna Nagar East",
        "block": "6",
        "village": "Periyakudal",
        "party": null,
        "also_by_survey": true,
        "read_from": "Read from the scanned approval letter",
        "record_url": "https://verified.realestate/landlens/mini/approvals/cmda/30601"
      }
    ],
    "note": null,
    "years_swapped": false,
    "status": "found"
  },
  "credits_charged": 4
}

A real answer from the API, trimmed to one of the 72 records, with empty address fields left out.

What it returns

One call returns up to 200 records, newest permit year first. total says how many matched in all.

FieldWhat it holds
total, shown, filtersHow many matched, how many came back, and which filters were applied.
records[].authority, kind, kind_labelCMDA, DTCP, Rural Panchayat, Town Panchayat or RERA, and the kind of record in words (building plan approval, layout approval, completion certificate, RERA registration).
records[].permit_number, permit_date, yearThe permit or certificate number and its date.
records[].plot, door, street, locality, pincode, block, ward, villageThe address as written on the record.
records[].street_confirmedtrue when the street was matched to a named street on the map.
records[].partyThe applicant or promoter, with any phone number or email masked.
records[].also_by_surveytrue when the same record can also be found by survey number with approval_search.
records[].read_fromWhere the address was read from, for example the scanned approval letter.
records[].record_urlThe record's page in LandLens.
note, years_swappedWhether the list was capped, and whether a year range sent backwards was turned round.

Inputs

The JSON body of the POST is the arguments. Send at least one filter; two weak ones together (a street and a locality) narrow far better than one.

ArgumentTypeWhat to send
street string Street or road name, e.g. "4th Avenue".
locality string Locality or neighbourhood, e.g. "Anna Nagar".
village string Revenue village or town.
plot string Plot number as written on the permit.
door string Door or house number.
pincode string Six digit PIN code.
block string Block number.
ward string Ward number.
party string Applicant, owner or promoter named on the permit.
permit_number string Permit, approval or file number, whole or partial.
authority string CMDA, DTCP, Rural Panchayat, Town Panchayat or RERA, written exactly so.
kind string building, layout, completion_certificate, rera_registration or rera_regularisation.
year_from integer Earliest permit year.
year_to integer Latest permit year.

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_identifier_search \
  -H "Authorization: Bearer $LANDLENS_KEY" \
  -H "Content-Type: application/json" \
  -d '{"street":"2nd Avenue","locality":"Anna Nagar"}'

Responses

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

statusWhat it means
okOne or more records matched. Charged the price for the kind of search.
not_foundNothing matched, or no filter was sent. Nothing is charged.
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, indexed by the address, party and number each record was written with: CMDA planning permissions and completion certificates, DTCP, town panchayat and rural panchayat permits, and the state real estate register's registrations and regularisations.

Coverage

About 171,000 records: about 96,000 rural and town panchayat permits, 48,000 CMDA records (6,265 of them completion certificates), 23,700 RERA registrations and regularisations, and 3,300 DTCP permits.

How current

Follows the underlying registers, which are read every week (CMDA certificates nightly). Addresses read from new approval letters are added as the letters are read.

How we read it

Each text filter matches from the start of the field or from the start of any word in it, word by word in order, so "nhrb/n/1138" finds PP/NHRB/N/1138/2019 and a party name matches whatever comes before it. Plot, door, PIN code, block, ward, authority and kind match exactly. Where a street could be placed on the map, the matched street name is returned.

Who uses it

Flat buyers

Find the permit and completion certificate for a building from its door number and street, when nobody can tell you the survey number.

Due diligence teams

List every permit and RERA record that names a promoter, across authorities.

Analysts

Pull the approvals on a street or in a locality over a year range to see how it is being redeveloped.

Limits and good practice

  • Words match as the permit spells them. An initial written out, or a street called by its old name, will not match; try fewer words.
  • authority and kind must be sent exactly as listed above.
  • Up to 200 records come back. Add a filter to narrow a larger result.
  • No match is not proof that no approval exists. To search by the land itself, use approval_search.

Pricing

1 to 4 credits per answer

A search that carries a permit or approval number costs 1 credit. A search by street, locality, village, plot, door, PIN code or name alone is priced higher; GET /api/v1/tools gives both figures live. Nothing is charged when nothing matches. 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 find a building approval by address?

Yes. Send the street with the locality, door or plot number, and the API returns the CMDA, DTCP, panchayat and RERA records written with that address.

Can I look up a CMDA permit number?

Yes. Send it as permit_number, whole or in part; "nhrb/n/1138" finds PP/NHRB/N/1138/2019. A number search is the cheaper price.

Can I search by owner or builder name?

Yes, with party. It matches the applicant or promoter as the register wrote them.

How is this different from approval_search?

approval_search starts from the land, a survey number or a map point. This starts from what is written on the permit, which is the way in when there is no survey number.

How much does it cost?

A search with a permit number costs 1 credit; a search by address or name alone costs more, and the live price list gives the figure. Nothing is charged when nothing matches.

Updated 22 Oct 2026 · OpenAPI description