Gov APIgeoportal.mp.gov.in ↗
Access Madhya Pradesh geospatial data via 7 endpoints: district, subdistrict, and village boundaries as GeoJSON, road networks, and GIS service metadata.
What is the Gov API?
The Geoportal MP API exposes 7 endpoints covering Madhya Pradesh administrative geography and infrastructure, sourced from the state's official NIC GIS server. get_district_boundaries returns full-resolution GeoJSON polygons for all 55 MP districts with English and Hindi names, state and district codes, and WGS84 coordinates. Additional endpoints cover subdistrict (tehsil) and village boundaries, road polylines, and the underlying GIS service catalog.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/8dea8cbf-95f7-4067-8148-06ef8f2ee39f/get_service_catalog' \ -H 'X-API-Key: $PARSE_API_KEY'
Fetches the root service catalog from the NIC GIS server listing all available MapServer services, folders, and the server version. No parameters required. Returns a single catalog object.
No input parameters required.
{
"type": "object",
"fields": {
"folders": "array of folder name strings",
"services": "array of service objects each with name (string) and type (string)",
"currentVersion": "float, the ArcGIS server version"
},
"sample": {
"data": {
"folders": [
"Hosted",
"MyServerFolder",
"nicstreet",
"school",
"Utilities"
],
"services": [
{
"name": "admin2024",
"type": "MapServer"
},
{
"name": "roadnetwork",
"type": "MapServer"
}
],
"currentVersion": 10.91
},
"status": "success"
}
}About the Gov API
Administrative Boundaries
get_districts lists all 55 districts of Madhya Pradesh, returning per-district fields including dtname (English name), dtname_hindi, stname, stcode11, and dtcode11. get_district_boundaries builds on this by returning a full GeoJSON FeatureCollection with Polygon or MultiPolygon geometries in EPSG:4326. An optional district_name parameter filters results case-insensitively against the dtname field, so you can request a single district boundary without client-side filtering.
Subdistrict and Village Layers
get_subdistrict_boundaries returns up to 200 tehsil (subdistrict) polygon features. It accepts an optional district_name parameter to narrow results to a parent district, and each feature's properties include sdtname, dtname, stname, and subdist_id. get_village_boundaries requires a district_name and returns up to 100 village polygons per call; feature properties carry vilname11, sdtname, dtname, vil_lgd, and block identifiers, giving a full administrative hierarchy from state down to village.
Road Network and GIS Catalog
get_road_network returns the first 100 road features as esriGeometryPolyline records. Each feature includes attributes (OBJECTID, Name, Road_Type, Class_Code, Meter) and geometry.paths arrays of coordinate sequences. The fields array in the response describes every attribute's name, type, and alias. get_service_catalog and get_administrative_layers expose metadata about the NIC GIS server itself: the catalog lists all available MapServer services and folders plus the currentVersion float, while the layers endpoint enumerates all layer IDs, names, geometry types, and layer types (Feature Layer or Group Layer) available in the admin2024 MapServer.
Coverage and Constraints
All boundary geometries are in WGS84 (EPSG:4326). Village and subdistrict endpoints cap results at 100 and 200 features respectively per call, so large districts may require filtered queries by district name. The road network endpoint returns a fixed first 100 features with no pagination parameter currently exposed.
The Gov API is a managed, monitored endpoint for geoportal.mp.gov.in — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when geoportal.mp.gov.in changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official geoportal.mp.gov.in API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Render choropleth maps of MP's 55 districts using
get_district_boundariesGeoJSON polygons. - Build an administrative hierarchy selector (state → district → tehsil → village) using
get_districts,get_subdistrict_boundaries, andget_village_boundaries. - Validate or geocode MP addresses by checking point-in-polygon against village boundary features with
vil_lgdandvilname11codes. - Overlay road network polylines from
get_road_network(Road_Type, Class_Code, Meter) onto district maps for infrastructure planning. - Enumerate available GIS services via
get_service_catalogto discover which MapServer layers exist before querying specific data. - Cross-reference
dtcode11andvil_lgdcodes from boundary endpoints with census or health datasets that use the same LGD coding scheme.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does geoportal.mp.gov.in have an official developer API?+
How does filtering work in `get_district_boundaries` and `get_subdistrict_boundaries`?+
get_district_boundaries accepts an optional district_name string matched case-insensitively against the dtname field, returning only the matching district polygon(s). get_subdistrict_boundaries works the same way with its own district_name parameter, filtering tehsils by their parent dtname. Omitting the parameter returns all available records up to the endpoint's cap.Does `get_village_boundaries` support querying across all districts at once?+
district_name is a required parameter and returns up to 100 village polygons for that district. The API currently has no endpoint for a state-wide village boundary dump. You can fork this API on Parse and revise it to add a paginated all-districts village endpoint.Does the road network endpoint cover named highways, rural roads, or both?+
Road_Type attribute and a Class_Code, so both classified highways and other road categories are present in the dataset. However, the endpoint returns only the first 100 features with no pagination or type-filter parameter. The API does not currently expose a filter by Road_Type or Class_Code. You can fork it on Parse and revise to add filtering parameters.Does the API expose forest coverage, land use, or satellite imagery layers?+
get_administrative_layers lists what additional layer IDs exist in the admin2024 MapServer — if forest or land-use layers appear there, you can fork this API on Parse and revise it to add endpoints querying those layer IDs.