MoSPI

App · Research & Academia · 8 actions

Read India's official statistics straight from the Ministry of Statistics and Programme Implementation, the department that compiles them. Two series are published through the platform: the Consumer Price Index, monthly since 2013 and broken down by state, spending group and rural or urban sector, which is where the headline inflation figure comes from; and the Index of Industrial Production, covering mining, manufacturing and electricity and the use-based split into capital, intermediate and consumer goods. Rank the states on inflation, follow a series month by month, or pull the raw rows. Filters take plain names and are translated into the codes the platform needs. No account or key required.

Actions

ActionWhat it does
Call an endpoint directlyCall any MoSPI endpoint with parameters of your own.
Check the platform statusCheck the platform is answering and report how current each series is.
Compare states on inflationRank the states by inflation for one month: where prices are rising fastest and where they are not.
Follow an industry trendFollow industrial output month by month for one category, with the average growth and how far the index moved.
Follow an inflation trendFollow one price series month by month, with the peak, the trough, the average and the change in the index across the period.
Get consumer price indexRead India's Consumer Price Index: the index level and the year-on-year inflation rate, by state, spending group and rural or urban sector, monthly back to 2013.
Get industrial production indexRead the Index of Industrial Production: output and its year-on-year growth for mining, manufacturing and electricity, and for the use-based split into capital, intermediate, infrastructure and consumer goods.
List the codesList the states, spending groups, sectors, industry categories and months the platform knows, with the code it files each under.

Call an endpoint directly

Call any MoSPI endpoint with parameters of your own. The platform also exposes the Annual Survey of Industries, the Periodic Labour Force Survey and National Accounts Statistics, but those answer 'Please check the input parameters passed' to every combination tried here and their parameters are published nowhere, so they have no actions of their own. This is how to reach them if you learn what they want, and how to reach anything the ministry adds later.

Inputs

PathpathtextRequired
The endpoint to call. They all begin with /api/, for example /api/cpi/getCPIIndex or /api/asi/getasiData.
Query parametersparametersobject
The query parameters as a JSON object, passed through exactly as given. Names are matched case sensitively and an unrecognised one is ignored rather than refused, so check 'total_records' against an unfiltered call to see whether a filter actually took effect.

Outputs

countnumber
How many rows came back
has_moretrue/false
Whether another page follows
pagenumber
Which page this is
page_sizenumber
How many rows per page
parameters_sentobject
Exactly what was sent
pathtext
The endpoint that was called
recordslist
The rows, untouched
sourcetext
The ministry that publishes the figures
total_pagesnumber
How many pages there are
total_recordsnumber
How many match the filters in all, across every page
Example output
{
  "count": 2,
  "has_more": true,
  "page": 1,
  "page_size": 2,
  "parameters_sent": {
    "limit": 2,
    "year": 2023
  },
  "path": "/api/cpi/getCPIIndex",
  "records": [
    {
      "baseyear": "2012",
      "group": "Consumer Food Price",
      "index": "188.4",
      "inflation": "9.03",
      "month": "December",
      "sector": "Rural",
      "state": "All India",
      "status": "F",
      "subgroup": "Consumer Food Price-Overall",
      "year": 2023
    },
    {
      "baseyear": "2012",
      "group": "Miscellaneous",
      "index": "182.5",
      "inflation": "3.46",
      "month": "December",
      "sector": "Rural",
      "state": "All India",
      "status": "F",
      "subgroup": "Household Goods and Services",
      "year": 2023
    }
  ],
  "source": "Ministry of Statistics and Programme Implementation (MoSPI)",
  "total_pages": 12942,
  "total_records": 25884
}

Check the platform status

Check the platform is answering and report how current each series is. Official statistics are published with a lag and revised afterwards, so the most recent month is worth knowing before a workflow reports a figure as the latest, and a provisional figure is worth marking as one. Also states plainly that no account is needed, which the published manual still says otherwise.

Inputs

None.

Outputs

authenticationtext
What credentials are needed, which is none
base_urltext
The platform that answered
reachabletrue/false
True when the platform answered
seriesobject
Each series with how many records it holds, its most recent period, and whether that figure is still provisional
sourcetext
The ministry that publishes the figures
Example output
{
  "authentication": "None. The published CPI manual describes a sign-up and a fifteen minute token, but that platform has been replaced and the current endpoints are open.",
  "base_url": "https://api.mospi.gov.in",
  "reachable": true,
  "series": {
    "cpi": {
      "latest_is_provisional": false,
      "latest_period": "December 2025",
      "name": "Consumer Price Index",
      "total_records": 413436
    },
    "iip": {
      "latest_period": "July 2026",
      "name": "Index of Industrial Production",
      "total_records": 17110
    }
  },
  "source": "Ministry of Statistics and Programme Implementation (MoSPI)"
}

Compare states on inflation

Rank the states by inflation for one month: where prices are rising fastest and where they are not. Every page is read, because one month of one spending group runs past the platform's page limit and a single page would quietly rank about half the states. Only the group's own figure is ranked, not its sub-groups, and any state that published no figure that month is named rather than dropped.

Inputs

YearyearnumberRequired
Which year, as four digits.From 2013 to 2100.
MonthmonthtextRequired
Which month, by name or number.One of: January, February, March, April, May, June, July, August, September, October, November, December.
Spending groupgrouptext
Which part of household spending to rank on. Defaults to General, the all items index the headline inflation rate comes from. Consumer Food Price cannot be used: it is compiled nationally and has no states.One of: General, Food and Beverages, Pan, Tobacco and Intoxicants, Clothing and Footwear, Housing, Fuel and Light, Miscellaneous. Default: General.
Sectorsectortext
Rural, urban or combined. Defaults to combined.One of: Rural, Urban, Combined. Default: Combined.
Orderordertext
Whether to put the highest inflation first or the lowest. Defaults to highest.One of: highest (Highest first), lowest (Lowest first). Default: highest.
How many statessizenumber
How many to return, from 1 to 50. Leave blank for all of them.From 1 to 50.

Outputs

all_indiaobject
The national figure, reported beside the ranking rather than in it
average_inflationnumber
Mean across every state that had a figure
countnumber
How many states came back
grouptext
The spending group ranked on
highestobject
The state with the highest inflation, whichever way the list was sorted
lowestobject
The state with the lowest, whichever way the list was sorted
monthtext
The month ranked
ordertext
Which way the list was sorted
sectortext
Rural, Urban or Combined
seriestext
Which series this is
sourcetext
The ministry that publishes the figures
stateslist
states_rankednumber
How many had a figure to rank
states_without_a_figurelist
States that published nothing that month, named rather than dropped
yearnumber
The year ranked
Example output
{
  "all_india": {
    "base_year": "2012",
    "group": "Food and Beverages",
    "index": 190.3,
    "inflation": 7.76,
    "is_provisional": false,
    "month": "February",
    "sector": "Combined",
    "state": "All India",
    "status": "F",
    "subgroup": "Food and Beverages-Overall",
    "year": 2024
  },
  "average_inflation": 7.3569,
  "count": 3,
  "group": "Food and Beverages",
  "highest": {
    "base_year": "2012",
    "group": "Food and Beverages",
    "index": 218.9,
    "inflation": 16.56,
    "is_provisional": false,
    "month": "February",
    "rank": 1,
    "sector": "Combined",
    "state": "Manipur",
    "status": "F",
    "subgroup": "Food and Beverages-Overall",
    "year": 2024
  },
  "lowest": {
    "base_year": "2012",
    "group": "Food and Beverages",
    "index": 190.9,
    "inflation": 0.16,
    "is_provisional": false,
    "month": "February",
    "rank": 35,
    "sector": "Combined",
    "state": "Lakshadweep",
    "status": "F",
    "subgroup": "Food and Beverages-Overall",
    "year": 2024
  },
  "month": "February",
  "order": "highest",
  "sector": "Combined",
  "series": "Consumer Price Index",
  "source": "Ministry of Statistics and Programme Implementation (MoSPI)",
  "states": [
    {
      "base_year": "2012",
      "group": "Food and Beverages",
      "index": 218.9,
      "inflation": 16.56,
      "is_provisional": false,
      "month": "February",
      "rank": 1,
      "sector": "Combined",
      "state": "Manipur",
      "status": "F",
      "subgroup": "Food and Beverages-Overall",
      "year": 2024
    },
    {
      "base_year": "2012",
      "group": "Food and Beverages",
      "index": 207.5,
      "inflation": 11.62,
      "is_provisional": false,
      "month": "February",
      "rank": 2,
      "sector": "Combined",
      "state": "Telangana",
      "status": "F",
      "subgroup": "Food and Beverages-Overall",
      "year": 2024
    },
    {
      "base_year": "2012",
      "group": "Food and Beverages",
      "index": 188.9,
      "inflation": 11.18,
      "is_provisional": false,
      "month": "February",
      "rank": 3,
      "sector": "Combined",
      "state": "Odisha",
      "status": "F",
      "subgroup": "Food and Beverages-Overall",
      "year": 2024
    }
  ],
  "states_ranked": 35,
  "states_without_a_figure": [
    "Arunachal Pradesh"
  ],
  "year": 2024
}

Follow an industry trend

Follow industrial output month by month for one category, with the average growth and how far the index moved. Use it to see whether manufacturing is picking up, or to chart capital goods as a read on investment. Defaults to the General index, which is the headline.

Inputs

Industry categorycategorytext
Which slice of industry. Defaults to General, the headline index.One of: Mining, Manufacturing, Electricity, General, Primary Goods, Capital Goods, Intermediate Goods, Infrastructure/ Construction Goods, Consumer Durables, Consumer Non-durables, and 4 more. Default: General.
From yearsince_yearnumber
Start the series at this year. Leave blank for as far back as the page allows.From 2012 to 2100.
How many monthssizenumber
How many points to return, up to 200, which is the platform's page limit.From 1 to 200. Default: 200.

Outputs

average_growthnumber
Mean growth across the months returned
categorytext
The category the series is for
category_typetext
Sectoral, Use-based or General
countnumber
How many rows came back
firstobject
The earliest month returned
has_moretrue/false
Whether another page follows
index_changenumber
How far the index moved from first to latest
latestobject
The most recent month returned
pagenumber
Which page this is
page_sizenumber
How many rows per page
pointslist
seriestext
Which series this is
sourcetext
The ministry that publishes the figures
total_pagesnumber
How many pages there are
total_recordsnumber
How many match the filters in all, across every page
Example output
{
  "average_growth": 5.4167,
  "category": "General",
  "category_type": "General",
  "count": 6,
  "first": {
    "base_year": "2011-12",
    "category": "General",
    "growth_rate": 4.1,
    "index": 173.2,
    "month": "March",
    "sub_category": null,
    "type": "General",
    "year": 2026
  },
  "has_more": true,
  "index_change": -48.4,
  "latest": {
    "base_year": "2022-23",
    "category": "General",
    "growth_rate": 6.7,
    "index": 124.8,
    "month": "July",
    "sub_category": null,
    "type": "General",
    "year": 2026
  },
  "page": 1,
  "page_size": 6,
  "points": [
    {
      "base_year": "2011-12",
      "category": "General",
      "growth_rate": 4.1,
      "index": 173.2,
      "month": "March",
      "sub_category": null,
      "type": "General",
      "year": 2026
    },
    {
      "base_year": "2022-23",
      "category": "General",
      "growth_rate": 3.0,
      "index": 129.7,
      "month": "March",
      "sub_category": null,
      "type": "General",
      "year": 2026
    },
    {
      "base_year": "2022-23",
      "category": "General",
      "growth_rate": 4.9,
      "index": 118.2,
      "month": "April",
      "sub_category": null,
      "type": "General",
      "year": 2026
    }
  ],
  "series": "Index of Industrial Production",
  "source": "Ministry of Statistics and Programme Implementation (MoSPI)",
  "total_pages": 6,
  "total_records": 34
}

Follow an inflation trend

Follow one price series month by month, with the peak, the trough, the average and the change in the index across the period. Pinning the state, group and sector is what makes it a series: without that the platform interleaves every combination and the result is not a trend. Defaults to the national all items series, which is the one the headline inflation rate is quoted from.

Inputs

Statestatetext
Which state, or 'All India' for the national series. Defaults to All India.One of: Jammu & Kashmir, Himachal Pradesh, Punjab, Chandigarh, Uttarakhand, Haryana, Delhi, Rajasthan, Uttar Pradesh, Bihar, and 27 more. Default: All India.
Spending groupgrouptext
Which part of household spending. Defaults to General, the all items index. Consumer Food Price is national only, so it cannot be followed for a single state.One of: General, Food and Beverages, Pan, Tobacco and Intoxicants, Clothing and Footwear, Housing, Fuel and Light, Miscellaneous, Consumer Food Price. Default: General.
Sectorsectortext
Rural, urban or combined. Defaults to combined.One of: Rural, Urban, Combined. Default: Combined.
From yearsince_yearnumber
Start the series at this year. Leave blank for as far back as the page allows. The series itself begins in 2013.From 2013 to 2100.
How many monthssizenumber
How many points to return, up to 200, which is the platform's page limit. The newest are returned first and then put in order.From 1 to 200. Default: 200.

Outputs

average_inflationnumber
Mean across the months returned
countnumber
How many rows came back
firstobject
The earliest month returned
grouptext
The spending group
has_moretrue/false
Whether another page follows
highest_inflationobject
The month inflation peaked
index_changenumber
How far the index moved from first to latest
latestobject
The most recent month returned
lowest_inflationobject
The month it was lowest
pagenumber
Which page this is
page_sizenumber
How many rows per page
pointslist
sectortext
Rural, Urban or Combined
seriestext
Which series this is
sourcetext
The ministry that publishes the figures
statetext
The state the series is for
total_pagesnumber
How many pages there are
total_recordsnumber
How many match the filters in all, across every page
Example output
{
  "average_inflation": 4.2583,
  "count": 6,
  "first": {
    "base_year": "2012",
    "group": "Food and Beverages",
    "index": 233.9,
    "inflation": 5.12,
    "is_provisional": false,
    "month": "December",
    "sector": "Combined",
    "state": "All India",
    "status": "F",
    "subgroup": "Meat and Fish",
    "year": 2025
  },
  "group": "Food and Beverages",
  "has_more": true,
  "highest_inflation": {
    "base_year": "2012",
    "group": "Food and Beverages",
    "index": 196.1,
    "inflation": 6.75,
    "is_provisional": false,
    "month": "December",
    "sector": "Combined",
    "state": "All India",
    "status": "F",
    "subgroup": "Oils and Fats",
    "year": 2025
  },
  "index_change": -36.5,
  "latest": {
    "base_year": "2012",
    "group": "Food and Beverages",
    "index": 197.4,
    "inflation": -0.35,
    "is_provisional": false,
    "month": "December",
    "sector": "Combined",
    "state": "All India",
    "status": "F",
    "subgroup": "Cereals and Products",
    "year": 2025
  },
  "lowest_inflation": {
    "base_year": "2012",
    "group": "Food and Beverages",
    "index": 197.4,
    "inflation": -0.35,
    "is_provisional": false,
    "month": "December",
    "sector": "Combined",
    "state": "All India",
    "status": "F",
    "subgroup": "Cereals and Products",
    "year": 2025
  },
  "page": 1,
  "page_size": 6,
  "points": [
    {
      "base_year": "2012",
      "group": "Food and Beverages",
      "index": 233.9,
      "inflation": 5.12,
      "is_provisional": false,
      "month": "December",
      "sector": "Combined",
      "state": "All India",
      "status": "F",
      "subgroup": "Meat and Fish",
      "year": 2025
    },
    {
      "base_year": "2012",
      "group": "Food and Beverages",
      "index": 222.3,
      "inflation": 4.81,
      "is_provisional": false,
      "month": "December",
      "sector": "Combined",
      "state": "All India",
      "status": "F",
      "subgroup": "Egg",
      "year": 2025
    },
    {
      "base_year": "2012",
      "group": "Food and Beverages",
      "index": 192.3,
      "inflation": 2.56,
      "is_provisional": false,
      "month": "December",
      "sector": "Combined",
      "state": "All India",
      "status": "F",
      "subgroup": "Milk and Products",
      "year": 2025
    }
  ],
  "sector": "Combined",
  "series": "Consumer Price Index",
  "source": "Ministry of Statistics and Programme Implementation (MoSPI)",
  "state": "All India",
  "total_pages": 52,
  "total_records": 312
}

Get consumer price index

Read India's Consumer Price Index: the index level and the year-on-year inflation rate, by state, spending group and rural or urban sector, monthly back to 2013. This is the series the headline inflation number comes from. Filter by name and the names are translated into the codes the platform needs, which matters because it accepts a name, ignores it, and returns everything looking filtered.

Inputs

Yearyeartext
Which year or years, as four digits. Several can be given separated by commas. Leave blank for the whole series.
Monthmonthtext
Which month, by name or number. Leave blank for every month.One of: January, February, March, April, May, June, July, August, September, October, November, December.
Statestatetext
Which state or union territory, by name. 'All India' is the national figure. Leave blank for every state at once.One of: Jammu & Kashmir, Himachal Pradesh, Punjab, Chandigarh, Uttarakhand, Haryana, Delhi, Rajasthan, Uttar Pradesh, Bihar, and 27 more.
Sectorsectortext
Rural, urban, or the two combined. Prices move differently in each, so this is worth setting rather than leaving to chance.One of: Rural, Urban, Combined.
Spending groupgrouptext
Which part of household spending. 'General' is the all items index the headline inflation rate comes from. Leave blank for all of them. Note that Consumer Food Price is compiled nationally only and has no state breakdown.One of: General, Food and Beverages, Pan, Tobacco and Intoxicants, Clothing and Footwear, Housing, Fuel and Light, Miscellaneous, Consumer Food Price.
Sub-group codesubgroup_codetext
A finer breakdown within a group, by its code such as '1.1'. Leave blank for every sub-group. The names come back on the rows, so run it once without this to see what there is.
Base yearbase_yeartext
Which index base to read, for example '2012'. Leave blank for all. An index is only comparable against its own base.
How many to returnsizenumber
How many rows to return, from 1 to 200. Defaults to 100. The platform refuses a larger page.From 1 to 200. Default: 100.
Pagepagenumber
Which page of results, counting from 1. The response says how many pages there are.From 1 to 100000. Default: 1.

Outputs

countnumber
How many rows came back
filters_appliedobject
The filters that actually reached the platform, as codes. Worth checking: a filter it did not recognise would not be here
has_moretrue/false
Whether another page follows
pagenumber
Which page this is
page_sizenumber
How many rows per page
recordslist
seriestext
Which series this is
sourcetext
The ministry that publishes the figures
total_pagesnumber
How many pages there are
total_recordsnumber
How many match the filters in all, across every page
Example output
{
  "count": 3,
  "filters_applied": {
    "group_code": "1",
    "state_code": "32",
    "year": "2024"
  },
  "has_more": true,
  "page": 1,
  "page_size": 3,
  "records": [
    {
      "base_year": "2012",
      "group": "Food and Beverages",
      "index": 182.2,
      "inflation": 2.02,
      "is_provisional": false,
      "month": "December",
      "sector": "Rural",
      "state": "Kerala",
      "status": "F",
      "subgroup": "Cereals and Products",
      "year": 2024
    },
    {
      "base_year": "2012",
      "group": "Food and Beverages",
      "index": 204.3,
      "inflation": 6.46,
      "is_provisional": false,
      "month": "December",
      "sector": "Rural",
      "state": "Kerala",
      "status": "F",
      "subgroup": "Meat and Fish",
      "year": 2024
    },
    {
      "base_year": "2012",
      "group": "Food and Beverages",
      "index": 214.2,
      "inflation": 6.57,
      "is_provisional": false,
      "month": "December",
      "sector": "Rural",
      "state": "Kerala",
      "status": "F",
      "subgroup": "Egg",
      "year": 2024
    }
  ],
  "series": "Consumer Price Index",
  "source": "Ministry of Statistics and Programme Implementation (MoSPI)",
  "total_pages": 156,
  "total_records": 468
}

Get industrial production index

Read the Index of Industrial Production: output and its year-on-year growth for mining, manufacturing and electricity, and for the use-based split into capital, intermediate, infrastructure and consumer goods. Published monthly, and the earliest signal of whether industry is expanding or contracting.

Inputs

Yearyeartext
Which year or years, as four digits. Several can be given separated by commas. Leave blank for the whole series.
Monthmonthtext
Which month, by name or number. Leave blank for every month.One of: January, February, March, April, May, June, July, August, September, October, November, December.
Industry categorycategorytext
Which slice of industry. Mining, Manufacturing and Electricity are the sectoral split and the goods categories the use-based one. 'General' is the headline index. The last four belong to earlier base years the platform still serves.One of: Mining, Manufacturing, Electricity, General, Primary Goods, Capital Goods, Intermediate Goods, Infrastructure/ Construction Goods, Consumer Durables, Consumer Non-durables, and 4 more.
Base yearbase_yeartext
Which index base to read, '2011-12' or '2022-23'. Leave blank for both. An index is only comparable against its own base, so a series that crosses the change needs care.
How many to returnsizenumber
How many rows to return, from 1 to 200. Defaults to 100. The platform refuses a larger page.From 1 to 200. Default: 100.
Pagepagenumber
Which page of results, counting from 1. The response says how many pages there are.From 1 to 100000. Default: 1.

Outputs

countnumber
How many rows came back
filters_appliedobject
The filters that reached the platform, as codes
has_moretrue/false
Whether another page follows
pagenumber
Which page this is
page_sizenumber
How many rows per page
recordslist
seriestext
Which series this is
sourcetext
The ministry that publishes the figures
total_pagesnumber
How many pages there are
total_recordsnumber
How many match the filters in all, across every page
Example output
{
  "count": 3,
  "filters_applied": {
    "category_code": "2",
    "year": "2024"
  },
  "has_more": true,
  "page": 1,
  "page_size": 3,
  "records": [
    {
      "base_year": "2022-23",
      "category": "Manufacturing",
      "growth_rate": -4.3,
      "index": 114.3,
      "month": "December",
      "sub_category": "Manufacture of Food Products",
      "type": "Sectoral",
      "year": 2024
    },
    {
      "base_year": "2011-12",
      "category": "Manufacturing",
      "growth_rate": -4.1,
      "index": 154.2,
      "month": "December",
      "sub_category": "Manufacture of Food Products",
      "type": "Sectoral",
      "year": 2024
    },
    {
      "base_year": "2011-12",
      "category": "Manufacturing",
      "growth_rate": 2.9,
      "index": 104.2,
      "month": "December",
      "sub_category": "Manufacture of Beverages",
      "type": "Sectoral",
      "year": 2024
    }
  ],
  "series": "Index of Industrial Production",
  "source": "Ministry of Statistics and Programme Implementation (MoSPI)",
  "total_pages": 192,
  "total_records": 576
}

List the codes

List the states, spending groups, sectors, industry categories and months the platform knows, with the code it files each under. Worth reading first. The platform filters on codes and ignores names: ask it for Kerala and it accepts the request, ignores it, and returns all thirty-six states looking filtered. The other actions accept either and translate for you; this is where the names come from.

Inputs

Which tabletabletext
Return just one table. Leave blank for all of them.One of: states (States and union territories), cpi_groups (Consumer price spending groups), sectors (Rural, urban and combined), iip_categories (Industrial production categories), months.

Outputs

cpi_groupslist
Consumer price spending groups
iip_categorieslist
Industrial production categories, each with its grouping
monthslist
Months and their numbers
notetext
How the platform treats names against codes
sectorslist
Rural, urban and combined
stateslist
States and union territories, with their codes
tableslist
Which tables came back
Example output
{
  "note": "The platform filters on these codes and ignores names. The other actions accept either and translate for you.",
  "sectors": [
    {
      "code": 1,
      "name": "Rural"
    },
    {
      "code": 2,
      "name": "Urban"
    },
    {
      "code": 3,
      "name": "Combined"
    }
  ],
  "tables": [
    "sectors"
  ]
}

On this page