Price Map Transactions API: the deeds behind a land price report
Yes. The LandLens Price Map transactions API returns the individual registered deeds behind a Price Map report already on your account: registration date, document number, nature of the deed, seller and buyer, property type, extent, value, price per square foot and the survey numbers, split into land and plot sales and apartment (UDS) sales, with the yearly medians and growth rate of each. It reads a report you have already paid for, so it costs nothing.
https://verified.realestate/api/v1/tools/pricemap_transactions- Price
- Free
- Source
- Registered sale deeds behind a saved Price Map
- Coverage
- The Price Map reports on your account
- Answers in
- Usually under a tenth of a second
Example
curl -X POST https://verified.realestate/api/v1/tools/pricemap_transactions \
-H "Authorization: Bearer $LANDLENS_KEY" \
-H "Content-Type: application/json" \
-d '{}'
{
"ok": true,
"status": "ok",
"data": {
"found": true,
"price_map_id": 396,
"survey": "56",
"location": "Kovalam, Thiruporur, Chengalpattu",
"report_link": "/landlens/dashboard/pricemap/396",
"sro_code": "20096",
"sro_name": "Thiruporur",
"land": {
"total": 272,
"priced": 265,
"shown": 250,
"statistics": {
"count": 104,
"median_per_sqft": 1500.13,
"avg_per_sqft": 1484.59,
"p25_per_sqft": 1005.15,
"p75_per_sqft": 1700,
"min_per_sqft": 643.21,
"max_per_sqft": 2610.51,
"cagr": 12.18,
"by_year": [
{ "year": 2021, "median": 1005, "count": 12 },
{ "year": 2022, "median": 1005, "count": 20 },
{ "year": 2023, "median": 1500.13, "count": 22 },
{ "year": 2024, "median": 1600, "count": 20 },
{ "year": 2025, "median": 1700, "count": 13 },
{ "year": 2026, "median": 1785.71, "count": 9 }
]
},
"transactions": [
{
"date": "02-09-2026",
"year": "2026",
"doc_no": "7655",
"nature": "Sale deed",
"type": "Plot",
"seller": "...",
"buyer": "...",
"extent_sqft": 1774.53,
"value": 3549060,
"per_sqft": 2000,
"address": "Plot 18B, Pearl Beach",
"survey_no": "56/16A",
"floor": null,
"family_transfer": false,
"price_bearing": true
}
]
},
"uds": { "total": 35, "priced": 35, "shown": 35, "statistics": { "count": 35, "median_per_sqft": 1600.13, "...": "..." }, "transactions": ["..."] }
},
"credits_charged": 0
}
A real answer from the API on our test account. One deed of 250 is shown, the party names are left out here, the apartment section and the closing note are trimmed.
What it returns
One call, one report. found is false (status not_found) when the account has no completed Price Map, or none matching the id or survey number.
| Field | What it holds |
|---|---|
price_map_id, survey, location, report_link | Which report this is, and a link to open it on the web (a path on the LandLens site, for a signed-in user). |
sro_code, sro_name | The sub registrar office the deeds were read from, which is what a certified copy of any deed is ordered against. |
land, uds | Land and plot sales, and apartment (UDS) sales, each with total, priced, shown, statistics and transactions. |
statistics | count, median_per_sqft, avg_per_sqft, p25_per_sqft, p75_per_sqft, min_per_sqft, max_per_sqft, cagr and by_year (year, median, count). |
transactions[] | date, year, doc_no, nature, type, seller, buyer, extent_sqft, value, per_sqft, address, survey_no, floor, family_transfer and price_bearing. |
Inputs
The JSON body of the POST is the arguments. Send nothing for the most recent report on the account, a price_map_id for a particular one, or the survey_number a report was built for.
| Argument | Type | What to send |
|---|---|---|
price_map_id |
integer | Specific saved Price Map id, if known. Omit to use the price map from this conversation (or the user's most recent). |
survey_number |
string | Survey number to match a saved price map by, e.g. "388/388". Optional. |
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/pricemap_transactions \
-H "Authorization: Bearer $LANDLENS_KEY" \
-H "Content-Type: application/json" \
-d '{}'
import os, requests
r = requests.post(
"https://verified.realestate/api/v1/tools/pricemap_transactions",
headers={"Authorization": f"Bearer {os.environ['LANDLENS_KEY']}"},
json={},
timeout=20,
)
body = r.json()
print(body["status"], body["credits_charged"], body["data"])
const res = await fetch("https://verified.realestate/api/v1/tools/pricemap_transactions", {
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);
Show me the sales behind my Price Map for Kovalam survey 56. Which plots sold above Rs 2,000 a sq ft this year?
Your AI reads the deeds from your saved report and picks out the ones you asked for. It is free.
Responses
Every answer has the same envelope. What status can say for this call:
| status | What it means |
|---|---|
ok | The report was found and its deeds returned. |
not_found | No completed Price Map on the account, or none for that id or survey number. Start one with pricemap. |
Where the data comes from
The sale deeds the Price Map report read from the Tamil Nadu Registration Department's encumbrance index for the parcel and its neighbouring survey numbers.
Any completed Price Map report on the account. Up to 250 deeds of each kind are returned per report, sales with a price first, newest first; total says how many the report holds.
As of the day the report was built. A new report reads the register again.
The report's own rows, as read from each deed. Family transfers and deeds without a price are kept but flagged, so they can be left out of any valuation.
Who uses it
Valuers
Pick the comparable sales by hand from the deed list and cite their document numbers in the valuation.
Advocates and buyers
Order the certified copy of a comparable sale using the document number and office given.
Analysts
Load the deeds into your own model instead of relying on the report's median.
Limits and good practice
- Reads reports already on your account. It does not search the register; pricemap does.
- Up to 250 deeds of each kind per call.
- Dates are day-month-year (dd-mm-yyyy), as the register prints them.
- The consideration is what the deed states, which can be below what changed hands.
- report_link is a path on the LandLens site for a signed-in user, not a public link.
Pricing
Reading the deeds behind your own Price Map costs nothing. The report itself is charged when it is made. Credits come from the same LandLens wallet as the chat and the minis. How billing works.
Free calls have an hourly and daily allowance. For more than that, or a platform built on these registers, we set up limits and a plan to match.
Questions
Is there an API for registered property sale transactions in Tamil Nadu?
Yes. pricemap searches the register around a parcel and builds the report; this call then returns its deeds as data, with the parties, extent, value and price per square foot.
Can I read someone else's Price Map?
No. Only the reports on your own account are read.
Why are some deeds marked family_transfer or not price_bearing?
A gift, settlement or a sale at a nominal price within a family is not a market price. Those deeds are kept so the list is complete, and flagged so they can be left out.
Does it cost anything?
No. The deeds belong to a report you already paid for.
Updated 22 Oct 2026 · OpenAPI description