Read your LandLens projects by API
Yes. The LandLens projects API reads back the work saved on your own account: legal opinion and due diligence projects, Verify My Land reports, price maps, build scopes and tracked properties. Call it with a type to list your ten most recent of that kind, or with a project id to read one in full: its status, its findings, the parcel it is about (survey, revenue codes, coordinates) and the stored result, such as a build scope's FSI figures or a verification's issues. It is scoped to your account and your team, and it costs nothing.
https://verified.realestate/api/v1/tools/project_read- Price
- Free
- Source
- Your LandLens account
- Coverage
- Projects saved on your account and team
- Answers in
- Instant
Example
curl -X POST https://verified.realestate/api/v1/tools/project_read \
-H "Authorization: Bearer $LANDLENS_KEY" \
-H "Content-Type: application/json" \
-d '{"type":"buildscope"}'
{
"ok": true,
"status": "ok",
"data": {
"found": true,
"type": "buildscope",
"count": 10,
"projects": [
{
"id": 60,
"name": "Survey 31/5, Thazhambur",
"survey_number": null,
"development_type": "residential",
"status": "completed",
"created_at": "2026-08-29 17:51:03",
"has_coordinates": false
},
{
"id": 58,
"name": "TS 3368 Mylapore Part 2",
"survey_number": null,
"development_type": "residential",
"status": "completed",
"created_at": "2026-08-20 16:38:04",
"has_coordinates": false
}
]
},
"credits_quoted": 0,
"credits_charged": 0,
"credits_waived": 0
}
A real answer from a test account, trimmed to two of its ten build scopes.
What it returns
One call, one answer. Without project_id you get a list; with it, one project.
| Field | What it holds |
|---|---|
projects[] (list) | Up to ten of the type, newest first: id, a name or the query it was run on, its survey number where it has one, status, created_at, and for a verification how many checks are complete and how many issues were found. |
project (read) | One project in full: its status, the parcel it is about (survey, sub-division, district, taluk and village with their codes), and its stored result. |
stored result by type | A legal opinion project carries its opinion, risk score, open points and EC analysis; a verification its summary and issues; a price map its land and undivided-share statistics; a build scope its FSI results and land use; a tracked property its current owners, patta number and last checks. |
lat, lng, has_coordinates | The parcel's coordinates where the project holds them, so a follow-up check can run on the same land. |
count, type | How many projects are listed, and of which type. |
Inputs
The JSON body of the POST is the arguments.
| Argument | Type | What to send |
|---|---|---|
typerequired |
string: project, verification, pricemap, buildscope, tracker | "project" (legal opinion and due diligence), "verification" (Verify My Land), "pricemap", "buildscope" or "tracker" (property tracker). |
project_id |
integer | Leave out to list your recent projects of the type; send an id from the list to read one. |
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/project_read \
-H "Authorization: Bearer $LANDLENS_KEY" \
-H "Content-Type: application/json" \
-d '{"type":"buildscope"}'
import os, requests
r = requests.post(
"https://verified.realestate/api/v1/tools/project_read",
headers={"Authorization": f"Bearer {os.environ['LANDLENS_KEY']}"},
json={
"type": "buildscope"
},
timeout=15,
)
body = r.json()
print(body["status"], body["credits_charged"], body["data"])
const res = await fetch("https://verified.realestate/api/v1/tools/project_read", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.LANDLENS_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"type": "buildscope"
}),
});
const body = await res.json();
console.log(body.status, body.credits_charged, body.data);
What did my last build scope for Thazhambur give as the achievable FSI, and can you check that plot for CRZ?
Your AI reads the saved build scope, quotes its FSI figures, and runs the next check on the same coordinates.
Responses
Every answer has the same envelope. What status can say for this call:
| status | What it means |
|---|---|
ok | The list, or the project. |
not_found | No project of that type on your account, an id that is not yours, or an unknown type. |
free_limit_reached | Your account has used its free calls for the hour or the day. retry_after says when they come back. |
Where the data comes from
Not a register: the projects you and your team have created in LandLens, through the dashboard, the chat or this API.
Five kinds of saved work: legal opinion and due diligence projects, Verify My Land reports, price maps, build scopes and tracked properties. Only your own account's and your team's; another account's project answers as not found.
Live. A project read returns what is stored at that moment, so a report still running shows its current status.
Listed newest first, ten at a time. A read returns the project's stored result with stored JSON decoded, very long text cut at 2,500 characters, and the parcel's coordinates as lat and lng where the project holds them.
Who uses it
Teams with their own systems
Pull the results of verifications and legal opinions run in LandLens into your own case or loan system.
AI assistants
Answer "what did my report say" from the stored result, and run the next check on the same parcel without asking for a pin.
Operations leads
See which reports are still running and which have issues, across the team.
Limits and good practice
- Ten most recent per type in a list. Older projects are read by id.
- Long text fields are cut at 2,500 characters. The full report stays on the project's page.
- Read only. To start a new report use vml, legal_opinion_order, build_scope or property_tracker.
- Field names in a project are the stored ones and differ by type. Read them by type, as above.
Pricing
Reading your projects costs nothing. Free calls are subject to the account's hourly and daily allowance. 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
Can I get my Verify My Land or legal opinion results by API?
Yes. List them with type verification or project, then read one by its id for its status and stored findings.
Can I read another user's projects?
No. Only your own account's and your team's. Any other id answers not found.
Does it cost anything?
No. It costs nothing, within the account's allowance of free calls.
How do I follow a report that is still running?
Read it by id again later; status moves on as the report completes.
Updated 22 Oct 2026 · OpenAPI description