FMB Sketch API for Tamil Nadu
Yes. The LandLens FMB API fetches the Field Measurement Book sketch of a Tamil Nadu survey number: the survey department's measured drawing of the field, with its boundary lengths and sub-divisions, for village land and town survey land. Send the revenue codes and the survey number and you get the sketch as a PDF link that opens without a session, with the village, taluk and district it belongs to. It costs 1 credit per sketch, and nothing when no sketch is online for that survey.
https://verified.realestate/api/v1/tools/fmb_sketch- Price
- 1 credit per answer
- Source
- Survey department field sketches
- Coverage
- Village and town survey land
- Answers in
- Usually under 10 seconds
Example
curl -X POST https://verified.realestate/api/v1/tools/fmb_sketch \
-H "Authorization: Bearer $LANDLENS_KEY" \
-H "Content-Type: application/json" \
-d '{"district_code":"03","taluk_code":"14","village_code":"196","survey_number":"65","sub_division":"4B"}'
{
"ok": true,
"status": "ok",
"data": {
"found": true,
"record_type": "fmb",
"rural_urban": "rural",
"survey": "65/4B",
"village_name": "Kavanoor",
"taluk_name": "Kundrathur",
"district_name": "Kancheepuram",
"lat": 12.842117,
"lng": 80.030955,
"file_url": "https://verified.realestate/api/v1/files/NDpmbWItNTc4…",
"archived_copy": true,
"archived_note": "Archived copy of the survey sketch, taken on 19 Sep 2026. The government survey portal is unavailable right now, so this is our stored copy rather than a live record."
},
"credits_charged": 1
}
A real answer from the API (22 Oct 2026, when the department's sketch service was down, so the stored copy was returned and said so). The link is shortened.
What it returns
One call, one sketch. found is false (status not_found) when no sketch is online, or when a town survey needs its ward and block.
| Field | What it holds |
|---|---|
file_url | A link to the sketch PDF. It opens without a key or a session, so it can go straight to a browser or an AI app, and lasts 7 days. |
survey | The survey number and sub-division the sketch is for, e.g. 65/4B. |
village_name, taluk_name, district_name | Where the field is. |
rural_urban | rural for village survey land, urban for town survey land. |
ward_code, block_code, ward_block_source | For town survey land: the ward and block the sketch was fetched for, and how they were settled (sent by you, read from the land record, or from a map pin). |
lat, lng | A point inside the field. |
archived_copy, archived_note | Set when the department's service was down and our stored copy was returned, with the date it was taken. |
candidates | On a town survey that sits in several wards and blocks: each ward and block it is recorded under, to choose from. |
Ways to call it
Village land needs the codes and the survey number. Town survey land also needs its ward and block, or a choice from the ones the API offers.
Village survey
The revenue codes come free from resolve_parcel (a map point) or resolve_revenue_codes (names).
{"district_code": "03","taluk_code": "14","village_code": "196","survey_number": "65","sub_division": "4B"}
Town survey
Send the ward and block when you know them. Without them, a survey recorded in several wards comes back with candidates to choose from.
{"district_code": "…","taluk_code": "…","village_code": "…","survey_number": "12","register": "urban","ward_code": "…","block_code": "…"}
Inputs
The JSON body of the POST is the arguments. The four codes and the survey number are required. resolve_parcel returns all of them for a map point.
| Argument | Type | What to send |
|---|---|---|
district_coderequired |
string | Revenue district code |
taluk_coderequired |
string | Revenue taluk code |
village_coderequired |
string | Revenue village / town code |
survey_numberrequired |
string | The survey number without the sub-division, e.g. 65. |
sub_division |
string | The sub-division, e.g. 4B. Leave empty when there is none. |
register |
string: rural, urban | "rural" or "urban" when you already know which register the parcel is in; otherwise it is read from the land record. |
ward_code |
string | Town survey ward code. Pass it whenever known: one town survey number repeats across wards, so deriving it can fetch a different parcel. |
block_code |
string | Town survey block code. Pass it whenever known, for the same reason as ward_code. |
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/fmb_sketch \
-H "Authorization: Bearer $LANDLENS_KEY" \
-H "Content-Type: application/json" \
-d '{"district_code":"03","taluk_code":"14","village_code":"196","survey_number":"65","sub_division":"4B"}'
import os, requests
r = requests.post(
"https://verified.realestate/api/v1/tools/fmb_sketch",
headers={"Authorization": f"Bearer {os.environ['LANDLENS_KEY']}"},
json={
"district_code": "03",
"taluk_code": "14",
"village_code": "196",
"survey_number": "65",
"sub_division": "4B"
},
timeout=120,
)
body = r.json()
print(body["status"], body["credits_charged"], body["data"])
const res = await fetch("https://verified.realestate/api/v1/tools/fmb_sketch", {
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": "65",
"sub_division": "4B"
}),
});
const body = await res.json();
console.log(body.status, body.credits_charged, body.data);
Get the FMB sketch of survey 65/4B in Kavanoor village, Kundrathur taluk, and tell me the length of each side.
Your AI finds the codes, says the price, and opens the sketch for you.
Responses
Every answer has the same envelope. What status can say for this call:
| status | What it means |
|---|---|
ok | The sketch was found. Download it from file_url. Charged 1 credit. |
not_found | No sketch is online for this survey, or a town survey needs its ward and block (candidates lists them). Nothing is charged. |
invalid_args | A code or the survey number is missing. |
Where the data comes from
The Field Measurement Book of the Tamil Nadu survey department: the measured sketch kept for every survey field, showing its boundary, the lengths of its sides and its sub-divisions.
Village survey land and town survey land across Tamil Nadu, wherever the department has put the sketch online. A town survey sketch is fetched for its ward and block, since one town survey number repeats across wards.
Live. Each call reads the department's sketch service at that moment. When that service is down, the sketch is served from our stored copy instead, and archived_copy and archived_note say so, with the date the copy was taken.
Fetched from the department with the revenue codes and the survey number, and with the ward and block for town survey land. Where the ward and block are not sent, they are read from the land record when only one fits, and offered as choices when several do.
Who uses it
Surveyors and engineers
Pull the measured sketch before a site visit, and compare its side lengths with what is on the ground.
Law firms
Attach the sketch to a title opinion so the boundary described in the deeds can be checked against the survey record.
Lenders
Keep the sketch on the loan file with the patta and the EC, from one integration.
Property platforms
Show the official sketch beside a land listing, so a buyer sees the shape and sub-divisions before visiting.
Limits and good practice
- A sketch shows the measured boundary as surveyed. Verify it on the ground with a licensed surveyor before building or fencing.
- Not every survey has its sketch online. When it does not, the answer says so and nothing is charged.
- A town survey number repeats across wards and blocks. Send ward_code and block_code when you have them, or the API asks you to choose rather than guessing.
- When archived_copy is true, the sketch is our stored copy from the date in archived_note. Say so when you show it.
- The file link lasts 7 days. Keep the PDF itself if you need it longer, or call again for a fresh link.
Pricing
Each sketch costs 1 credit; nothing when no sketch is online or a town survey needs its ward and block. 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 for Tamil Nadu FMB sketches?
Yes, this one. The survey department publishes sketches for people to view one at a time; LandLens fetches the sketch for a survey number and returns it as a downloadable PDF link, over plain HTTPS or as an MCP tool.
What format is the sketch in?
A PDF, as the department issues it. file_url opens it directly, with no sign-in.
What does an FMB sketch cost through the API?
Each sketch costs 1 credit. When no sketch is online for the survey, or a town survey still needs its ward and block, nothing is charged.
Does it work for town survey land in cities?
Yes. Town survey sketches are fetched for their ward and block. Send them, or choose from the candidates the API returns when a survey number sits in more than one.
What if the department's service is down?
The API returns our stored copy where we hold one, marks it archived_copy, and gives the date it was taken in archived_note.
Updated 22 Oct 2026 · OpenAPI description