Old Survey Number to New Survey Number API
Yes. The LandLens old survey number API takes an old (pre-resurvey) survey number as a deed or patta prints it, such as 59/1, 59/1PT or R.S. 59/1, and returns the current parcels whose register entry records it as their earlier number: for town land the ward, block, T.S. number and sub-division, with the owner, extent, street and land type the town survey register records. Village land is answered from the A-register in the same way. Scope it to a town or village; a bare number is shared by thousands of parcels. It costs nothing.
https://verified.realestate/api/v1/tools/old_survey_to_current- 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/old_survey_to_current \
-H "Authorization: Bearer $LANDLENS_KEY" \
-H "Content-Type: application/json" \
-d '{"old_survey_no":"59/1","district_code":"35","taluk_code":"13","town_code":"005"}'
{
"ok": true,
"status": "ok",
"data": {
"found": true,
"old_survey_number": "59/1",
"searched_as": "59/1",
"count": 5,
"truncated": false,
"parcels": [
{
"parcel": "Pallavaram, Pallavaram: ward 002 block 0056, TS 32/0",
"district": "Chengalpattu",
"taluk": "Pallavaram",
"town": "Pallavaram",
"ward_code": "002",
"block_code": "0056",
"survey_no": "32",
"subdiv_no": "0",
"district_code": "35",
"taluk_code": "13",
"town_code": "005",
"old_survey_number_on_record": "59/1,2,3,4,5",
"owner": null,
"owner_english": null,
"extent": {
"hectares": 0,
"ares": 44,
"square_metres": 4400,
"square_feet": 47361.16
},
"street": "துரைகண்ணு சாலை",
"door_number": null,
"land_type": "புறம் போக்கு",
"usage": null
},
{
"parcel": "Pallavaram, Pallavaram: ward 002 block 0056, TS 33/0",
"district": "Chengalpattu",
"taluk": "Pallavaram",
"town": "Pallavaram",
"ward_code": "002",
"block_code": "0056",
"survey_no": "33",
"subdiv_no": "0",
"district_code": "35",
"taluk_code": "13",
"town_code": "005",
"old_survey_number_on_record": "61/5 59/1,2,3,4,5",
"owner": null,
"owner_english": null,
"extent": {
"hectares": 0,
"ares": 8,
"square_metres_part": 50,
"square_metres": 850,
"square_feet": 9149.32
},
"street": "துரைகண்ணு சாலை",
"door_number": null,
"land_type": "புறம் போக்கு",
"usage": null
}
],
"source": "Town survey land register (TSLR), old survey number field"
},
"credits_charged": 0
}
A real answer from the API (22 Oct 2026). Five parcels came back; the three in private hands are left out here, and count is shown as returned.
What it returns
One call, a list of current parcels. found is false (status not_found) when no parcel records that old number, or the town name needs choosing.
| Field | What it holds |
|---|---|
parcels[] | Each current parcel the old number became. Town land: parcel (a readable label), ward_code, block_code, survey_no, subdiv_no, with district, taluk, town and their codes. |
parcels[].old_survey_number_on_record | The old number field exactly as the register writes it, often several numbers and PT (part) marks. |
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, usage | The street and door number where recorded, the land type (Nanjai, Punjai, Poramboke) and the use. |
old_survey_number, searched_as | The number you sent, and the form it was searched in. |
count, truncated | How many parcels came back. truncated means more than 60 matched: narrow to a town. |
needs, towns[] | When town_name matches several places, or none: the places to choose from, with their codes. |
source | Which register answered. |
Ways to call it
Scope by codes, or by a town or village name.
By codes
The district, taluk and town codes of a town survey town (or village_code for village land).
{"old_survey_no": "59/1","district_code": "35","taluk_code": "13","town_code": "005"}
By name
A town or village name. When several places share it, the answer lists them to choose from.
{"old_survey_no": "R.S. 59/1","town_name": "Pallavaram"}
Inputs
The JSON body of the POST is the arguments. Only old_survey_no is required, but always scope it to a town or village.
| Argument | Type | What to send |
|---|---|---|
old_survey_norequired |
string | The old survey number as the deed or patta prints it, e.g. 59/1, 59/1PT or R.S. 59/1. |
town_name |
string | Town or village name, for example Pallavaram or a revenue village. Resolved across both registers. |
district_code |
string | Revenue district code, if already resolved |
taluk_code |
string | Revenue taluk code, if already resolved |
town_code |
string | Town code, if already resolved |
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. |
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/old_survey_to_current \
-H "Authorization: Bearer $LANDLENS_KEY" \
-H "Content-Type: application/json" \
-d '{"old_survey_no":"59/1","district_code":"35","taluk_code":"13","town_code":"005"}'
import os, requests
r = requests.post(
"https://verified.realestate/api/v1/tools/old_survey_to_current",
headers={"Authorization": f"Bearer {os.environ['LANDLENS_KEY']}"},
json={
"old_survey_no": "59/1",
"district_code": "35",
"taluk_code": "13",
"town_code": "005"
},
timeout=30,
)
body = r.json()
print(body["status"], body["credits_charged"], body["data"])
const res = await fetch("https://verified.realestate/api/v1/tools/old_survey_to_current", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.LANDLENS_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"old_survey_no": "59/1",
"district_code": "35",
"taluk_code": "13",
"town_code": "005"
}),
});
const body = await res.json();
console.log(body.status, body.credits_charged, body.data);
My parent deed for land in Pallavaram says old survey 59/1. What is the current T.S. number, ward and block?
Your AI finds the town, looks up the old number and lists the current parcels. It is free.
Responses
Every answer has the same envelope. What status can say for this call:
| status | What it means |
|---|---|
ok | At least one current parcel records the old number. |
not_found | No parcel records that old number in the place searched, the number has no digits, or the town name matched several places or none (towns lists them). |
invalid_args | old_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 whose register entry records an old survey number, in every town and village we hold the register for. Parcels whose entry leaves the field blank cannot be found this way; the survey department's correlation statement may still list them.
Read from our copy of the registers, refreshed from the revenue department's registers.
The number is normalised the way deeds write it (R.S., PT for part, spacing) and matched against each old number on record, including entries that list several old numbers in one field. A town name that matches more than one place is answered with the choices, never a guess.
Who uses it
Advocates
Trace a title chain written before the town survey to the parcel the current patta or TSLR names.
EC searches
Get the current T.S. number for a property whose old deeds give only the old survey number, before searching the encumbrance records.
Lenders
Match the schedule of a decades-old parent deed to the parcel being mortgaged today.
Limits and good practice
- Many entries mark the old number PT (part): one old field was split across several current parcels. Expect more than one parcel back.
- A bare old number like 14 is shared across the state. Scope to a town or village.
- Only parcels whose register entry records the old number can be found. When none does, try the survey department's correlation statement (correlation_statement).
- The owner is the register's holder, not proof of title.
Pricing
The old to new 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 convert an old survey number to the new T.S. number in Tamil Nadu?
Yes, this one. Send the old number and the town and you get every current parcel recorded against it, with ward, block, T.S. number and sub-division.
Why did one old number return several parcels?
When a town was surveyed, one old field was often divided among several new parcels, and the register marks each with the old number and PT for part.
Does it work for village land?
Yes. Scope it with the village code (or a village name) and the village A-register's old number field is searched.
What is the difference from survey_history?
survey_history also covers the UDR renumbering of village land and is charged on result. This call reads the old number field of the registers directly and is free.
Updated 22 Oct 2026 · OpenAPI description