---
title: "Registered transactions (EC)"
method: POST
path: "/api/v1/tools/ec_transactions"
---

# Registered transactions (EC)

`POST /api/v1/tools/ec_transactions`

## Request

- Base URL: `https://verified.realestate`
- URL: `https://verified.realestate/api/v1/tools/ec_transactions`
- Auth: HTTP bearer

The REGISTERED TRANSACTION HISTORY (encumbrance / EC) for a property: every sale, mortgage, gift, partition or release recorded at the sub registrar, with dates, parties and consideration. Use for "pull the EC", "encumbrance certificate", "past transactions", "sale history", "is there a mortgage on this land", "who sold it before", "title chain". FOUR search modes, pick by what the user HOLDS: search_by=survey (default; the revenue codes the parcel lookup or the place-name lookup returns + survey number), search_by=document (the user quotes a registered document number and year, e.g. "doc 2711 of 2019 at Neelankarai SRO": needs document_number + document_year + the SRO, or the revenue codes so the SRO resolves), search_by=plot (apartments and layouts where a survey EC misses: revenue codes + plot_no and/or flat_no), search_by=registration (the user names the SRO and its registration village rather than a revenue village: zone_code + reg_district_code + sro_code + reg_village_code, plus a survey number or a plot / flat number). CALL THIS TOOL EVEN WHEN THE USER HAS NOT SAID WHERE: with too little to search on it returns a chooser the interface opens for them (map, revenue village, SRO village, document number, plot or flat), which is far better than asking them to type codes. Pass everything they DID say, so the chooser opens part-filled. This is a slow live government fetch, so a complete search returns an approval card the user must confirm; it never fetches directly, and you must never present the proposal as if the transactions were already retrieved. Whether an EC is even available for a period is a separate, free availability check. The approved pull returns the rows, a summary (current_owner, ownership_chain, encumbrance_status, red_flags, points_to_note, summary, recommendation) and report_url, a lasting link to the EC and its summary that anyone can open; all of it is the one credit. Returns a proposal, nothing is charged yet; it runs only once the user approves it, and the approved run costs 1 credit.

## Request body

- object
  - `search_by` '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
  - `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
  - `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` 'rural' | 'urban': The parcel character from the parcel lookup. IMPORTANT for city properties: it decides whether the urban register entry of the village is searched first.
  - `town_code` string: Urban parcels: revenue town code from the parcel lookup's land_data (revenue_town_code)
  - `ward_code` string: Urban parcels: ward code from the parcel lookup's land_data (firka_ward_number)
  - `block_code` string: Urban parcels: block code from the parcel lookup's land_data (urban_block_number)
  - `document_number` string: Registered document number (document mode)
  - `document_year` string: Registration year of the document, e.g. 2019 (document mode)
  - `document_type` string: Document type as the SRO lists it. Optional, defaults to a regular document.
  - `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)
  - `zone_code` string: Registration zone code (registration mode)
  - `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)
  - `plot_no` string: Plot number (plot mode)
  - `flat_no` string: Flat / apartment number (plot mode)
  - `from` string: Start date YYYY-MM-DD. Optional, defaults to a wide window.
  - `to` string: End date YYYY-MM-DD. Optional, defaults to today.
  - `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.

## Response `200`

The envelope: ok, status, data, credits_charged, balance_after, request_id

## Other responses

- `401`: No valid credential
- `402`: Not enough credits
- `429`: Rate limit

---

[API](https://skmtc.dev/verified/apis/landlens-tool-api.md) · [All operations](https://skmtc.dev/verified/apis/landlens-tool-api/llms.txt) · [OpenAPI document](https://skmtc.dev/verified/apis/landlens-tool-api/revisions/54f851c86cc1?raw)
