Developer Profile API: a builder's track record in Tamil Nadu
Yes. The LandLens Developer Profile API returns one promoter across every spelling they register under: their projects with homes and plots, the districts they build in, their delivery record (on time, late and by how many months, from the filed completion dates against the register), registrations by year, the regulator's orders and the CMDA enforcement notices their names appear on, and the financial indicators they declared where the filing carries them. Without a developer id it returns the developer list, searched by name and filtered by district, promoter type and project count. It is part of LandLens Intelligence on the enterprise plan and costs nothing per call.
https://verified.realestate/api/v1/tools/intel_developer_profile- Price
- Free
- Source
- The state real estate project register
- Coverage
- Every promoter filed since 2017
- Answers in
- Usually under a second
Example
curl -X POST https://verified.realestate/api/v1/tools/intel_developer_profile \
-H "Authorization: Bearer $LANDLENS_KEY" \
-H "Content-Type: application/json" \
-d '{"developer_id":120,"limit":3}'
{
"ok": true,
"status": "ok",
"data": {
"found": true,
"developer": {
"id": 120,
"name": "SREE ROSH PROPERTIES (P) LTD",
"aliases": [
"Sreerosh Properties Private Ltd",
"SREEROSH PROPERTIES P LTD",
"M/s. Sreerosh Properties Pvt Ltd"
],
"other_spellings": [
"Sreerosh Properties Private Ltd",
"SREEROSH PROPERTIES P LTD",
"M/s. Sreerosh Properties Pvt Ltd"
],
"promoter_type": "proprietorship",
"promoter_type_label": "Proprietorship",
"company_reg_no": "U70101TN1999PTC043552",
"pan_last4": "661J",
"first_registration": "2019-10-23",
"last_registration": "2024-12-23",
"url": "https://verified.realestate/landlens/intel/developers/120"
},
"figures": {
"projects": 10,
"units": 124,
"plots": 0,
"districts": 1,
"underway": 3,
"completed": 6,
"past_due": 9,
"late": 3,
"avg_delay_months": 9,
"with_completion_date": 10
},
"delivery": {
"past_due": 9,
"on_time": 6,
"late": 3,
"on_time_share": 66.7,
"due_ahead": 1,
"no_date": 0,
"years": [
{
"year": 2024,
"on_time": 0,
"late": 1
},
{
"year": 2026,
"on_time": 0,
"late": 2
}
]
},
"districts": [
{
"district": "Chennai",
"held": true,
"projects": 10,
"units": 124,
"plots": 0
}
],
"by_year": {
"years": [
{
"year": 2023,
"projects": 1,
"units": 8
},
{
"year": 2024,
"projects": 3,
"units": 78
}
],
"undated": 0
},
"portfolio": {
"count": 10,
"rows": [
{
"rera_id": "TN/29/Building/0592/2024",
"name": "SREEROSH AURELIA",
"kind": "apartment",
"kind_label": "Apartments",
"district": "Chennai",
"taluk": "Mylapore",
"village": "Mylapore",
"units": 53,
"plots": null,
"stage": "not_started",
"stage_label": "Not started",
"is_completed": false,
"registration_date": "2024-12-23",
"completion_date": "2027-06-30",
"past_due": false,
"late": false,
"late_months": null,
"months_ahead": 8,
"on_time": false,
"category": "CMA",
"pp_letter_no": "OL-PP/NHRB/0675/2024",
"project_cost": 350000000,
"status_notice": "Change of Project Bank: HDFC Bank Limited, ITC Centre Branch, Chennai - 600002 (A/c No.XXXXXXXXXX0595)",
"source": "online",
"url": "https://verified.realestate/landlens/intel/projects?rera_id=TN%2F29%2FBuilding%2F0592%2F2024"
}
]
},
"orders_and_lists": {
"searched_names": [
"SREE ROSH PROPERTIES",
"Sreerosh Properties",
"SREEROSH PROPERTIES P"
],
"searched_project_names": [
"SREEROSH AURELIA",
"SREEROSH KARUNA",
"Sreerosh Petunia"
],
"rera_orders": {
"count": 0,
"by_type": [],
"rows": [],
"on_project_names": 0,
"page_url": "https://verified.realestate/rera/cases"
},
"cmda_lists": [
{
"list": "violations",
"label": "Violation buildings",
"count": 0,
"held": true,
"rows": [],
"page_url": "https://verified.realestate/cmda/violations"
}
],
"total": 0,
"note": "Name matches on orders and lists are leads to read, never a finding against the promoter."
},
"financials": {
"available": true,
"filing": {
"rera_id": "TN/29/Building/0592/2024",
"name": "SREEROSH AURELIA",
"date": "2024-12-22T18:30:00.000000Z",
"url": "https://verified.realestate/landlens/intel/projects?rera_id=TN%2F29%2FBuilding%2F0592%2F2024"
},
"indicators": [
{
"key": "net_worth",
"label": "Net worth",
"sub": "total assets less liabilities",
"raw": null,
"value": null,
"display": null,
"implausible": false
}
],
"declared": [
{
"label": "Filed as",
"value": "FIRM"
},
{
"label": "Type of promoter",
"value": "proprietorship"
}
],
"why": null
},
"as_of": "2026-10-22 04:01:29",
"page_url": "https://verified.realestate/landlens/intel/developers/120",
"export_url": "https://verified.realestate/landlens/intel/developers/120/export"
},
"credits_charged": 0
}
A real answer from the API, trimmed for length: one project of the portfolio, three spellings, the last two years and one of each list are shown, and a field used in reading the filing is left out. Links are shown on the live host.
What it returns
With developer_id, one developer. Without it, a page of 25 developers. found is false (status not_found) when the id is not held or nothing matches.
| Field | What it holds |
|---|---|
developer | Profile: id, name, the other spellings it files under, promoter type, company registration number, the last four characters of the PAN, and the first and last registration dates. |
figures | Profile: projects, units, plots, districts, underway, completed, past_due, late and avg_delay_months. |
delivery | Profile: of the projects past their date, how many were on time and how many late, the on-time share, and the same by year. |
districts, by_year | Profile: where they build, and how many projects and units they registered each year. |
portfolio.rows[] | Profile: each project with units or plots, stage, registration and completion dates, late_months or months_ahead, the planning permission letter and cost as filed. |
orders_and_lists | Profile: the names searched, the regulator's orders found on them, and each CMDA enforcement list with its count. |
financials | Profile: net worth, taxes paid, total sales and net profit where the filing declares them (null when it does not), and what the promoter declared about itself. |
developers[], figures, suggestions, paging | List: the matching developers with their counts, the totals above the table, and suggestions for the name searched. |
page_url, export_url | The same view in LandLens. export_url downloads it in a signed-in browser only. |
Ways to call it
Send developer_id for one developer (it comes from a project profile, a list row or Market Pulse), or leave it out to search.
One developer
The full profile. limit sets how many portfolio projects come back.
{"developer_id": 120,"limit": 3}
Search and list
Developers by name in any spelling, filtered by district, promoter type and a minimum number of projects.
{"q": "Casagrand","min": 5}
Inputs
The JSON body of the POST is the arguments.
| Argument | Type | What to send |
|---|---|---|
developer_id |
integer | The developer id from a project profile, a list row or a suggestion. Omit to search or list. |
q |
string | Developer name, in any spelling, to search for (list mode). |
district |
string | Only developers with a project in this district. |
type |
string | Promoter type as filed: company, firm, partnership firm, proprietorship, llp, individual, trust, society, government. |
min |
integer: 1, 2, 5, 10 | Only developers with at least this many projects. |
sort |
string: projects, units, plots, districts, first, last, late, risk, name | List order; default projects. |
dir |
string: asc, desc | |
page |
integer | List page, 25 rows each. |
limit |
integer | How many portfolio projects to return with a profile (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_developer_profile \
-H "Authorization: Bearer $LANDLENS_KEY" \
-H "Content-Type: application/json" \
-d '{"developer_id":120,"limit":3}'
import os, requests
r = requests.post(
"https://verified.realestate/api/v1/tools/intel_developer_profile",
headers={"Authorization": f"Bearer {os.environ['LANDLENS_KEY']}"},
json={
"developer_id": 120,
"limit": 3
},
timeout=30,
)
body = r.json()
print(body["status"], body["credits_charged"], body["data"])
const res = await fetch("https://verified.realestate/api/v1/tools/intel_developer_profile", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.LANDLENS_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"developer_id": 120,
"limit": 3
}),
});
const body = await res.json();
console.log(body.status, body.credits_charged, body.data);
Who is the builder behind Sreerosh Aurelia, how many projects have they done, and do they usually finish on time?
Your AI reads the project to find the developer, then reads the developer's profile and delivery record.
Responses
Every answer has the same envelope. What status can say for this call:
| status | What it means |
|---|---|
ok | The developer, or at least one developer in the list, was found. |
not_found | No developer with that id, or none matches the search. message says which; search by name instead. |
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 promoter details on every filing of the Tamil Nadu real estate project register, joined into one developer, with the regulator's orders and the CMDA lists of unauthorised construction, sealing, demolition and inspection notices.
Every promoter on the register since 2017, in all 38 districts.
Our copy of the register is refreshed when the regulator updates its published lists, and the developer profiles are rebuilt every night. as_of gives the time of the last read.
Spellings are joined by name, PAN fragment and company registration number. Delivery is the filed completion date set against the register's status. Orders and notices are matched on the promoter's and the projects' names, so a match is a lead to read, not a finding.
Who uses it
Lenders and credit teams
Read a builder's delivery record and the orders on their names before approving a project or a construction loan.
Land owners in joint development talks
Check how often a builder has finished late, and by how long, before signing a JDA.
Research desks and funds
Rank developers by projects, units and delay across the state.
Limits and good practice
- Late is the filed completion date passed without a completed status. Progress on site is not published, so it is a fact about the filings, not a verdict on the builder.
- A name on an order or enforcement list is a lead to read, never a finding against the promoter. Read the order.
- Spellings are joined by name, PAN fragment and company number. Two related companies with different numbers stay separate.
- Financial indicators are present only where the filing declares them. A null is not a zero.
Pricing
Developer Profile 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 a builder's track record in Tamil Nadu?
Yes, this one. It returns a developer's projects and delivery record across every spelling they file under, with the orders on their names, 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.
Where do I get a developer_id?
From intel_project_profile (developer.id), from Market Pulse's developer table, or from this tool's own list when you search by name.
Does a match on an order mean the builder is at fault?
No. Orders and notices are matched by name, so a match is a lead to read. Read the order before drawing any conclusion.
How is this different from promoter_dossier?
promoter_dossier is a paid background check across registers for any builder name. This profile reads the developer from the project register, with the delivery record and portfolio, and needs the enterprise plan.
Updated 22 Oct 2026 · OpenAPI description