Site Scan API: what surrounds a site, and what it allows
Yes. The LandLens Site Scan API reads a site before the land call. Send a map point, or a survey number with its village, and it resolves the parcel on the state survey map (survey, village, taluk, district, extent, PIN code), then returns the registered projects within 1, 2 and 5 km with units, stage and distance, the planning permissions and approvals in the same village by year, the guideline value of the nearest rated streets and the registered prices paid nearby, and the floor space the development rules allow for the plot (FSI, built-up area, coverage, setbacks, height, premium FSI) for the road width, use and scale you give. With layers true it also reads One Map's point checks. It is part of LandLens Intelligence on the enterprise plan and costs nothing per call.
https://verified.realestate/api/v1/tools/intel_site_scan- Price
- Free
- Source
- Survey map, project register, approvals, deeds
- Coverage
- Any point or survey number in Tamil Nadu
- Answers in
- A few seconds; with layers, up to about 25 seconds more
Example
curl -X POST https://verified.realestate/api/v1/tools/intel_site_scan \
-H "Authorization: Bearer $LANDLENS_KEY" \
-H "Content-Type: application/json" \
-d '{"lat":12.901,"lng":80.2279,"radius":1,"limit":3}'
{
"ok": true,
"status": "ok",
"data": {
"found": true,
"site": {
"found": true,
"resolved_by": "pin",
"lat": 12.901,
"lng": 80.2279,
"label": "SF 722",
"survey_number": "722",
"sub_division": null,
"notation": "",
"village": "Sholinganallur- 1",
"taluk": "Sholinganallur",
"district": "Chennai",
"register": "rural",
"block": null,
"ward": null,
"extent_sqm": 19342.74,
"extent_source": "measured",
"has_outline": true,
"outline_note": null,
"revenue_codes": {
"district_code": "02",
"taluk_code": "11",
"village_code": "013"
},
"pin_code": {
"pincode": "600119",
"office": "Sholinganallur S.O"
},
"message": null,
"filings_on_this_survey": [
{
"rera_id": "TNRERA/29/BLG/0298/2025",
"name": "SIGNATURE TOWERS",
"url": "https://verified.realestate/landlens/intel/projects/TNRERA/29/BLG/0298/2025",
"surveys": [
"S.No 552/1A1, 553/2B1A. 553/2B2A, 742/2, 742/1 (Part), 743/3B, 74..."
],
"metres": 0,
"kind": "mixed",
"count": 770,
"registered": "2025-09-09",
"exact": false,
"how": "filed at this point"
}
],
"typed": null,
"place_match": null
},
"supply": {
"ready": true,
"rings_km": {
"1": {
"km": 1,
"projects": 5,
"units": 1085,
"plots": 0,
"under_construction": 2,
"late": 1,
"developers": 5
},
"2": {
"km": 2,
"projects": 29,
"units": 3157,
"plots": 236,
"under_construction": 12,
"late": 5,
"developers": 26
}
},
"table_ring_km": 1,
"in_ring": 5,
"by_kind": {
"apartment": 4,
"mixed": 1
},
"by_stage": {
"under_construction": 2,
"completed": 1,
"unknown": 1,
"not_started": 1
},
"rows": [
{
"rera_id": "TNRERA/29/BLG/0298/2025",
"name": "SIGNATURE TOWERS",
"url": "https://verified.realestate/landlens/intel/projects/TNRERA/29/BLG/0298/2025",
"developer": "Serene Estates Pvt Ltd (Land Owner)",
"developer_url": "https://verified.realestate/landlens/intel/developers/10197",
"kind": "mixed",
"kind_label": "Mixed use",
"units": 770,
"plots": null,
"stage": "under_construction",
"stage_label": "Under construction",
"is_completed": false,
"late": false,
"registered": "2025-09-09",
"completion": "2027-12-31",
"village": "Sholinanallur",
"pincode": "600097",
"extent_sqm": 30755.1,
"metres": 0,
"lat": 12.901,
"lng": 80.2279
}
],
"capped": false
},
"approvals": {
"ready": true,
"cited_by_filings_here": [],
"village": "Sholinganallur- 1",
"in_village": {
"total": 8,
"by_year": {
"2015": 1,
"2012": 1,
"2009": 1,
"2006": 1,
"2005": 1,
"2003": 3
},
"registers": [
{
"label": "City planning permissions",
"count": 8
}
],
"rows": [
{
"register": "Planning permission",
"authority": "CMDA",
"number": "C3(S)/11049/2015",
"other_number": "C3(S)/11049/2015",
"date": null,
"year": "2015",
"applicant": "M/S. LANCCOR HOLDING LTD.",
"where": null,
"category": null,
"url": "https://verified.realestate/cmda/planning-permissions/show/c3%28s%29-11049-2015/ms-lanccor-holding-ltd",
"facts": null
}
]
},
"why": null
},
"prices": {
"guideline": {
"ready": true,
"method": "Rated by street; the nearest rated streets to the parcel",
"revision": "2024-07-01",
"note": "Nearest street guideline rate for this parcel",
"why": null,
"rows": [
{
"name": "KALAIGNAR KARUNANIDHI SALAI",
"category": "Residential Special Type - II",
"rate_per_sqft": 6600.3,
"published": "71,045/ Sq.Metre",
"distance_m": 1,
"effective": "2024-07-01",
"office": "Neelankarai",
"village": "Sholinganallur- 1"
}
]
},
"registered": {
"ready": true,
"projects_near": 29,
"projects_with_deeds": 21,
"deeds": 330,
"first_sales": 487,
"median_per_sqft": 8194.16,
"low": 1570,
"high": 18376,
"latest_month": "Oct 2026",
"rows": [
{
"name": "SIGNATURE TOWERS",
"url": "https://verified.realestate/landlens/intel/projects/TNRERA/29/BLG/0298/2025",
"metres": 0,
"deeds": 0,
"median_per_sqft": null,
"units_registered": 203,
"first_sales": 199,
"latest_month": "Oct 2026",
"filed_units": 770
}
],
"why": null
}
},
"floor_space": {
"ready": true,
"inputs": {
"plot_area": 19342.74,
"area_from": "measured",
"road_width": 9,
"use": "residential",
"scale": "large",
"highrise": false,
"flags": {
"cba": false,
"aquifer": false,
"crz2": false,
"crz3": false,
"redhills": false,
"tod": false,
"pending": true
}
},
"figures": {
"max_fsi": 2,
"achievable_fsi": 2,
"built_up_sqm": 38685.48,
"footprint_sqm": 18313.15,
"floors": "S+3/G+2",
"floors_n": 3,
"height_m": 12,
"coverage_pct": 100,
"coverage_actual_pct": 94.68,
"front_setback_m": 3,
"rear_setback_m": 1.5,
"side_setback_m": 1.5,
"osr_sqm": 1934.27,
"is_highrise": false,
"premium_eligible": true
},
"premium_fsi": {
"bonus_pct": 30,
"fsi": 2.6,
"extra_sqm": 11605.64,
"charge_pct": 50,
"tod_discount": false
},
"why": null,
"zone_flags_pending": true,
"note": "Computed from the Tamil Nadu Combined Development and Building Rules for the inputs given; zone flags marked pending were not read for this call, so a coastal, aquifer or airport restriction may still apply. Pass layers true to read them."
},
"as_of": {
"projects": "2026-10-22 04:01:29",
"projects_on_register": 27175,
"approvals_latest": "2026-09-29"
},
"page_url": "https://verified.realestate/landlens/intel/site-scan?lat=12.901&lng=80.2279&radius=1",
"export_url": "https://verified.realestate/landlens/intel/site-scan/export?lat=12.901&lng=80.2279&radius=1",
"layers": {
"read": false,
"note": "Pass layers true to read the point layers (26 checks, up to 25 seconds)."
}
},
"credits_charged": 0
}
A real answer from the API, trimmed for length: one row of each table, two rings and no documents are shown, and the floor space rules and the list of available layers are left out. Links are shown on the live host.
What it returns
One call per site. found is false (status not_found) when no pin or survey was given, or the survey number could not be placed.
| Field | What it holds |
|---|---|
site | The parcel: survey number and sub-division, village, taluk, district, rural or urban register, extent in square metres and how it was measured, revenue codes, PIN code, and the filings that stand on this survey. |
supply | Projects, units, plots, under construction, late and developers within 1, 2 and 5 km, and the project table for the ring asked (radius), by kind and stage. |
approvals | Planning permissions and approvals in the same village by year and register, with the rows and any cited by filings here. |
prices.guideline | The nearest rated streets: name, classification, rate per square foot, the rate as published, distance and revision. |
prices.registered | Registered prices paid in nearby projects: median, low and high per square foot, and the projects behind them. |
floor_space | For the plot: maximum and achievable FSI, built-up area, footprint, floors, height, coverage, setbacks, OSR, and premium FSI with its charge, with the rules applied. |
layers | With layers true: each point check (coast, aquifer, airport, heritage, water bodies and the rest) with its verdict, and the ones still pending. Without it, the checks available. |
as_of | When the project register was read and the latest approval held. |
page_url, export_url | The same site in LandLens. export_url downloads it in a signed-in browser only. |
Ways to call it
A pin or a survey number.
By map point
The parcel under the point and everything around it.
{"lat": 12.901,"lng": 80.2279,"radius": 1,"limit": 3}
By survey number
A survey number placed in its village, with the floor space for your inputs.
{"survey": "5400","village": "T.Nagar","road_width": 12,"use": "residential"}
Inputs
The JSON body of the POST is the arguments.
| Argument | Type | What to send |
|---|---|---|
lat |
number | Latitude of the pin (Tamil Nadu, 7.9 to 13.75). |
lng |
number | Longitude of the pin (75.9 to 81.0). |
survey |
string | A survey number with sub-division, e.g. 5400 or 132/7, when no pin is given. Needs village. |
village |
string | The revenue village or town the survey number is in, e.g. T.Nagar. |
radius |
integer: 1, 2, 5 | The ring the project table lists, in km: 1, 2 (default) or 5. The counts for all three rings always come back. |
plot_area |
number | Plot area in square metres for the floor space figures; default the parcel's recorded extent. |
road_width |
number | Abutting road width in metres; default 9. |
use |
string: residential, commercial, mixed | residential (default), commercial or mixed. |
scale |
string: small, large | small (up to 16 homes) or large; default from the plot. |
highrise |
boolean | Treat as a high rise building for the floor space rules. |
layers |
boolean | Also read the point layers (coast, aquifer, airport, heritage, water and the rest); slower, up to 25 seconds. |
limit |
integer | Projects and approvals rows to return (default 25, at most 100). |
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/intel_site_scan \
-H "Authorization: Bearer $LANDLENS_KEY" \
-H "Content-Type: application/json" \
-d '{"lat":12.901,"lng":80.2279,"radius":1,"limit":3}'
import os, requests
r = requests.post(
"https://verified.realestate/api/v1/tools/intel_site_scan",
headers={"Authorization": f"Bearer {os.environ['LANDLENS_KEY']}"},
json={
"lat": 12.901,
"lng": 80.2279,
"radius": 1,
"limit": 3
},
timeout=60,
)
body = r.json()
print(body["status"], body["credits_charged"], body["data"])
const res = await fetch("https://verified.realestate/api/v1/tools/intel_site_scan", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.LANDLENS_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"lat": 12.901,
"lng": 80.2279,
"radius": 1,
"limit": 3
}),
});
const body = await res.json();
console.log(body.status, body.credits_charged, body.data);
I am looking at land at this pin on OMR in Sholinganallur. What projects are within a kilometre, what are buyers paying nearby, and how much can I build on a 9 metre road?
Your AI scans the site and gives the parcel, the competing projects, the prices and the floor space.
Responses
Every answer has the same envelope. What status can say for this call:
| status | What it means |
|---|---|
ok | The site was read. Each part says what it could not read. |
not_found | No pin or survey number was given, or the survey number could not be placed in that village. message says which. |
scope_denied | HTTP 403, nothing charged. The account behind the credential does not hold the enterprise plan (reason enterprise_plan, with plan_url), Intelligence is paused on the account (access_paused), or the day's allowance of rows read over the API is used (row_limit, with retry_after). |
Where the data comes from
The state survey map for the parcel, the Tamil Nadu real estate project register for the projects around it, the CMDA and the DTCP and panchayat planning permission registers for the approvals, the registration department's guideline register and the registered deeds read for nearby projects for prices, and the Tamil Nadu Combined Development and Building Rules, 2019 for the floor space.
Any point in Tamil Nadu (latitude 7.9 to 13.75, longitude 75.9 to 81.0). A point with no parcel under it still answers the rings and the layers, and says what it could not read.
Each part carries its own date: the project register read, the latest approval held, and the guideline revision.
The parcel is resolved from the pin, or the survey number is placed in its village. Distances are straight lines from the point. Floor space is worked out for the inputs given (road width defaults to 9 metres) and lists every rule it applied. A layer that did not answer in time comes back pending, never clear.
Who uses it
Developers and land teams
Read a site's competition, prices and buildable area in one call before the first meeting with the land owner.
Land brokers
Send a buyer the parcel, the projects around it and what it allows, from a pin.
Lenders and funds
Screen a land deal on supply nearby, paid prices and floor space before commissioning the full study.
Limits and good practice
- Floor space is worked out from the rules for the inputs given. It is a feasibility figure, not a sanction; the road width, use and scale you send change it.
- Distances are straight lines, not road distances.
- Registered prices come only from nearby projects whose deeds have been read. A ring with no deeds read is not a ring with no sales.
- Layers take up to 25 seconds. A layer that did not answer in time is pending, never clear: ask again for it.
Pricing
Site Scan costs nothing per call. LandLens Intelligence is part of the enterprise plan: the plan is the only requirement, and a credential on an account without it is refused with nothing charged. Credits come from the same LandLens wallet as the chat and the minis. How billing works.
Free calls have an hourly and daily allowance. For more than that, or a platform built on these registers, we set up limits and a plan to match.
Questions
Is there an API for land site analysis in Tamil Nadu?
Yes, this one. From a pin or a survey number it returns the parcel, the projects and approvals around it, the prices and the floor space allowed, as JSON over HTTPS or MCP.
How much does it cost?
No credits. It needs the LandLens enterprise plan; without it the call answers scope_denied with the plan page and nothing is charged.
Can I scan a survey number instead of a pin?
Yes. Send survey with its village, for example survey 5400 in T.Nagar.
Does it check CRZ, airport height and water bodies?
With layers true it reads One Map's point checks, coastal zone, aquifer, airport funnel, heritage and water bodies among them. For any one check without the plan, zone_check runs it on its own.
Updated 22 Oct 2026 · OpenAPI description