Patta, Chitta, A-Register and TSLR API for Tamil Nadu
Yes. The LandLens land record API fetches the revenue record of a Tamil Nadu survey number from the government register at the moment you ask: the patta (holders, extent, land class, tax), the chitta, the A-register entry, or the TSLR extract for town survey land. Send the revenue codes and the survey number. It works out whether the parcel is village or town survey land and reads the right register, and returns the record with the holders' names, the extent and, where the register issues one, the PDF copy. It costs 1 credit per record, and nothing when the register holds no record for that survey.
https://verified.realestate/api/v1/tools/fetch_land_record- Price
- 1 credit per answer
- Source
- Revenue department land registers
- Coverage
- Village and town survey land
- Answers in
- Usually 20 to 50 seconds
What it returns
One call, one record. found is false (status not_found) when the register holds nothing for the survey, or when a town survey needs its ward and block.
| Field | What it holds |
|---|---|
found | true when a record came back. |
record_type | patta, chitta, a_register or tslr. ownership_snapshot when the live register was down and the stored copy was used. |
survey_number, sub_division, patta_number | What the record was fetched for. patta_number is set when you fetched by patta number alone. |
rural_urban | rural for village survey land, urban for town survey land. |
village_name, taluk_name, district_name | Where the parcel is. |
lat, lng | A point inside the parcel, where we hold its boundary. |
as_of | How old the extract is: signed_on, valid_till, validity_lapsed and stored_copy_taken_on, where the record carries them. |
record | The register's own answer: the land details (land class, extent, tax, patta number) and the holders with their relations, in Tamil as the register writes them, plus a link to the PDF where one is issued. |
message | On not_found: what to check (the survey, sub-division, ward or block). |
Ways to call it
Pick the record with record_type. auto reads the patta for village land and the TSLR for town survey land.
Patta by survey number
The revenue codes come free from resolve_parcel (a map point) or resolve_revenue_codes (names).
{"record_type": "patta","district_code": "03","taluk_code": "14","village_code": "196","survey_number": "65","sub_division": "4B"}
Patta or chitta by patta number
A village patta can be fetched by patta number with no survey number. A chitta always needs the patta number.
{"record_type": "chitta","district_code": "03","taluk_code": "14","village_code": "196","patta_number": "…"}
TSLR for town survey land
Send the ward and block when you know them. Passing them also tells the API the parcel is town survey land.
{"record_type": "tslr","district_code": "…","taluk_code": "…","village_code": "…","survey_number": "…","ward_code": "…","block_code": "…"}
Inputs
The JSON body of the POST is the arguments. The three revenue codes are required, with a survey number or (for a village patta or chitta) a patta number.
| Argument | Type | What to send |
|---|---|---|
record_type |
string: auto, patta, chitta, a_register, tslr | auto, patta, chitta, a_register or tslr. auto reads the patta for village land and the TSLR for town survey land. |
district_coderequired |
string | Revenue district code |
taluk_coderequired |
string | Revenue taluk code |
village_coderequired |
string | Revenue village / town code |
survey_number |
string | The survey number without the sub-division, e.g. 65. |
sub_division |
string | The sub-division, e.g. 4B. The A-register needs it. |
patta_number |
string | Required for chitta; speeds up patta copy. A village patta can be fetched by patta number alone, with no survey_number. |
ward_code |
string | Urban ward number (TSLR only). Supply it when the parcel is town-surveyed and the ward is known from a deed, a TSLR extract or the user. Passing ward + block also tells this tool the parcel IS urban. |
block_code |
string | Urban block number (TSLR only), e.g. 0045. Use together with 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/fetch_land_record \
-H "Authorization: Bearer $LANDLENS_KEY" \
-H "Content-Type: application/json" \
-d '{}'
import os, requests
r = requests.post(
"https://verified.realestate/api/v1/tools/fetch_land_record",
headers={"Authorization": f"Bearer {os.environ['LANDLENS_KEY']}"},
json={},
timeout=120,
)
body = r.json()
print(body["status"], body["credits_charged"], body["data"])
const res = await fetch("https://verified.realestate/api/v1/tools/fetch_land_record", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.LANDLENS_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({}),
});
const body = await res.json();
console.log(body.status, body.credits_charged, body.data);
Get the patta for survey 65/4B in Kavanoor village, Kundrathur taluk, and tell me the extent and the land class.
Your AI finds the revenue codes, says the price, and reads the patta for you.
Responses
Every answer has the same envelope. What status can say for this call:
| status | What it means |
|---|---|
ok | The record was found. Charged 1 credit. |
not_found | The register holds no record for this survey or patta number, a town survey needs its ward and block, no survey or patta number was sent, or the register and our stored copy both failed to answer (error says which). Nothing is charged. |
invalid_args | A revenue code is missing. |
Where the data comes from
The Tamil Nadu revenue department's land registers: the village patta and chitta, the A-register kept for each survey field, and the Town Survey Land Register (TSLR) for town survey land.
Every revenue village and town in Tamil Nadu that the department has put online. A town survey number repeats across wards and blocks, so a TSLR is fetched for its ward and block.
Live. Each call reads the department's register at that moment. When the register does not answer after a retry, the API returns the recorded holders from the copy of the revenue register we hold, marked as such (record_type ownership_snapshot), with no PDF.
Fetched from the department with the district, taluk and village codes and the survey number. A patta can also be fetched by patta number alone; a chitta needs the patta number. For town survey land, the ward and block are read from the land record when only one fits.
Who uses it
Law firms
Read the current holders from the register before writing a title opinion, and compare them with the vendor in the sale deed.
Lenders
Check that the borrower is the recorded holder and the extent matches the mortgage schedule.
Property platforms
Show the official holder and extent beside a land listing.
Limits and good practice
- The register shows the recorded holder. A patta is evidence of revenue records, not title: read it with the deeds and the EC.
- Holders' names come in Tamil as the register writes them.
- A chitta needs a patta number, and an A-register entry needs the sub-division.
- When record_type is ownership_snapshot, the live register was down and the answer is the recorded holders from our stored copy, with no PDF. Say so when you show it.
- Some extracts carry a validity date that has passed. as_of says so.
Pricing
Each record found costs 1 credit; nothing when the register holds no record for the survey. 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 for Tamil Nadu patta and chitta?
Yes, this one. It reads the revenue department's register live and returns the patta, chitta, A-register or TSLR extract as data, with the PDF where the register issues one, over plain HTTPS or as an MCP tool.
How much does a patta cost through the API?
Each record found costs 1 credit. When the register holds nothing for the survey, nothing is charged.
Can I fetch a patta by patta number instead of survey number?
Yes, for village land. Send patta_number with the three revenue codes and no survey_number. A TSLR and an A-register entry are kept by survey number, so they need one.
Does it cover town survey land in Chennai and other cities?
Yes, through the TSLR. Send ward_code and block_code when you have them; without them the API reads them from the land record where only one ward and block fits.
What happens when the government register is down?
The API retries once, then answers from the copy of the revenue register we hold, with the recorded holders and extents, marked record_type ownership_snapshot and with no PDF.
Updated 22 Oct 2026 · OpenAPI description