VoiceOfVillage API
Read-only JSON for every village, sub-district, district and state of India, with Census 2011 figures, pincodes and constituency results. Every response lists its sources. No personal data is ever served.
Access and limits
- Without a key: 60 requests per hour per IP address.
- With a free key: 5,000 requests per day. Create a key (sign-in needed), then send
Authorization: Bearer vov_…. - Every response carries
RateLimit-Limit,RateLimit-RemainingandRateLimit-Resetheaders; over the limit you get HTTP 429 withRetry-After. - Machine-readable description: /api/v1/openapi.json (OpenAPI 3.1).
Endpoints
GET /api/v1/villages/{lgd}One village by LGD code, with Census 2011 figures and constituencies
curl -H "Authorization: Bearer $VOV_KEY" https://www.voiceofvillage.com/api/v1/villages/572308
GET /api/v1/villagesSearch villages by pincode or name (prefix + fuzzy), up to 100
curl -H "Authorization: Bearer $VOV_KEY" https://www.voiceofvillage.com/api/v1/villages?q=Kothapalle&limit=5
GET /api/v1/statesAll states and union territories
curl -H "Authorization: Bearer $VOV_KEY" https://www.voiceofvillage.com/api/v1/states
GET /api/v1/states/{slug}/districtsDistricts of a state
curl -H "Authorization: Bearer $VOV_KEY" https://www.voiceofvillage.com/api/v1/states/telangana/districts
GET /api/v1/districts/{id}/mandalsSub-districts (mandal / tehsil / taluka / block) of a district
curl -H "Authorization: Bearer $VOV_KEY" https://www.voiceofvillage.com/api/v1/districts/1/mandals
GET /api/v1/mandals/{id}/villagesVillages of a sub-district, 100 per page
curl -H "Authorization: Bearer $VOV_KEY" https://www.voiceofvillage.com/api/v1/mandals/1/villages?page=1
GET /api/v1/constituencies/lok-sabha/{slug}A Lok Sabha constituency: segments and results since 2009, with sources
curl -H "Authorization: Bearer $VOV_KEY" https://www.voiceofvillage.com/api/v1/constituencies/lok-sabha/karimnagar
GET /api/v1/constituencies/vidhan-sabha/{state}/{slug}An assembly constituency: results history with sources
curl -H "Authorization: Bearer $VOV_KEY" https://www.voiceofvillage.com/api/v1/constituencies/vidhan-sabha/telangana/choppadandi
MCP server for AI assistants
A Model Context Protocol server (Streamable HTTP, stateless, read-only) at https://www.voiceofvillage.com/api/mcp. Tools: get_village, search_places, get_mandi_prices, get_weather, find_nearest, get_jobs, get_representatives, distance. Every result carries citations ({source, as_of, url}); a tool says available: false when we don't hold the data rather than guess.
tools/call shares the API limits above (send your key as a Bearer token for the higher limit); initialize and tools/list are free.
curl -s https://www.voiceofvillage.com/api/mcp -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_village","arguments":{"lgd_code":572286}}}'Licences, per field
The API mixes data under different open licences, so no single licence covers a response. Every response carries field_licenses (field path → licence id; [] means each item, and the most specific path wins) and licenses (id → name and link). Election result rows also carry their own license.
- Village names, codes and hierarchy: Local Government Directory, and Census 2011 figures: Census of India — Government Open Data License – India (GODL-India).
- Pincodes: India Post's All India Pincode Directory via data.gov.in (GODL-India), matched to villages by VoiceOfVillage.
- Election results: Election Commission of India (via OpenCity and archived ECI result pages) and TCPD Lok Dhaba — each response names the source of every contest; follow each source's terms.
- Village coordinates, and anything derived from them (including which constituency a village falls in): © OpenStreetMap contributors, ODbL 1.0. ODbL is share-alike: a database you build from these fields must stay under ODbL.
- VoiceOfVillage's own links, page URLs and ids: CC BY 4.0. Credit "VoiceOfVillage (voiceofvillage.com)" with a link, and keep the source citations from each response.
