LandLens Home
Land Lens

Welcome Back

Sign in to continue to dashboard

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

Revenue register · QR code and reference number

Patta Verification API: check a patta or TSLR certificate against the register

Yes. certificate_verify takes what is printed on a Tamil Nadu land certificate (the code under the QR on a patta, chitta, A-register or TSLR extract, the full link a QR scanner opened, or the printed reference number) and returns what the revenue register holds for it: the place, survey and sub-division, tenure, land class, extent, assessment, holder, and who signed the extract and until when it is valid. A QR code is decrypted, which only the register can produce, so it checks the paper; a reference number only looks up the parcel it names. It costs 1 credit per certificate read back, and nothing otherwise.

POSThttps://verified.realestate/api/v1/tools/certificate_verify
Price
1 credit per answer
Source
Revenue department register
Coverage
Village and town certificates
Answers in
Usually 1 to 20 seconds

Example

Request
curl -X POST https://verified.realestate/api/v1/tools/certificate_verify \
  -H "Authorization: Bearer $LANDLENS_KEY" \
  -H "Content-Type: application/json" \
  -d '{"code":"URB/02/01/004/001/0018/1017/114"}'
Responsereal answer
{
  "ok": true,
  "status": "ok",
  "data": {
    "found": true,
    "status": "verified",
    "check": "reference",
    "reference": "URB/02/01/004/001/0018/1017/114",
    "parcel": {
      "district": "02", "taluk": "01", "town": "004", "ward": "001",
      "block": "0018", "survey_no": "1017", "subdiv_no": "114"
    },
    "record": {
      "location": [
        { "label": "District", "en": "Chennai", "ta": "சென்னை" },
        { "label": "Taluk", "en": "Tondiarpet", "ta": "தண்டையார்பேட்டை" },
        { "label": "Town", "en": "Tondiarpet (Part 4)", "ta": "தண்டையார்பேட்டை பகுதி 4" },
        { "label": "Ward", "en": "001", "ta": "001" },
        { "label": "Block", "en": "0018", "ta": "0018" }
      ],
      "parcel": { "survey_no": "1017", "sub_div_no": "114", "old_survey_no": null },
      "classification": {
        "tenure": { "ta": "ரயத்துவாரி", "en": "Ryotwari" },
        "utilisation": "வீடு"
      },
      "extent": { "hectare": "0", "are": "2", "sq_metre": "73.0", "total_sqm": "273", "total_sqft": "2,939" },
      "assessment": { "government": "0.25", "municipal": null },
      "signature": { "designation": "Tahsildar", "place": "Tondiarpet taluk", "signed_on": "14-07-2016", "valid_until": "18-11-2024" },
      "family": "urban"
    },
    "caveat": "Compare the register extract above against what is printed on the paper. A mismatch in owner, extent or classification matters more than the check itself."
  },
  "credits_charged": 1
}

A real answer from the API (22 Oct 2026), trimmed: the holder's name, the street and door number and the signing officer's name are left out (the holder is a private individual), with some classification fields and the proves line.

What it returns

status verified with the register's record, or one of the non-answers below. check says which kind of check ran.

FieldWhat it holds
statusverified, not_found, rural_reference, unreadable or unreachable.
checkbarcode (the QR payload decrypted: the paper came from the register) or reference (the parcel the printed reference names was looked up: the entry is confirmed, not the paper).
provesWhat this check establishes, in words you can show.
record.locationDistrict, taluk, town or village, ward and block, each in English and Tamil.
record.parcelsurvey_no, sub_div_no, old_survey_no, street and door_no.
record.classificationtenure, land_class, soil, irrigation, taram and utilisation.
record.extenthectare, are, sq_metre, and the total in square metres and square feet.
record.assessment, record.signatureThe assessment, and who signed the extract, their designation, when, and the validity date.
record.holder, record.remarksThe holder as the register writes it, and the register's remarks.
reference, parcel, barcodeWhat was looked up.
cachedtrue when the answer came from a recent read of the same certificate.
message, caveatOn a non-answer, what it means. not_found is not proof of forgery.

Inputs

The JSON body of the POST is the arguments. One string, as printed or scanned.

ArgumentTypeWhat to send
coderequired string The long code under the QR, the full link a QR scanner opened, or the reference number printed on the certificate (e.g. URB/02/01/004/001/0018/1017/114).

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/certificate_verify \
  -H "Authorization: Bearer $LANDLENS_KEY" \
  -H "Content-Type: application/json" \
  -d '{"code":"URB/02/01/004/001/0018/1017/114"}'

Responses

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

statusWhat it means
okstatus verified: the register returned a record. Charged 1 credit.
not_foundstatus not_found (the register returned nothing, which is not proof of forgery), rural_reference, unreadable or unreachable. Nothing is charged.
invalid_argscode is missing.

Where the data comes from

Register

The Tamil Nadu revenue department's land register that issues patta, chitta, A-register and Town Survey Land Register (TSLR) extracts, and its decoder for the encrypted payload printed under each extract's QR code.

Coverage

QR codes on village and town certificates. Town (urban) reference numbers can be looked up; a village (rural) reference number names the application, not the land, so nothing can be looked up from it.

How current

Live. Each certificate is read from the register when you ask. A certificate read in the last 12 hours may be served from our cache, and cached says so.

How we read it

A QR payload is sent to the register's decoder and comes back as the extract it was printed from. A town reference number is split into district, taluk, town, ward, block, survey and sub-division, and that parcel is read from the town survey register.

Who uses it

Law firms

Read a patta or TSLR the vendor handed over back from the register, and compare it field by field.

Lenders

Check the patta in a loan file by its QR code before disbursal.

Property platforms

Let a seller upload a patta and verify its QR code before the listing goes live.

Limits and good practice

  • Never call a certificate fake or genuine on this alone. For an authenticity comparison against the official record, order a certified copy.
  • not_found is not proof of forgery: a re-keyed or newer barcode series reads the same way. Confirm with the issuing taluk office.
  • A reference number check confirms the register entry, not that the paper came from the register.
  • A village (rural) certificate reference names the application, not the land, so nothing can be looked up from it. Use the QR code or the patta number.

Pricing

1 credit per answer

Each certificate read back costs 1 credit; every non-answer is 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 API to verify a Tamil Nadu patta?

Yes, this one. Send the code under the patta's QR, the scanned link, or the printed reference number, and the register's record comes back.

How much does it cost?

1 credit per certificate read back. Nothing when the register returns nothing or the code cannot be read.

Does a verified answer prove the patta is genuine?

A verified QR code shows the paper came out of the register. Compare its printed fields with the record returned: a mismatch in holder, extent or classification is what matters.

Why can my village patta reference not be checked?

A rural certificate reference records the application (year, serial, district), not the land. Use the QR code, or look up the patta number with fetch_land_record.

Updated 22 Oct 2026 · OpenAPI description