New Survey Number to Old Survey Number API
Yes. The LandLens new to old survey number API takes a current town survey parcel (district, taluk and town codes with the T.S. number, and the ward, block and sub-division when known) and returns the old survey number or numbers the town survey register records for it, each split out into a number you can search, with the owner, extent and street. Village land is answered from the A-register's old number field in the same way. It is the step before searching encumbrance records or a title chain written before the resurvey. It costs nothing.
https://verified.realestate/api/v1/tools/current_survey_to_old- Price
- Free
- Source
- Town survey register and A-register, old number field
- Coverage
- Town and village land with an old number on record
- Answers in
- Usually under a second
Example
curl -X POST https://verified.realestate/api/v1/tools/current_survey_to_old \
-H "Authorization: Bearer $LANDLENS_KEY" \
-H "Content-Type: application/json" \
-d '{"district_code":"35","taluk_code":"13","town_code":"005","ward_code":"001","block_code":"0011","survey_no":"66","subdiv_no":"1"}'
{
"ok": true,
"status": "ok",
"data": {
"found": true,
"count": 1,
"truncated": false,
"distinct_blocks": 1,
"ambiguous": false,
"parcels": [
{
"parcel": "Pallavaram, Pallavaram: ward 001 block 0011, TS 66/1",
"district": "Chengalpattu",
"taluk": "Pallavaram",
"town": "Pallavaram",
"ward_code": "001",
"block_code": "0011",
"survey_no": "66",
"subdiv_no": "1",
"old_survey_number": "59/10PT,56/1PT,59/1PT",
"old_survey_numbers": [
{
"as_printed": "59/10PT",
"searchable": "59/10"
},
{
"as_printed": "56/1PT",
"searchable": "56/1"
},
{
"as_printed": "59/1PT",
"searchable": "59/1"
}
],
"extent": {
"hectares": 0,
"ares": 1,
"square_metres_part": 37,
"square_metres": 137,
"square_feet": 1474.65
},
"street": "முத்துசாமி தெரு",
"door_number": null,
"land_type": "புஞ்சை"
}
],
"source": "Town survey land register (TSLR), old survey number field"
},
"credits_charged": 0
}
A real answer from the API (22 Oct 2026). The owner fields (a private holder's name in Tamil and English) are left out here.
What it returns
One call, the matching parcels. Without a sub-division every sub-division of the T.S. number comes back. found is false (status not_found) when the parcel is not in the register.
| Field | What it holds |
|---|---|
parcels[].old_survey_number | The old number field as the register prints it, e.g. 59/10PT,56/1PT,59/1PT. |
parcels[].old_survey_numbers[] | The same, split into individual numbers: as_printed and searchable (PT and R.S. removed). |
parcels[].parcel, ward_code, block_code, survey_no, subdiv_no | The current parcel and where it is. |
parcels[].owner, owner_english | The holder the register records, in Tamil and in English, or null for government land. |
parcels[].extent | The extent in hectares, ares and square metres, with square feet. |
parcels[].street, door_number, land_type | The street and door number where recorded, and the land type. |
distinct_blocks, ambiguous | How many blocks the matches sit in. ambiguous is true when more than one: a town survey number is unique only within its block, so send ward_code and block_code. |
count, truncated | How many parcels came back; truncated when more than 60 matched. |
needs, towns[] | When town_name matches several places, or none: the places to choose from. |
Inputs
The JSON body of the POST is the arguments. survey_no is required. For town land send at least the district, taluk and town codes, or a town_name; add the ward and block to pin one parcel.
| Argument | Type | What to send |
|---|---|---|
district_code |
string | Revenue district code |
taluk_code |
string | Revenue taluk code |
town_code |
string | Town code |
ward_code |
string | Ward code, e.g. 001 |
block_code |
string | Block code, e.g. 0011 |
survey_norequired |
string | The current T.S. number, e.g. 66. |
subdiv_no |
string | The sub-division, e.g. 1. Leave it out for every sub-division of the number. |
village_code |
string | Revenue village code, for village (rural) land |
register |
string | "rural" or "urban", when the place code alone does not say which register is meant. |
town_name |
string | Town or village name, for example Pallavaram or a revenue village. Resolved across both registers. |
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/current_survey_to_old \
-H "Authorization: Bearer $LANDLENS_KEY" \
-H "Content-Type: application/json" \
-d '{"district_code":"35","taluk_code":"13","town_code":"005","ward_code":"001","block_code":"0011","survey_no":"66","subdiv_no":"1"}'
import os, requests
r = requests.post(
"https://verified.realestate/api/v1/tools/current_survey_to_old",
headers={"Authorization": f"Bearer {os.environ['LANDLENS_KEY']}"},
json={
"district_code": "35",
"taluk_code": "13",
"town_code": "005",
"ward_code": "001",
"block_code": "0011",
"survey_no": "66",
"subdiv_no": "1"
},
timeout=30,
)
body = r.json()
print(body["status"], body["credits_charged"], body["data"])
const res = await fetch("https://verified.realestate/api/v1/tools/current_survey_to_old", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.LANDLENS_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"district_code": "35",
"taluk_code": "13",
"town_code": "005",
"ward_code": "001",
"block_code": "0011",
"survey_no": "66",
"subdiv_no": "1"
}),
});
const body = await res.json();
console.log(body.status, body.credits_charged, body.data);
The TSLR for my plot in Pallavaram says ward 001, block 0011, T.S. 66/1. What was its old survey number? I need it for an EC search.
Your AI reads the old numbers from the register and gives you each one to search. It is free.
Responses
Every answer has the same envelope. What status can say for this call:
| status | What it means |
|---|---|
ok | The parcel was found. Check ambiguous before relying on one parcel. |
not_found | No parcel with that number in the register, too few codes were sent, or the town name matched several places or none. |
invalid_args | survey_no is missing. |
free_limit_reached | The account has used its free calls for the hour or the day. retry_after says how many seconds to wait; paid calls keep working. |
Where the data comes from
The town survey land register (TSLR) of Tamil Nadu, whose entry for each parcel records the old survey number the land carried before the town survey, and for village land the revenue A-register's old survey number field.
Every parcel in the towns and villages we hold the register for. Where the register leaves the old number blank, the answer says so; the survey department's correlation statement may still have it.
Read from our copy of the registers, refreshed from the revenue department's registers.
The parcel is read by its codes. The old number field, which often holds several numbers with PT (part) marks, is returned as printed and also split into individual numbers in the form a search expects.
Who uses it
EC searches
Encumbrance records before the resurvey are indexed by the old number. Get it from the current T.S. number, then search both.
Advocates
Link a parent deed that names the old survey number to the parcel in today's patta.
Lenders
Check that the old survey number in the title documents is really the predecessor of the parcel being mortgaged.
Limits and good practice
- Where the register's old number field is blank, nothing can be read from it. Try correlation_statement for the town.
- Read the old number as printed alongside the split numbers. A field like 59/1,2,3 can mean 59/1, 59/2 and 59/3, and the split form may show only 2 and 3.
- A T.S. number repeats across blocks. Without ward_code and block_code, check distinct_blocks.
- The owner is the register's holder, not proof of title.
Pricing
The new to old survey number lookup costs nothing. Free calls have their own allowance per hour and per day. 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 to find the old survey number of a T.S. number in Tamil Nadu?
Yes, this one. Send the town codes with the T.S. number (and ward and block) and you get the old survey numbers the register records for the parcel.
Why do I need the old survey number?
Deeds and encumbrance entries made before the town survey name the old number. A title search has to cover both.
What does PT mean after an old number?
Part. The current parcel is only part of that old survey field; the rest went to other parcels.
What does it cost?
It costs nothing, within the account's free call allowance.
Updated 22 Oct 2026 · OpenAPI description