Survey Subdivision List API for Tamil Nadu
Yes. The LandLens subdivision list API returns every sub-division the Tamil Nadu revenue register records under a survey number, with the count, for village land and town survey land. Send one sub-division as well and it confirms whether that split exists. It is the call to make before pulling ownership or documents on a bare survey number, because each sub-division is its own parcel with its own owner. It costs 1 credit per call, and nothing when the register lists no sub-divisions.
https://verified.realestate/api/v1/tools/subdivision_list- Price
- 1 credit per answer
- Source
- Revenue A-register and town survey register
- Coverage
- Village and town survey land statewide
- Answers in
- Usually 5 to 15 seconds
Example
curl -X POST https://verified.realestate/api/v1/tools/subdivision_list \
-H "Authorization: Bearer $LANDLENS_KEY" \
-H "Content-Type: application/json" \
-d '{"rev_district_code":"03","rev_taluk_code":"14","rev_village_code":"196","survey_number":"65","sub_division":"4B"}'
{
"ok": true,
"status": "ok",
"data": {
"found": true,
"survey": "65",
"register": "rural",
"subdivision_count": 16,
"subdivisions": [
"1",
"2",
"3A",
"3B",
"3C",
"4A",
"4B",
"5A",
"5B",
"5C",
"6A",
"6B",
"6C",
"7A",
"7B",
"8"
],
"checked_sub_division": "4B",
"checked_exists": true,
"note": "These are the subdivisions the rural register holds for this survey. Write them as survey/subdivision (65/1). Each subdivision is its own parcel and can have a different owner and extent, so ask the user which one is theirs before pulling ownership or documents, and never assume the first. A subdivision missing from this list is not recorded in this register, which usually means an unregistered or very recent split, not that the land does not exist."
},
"credits_charged": 1
}
A real answer from the API (22 Oct 2026).
What it returns
One call, one survey. found is false (status not_found, nothing charged) when the register lists no sub-divisions, the survey is not on record, the sub-division asked for does not exist, or a town survey needs its block.
| Field | What it holds |
|---|---|
subdivisions[], subdivision_count | Every sub-division the register holds for the survey, and how many. Write each as survey/sub-division, e.g. 65/4B. |
survey, register | The survey number read, and which register answered: rural (A-register) or urban (town survey register). |
checked_sub_division, checked_exists | When you sent sub_division: the split checked, and whether it is on the list. |
survey_on_record | On a miss: true when the survey exists but has no separate sub-divisions (a single undivided holding), false when the survey is not on record for that village or town. |
needs_block, blocks, block_count | A town survey number recorded in several blocks, each a different parcel: the blocks to choose from. Send ward_code and block_code. |
ward, block | For a town survey: the ward and block the list belongs to. |
truncated | Set when there are more than 1,000 sub-divisions and the list is cut. |
message | On a miss: what was found and what was not, in plain words. |
Inputs
The JSON body of the POST is the arguments. The three codes and the survey number are required. resolve_revenue_codes or resolve_parcel give the codes at no charge.
| Argument | Type | What to send |
|---|---|---|
rev_district_coderequired |
string | Revenue district code |
rev_taluk_coderequired |
string | Revenue taluk code |
rev_village_coderequired |
string | Revenue village code (town code for an urban parcel) |
survey_numberrequired |
string | The survey number without the sub-division, e.g. 65. 65/4B also works; the part after the slash is read as sub_division. |
sub_division |
string | Optional: one sub-division to confirm, e.g. 4B. The full list comes back either way. |
register |
string: rural, urban | "rural" or "urban": which register the codes belong to. A taluk numbers its villages and its towns separately, and the codes overlap. |
ward_code |
string | Town survey only: the ward (from the located parcel, the patta or the TSLR extract). A town survey number repeats across blocks, each a different parcel, so without the block the answer names the blocks and asks. |
block_code |
string | Town survey only: the block, same sources as ward_code. |
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/subdivision_list \
-H "Authorization: Bearer $LANDLENS_KEY" \
-H "Content-Type: application/json" \
-d '{"rev_district_code":"03","rev_taluk_code":"14","rev_village_code":"196","survey_number":"65","sub_division":"4B"}'
import os, requests
r = requests.post(
"https://verified.realestate/api/v1/tools/subdivision_list",
headers={"Authorization": f"Bearer {os.environ['LANDLENS_KEY']}"},
json={
"rev_district_code": "03",
"rev_taluk_code": "14",
"rev_village_code": "196",
"survey_number": "65",
"sub_division": "4B"
},
timeout=60,
)
body = r.json()
print(body["status"], body["credits_charged"], body["data"])
const res = await fetch("https://verified.realestate/api/v1/tools/subdivision_list", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.LANDLENS_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"rev_district_code": "03",
"rev_taluk_code": "14",
"rev_village_code": "196",
"survey_number": "65",
"sub_division": "4B"
}),
});
const body = await res.json();
console.log(body.status, body.credits_charged, body.data);
How many sub-divisions does survey 65 in Kavanoor village, Kundrathur taluk, have, and is 65/4B one of them?
Your AI resolves the codes, says the price, and lists the sub-divisions.
Responses
Every answer has the same envelope. What status can say for this call:
| status | What it means |
|---|---|
ok | The register lists sub-divisions for the survey (and the one asked for, if any, is among them). Charged 1 credit. |
not_found | No sub-divisions are listed, the survey is not on record, the sub-division asked for is not on the list, the register was unavailable, or a town survey needs its block. Nothing is charged. |
invalid_args | A code or the survey number is missing. |
insufficient_credits | The account does not hold enough credits for the call. |
Where the data comes from
The sub-division list of the Tamil Nadu revenue A-register for village land, and of the town survey land register for urban land, block by block.
Village survey land and town survey land across Tamil Nadu. For a town survey number, which repeats across blocks, the list is given for one ward and block at a time.
For village land the live register is asked at the time of the call, with our copy of the register as the fallback. Town survey lists are read from our copy of the town register.
The survey is classified as village or town land from the cadastral index, then the matching register is asked; a survey that holds both kinds of split in one village is answered by whichever register holds it. "No split recorded" and "no such survey" are kept as different answers.
Who uses it
Advocates
Before a title search on a bare survey number, see how it has been split and ask the client which part is theirs.
Lenders
Confirm that the sub-division on the sale deed exists in the register before relying on it.
Developers
Fill a sub-division dropdown from the register instead of a free text box.
Limits and good practice
- A sub-division missing from the list is not recorded in the register. That usually means an unregistered or very recent split, not that the land does not exist.
- A survey with no separate sub-divisions comes back not_found with survey_on_record true: it is a single holding, not a missing survey.
- A town survey number repeats across blocks. Without ward_code and block_code the blocks are listed and nothing is charged.
- When the live register is down and our copy has no answer, the call says so and charges nothing. Try again later.
Pricing
Each call costs 1 credit when a sub-division list is returned; nothing when the register lists none, the survey is not found, or a town survey needs its block. 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 list the sub-divisions of a survey number in Tamil Nadu?
Yes, this one. Send the revenue codes and the survey number and you get every sub-division the register records, with the count.
Can I check whether a sub-division like 45/2 exists?
Yes. Send sub_division as well. checked_exists says whether it is on the list, and when it is not, nothing is charged.
What does it cost?
Each call costs 1 credit when a list comes back, and nothing otherwise.
Does it work for town survey land?
Yes. Send register urban, and the ward and block when you have them; a town survey number in several blocks returns the blocks to choose from.
Updated 22 Oct 2026 · OpenAPI description