LandLens Home
Land Lens

Welcome Back

Sign in to continue to dashboard

By continuing, you agree to our Terms, Privacy Policy & Refund Policy

Registration department records · read live

Encumbrance Certificate API for Tamil Nadu

Yes. LandLens reads the Tamil Nadu Registration Department's encumbrance records live for any property, by survey number, document number, plot or flat, or sub registrar village. You get back every registered transaction in the period (sales, mortgages, releases, gifts, partitions) with dates, parties, consideration, a written summary of ownership and charges, and a report link you can share. A pull costs 1 credit, and is refunded if no transactions come back.

POSThttps://verified.realestate/api/v1/tools/ec_transactions
Price
1 credit on approval
Source
Registration department encumbrance records
Coverage
Every sub registrar office in the state
Answers in
Quote at once; the pull usually within a minute

Example

Request
curl -X POST https://verified.realestate/api/v1/tools/ec_transactions \
  -H "Authorization: Bearer $LANDLENS_KEY" \
  -H "Content-Type: application/json" \
  -d '{"search_by":"survey","rev_district_code":"03","rev_taluk_code":"14","rev_village_code":"196","rev_village_name":"Kavanoor","survey_number":"65","sub_division":"4B","rural_urban":"rural","from":"2005-01-01","to":"2024-12-31"}'
Responsereal answer
{
  "ok": true,
  "status": "proposal",
  "data": {
    "proposal": true,
    "action": "ec_transactions",
    "label": "Pull the registered transaction history for survey 65/4B in KAVANOOR",
    "details": [
      { "k": "Searched under", "v": "KAVANOOR, Kundrathur taluk, Kancheepuram district" },
      { "k": "Period", "v": "01 Jan 2005 to 31 Dec 2024" },
      { "k": "Sub registrar office", "v": "Tambaram Joint 1" }
    ],
    "cost": 1,
    "note": "Live fetch from the registration department, it can take a minute. Charged only if transactions come back."
  },
  "credits_charged": 0,
  "next": {
    "tool": "approve_action",
    "arguments": { "action": "ec_transactions", "params": { "survey_number": "65", "sub_division": "4B", "...": "..." } }
  }
}

A real quote from the API, trimmed for length. Approving it starts the pull; job_status returns the rows.

What it returns

The first call returns a quote, with status proposal. Send its next block to approve_action within 30 minutes and the pull runs in the background: you get a job_id, and job_status hands back the result below once it is delivered.

FieldWhat it holds
transactionsEvery registered entry in the period: date, document number, the nature of the deed, the executant and the claimant (in Tamil, with English where the record gives it), consideration, extent and the survey numbers the deed names.
countHow many entries came back.
summaryA plain reading of the rows: current_owner, ownership_chain, encumbrance_status, red_flags, points_to_note, summary and recommendation. It is written by a model from the rows; the rows are the record.
security_interestsEvery entry whose wording reads as a mortgage, a deposit of title deeds or an othi, matched in English and Tamil, with its document number and date. security_interest_rows is the count.
report_urlA lasting link to the EC and its summary that anyone can open, to keep on a loan file or send to a client.
ec_pdf_urlThe certificate as the department issued it, when the route that answered produced one.
sroThe sub registrar office the entries were read from, which is what a certified copy is ordered against.
search_by, searched_surveyWhat was actually searched, so the reach of the rows is never in doubt. A document search lists that document's entries only, not later charges on the land.

Ways to call it

Pick the mode by what you hold. Every mode returns the same quote first.

By survey number

The default. The revenue codes come free from resolve_parcel (a map point) or resolve_revenue_codes (district, taluk and village names).

{"search_by": "survey","rev_district_code": "03","rev_taluk_code": "14","rev_village_code": "196","survey_number": "65","sub_division": "4B","rural_urban": "rural"}

By document number

For a deed you already hold. Name the office, or send the revenue codes so the office resolves itself.

{"search_by": "document","document_number": "2711","document_year": "2019","sro_name": "Neelankarai"}

By plot or flat

For apartments and layouts, where a survey search returns the whole block. Add the survey number to narrow it.

{"search_by": "plot","rev_district_code": "03","rev_taluk_code": "14","rev_village_code": "196","plot_no": "12","flat_no": "B2"}

By sub registrar village

When you know the office and its own village list rather than the revenue village. Zone, district, office and village codes come from sro_lookup.

{"search_by": "registration","zone_code": "…","reg_district_code": "…","sro_code": "…","reg_village_code": "…","survey_number": "65"}

Inputs

The JSON body of the POST is the arguments. Nothing is strictly required: a call with too little to search on answers not_found with what is missing, and charges nothing.

ArgumentTypeWhat to send
search_by string: survey, document, plot, registration How to search. Default survey.
rev_district_code string Revenue district code (survey and plot modes; resolves the SRO in document mode)
rev_taluk_code string Revenue taluk code
rev_village_code string Revenue village code
survey_number string Survey number, e.g. 178 (survey mode; optional extra filter in plot mode)
sub_division string Subdivision, e.g. 5A. Optional.
rural_urban string: rural, urban "rural" or "urban", as resolve_parcel returns it. For a city property it decides whether the town survey entry of the village is searched first, so send it.
from string Start date YYYY-MM-DD. Optional, defaults to a wide window.
to string End date YYYY-MM-DD. Optional, defaults to today.
document_number string Registered document number (document mode)
document_year string Registration year of the document, e.g. 2019 (document mode)
sro_code string SRO code (document and registration modes; from the free SRO lookup when the user names the office)
sro_name string SRO name (document and registration modes)
plot_no string Plot number (plot mode)
flat_no string Flat / apartment number (plot mode)
block_code string Town survey parcels: the block, from resolve_parcel's land_data.
document_type string Document type as the SRO lists it. Optional, defaults to a regular document.
reg_district_code string Registration district code (registration mode)
reg_village_code string Registration village code as the SRO lists it (registration mode)
reg_village_name string Registration village name (registration mode)
rev_district_name string Revenue district name, improves the primary route
rev_taluk_name string Revenue taluk name
rev_village_name string Revenue village name
town_code string Town survey parcels: the revenue town code from resolve_parcel's land_data.
ward_code string Town survey parcels: the ward, from resolve_parcel's land_data.
whatsapp string Optional WhatsApp number with country code (e.g. 919876543210). On a busy register the department emails the certificate instead of showing it; with a number it is forwarded there when it arrives.
zone_code string Registration zone code (registration mode)

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; the quote, the approval and the job status are chained for you.

curl -X POST https://verified.realestate/api/v1/tools/ec_transactions \
  -H "Authorization: Bearer $LANDLENS_KEY" \
  -H "Content-Type: application/json" \
  -d '{"search_by":"survey","rev_district_code":"03","rev_taluk_code":"14","rev_village_code":"196","rev_village_name":"Kavanoor","survey_number":"65","sub_division":"4B","rural_urban":"rural","from":"2005-01-01","to":"2024-12-31"}'

Responses

Every answer has the same envelope. What status can say for this call:

statusWhat it means
proposalThe quote. Nothing is charged. Approve it by sending next.arguments to approve_action within 30 minutes, unchanged.
queuedWhat approve_action answers (HTTP 202), with a job_id. Ask job_status every 30 to 60 seconds; its data.status reads running until the pull ends in done or failed.
doneIn job_status data.status: the payload holds the transactions, summary and report link, and credits_charged says what the pull cost.
failedIn job_status data.status: the pull could not be completed, with the reason in error. The credit held when it started is returned.
not_foundToo little to search on (codes or survey number missing). The answer lists what it already has and how to get the rest.
insufficient_creditsHTTP 402 at approval, with the credits needed, your balance and where to top up.

Where the data comes from

Register

The encumbrance index of the Tamil Nadu Registration Department: the same entries a sub registrar office certifies when it issues an encumbrance certificate.

Coverage

Every revenue village and sub registrar office in Tamil Nadu, for the period you ask for. Village survey numbers, town survey numbers (with ward and block), plots and flats in layouts and apartment blocks, and a single registered document by its number and year.

How current

Live. Each approved pull reads the department's index at that moment, so a deed shows as soon as the office has indexed it. Nothing is served from a cache.

How we read it

The pull searches the office that holds the property, and when that comes back empty it retries at the office directly and then through the state record service, saying which route answered. When the department will not show a long period on screen and emails the certificate instead, the result says so, and a WhatsApp number you pass gets the certificate when it arrives.

Who uses it

Banks and housing finance companies

Run the EC at login rather than waiting for the advocate's report: open mortgages and missing releases show up before the file reaches credit.

Law firms

Start a title opinion from the full registered chain, with document numbers to order certified copies against, and the report link on the file.

Property platforms

Check that the seller on a listing is the last registered owner, and flag an unreleased mortgage before the buyer pays an advance.

Buyers and their advisers

Ask an AI assistant connected to LandLens for the EC in plain words, read the summary, and keep the report link.

Limits and good practice

  • Survey mode needs revenue codes, not names. Get them free: resolve_parcel from a map point, resolve_revenue_codes from district, taluk and village names.
  • Town survey numbers repeat across wards and blocks. For a city parcel send town_code, ward_code and block_code, or the search can read a different parcel.
  • An EC lists what was registered. An equitable mortgage a bank recorded only with CERSAI, an unregistered agreement or an oral partition will not appear in it. Run the CERSAI API alongside it for lender charges.
  • A quote lives 30 minutes. Approve it with the arguments exactly as returned; an edited quote is refused.
  • On a busy office the department sometimes emails the certificate instead of showing it. Pass whatsapp (with country code) to have it forwarded when it lands.
  • The summary is a reading aid, not a legal opinion. Read the deed types in the rows before stating a property is unencumbered.

Pricing

1 credit on approval

A pull costs 1 credit, held when it starts and returned if no transactions come back. The quote, availability checks and the code lookups before it are free. Credits come from the same LandLens wallet as the chat and the minis. How billing works.

Calling at volume?

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.

WhatsApp 99961 29996

Questions

Is there an official TNREGINET API for encumbrance certificates?

The Registration Department does not offer a public developer API for its encumbrance index; its portal is built for one person searching one property. LandLens reads that index for you and returns the entries as JSON, over plain HTTPS or as an MCP tool your AI assistant can call.

How much does an EC pull cost through the API?

A pull costs 1 credit, and it is returned automatically when no transactions come back. Getting the quote is free, and so are the code lookups you make before it.

How far back does the encumbrance search go?

As far as the from and to dates you send, within what the department holds in its online index. Leave them out and a wide window is searched.

Can I search by document number instead of survey number?

Yes. Use search_by document with the document number, its year and the sub registrar office. The result lists that document's own entries, not every later deed on the property.

Does it work for apartments and layout plots?

Yes. Use search_by plot with the plot number or flat number. A survey search on an apartment block returns every flat's deeds, which is rarely what you want.

How does it fit with a legal opinion or a certified copy?

The rows carry the document numbers and the office, which is what a certified copy is ordered against, and the report link can sit on the file the advocate reads.

Updated 22 Oct 2026 · OpenAPI description