Registered Price Index API: apartment prices actually paid in Chennai
Yes. The LandLens Registered Price Index API returns an index of prices actually paid for registered homes in Tamil Nadu, by city and area: the median paid per square foot by quarter and by month from the registered sale deeds matched to the projects' unit statements, the deeds and projects behind each point, how many deeds registered at or above the guideline value, growth over one, three and five years with CAGR where enough deeds exist, the area table with the premium over the guideline land rate, and the project table. A point with too few deeds is reported as not held, never estimated. It is part of LandLens Intelligence on the enterprise plan and costs nothing per call.
https://verified.realestate/api/v1/tools/intel_price_index- Price
- Free
- Source
- Registered sale deeds and the guideline register
- Coverage
- Cities and projects with deeds read
- Answers in
- Under a second once a view is warm; a first read of a city can take about 20 seconds
Example
curl -X POST https://verified.realestate/api/v1/tools/intel_price_index \
-H "Authorization: Bearer $LANDLENS_KEY" \
-H "Content-Type: application/json" \
-d '{"city":"Chennai","kind":"apartment","window":"8q","limit":5}'
{
"ok": true,
"status": "ok",
"data": {
"found": true,
"city": "Chennai",
"area": null,
"notes": [],
"window": {
"label": "Q1 2025 to Q4 2026",
"from": "2025-01-01",
"to": "2026-10-22"
},
"filters": {
"kind": "apartment",
"sales": "First sales and resales",
"sort": "median desc"
},
"thresholds": {
"deeds_per_quarter": 5,
"deeds_per_month": 3
},
"figures": {
"deeds": 7698,
"projects": 649,
"first": 6365,
"resales": 1333,
"with_valuation": 7698,
"at_or_above": 6052,
"paid_min": 510.42,
"paid_max": 67897.57,
"held": true,
"median": 10532.33,
"land_rate": 2530,
"over": 316.3
},
"growth": {
"3y": {
"held": true,
"to_key": "2026-Q4",
"from_key": "2023-Q4",
"to_label": "Q4 2026",
"from_label": "Q4 2023",
"to_n": 46,
"from_n": 394,
"to": 11546.69,
"from": 7235.56,
"pct": 59.6,
"cagr": 16.9,
"why": null
}
},
"quarters": {
"base": "2025-Q1",
"points_held": 8,
"deeds": 7698,
"rows": [
{
"key": "2026-Q3",
"label": "Q3 2026",
"paid_median_per_sqft": 11346.43,
"guideline_land_rate_per_sqft": 2530,
"deeds": 845,
"projects": 210,
"at_or_above_guideline": 748,
"with_valuation": 845,
"index": 110.6
},
{
"key": "2026-Q4",
"label": "Q4 2026",
"paid_median_per_sqft": 11546.69,
"guideline_land_rate_per_sqft": 3300,
"deeds": 46,
"projects": 33,
"at_or_above_guideline": 39,
"with_valuation": 46,
"index": 112.5
}
]
},
"months": {
"base": "2025-01",
"points_held": 22,
"deeds": 7698,
"rows": [
{
"key": "2026-10",
"label": "Oct 2026",
"paid_median_per_sqft": 11546.69,
"guideline_land_rate_per_sqft": 3300,
"deeds": 46,
"projects": 33,
"at_or_above_guideline": 39,
"with_valuation": 46,
"index": 113.9
}
]
},
"areas": {
"rows": [
{
"id": 19,
"slug": "central-mylapore-adyar",
"name": "Mylapore, Alwarpet and Adyar",
"region": "Central",
"kind": "zone",
"kind_label": "City zone",
"district": "Chennai",
"deeds": 372,
"projects": 104,
"first": 205,
"resales": 167,
"with_valuation": 372,
"at_or_above": 347,
"above": 93.3,
"held": true,
"median": 22175.84,
"paid_min": 577.03,
"paid_max": 67897.57,
"land_rate": 8700,
"over": 154.9,
"change": {
"held": true,
"to_key": "2026-Q3",
"from_key": "2025-Q3",
"to_label": "Q3 2026",
"from_label": "Q3 2025",
"to_n": 43,
"from_n": 49,
"pct": -36.4,
"why": null
},
"url": "https://verified.realestate/landlens/intel/price-index?area=central-mylapore-adyar&kind=apartment",
"explorer_url": "https://verified.realestate/landlens/intel/areas/central-mylapore-adyar"
}
],
"held": 24,
"not_held": 3,
"in_city": 29
},
"projects": {
"rows": [
{
"rera_id": "TN/29/Building/0448/2020",
"name": "Prestige Windsor Park",
"kind": "apartment",
"kind_label": "Apartments",
"village": "Noombal",
"district": "Tiruvallur",
"area": "Maduravoyal, Mogappair and Nolambur",
"area_slug": "west-maduravoyal-mogappair",
"units": 637,
"plots": null,
"developer": "Prestige Estates Projects Ltd",
"developer_url": "https://verified.realestate/landlens/intel/developers?developer=722",
"deeds": 505,
"first": 479,
"resales": 26,
"with_valuation": 505,
"at_or_above": 206,
"held": true,
"median": 10151.69,
"paid_min": 6775.66,
"paid_max": 15161.54,
"over": 385.7,
"land_rate": 2090,
"land_min": 1100,
"land_max": 6500,
"land_streets": 133,
"land_note": "median of 133 residential streets of Noombal, current revision",
"first_reg": "2025-01-03",
"last_reg": "2026-09-28",
"url": "https://verified.realestate/landlens/intel/projects/TN/29/Building/0448/2020"
}
],
"total": 649,
"capped": true
},
"about": {
"deeds": 20320,
"projects": 1191,
"cities": 18,
"certificates": 56453,
"read_at": "2026-10-13 17:24:50",
"first_reg": "2013-12-12",
"last_reg": "2026-10-13",
"guidelines": 11439
},
"coverage": {
"other_natures": [
{
"nature": "mortgage",
"label": "Mortgages",
"n": 21196
},
{
"nature": "receipt",
"label": "Receipts (loans closed)",
"n": 11117
}
],
"other_total": 41984,
"unpriced_sales": 19687,
"confidence": {
"exact": 6571,
"flat": 455,
"uds": 672
},
"projects_in_scope": 2188,
"projects_with_certificate": 1
},
"note": "held false on a figure means fewer deeds than the threshold stand behind it, and why says so; the index is base 100 at the first quarter that clears the threshold.",
"page_url": "https://verified.realestate/landlens/intel/price-index?kind=apartment",
"export_url": "https://verified.realestate/landlens/intel/price-index/export?kind=apartment"
},
"credits_charged": 0
}
A real answer from the API, trimmed for length: the last two quarters, the last month, the three-year growth, one area, one project and two other deed types are shown; the one and five year growth, the change and the list of area slugs are left out. Links are shown on the live host.
What it returns
One call, one city (or one area of it). held false on any figure means too few deeds stand behind it, and why says so.
| Field | What it holds |
|---|---|
figures | For the window: deeds, projects, first sales and resales, deeds at or above the guideline, the lowest, median and highest paid per square foot, the guideline land rate and the premium over it (over, in per cent). |
growth | 1y, 3y and 5y: the median at each end, the deeds behind each (to_n, from_n), the change in per cent and the CAGR, or held false with why. |
quarters.rows[], months.rows[] | Per quarter and per month: paid_median_per_sqft, guideline_land_rate_per_sqft, deeds, projects, at_or_above_guideline and index. |
areas.rows[] | Per area: deeds, projects, median, range, land rate, premium over it, share at or above the guideline and the change, with the link to the area. |
projects.rows[] | Per project: deeds, first sales and resales, median and range paid, the guideline land rate with how it was worked out, and the first and last registration. |
about, coverage | What the index is built from, the other deed types read (mortgages and the rest), sales without a price, and how deeds were matched. |
thresholds | The deeds a point needs to be held: 5 a quarter, 3 a month. |
page_url, export_url | The same view in LandLens. export_url downloads it in a signed-in browser only. |
Inputs
The JSON body of the POST is the arguments. Every input is optional. With none, every kind in Chennai over 8 quarters.
| Argument | Type | What to send |
|---|---|---|
city |
string | The city; default Chennai. |
area |
string | One area's slug within the city (from the city view); omit for the whole city. |
kind |
string: apartment, villa, plot | apartment, villa or plot; omit for all. |
sales |
string: all, first | all (default): first sales and resales; first: first sales only. |
window |
string: 4q, 8q, 12q, 20q, all, custom | 4q, 8q (default), 12q, 20q, all, or custom with from and to. |
from |
string | Custom window start, YYYY-MM-DD. |
to |
string | Custom window end, YYYY-MM-DD. |
sort |
string: area, region, median, deeds, projects, land_rate, over, above, change | Area table order; default median. |
dir |
string: asc, desc | |
limit |
integer | Rows of the area and project tables to return (default 25, at most 100). |
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/intel_price_index \
-H "Authorization: Bearer $LANDLENS_KEY" \
-H "Content-Type: application/json" \
-d '{"city":"Chennai","kind":"apartment","window":"8q","limit":5}'
import os, requests
r = requests.post(
"https://verified.realestate/api/v1/tools/intel_price_index",
headers={"Authorization": f"Bearer {os.environ['LANDLENS_KEY']}"},
json={
"city": "Chennai",
"kind": "apartment",
"window": "8q",
"limit": 5
},
timeout=60,
)
body = r.json()
print(body["status"], body["credits_charged"], body["data"])
const res = await fetch("https://verified.realestate/api/v1/tools/intel_price_index", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.LANDLENS_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"city": "Chennai",
"kind": "apartment",
"window": "8q",
"limit": 5
}),
});
const body = await res.json();
console.log(body.status, body.credits_charged, body.data);
How have apartment prices actually paid moved in Chennai over the last three years, and which areas pay the biggest premium over the guideline value?
Your AI reads the index for Chennai apartments, gives the growth with the deeds behind it, and ranks the areas by premium.
Responses
Every answer has the same envelope. What status can say for this call:
| status | What it means |
|---|---|
ok | The index was read. A figure with held false had too few deeds; read why. |
not_found | No registered sale has been priced yet. message says so. |
scope_denied | HTTP 403, nothing charged. The account behind the credential does not hold the enterprise plan (reason enterprise_plan, with plan_url), Intelligence is paused on the account (access_paused), or the day's allowance of rows read over the API is used (row_limit, with retry_after). |
Where the data comes from
The sale deeds registered on the survey numbers of registered projects, read from the registration department's encumbrance records and matched flat by flat to each project's filed unit statement, set against the registration department's guideline value of the streets around each project.
The cities and projects whose deeds have been read. The about block in each answer gives the deeds, projects, cities and certificates behind the index and the first and last registration dates it covers.
Certificates are read in batches and the index is rebuilt every night; about.read_at gives the time of the last read.
The median paid per square foot of carpet area, from deeds matched to a unit. A point needs at least 5 priced deeds in its quarter (3 in a month) or it is reported as not held with the reason. The index is 100 at the first quarter that clears the threshold. The guideline land rate is the median of the residential street rates of the project's village in the current revision.
Who uses it
Lenders and valuers
Check a valuation against what buyers in the same area actually paid per square foot last quarter.
Developers
Price a launch against registered prices in the area, not asking prices on portals.
Research desks and funds
Track price growth by area with the deeds behind every point, and the premium over the guideline value.
Limits and good practice
- The index covers only deeds from registered projects whose records have been read. It is not every sale in the city.
- A quarter still in progress can stand at the end of a window with few deeds behind it. Read to_n before quoting growth.
- Prices are per square foot of carpet area where the deed and the unit statement agree. A per square foot price quoted on super built-up area will look lower.
- The guideline land rate is a rate per square foot of land, not of the flat. The premium over it shows how far the market sits above the government floor, not a like-for-like comparison.
Pricing
Registered Price Index costs nothing per call. LandLens Intelligence is part of the enterprise plan: the plan is the only requirement, and a credential on an account without it is refused with nothing charged. 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 property prices actually paid in Chennai?
Yes, this one. It returns the median price paid per square foot from registered sale deeds, by quarter and area, with growth and the premium over the guideline value, as JSON over HTTPS or MCP.
How much does it cost?
No credits. It needs the LandLens enterprise plan; without it the call answers scope_denied with the plan page and nothing is charged.
Why is a quarter missing?
It had fewer than 5 priced deeds, so it is reported as not held rather than estimated.
Are these asking prices?
No. Every figure comes from a registered sale deed, the consideration the buyer and seller declared.
Can I get one area only?
Yes. Send area with a slug from the city view (each area row carries its slug).
Updated 22 Oct 2026 · OpenAPI description