Compare Plots API: two to four Tamil Nadu plots side by side
Yes. The LandLens compare plots API takes two to four map points in Tamil Nadu and returns each plot side by side: its survey number, village, taluk and district, the planning authority, the guideline rate where one is matched, and six recorded checks (flood inundation, nearby water body, coastal regulation zone, airport height zone, overhead power line and planning land use), with a count of the checks that need attention. One flat price for the whole comparison: 3 credits, waived when fewer than two plots can be read.
https://verified.realestate/api/v1/tools/compare_plots- Price
- 3 credits per answer
- Source
- Survey map, planning and risk layers
- Coverage
- Any plot on the Tamil Nadu survey map
- Answers in
- Usually 10 to 35 seconds
Example
curl -X POST https://verified.realestate/api/v1/tools/compare_plots \
-H "Authorization: Bearer $LANDLENS_KEY" \
-H "Content-Type: application/json" \
-d '{"plots":[{"lat":12.901,"lng":80.2279,"label":"Plot A - Sholinganallur"},{"lat":12.9815,"lng":80.218,"label":"Plot B - Velachery"}]}'
{
"ok": true,
"status": "ok",
"data": {
"found": true,
"count": 2,
"checks": ["flood_inundation", "water_body", "crz", "airport", "ht_line", "land_use"],
"plots": [
{
"label": "Plot A - Sholinganallur",
"lat": 12.901,
"lng": 80.2279,
"survey": "722",
"village": "Sholinganallur- 1",
"taluk": "Sholinganallur",
"district": "Chennai",
"located": true,
"flags": [
{ "check": "flood_inundation", "status": "warning", "detail": null },
{ "check": "water_body", "status": "safe", "detail": "Nearest mapped water body (no name on record) is ~124m away, measured from the parcel..." },
{ "check": "crz", "status": "safe", "detail": "Property is not within any CRZ zone" },
{ "check": "airport", "status": "info", "detail": "Airport influence zone with a height allowance of about 119 m. CMDA practice: buildings..." },
{ "check": "ht_line", "status": "danger", "detail": "TANGEDCO's feeder map shows an 11 kV distribution line (the SATHYAM feeder) within 1 m of..." },
{ "check": "land_use", "status": "info", "detail": "Planning land use recorded at this point: Road. This is what the master plan zones the..." }
],
"attention": 2,
"guideline_rate": null,
"classification": null,
"guideline_match": null,
"authority": "Chennai Metropolitan Development Authority"
},
{
"label": "Plot B - Velachery",
"lat": 12.9815,
"lng": 80.218,
"survey": "85",
"village": "Velacheri (Part 1)",
"taluk": "Velachery",
"district": "Chennai",
"located": true,
"flags": ["..."],
"attention": 2,
"guideline_rate": null,
"classification": null,
"guideline_match": "survey_exact",
"authority": "Chennai Metropolitan Development Authority"
}
]
},
"credits_charged": 3
}
A real answer from the API. The second plot's six checks and the closing note are left out for length.
What it returns
One call, one table. found is false (status not_found, nothing charged) when fewer than two of the plots are on the Tamil Nadu survey map.
| Field | What it holds |
|---|---|
plots[] | One entry per plot, in the order sent. |
label, lat, lng | The plot as you named it. |
survey, village, taluk, district, located | The survey under the point; located is false when the point is not on the survey map. |
flags[] | Six checks: check (flood_inundation, water_body, crz, airport, ht_line, land_use), status (for example safe, info, warning, danger) and detail in words. |
attention | How many of the six need a closer look. A reading order, not a score. |
authority | The planning authority whose rules apply. |
guideline_rate, classification, guideline_match | The guideline rate and its classification where the register matched the survey. Often null; use guideline_value for the rate itself. |
checks, count | The checks run and the number of plots. |
Inputs
The JSON body of the POST is the arguments. Send map points. resolve_parcel or survey_to_location turn a survey number into a point.
| Argument | Type | What to send |
|---|---|---|
plotsrequired |
array | Two to four objects, each with lat, lng and an optional label (e.g. "Plot A - Sholinganallur"). |
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/compare_plots \
-H "Authorization: Bearer $LANDLENS_KEY" \
-H "Content-Type: application/json" \
-d '{"plots":[{"lat":12.901,"lng":80.2279,"label":"Plot A - Sholinganallur"},{"lat":12.9815,"lng":80.218,"label":"Plot B - Velachery"}]}'
import os, requests
r = requests.post(
"https://verified.realestate/api/v1/tools/compare_plots",
headers={"Authorization": f"Bearer {os.environ['LANDLENS_KEY']}"},
json={
"plots": [
{
"lat": 12.901,
"lng": 80.2279,
"label": "Plot A - Sholinganallur"
},
{
"lat": 12.9815,
"lng": 80.218,
"label": "Plot B - Velachery"
}
]
},
timeout=60,
)
body = r.json()
print(body["status"], body["credits_charged"], body["data"])
const res = await fetch("https://verified.realestate/api/v1/tools/compare_plots", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.LANDLENS_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"plots": [
{
"lat": 12.901,
"lng": 80.2279,
"label": "Plot A - Sholinganallur"
},
{
"lat": 12.9815,
"lng": 80.218,
"label": "Plot B - Velachery"
}
]
}),
});
const body = await res.json();
console.log(body.status, body.credits_charged, body.data);
Compare these two plots for me: 12.9010, 80.2279 in Sholinganallur and 12.9815, 80.2180 in Velachery. Which has fewer recorded problems?
Your AI runs the comparison and explains each flag. It will not rank them for purchase; it tells you what to check next on each.
Responses
Every answer has the same envelope. What status can say for this call:
| status | What it means |
|---|---|
ok | At least two plots were read. Charged once for the whole comparison. |
not_found | Fewer than two of the plots are on the Tamil Nadu survey map, or fewer than two points were sent. Nothing is charged. |
invalid_args | plots is missing. |
insufficient_credits | HTTP 402: the balance does not cover the call, with the credits needed and your balance. |
Where the data comes from
The state cadastral boundary layer (to name the survey under each point), the planning authority boundaries, the registration department's guideline register, and the layers behind each check: flood inundation maps, the water body register, the coastal zone management plan, airport height zones, the electricity distribution feeder map and the master plan land use.
Any point on the Tamil Nadu survey map. A point outside Tamil Nadu, or in a gap of the map, is reported as not located and nothing is read for it.
Each layer as last loaded into LandLens, each on its own refresh schedule. A flag reflects what the layer records, not a site visit.
For each point: the survey under it is found, the six checks are run on the point and parcel, the guideline register is matched by survey number and village, and the planning authority is read from its boundary. attention counts the checks whose result needs a closer look.
Who uses it
Buyers with a shortlist
See the recorded problems of each plot on one table before visiting any of them.
Brokers
Send a client a side-by-side of the plots on offer, with the flags each carries.
Property platforms
Offer "compare" on saved plots with the same checks the full verification runs.
Limits and good practice
- Tamil Nadu only. A point off the survey map is reported as not located.
- Six checks, not the full verification. Title, ownership, encumbrance, road access and site condition are not in it.
- attention is a reading order, not a ranking. Do not pick a plot to buy from it.
- guideline_rate is often null here. Call guideline_value on the plot for its rate.
- Each check reads the layer at the point and parcel; a flag says what the layer records, which a site visit should confirm.
Pricing
A comparison costs 3 credits for all the plots together, and nothing when fewer than two can be read. 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 compare land parcels in Tamil Nadu?
Yes, this one. Send two to four map points and get each plot's survey, planning authority and six recorded checks side by side.
Will it tell me which plot to buy?
No. It compares what the records show. Title, price, access and the site itself decide a purchase. Verify My Land (vml) and an encumbrance search (ec_transactions) settle the first of those.
What does a danger on ht_line mean?
The electricity distribution feeder map records a line within a few metres of the parcel. The detail says the voltage and feeder; check the clearance on site.
How long does it take?
Usually 10 to 35 seconds for the whole comparison, longer with four plots.
Updated 22 Oct 2026 · OpenAPI description