Every village in India,
by the government’s own code.
The Local Government Directory — state, district, tehsil, block, village, Gram Panchayat, ward — as one REST API, with what it takes to say which Chhana.
1,000 calls a month free · no card · LGD export of 2026-09-12
/v1Choose a village to see its record.An empty list means “None of the listed”
A list is empty exactly when LGD has nothing at that level — a village with no Gram Panchayat, a body with no wards. Your form shows the one fallback and moves on.
{"data":[],"meta":{"count":0}}A repeated name comes back as every row, with a hint
Two villages called Chhana in one tehsil: both returned, each with what separates them. Show “label — hint”; the user picks.
[
{
"code": 53003,
"label": "Chhana",
"hint": "Dhauladevi Block · GP Aarchali · Census 053003 · LGD 53003"
},
{
"code": 53075,
"label": "Chhana",
"hint": "Hawalbag Block · GP Chhana · Census 053075 · LGD 53075"
}
]notes says what LGD reports about a row
In words, on every record — “No Gram Panchayat In LGD”, “Duplicate Entry In LGD”. Nothing hidden, nothing corrected.
{
"code": 562051,
"name": "Kari",
"notes": [
"Gram Panchayat Is Under A Different Block"
]
}One call resolves any code.
LGD codes are the same in every government system, so a village code from your own records resolves at /v1/villages/{code} without saying which state — with its district, tehsil, block, Gram Panchayats, census codes, and the notes LGD’s own reports raise.
curl "https://findmyvillage.devshiv.in/v1/villages/53075" \
-H "X-API-Key: $LGD_API_KEY"{
"data": {
"code": 53075,
"name": "Chhana",
"block": {
"code": 357,
"name": "Hawalbag"
},
"notes": [
"Another Village Of This Name In This Sub-District"
],
"state": {
"code": 5,
"name": "Uttarakhand"
},
"issues": [
"village_name_clash"
],
"status": "Inhabitant",
"district": {
"code": 45,
"name": "Almora",
…31 endpoints. Get-all and get-by-id for every resource.
/search/districtsGET/districts/{district_code}GET/districts/{district_code}/sub-districtsGET/districts/{district_code}/blocks/sub-districtsGET/sub-districts/{sub_district_code}GET/sub-districts/{sub_district_code}/villagesGET/sub-districts/{sub_district_code}/urban-bodiesState by state, as LGD publishes it.
Each state is loaded from the Ministry’s own exports — twelve spreadsheets whose tables only half agree. We load them as published, link what LGD leaves unlinked, and keep every finding as a note. More states on request.
| State | Districts | Villages | Local bodies | Wards |
|---|---|---|---|---|
| Maharashtra 27 | 36 | 44,911 | 28,888 | 1,06,752 |
| Uttarakhand 5 | 13 | 17,343 | 8,041 | 61,697 |
Cost of production, plus a fixed margin.
What it costs to run the service each month — servers, database, the hours spent refreshing states — plus 20%, divided over the calls served. INR, GST extra. How each plan is priced.
Start with the free plan.
A key in a minute, 1,000 calls a month, every endpoint and every state.