---
title: "India Map Generator (Free Choropleth by State)"
description: "Shade India's states and union territories by your own numbers with a free India map generator, a one-line embed that updates on new data, plus an API."
url: "https://www.imejis.io/blogs/tutorials/india-map-generator"
published: "2026-08-02"
---

# India Map Generator (Free Choropleth by State)

Hand the India map generator a list of state values and it paints a shaded map. Each region gets a number, the map colors it on a scale, and you download a PNG or SVG. It answers the "where" question in a report: sales by state, users by region, coverage across the country at a glance.

## What an India choropleth map shows

A [choropleth](https://en.wikipedia.org/wiki/Choropleth_map) shades each region by a value, so darker or more saturated means more. Color does the talking. The eye reads the pattern before it reads any number, and one look tells you Maharashtra and Karnataka are your big markets, or that growth clusters in a few states.

The basemap covers India's [states and union territories](https://en.wikipedia.org/wiki/States_and_union_territories_of_India), keyed by their ISO-3166-2 codes. Each region is one row:

- **id:** which state. A 2-letter code like `MH`, `UP`, `TN`, `KA`, or `GJ`, the ISO-3166-2 form `IN-MH`, or the state name `Maharashtra`. Any of the three matches.
- **value:** the number to shade by. Sales, users, a survey score, a percentage, whatever you're tracking.

Regions you don't include render in a neutral "no data" color, so a partial dataset works fine. You bring the values, the map already knows the shapes. One thing to keep in mind: this shades your own data by region, it isn't an authoritative political boundary map.

## Make one free

Open the [India map generator](/tools/india-map-generator). Add a row per state as an id and a value, pick a color scale, and download the map. Export a PNG for emails and docs, or an SVG when you want it crisp at any size. There's no signup and no watermark.

The tool doesn't care what the numbers mean. Rupees, signups, percentages. Doesn't matter. A region and a value gets you a shaded state.

## Embed it anywhere

A map image embeds like any other image. One line of HTML and it renders inline:

```html
<img
  src="https://your-render-url"
  alt="Sales by state, India choropleth map"
  width="800"
/>
```

Here's what makes it worth doing. Point at a **render URL** instead of a saved file and the map redraws every time it loads. Push this month's numbers and the same URL returns an updated map. The doc stays as is, and nobody re-exports anything. A "sales by state" panel in a dashboard or a weekly email refreshes itself.

Save a static file when you want a fixed snapshot, like a map pinned to a quarter in a report. Use a render URL when the picture should follow new data.

## Generate at scale

One map by hand is easy. One per customer, or one every morning, is where the API earns its keep.

The [map component](/components/map) is API-native, so you configure it once and render on demand. One call takes your list of `{ id, value }` rows and returns the image. A few ways people wire it up:

- **On a schedule:** a cron job pulls the latest figures, hits the render URL, and drops the map into a morning report.
- **Per request:** your app renders a map on the fly for whatever state breakdown a user asks for.
- **Through an [AI agent over MCP](/agents):** the agent gathers the data and calls the render itself, with no plumbing on your side.

Working examples live in the [API docs](/apis), ready to copy, so you're not guessing at the request shape. Draw the map once, then keep the data coming.

## Start making India maps

State values in, a shaded map out.

- Build one now in the [India map generator](/tools/india-map-generator), free, PNG or SVG.
- Configure it as an API [component](/components/map) and render on demand.
- Automate it through the [API](/apis) or an [AI agent](/agents).

The free plan covers [100 renders a month](/pricing), enough to stand up a live "by state" panel and watch it update before you upgrade.
