Forest Land Check API: is this survey on the Forest Department's list?
Yes. forest_claim checks a Tamil Nadu survey number against the Forest Department's survey verification list, the list of survey numbers examined for a forest claim, and returns a verdict: FOREST_CLAIMED (verified as forest, which blocks sales and bank loans), listed_not_forest (examined and recorded as not a forest), clear (not on the list), or unresolved for a town survey the list cannot place. It gives the department's own status, division, range and beat, and the village's totals. Without a survey it returns the village rollup. It costs 1 credit per check, including a clear one.
https://verified.realestate/api/v1/tools/forest_claim- Price
- 1 credit per answer
- Source
- Forest Department verification list
- Coverage
- Tamil Nadu
- Answers in
- Usually 1 to 2 seconds
Example
curl -X POST https://verified.realestate/api/v1/tools/forest_claim \
-H "Authorization: Bearer $LANDLENS_KEY" \
-H "Content-Type: application/json" \
-d '{"district_code":"03","taluk_code":"14","village_code":"196","survey_number":"254","sub_division":"1","rural_urban":"rural"}'
{
"ok": true,
"status": "ok",
"data": {
"found": true,
"survey": "254/1",
"verdict": "listed_not_forest",
"recorded_status": "verified - Not a Forest",
"entries": [
{
"survey_number": "254",
"sub_division": "1",
"currentstatus": "verified - Not a Forest",
"division_name": "KANCHEEPURAM",
"range_name": "KUNDRATHUR",
"beat_name": "VADAKKUPATTU",
"areainhectar": "7.08997995744557",
"village_name": "Kavanoor"
}
],
"sibling_entries": [
{
"survey_number": "254",
"sub_division": "65",
"currentstatus": "verified - Not a Forest",
"division_name": "KANCHEEPURAM",
"range_name": "KUNDRATHUR",
"beat_name": "VADAKKUPATTU",
"areainhectar": "0.12795883543705",
"village_name": "Kavanoor"
}
],
"village_forest_count": 0,
"village_total_entries": 24
},
"credits_charged": 1
}
A real answer from the API (22 Oct 2026, Kavanoor village, Kundrathur taluk), trimmed: one of two sibling rows and the reading note are left out.
What it returns
One survey, one verdict, or a village rollup without a survey. clear is a real answer and is charged.
| Field | What it holds |
|---|---|
verdict | FOREST_CLAIMED, listed_not_forest, clear, or unresolved (town survey named without a comparable block). |
recorded_status | The department's own status for the parcel, verbatim, e.g. "verified - Not a Forest". |
entries | The list's rows for this parcel: survey_number, sub_division, currentstatus (the status), division_name, range_name, beat_name, areainhectar (area in hectares) and village_name. |
sibling_entries, sibling_forest_count | Rows for other sub-divisions of the same survey, and how many of them are forest. |
possible_entries, possible_count, possible_forest_count | Town survey only: rows that name the survey without a block that can be compared. |
village_forest_count, village_total_entries | The department's totals for the village: entries recorded as forest, and all entries. |
forest_surveys, listed_shown | Village rollup: up to 20 forest-verified surveys with status, division, range and hectares. |
message | On clear or unresolved: what the answer does and does not establish. |
Ways to call it
Check one survey, or read a village's rollup.
One survey
resolve_parcel gives the codes, rural_urban and block for a map point.
{"district_code": "03","taluk_code": "14","village_code": "196","survey_number": "254","sub_division": "1","rural_urban": "rural"}
Village rollup
Leave out the survey: how many entries the village has, how many are forest, and which.
{"district_code": "03","taluk_code": "14","village_code": "196","rural_urban": "rural"}
Inputs
The JSON body of the POST is the arguments. The district and village codes are required; add the survey to check one parcel.
| Argument | Type | What to send |
|---|---|---|
district_coderequired |
string | |
taluk_code |
string | Send it. Village codes repeat across taluks. |
village_coderequired |
string | |
survey_number |
string | |
sub_division |
string | Sub-division, when known. The list is kept per sub-division, so this says which rows are the parcel itself. |
rural_urban |
string: rural, urban | Send it. A taluk numbers its towns and villages separately and the codes overlap. |
block |
string | For town survey land: the block, since a town survey number repeats in every block. |
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/forest_claim \
-H "Authorization: Bearer $LANDLENS_KEY" \
-H "Content-Type: application/json" \
-d '{"district_code":"03","taluk_code":"14","village_code":"196","survey_number":"254","sub_division":"1","rural_urban":"rural"}'
import os, requests
r = requests.post(
"https://verified.realestate/api/v1/tools/forest_claim",
headers={"Authorization": f"Bearer {os.environ['LANDLENS_KEY']}"},
json={
"district_code": "03",
"taluk_code": "14",
"village_code": "196",
"survey_number": "254",
"sub_division": "1",
"rural_urban": "rural"
},
timeout=30,
)
body = r.json()
print(body["status"], body["credits_charged"], body["data"])
const res = await fetch("https://verified.realestate/api/v1/tools/forest_claim", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.LANDLENS_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"district_code": "03",
"taluk_code": "14",
"village_code": "196",
"survey_number": "254",
"sub_division": "1",
"rural_urban": "rural"
}),
});
const body = await res.json();
console.log(body.status, body.credits_charged, body.data);
Is survey 254/1 in Kavanoor village, Kundrathur taluk, claimed as forest land?
Your AI finds the codes, says the price, and quotes the Forest Department's own status.
Responses
Every answer has the same envelope. What status can say for this call:
| status | What it means |
|---|---|
ok | The check ran and a verdict is given, clear included. Charged 1 credit. |
not_found | The forest list could not be read just now. Nothing is concluded and nothing is charged; try again. |
invalid_args | The district or village code is missing. |
Where the data comes from
The Tamil Nadu Forest Department's survey number verification list, published on the state GIS: each survey number examined for a forest claim, with the department's status (verified forest, or verified not a forest), division, range, beat and area.
Every village and town on the department's list, about 138,000 entries when the department last rewrote it (8 Oct 2026).
Our copy is checked against the department's list every 30 days. New entries are added and a new forest verdict is applied; an entry the department stops serving is kept, so a past forest verdict is never lost silently.
Matched by district, taluk and village codes (padded and unpadded), and by rural or urban, since a taluk numbers its towns and villages separately. A row with no sub-division stands for the whole survey. A town survey row is matched by block and survey from its reference.
Who uses it
Buyers and brokers
Rule out a forest claim before an advance. A verified forest entry blocks registration and bank loans.
Lenders
Screen agricultural and plotted land for forest claims before sanction.
Developers
Read a village's rollup to see which surveys around a site carry a forest verdict.
Limits and good practice
- clear means the survey is not on the department's list. It does not rule out reserve forest boundaries; zone_check tests a point against the reserve forest layer.
- A row with no sub-division stands for the whole survey and counts as this parcel's entry.
- A town survey row that names the survey without a comparable block comes back unresolved, never as a hit or as clear.
- Our copy keeps entries the department has stopped serving, so a past forest verdict is not lost.
Pricing
Each check costs 1 credit, a clear one included; nothing when the list could not be read. Credits come from the same LandLens wallet as the chat and the minis. How billing works.
For thousands of calls a month, a portfolio sweep or a platform built on these registers, we quote a customised bulk price, with invoicing to match.
Questions
Is there an API to check if land is forest land in Tamil Nadu?
Yes, this one. It checks a survey number against the Forest Department's verification list and quotes the department's own status.
How much does a forest land check cost?
1 credit per check, including a clear answer.
What does listed_not_forest mean?
The department examined the survey and recorded it as not a forest. It is a reassuring answer, not a claim.
Can I see every forest-claimed survey in a village?
Yes. Leave out the survey number and the answer is the village rollup, with the department's totals and up to 20 forest-verified surveys.
Updated 22 Oct 2026 · OpenAPI description