Property Tracker API, ownership and EC change alerts
Yes. The LandLens property tracker API watches a Tamil Nadu property for changes in its recorded ownership and for new deeds registered against it, and alerts you when something changes. Send a short name and the property's location; the first call returns a quote of 6 credits a month; once approved the property is tracked until you stop it. List your tracked properties with the date each was last checked, and run an extra change check on any of them when you need one.
https://verified.realestate/api/v1/tools/property_tracker- Price
- Free to read, quoted to create
- Source
- Revenue records and encumbrance index
- Coverage
- Tamil Nadu properties with a survey number
- Answers in
- Quote at once; checks run nightly
Example
curl -X POST https://verified.realestate/api/v1/tools/property_tracker \
-H "Authorization: Bearer $LANDLENS_KEY" \
-H "Content-Type: application/json" \
-d '{"action":"create","property_name":"Kavanoor plot","lat":12.8421,"lng":80.031}'
{
"ok": true,
"status": "proposal",
"data": {
"proposal": true,
"action": "tracker_create",
"label": "Track \"Kavanoor plot\" for ownership and EC changes",
"params": { "property_name": "Kavanoor plot", "lat": 12.8421, "lng": 80.031 },
"cost": 6,
"recurring": "per month, per property",
"source": "Property Tracker",
"note": "Continuous monitoring of the ownership record and EC, with automatic alerts. Billed 6 credits per month per property; manage or stop anytime in Property Tracker."
},
"credits_quoted": 0,
"credits_charged": 0,
"credits_waived": 0,
"next": { "tool": "approve_action", "arguments": { "action": "tracker_create", "params": { "property_name": "Kavanoor plot", "lat": 12.8421, "lng": 80.031 } } }
}
A real quote from the API, with balance_after and request_id left out. It was not approved.
What it returns
Three actions. create returns a quote (status proposal); list is free; check queues an extra change check.
| Field | What it holds |
|---|---|
proposal, label, params, cost, recurring (create) | The quote: which property, its monthly price and that it recurs. Approve params unchanged. |
trackers[] (list) | Up to ten tracked properties: tracker_id, name, survey, village, district, active, last_owner_check, last_ec_check and next_billing. |
queued (check) | The extra check is running against the live records. |
already_tracking (approve_action) | The same property was already tracked, so no second subscription was made. |
Ways to call it
Pick the action by what you need.
Start tracking
A short name and the property's location. Resolve the parcel first.
{"action": "create","property_name": "Kavanoor plot","lat": 12.8421,"lng": 80.031}
List your tracked properties
Free, with the date of each last check.
{"action": "list"}
Check one now
An extra ownership and EC check on a tracked property, free, at most once an hour per property.
{"action": "check","tracker_id": 70}
Inputs
The JSON body of the POST is the arguments.
| Argument | Type | What to send |
|---|---|---|
actionrequired |
string: list, create, check | "create" (a quote), "list" or "check". |
property_name |
string | create: a short name, e.g. Velachery plot. |
lat |
number | create: latitude of the property. |
lng |
number | create: longitude of the property. |
tracker_id |
integer | check: which tracked property, from list. |
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/property_tracker \
-H "Authorization: Bearer $LANDLENS_KEY" \
-H "Content-Type: application/json" \
-d '{"action":"create","property_name":"Kavanoor plot","lat":12.8421,"lng":80.031}'
import os, requests
r = requests.post(
"https://verified.realestate/api/v1/tools/property_tracker",
headers={"Authorization": f"Bearer {os.environ['LANDLENS_KEY']}"},
json={
"action": "create",
"property_name": "Kavanoor plot",
"lat": 12.8421,
"lng": 80.031
},
timeout=30,
)
body = r.json()
print(body["status"], body["credits_charged"], body["data"])
const res = await fetch("https://verified.realestate/api/v1/tools/property_tracker", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.LANDLENS_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"action": "create",
"property_name": "Kavanoor plot",
"lat": 12.8421,
"lng": 80.031
}),
});
const body = await res.json();
console.log(body.status, body.credits_charged, body.data);
Start tracking my plot at survey 65/4B in Kavanoor for any change in owner or a new deed, and call it "Kavanoor plot".
Your AI resolves the parcel, shows the monthly quote, and starts tracking only after you say yes.
Responses
Every answer has the same envelope. What status can say for this call:
| status | What it means |
|---|---|
proposal | From create: the quote. Nothing is charged. Approve it by sending next.arguments to approve_action within 30 minutes, unchanged. |
ok | From list: your tracked properties. From approve_action: tracking is being set up, or the property was already tracked. |
queued | From check: the extra check is running. |
not_found | No tracked properties, no location or name for create, or no tracker_id for check when you track more than one. |
error | From approve_action: the location has no survey number or office on record, so it cannot be tracked. Nothing is charged. |
insufficient_credits | HTTP 402 at approval, with the credits needed, your balance and where to top up. |
Where the data comes from
The revenue department's ownership records (patta and the town survey register) and the registration department's encumbrance index for the property's survey and office.
Any Tamil Nadu property whose location resolves to a survey number and a sub registrar office. A point with no survey on record cannot be tracked, and nothing is charged for it.
The tracker's checks run every night against the live records, and billing is settled on the same run.
Each check reads the current owner and the encumbrance entries for the property and compares them with what the last check saw. A change is flagged and alerted; nothing changed means nothing is sent.
Who uses it
Owners, including NRIs
Know the day someone registers a deed on your land or the patta changes hands, before it becomes a fight.
Banks and NBFCs
Watch mortgaged properties for a sale or second charge registered behind your back.
Land aggregators
Watch the parcels you are negotiating for, so a quiet sale to someone else does not surprise you.
Limits and good practice
- The tracker watches registered deeds and the revenue record. An unregistered agreement or a deposit of title deeds filed only with CERSAI is not seen.
- It recurs monthly until stopped. Stop or manage it in Property Tracker in LandLens.
- More survey numbers in the same village and office can be added to one tracker on its page in LandLens, not over the API.
- An extra check runs at most once an hour per property.
Pricing
Tracking costs 6 credits a month per property, from approval until you stop it. Listing and extra checks are 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 to monitor a property for ownership changes in Tamil Nadu?
Yes. LandLens tracks a property's recorded owner and its encumbrance entries and alerts you to changes, after you approve a monthly quote.
How much does tracking cost?
6 credits a month per property. Listing your properties and running an extra check are free.
How often is a property checked?
Every night, with an extra check available on demand at most once an hour per property.
How do I stop tracking?
In Property Tracker in LandLens, where every tracked property can be managed or stopped.
Updated 22 Oct 2026 · OpenAPI description