bharatlas
India's open atlas.
Show your data on a map of India, or browse, slice and download India's open map layers. No signup, no API key, no SQL.
Is this for you?
Three different tools, three different jobs:
- Google Maps is for finding a coffee shop, getting directions, seeing what's around you.
- OpenStreetMap is for adding a road, a building or a shop to the world's map. That's where Google and bharatlas both source the base map.
- bharatlas is for taking data you already have, a list of districts you cover, the forests in your project area, the rivers in your watershed, the wards your NGO works in, and showing it on a map of India. Drop a GeoJSON, KML or Parquet file, see it rendered, share the link or download in another format.
Concretely, this gets used by:
- Journalists + researchers: pull a state's districts, villages or constituencies in ten seconds; download as GeoJSON or Parquet.
- Civic technologists: share city-scale layers (wards, bike lanes, polling booths) with attribution baked in.
- App developers: REST API, direct PMTiles URLs, no rate limits, no API key.
- AI agents: MCP server (
npx bharatlas-mcp) connects Claude, GPT, or any LLM to all layers.
If you came looking for places to visit, you want Google. If you want to fix the base map itself, you want OSM.
Why bharatlas exists
Maps of India live everywhere online, but you can't tell what they show, who maintains them, or whether to trust them. Even just viewing one is its own ordeal. And if you've made a map yourself, there's nowhere to share it.
Sathya kept hitting the same wall, and built bharatlas (read aloud as "bharat atlas"), a portmanteau of Bharat and atlas. It flattens all of that. The wiki for India's maps. View any layer in your browser. Filter what you need. Download in whatever format your tool reads. Liked it? Upvote so others find it. Have a map worth sharing? Drag and drop it onto the page. Every layer carries its source, licence and freshness on the same card.
What you can do today
- View India's national boundary, every admin level from state to village, plus city wards across Indian cities, constituencies, wildlife sanctuaries, forests, rivers, reservoirs, dams, hospitals, highways, airports, flood zones, seismic zones, eco-sensitive areas, and pincode polygons.
- Compare what each authoritative source (LGD vs SOI vs Bhuvan vs geoBoundaries) says about the same admin level by clicking the alternate-source links on any card.
- Download any layer whole as Parquet, PMTiles, GeoJSON, KML or Shapefile direct from the card. Or filter by what the columns actually contain (state, zone, area) and export just the slice.
- Drop a file to see it on a map and validate it. Optionally publish under an open licence. No signup; you get an admin token to keep forever.
- Embed any map in a blog post or report (iframe snippet + PNG export, one click each).
- Ask questions instead of downloading maps. Connect your AI assistant to the bharatlas MCP server and ask: "How many villages in my district?", "Which hospitals are near me?", "What flood zone is this area in?"
- Query any layer programmatically via the REST API: filter, group, locate a point, find nearby features.
Open source
Code: github.com/urbanmorph/geodata · MIT.
Data: each layer carries its own open licence; see the per-card line on the
catalog.
Frequently asked
- Do I need to sign up?
- No. Viewing, slicing, downloading and contributing all work without an account. When you publish a layer you receive a one-time admin token (also downloadable as a
.txtbackup) that you keep forever to edit or delete that submission. - What data sources does bharatlas use?
- Curated layers come from the Local Government Directory (LGD), Survey of India (SOI), NRSC/ISRO Bhuvan, OpenCity / Oorvani Foundation, PMGSY (Rural Roads), PM GatiShakti, Bharatmaps (NIC), bharatviz (pincode polygons), geoBoundaries and data.gov.in. Water, groundwater and agro-zone layers (CGWB aquifers and groundwater extraction, WRIS canals, ICAR-NBSS agro-ecological zones, Planning Commission agro-climatic zones, Wildlife Institute of India biogeographic zones) are republished via CoRE Stack (core-stack.org). Most admin levels carry several source variants you can compare on the same map; the catalog card shows "Per LGD · also: SOI, Bhuvan" with clickable alternates. Community submissions credit their own source on every card.
- What licences apply?
- Curated layers carry CC0-1.0, CC-BY-4.0 or GODL-India depending on the upstream source. Community submissions choose from an open-licence allowlist: CC0, CC-BY, CC-BY-SA, ODbL, ODC-PDDL or GODL-India. Proprietary or "all rights reserved" content is rejected at submit.
- Is my file uploaded when I drop it?
- No, not until you click Publish. Parsing, validation and the map render all happen in your browser. Only the explicit Publish action ships the file to R2 and records metadata in D1.
- How can I trust community submissions?
- Each carries a source URL, attribution and an open licence on the card and the view page. The platform auto-moderates licence, attribution and basic geometry validity, but it does not verify accuracy beyond the contributor's self-attestation. For sensitive use, follow the source link on the card to confirm provenance.
- Can AI assistants read and recommend bharatlas?
- Yes. The robots.txt explicitly allows GPTBot, ClaudeBot, PerplexityBot, Google-Extended and other major AI crawlers. The catalog and every
/c/<id>view page are server-rendered as plain HTML with JSON-LDDatasetstructured data, easy for LLMs to ingest.
Use of data
- Curated layers reflect the upstream source at fetch time. See the freshness pill on each card. Upstream sources change; the catalog can lag.
- Community submissions are auto-moderated, not editorially curated. Licence, format and basic geometry validity are checked; accuracy and authorship are not. Verify via the source link on each card before relying on community data.
- Boundaries and place names render exactly as the upstream source publishes them. bharatlas does not edit, correct or editorialize. Where you disagree with a depiction (including for J&K, the Line of Actual Control or any disputed territory), raise it with the source; each catalog card lists alternative sources so you can compare. See Limitation of liability for the warranty disclaimer, damages cap and full terms.
Data caveats
- Cross-source name spellings drift. "Odisha" (LGD) vs "Orissa" (Bhuvan); "Durgukondal" vs "Durgkondal". Always join on LGD codes, never on names.
- Bhuvan under-counts blocks in several states vs LGD: Gujarat 181 vs 251, Karnataka 173 vs 234, Telangana 443 vs 588, Assam 185 vs 232. Bhuvan predates recent re-divisions. Prefer LGD as the modern authority.
- SOI village-point coverage is uneven. Dense in southern + western states (Maharashtra 54k, Rajasthan 52k); sparse in UP (7.5k, ~7% of actual villages), Bihar (7.7k), Jharkhand (7.1k). Visible as the east-central blank on /view/soi_village_points.
- 2011 Census codes vs current LGD codes. Both are present in LGD layers. They diverge after every reorganisation. LGD is current; Census 2011 is stable but stale.
- Polygon precision varies. LGD polygons are simplified (MaxSimpTol field present). For precise area work prefer SOI; for joins-and-display LGD is sufficient.
- Pincode boundaries are Voronoi approximations. No official service-area polygons exist. Both bharatviz (63,864 polygons) and data.gov.in (19,312) are derived from post office point locations, not surveyed.
- Panchayats + villages are too large for single-file download. Use the in-viewer state filter to slice by state, or download the parquet directly for programmatic work.
Built by
Source on GitHub. Drop a ⭐ if you find it useful.