IMF Data

App · Accounting & Finance · 10 actions

Read the IMF's official economic statistics from a workflow. Get growth, inflation, unemployment, GDP, government debt and deficit, the current account, population or the exchange rate for any of roughly 200 economies, follow one through time, compare countries side by side, or pull a whole country profile in one step. World commodity prices - crude oil, gold, copper, wheat, coffee - come from the IMF's own price system. Everything else the IMF publishes, from trade by partner country to financial soundness indicators, is reachable by searching the catalogue and filtering a dataset by name. The World Economic Outlook publishes forecasts beside measurements, so every figure says which it is. Every action reads: nothing here changes anything. No account or API key required.

Actions

ActionWhat it does
Compare countriesPut several economies side by side on one statistic and rank them, in a single step rather than one per country.
Find a datasetSearch the IMF catalogue by words in a dataset's name or its summary, and get back the code every other action takes.
Get a commodity priceGet the world price of a commodity from the IMF's Primary Commodity Price System - crude oil, gold, copper, wheat, coffee, natural gas and a hundred more, monthly since 1980.
Get a country's economic profileGet several headline statistics for one country at once - growth, inflation, unemployment, income per person, government debt and the current account unless you choose otherwise.
Get a dataset's detailsEverything you need to query one dataset: what it holds, the filters it is keyed by in the order the key wants them, how many values each of those accepts and a few examples of each, how often it reports, how many economies it covers, when it was last updated and how the IMF asks to be cited.
Get a time seriesFollow one series from any IMF dataset through time.
Get an economic statisticGet one of twenty-six headline IMF statistics for a country and follow it through time - GDP and its growth, inflation, unemployment, government debt and deficit, the current account, population, the exchange rate.
Get data from a datasetGet figures from any IMF dataset.
Get the latest figureGet the most recent value of one IMF statistic for one country, returned flat so a later step can read the number, the period and the change on the period before without indexing into a list.
List a filter's valuesList the codes one filter of one dataset accepts, each with the words behind it, so a filter box can be filled in rather than guessed at.

Compare countries

Put several economies side by side on one statistic and rank them, in a single step rather than one per country. Pick the countries by name from the list, up to forty at a time. Leaving the year empty gives each economy its own most recent figure, which can be a different year for each - the result says when that happens and every row carries its own period.

Inputs

Statisticstatistictext
Which figure to read. These are the twenty-six headline statistics the IMF is asked for most, and the dataset and codes behind each one are already filled in. GDP growth by default. For anything else the IMF publishes - trade by partner country, financial soundness, reserves - use 'Get data from a dataset'.One of: gdp_growth (GDP growth (percent a year)), gdp (GDP (US dollars)), gdp_per_person (GDP per person (US dollars a person)), gdp_ppp (GDP at purchasing-power parity (international dollars)), gdp_per_person_ppp (GDP per person at purchasing-power parity (international dollars a person)), share_of_world_gdp (Share of world GDP (percent of world GDP)), output_gap (Output gap (percent of potential GDP)), inflation (Inflation (percent a year)), inflation_end_of_year (Inflation at the end of the year (percent a year)), inflation_monthly (Inflation, monthly (percent a year)), and 16 more. Default: gdp_growth.
CountriescountrieslistRequired
Which economies to compare, two or more. The list holds every country the IMF reports on and the groups it aggregates. A value from an earlier step can be a list of names or codes, or one comma-separated line.
As ofas_ofdate
Which year to read. Read as the year that contains the date, so any day in 2024 means 2024. Leave it empty for each economy's most recent figure, which may be a different year for each of them - the result says so, and every row carries its own period. An economy the IMF has not reported on for many years is then listed as missing rather than compared on a figure from a decade ago.
Orderordertext
Highest first by default, which is what a league table wants. Lowest first for a statistic where small is good, such as unemployment or government debt.One of: highest_first (Highest first), lowest_first (Lowest first), by_name (By country name). Default: highest_first.
What counts as the latestbasistext
The World Economic Outlook publishes forecasts five years ahead in the same column as the measurements, so 'the latest figure' is ambiguous and this settles it. By default the latest actual is returned, because a number presented as a measurement should be one. Switch to include forecasts when the question really is what the IMF expects. Either way each figure says which it is.One of: actual (Only figures the IMF reports as actual), any (The latest figure, forecast or actual). Default: actual.

Outputs

averagenumber
The mean of these figures, unweighted
countnumber
How many economies had a figure
countrieslist
One row per economy, in the order asked for
datasettext
The dataset they came from
dataset_urltext
Where to read the same dataset on the IMF's site
highestobject
The economy with the largest figure
lowestobject
The economy with the smallest figure
missinglist
The economies the IMF has no figure for
periodslist
The periods these figures come from
requested_countnumber
How many economies were asked about
same_periodtrue/false
False when economies reported up to different periods, so the rows are each economy's own latest rather than one year
scalenumber
The exponent the IMF prints these figures in
sourcetext
Who compiled the figures
statistictext
The statistic that was read
statistic_labeltext
Its name
unittext
What the figures are in
Example output
{
  "average": 0.5838995,
  "count": 2,
  "countries": [
    {
      "basis": "actual",
      "country": "FRA",
      "country_label": "France",
      "formatted": "0.9",
      "is_projection": false,
      "period": "2025",
      "period_end": "2025-12-31",
      "period_label": "2025",
      "period_start": "2025-01-01",
      "rank": 1,
      "value": 0.928126,
      "year": 2025
    },
    {
      "basis": "actual",
      "country": "DEU",
      "country_label": "Germany",
      "formatted": "0.2",
      "is_projection": false,
      "period": "2025",
      "period_end": "2025-12-31",
      "period_label": "2025",
      "period_start": "2025-01-01",
      "rank": 2,
      "value": 0.239673,
      "year": 2025
    }
  ],
  "dataset": "WEO",
  "dataset_url": "https://data.imf.org/en/datasets/IMF.RES:WEO",
  "highest": {
    "basis": "actual",
    "country": "FRA",
    "country_label": "France",
    "formatted": "0.9",
    "is_projection": false,
    "period": "2025",
    "period_end": "2025-12-31",
    "period_label": "2025",
    "period_start": "2025-01-01",
    "rank": 1,
    "value": 0.928126,
    "year": 2025
  },
  "lowest": {
    "basis": "actual",
    "country": "DEU",
    "country_label": "Germany",
    "formatted": "0.2",
    "is_projection": false,
    "period": "2025",
    "period_end": "2025-12-31",
    "period_label": "2025",
    "period_start": "2025-01-01",
    "rank": 2,
    "value": 0.239673,
    "year": 2025
  },
  "missing": [],
  "periods": [
    "2025"
  ],
  "requested_count": 2,
  "same_period": true,
  "scale": 0,
  "source": "IMF staff calculations.",
  "statistic": "gdp_growth",
  "statistic_label": "GDP growth",
  "unit": "percent a year"
}

Find a dataset

Search the IMF catalogue by words in a dataset's name or its summary, and get back the code every other action takes. This is the way in to everything the headline statistics do not cover: trade by partner country, financial soundness indicators, reserves, government finance, the Financial Access Survey. Half the catalogue is dated archive copies frozen as a published report left them; those are left out unless you ask for them, and the result says how many.

Inputs

Searchsearchtext
Only datasets whose name, code or summary contains this text. Capitals, accents and punctuation are ignored. Leave it empty to list the catalogue.
Which datasetsscopetext
The datasets the IMF maintains, by default. Include the archive copies when you need to reproduce a figure exactly as some report published it - each one is that dataset frozen at a named month.One of: current (Only the datasets the IMF maintains), all (Also the dated archive copies). Default: current.
Number of recordslimitnumber
Optional. How many records to return. Between 1 and 500; 25 by default.From 1 to 500. Default: 25.
Skipoffsetnumber
Optional. How many matching records to skip before this page. Use the next offset from the previous result to page through. 0 by default.At least 0. Default: 0.

Outputs

archived_countnumber
How many dated archive copies the catalogue holds
catalogue_countnumber
How many datasets were searched
countnumber
How many are on this page
datasetslist
The datasets that matched, current ones first
has_moretrue/false
True when more matched than this page holds
next_offsetnumber
The offset that returns the next page
scopetext
Whether archive copies were searched: current or all
searchtext
The text that was searched for
total_countnumber
How many matched in all
Example output
{
  "archived_count": 119,
  "catalogue_count": 103,
  "count": 3,
  "datasets": [
    {
      "agency": "IMF.STA",
      "dataset": "CRBRATE",
      "description": "This dataset provides information on the Effective Carbon Rate (ECR), which represents the combined value of fuel excise taxes, carbon taxes, and tradeable permits that place a price on carbon emissio...",
      "is_archived": false,
      "name": "Carbon Rates",
      "reference": "IMF.STA:CRBRATE",
      "url": "https://data.imf.org/en/datasets/IMF.STA:CRBRATE"
    },
    {
      "agency": "IMF.RES",
      "dataset": "CTOT",
      "description": "CTOT is a comprehensive database of country-specific commodity price indices for 182 economies covering the period from 1962 onwards. For each country, the change in the international price of up to 4...",
      "is_archived": false,
      "name": "Commodity Terms of Trade (CTOT)",
      "reference": "IMF.RES:CTOT",
      "url": "https://data.imf.org/en/datasets/IMF.RES:CTOT"
    }
  ],
  "has_more": true,
  "next_offset": 3,
  "scope": "current",
  "search": "price",
  "total_count": 12
}

Get a commodity price

Get the world price of a commodity from the IMF's Primary Commodity Price System - crude oil, gold, copper, wheat, coffee, natural gas and a hundred more, monthly since 1980. Ask for the price itself, the index, or the change on the month or the year. The result carries the high, the low and the average across the period as well as the latest, so a price alert needs no arithmetic of its own.

Inputs

CommoditycommoditytextRequired
Which commodity to price. The list holds everything the IMF prices, each with the unit it is quoted in, and includes the IMF's own composite indexes such as All Commodities and Energy. A value from an earlier step can be the IMF's code or the commodity's name.
Measuremeasuretext
The price in US dollars by default. The index is the IMF's own, set to 100 in its base year, and is the only measure available for a composite such as All Commodities. The two change measures come back as percentages already worked out.One of: price (Price in US dollars), index (Price index), change_on_month (Change on the period before, percent), change_on_year (Change on a year earlier, percent). Default: price.
How oftenfrequencytext
Monthly by default, which is how the IMF collects these prices. Quarterly and annual are the IMF's own averages of the same series.One of: M (Monthly), Q (Quarterly), A (Annual). Default: M.
Fromfrom_datedate
The earliest date to cover. The IMF reports in whole periods - a year, a quarter, a month - so this is read as the period that contains the date rather than as the day itself. Left empty, a step returns the recent part of the series rather than all of it, because a monthly one runs back to the 1950s and eight hundred figures is rarely what was wanted; set a date here to reach the whole history.
Toto_datedate
The latest date to cover, read as the period that contains it. Leave it empty to run to the end of the series, which for a World Economic Outlook figure is several years of IMF projections.

Outputs

averagenumber
The mean across the range
citationtext
How the IMF asks to be cited
commoditytext
The IMF's code for the commodity, such as PCOPP
commodity_labeltext
What it is called
commodity_unittext
What it is priced in, such as US dollars per barrel
countnumber
How many periods came back
datasettext
The dataset it came from
dataset_urltext
Where to read the same dataset on the IMF's site
first_periodtext
The earliest period
frequencytext
M, Q or A
frequency_labeltext
That frequency in words
full_nametext
The IMF's own full name for the series
highestobject
The highest point in the range
last_periodtext
The latest period
latestobject
The most recent point
lowestobject
The lowest point in the range
measuretext
Which measure was read: price, index or a change
measure_labeltext
That measure in words
observationslist
The series, oldest first
sourcetext
Who compiled the figures
Example output
{
  "average": 11927.38930665663,
  "citation": "International Monetary Fund. Primary Commodity Price System\u00a0(PCPS),\u00a0 https://data.imf.org/en/datasets//IMF.RES:PCPS. Accessed on [current date].",
  "commodity": "PCOPP",
  "commodity_label": "Copper",
  "commodity_unit": "US dollars per metric tonne",
  "count": 15,
  "dataset": "PCPS",
  "dataset_url": "https://data.imf.org/en/datasets/IMF.RES:PCPS",
  "first_period": "2025-M06",
  "frequency": "M",
  "frequency_label": "Monthly",
  "full_name": "Copper, US dollars per metric tonne, Unit prices",
  "highest": {
    "formatted": "14,331.26",
    "period": "2026-M08",
    "period_end": "2026-08-31",
    "period_label": "August 2026",
    "period_start": "2026-08-01",
    "value": 14331.26476190476
  },
  "last_period": "2026-M08",
  "latest": {
    "formatted": "14,331.26",
    "period": "2026-M08",
    "period_end": "2026-08-31",
    "period_label": "August 2026",
    "period_start": "2026-08-01",
    "value": 14331.26476190476
  },
  "lowest": {
    "formatted": "9,671.88",
    "period": "2025-M08",
    "period_end": "2025-08-31",
    "period_label": "August 2025",
    "period_start": "2025-08-01",
    "value": 9671.875714285714
  },
  "measure": "price",
  "measure_label": "Price in US dollars",
  "observations": [
    {
      "formatted": "9,835.07",
      "period": "2025-M06",
      "period_end": "2025-06-30",
      "period_label": "June 2025",
      "period_start": "2025-06-01",
      "value": 9835.068095238095
    },
    {
      "formatted": "9,770.58",
      "period": "2025-M07",
      "period_end": "2025-07-31",
      "period_label": "July 2025",
      "period_start": "2025-07-01",
      "value": 9770.580434782609
    }
  ],
  "source": "\"PCPS Technical Documentation: IMF Primary Commodity Price Index\", Jan 25, 2019, IMF Methodology Notes"
}

Get a country's economic profile

Get several headline statistics for one country at once - growth, inflation, unemployment, income per person, government debt and the current account unless you choose otherwise. This is the briefing-note step: one call instead of six, with each figure in the unit it belongs in and each marked as measured or forecast. A statistic the IMF does not report for that country is listed as not reported rather than left out.

Inputs

Countrycountrytext
Which economy to read. The list holds every country the IMF reports on, followed by the groups it aggregates - the world, the euro area, the G7. A value from an earlier step can be the country's name ('Japan'), either of its ISO codes ('JP' or 'JPN'), or the name a person would say rather than the IMF's formal one ('South Korea' finds 'Korea, Republic of'). The United States by default.Default: USA.
Statisticsstatisticslist
Which figures to include, up to twelve. Six headline ones by default: GDP growth, inflation, unemployment, GDP per person, government debt and the current account.One or more of: gdp_growth (GDP growth (percent a year)), gdp (GDP (US dollars)), gdp_per_person (GDP per person (US dollars a person)), gdp_ppp (GDP at purchasing-power parity (international dollars)), gdp_per_person_ppp (GDP per person at purchasing-power parity (international dollars a person)), share_of_world_gdp (Share of world GDP (percent of world GDP)), output_gap (Output gap (percent of potential GDP)), inflation (Inflation (percent a year)), inflation_end_of_year (Inflation at the end of the year (percent a year)), inflation_monthly (Inflation, monthly (percent a year)), and 16 more. Default: ["gdp_growth", "inflation", "unemployment", "gdp_per_person", "government_debt", "current_account"].
As ofas_ofdate
Which year to read. Read as the year that contains the date, so any day in 2024 means 2024. Leave it empty for each economy's most recent figure, which may be a different year for each of them - the result says so, and every row carries its own period. An economy the IMF has not reported on for many years is then listed as missing rather than compared on a figure from a decade ago.
What counts as the latestbasistext
The World Economic Outlook publishes forecasts five years ahead in the same column as the measurements, so 'the latest figure' is ambiguous and this settles it. By default the latest actual is returned, because a number presented as a measurement should be one. Switch to include forecasts when the question really is what the IMF expects. Either way each figure says which it is.One of: actual (Only figures the IMF reports as actual), any (The latest figure, forecast or actual). Default: actual.

Outputs

citationtext
How the IMF asks to be cited
countnumber
How many statistics were asked for
countrytext
The IMF's code for the economy
country_labeltext
That economy's name
dataset_urltext
Where to read the World Economic Outlook on the IMF's site
found_countnumber
How many of them the IMF reports for this economy
missinglist
The statistics it does not report
periodslist
The periods these figures come from. More than one is normal: the IMF reports some figures later than others
sourcetext
Who compiled the figures
statisticslist
One row per statistic asked for, in that order
updated_attext
When the IMF last published the dataset
Example output
{
  "citation": "International Monetary Fund. World Economic Outlook (WEO), https://data.imf.org/en/datasets/IMF.RES:WEO. Accessed on [current date].",
  "count": 6,
  "country": "FRA",
  "country_label": "France",
  "dataset_url": "https://data.imf.org/en/datasets/IMF.RES:WEO",
  "found_count": 6,
  "missing": [],
  "periods": [
    "2024",
    "2025"
  ],
  "source": "IMF staff calculations.",
  "statistics": [
    {
      "basis": "actual",
      "dataset": "WEO",
      "formatted": "0.9",
      "found": true,
      "is_projection": false,
      "period": "2025",
      "period_label": "2025",
      "statistic": "gdp_growth",
      "statistic_label": "GDP growth",
      "summary": "How much the economy grew, after inflation is taken out.",
      "unit": "percent a year",
      "value": 0.928126
    },
    {
      "basis": "actual",
      "dataset": "WEO",
      "formatted": "0.9",
      "found": true,
      "is_projection": false,
      "period": "2025",
      "period_label": "2025",
      "statistic": "inflation",
      "statistic_label": "Inflation",
      "summary": "How much consumer prices rose, averaged over the year.",
      "unit": "percent a year",
      "value": 0.926027
    }
  ],
  "updated_at": "2026-04-15T13:00:00Z"
}

Get a dataset's details

Everything you need to query one dataset: what it holds, the filters it is keyed by in the order the key wants them, how many values each of those accepts and a few examples of each, how often it reports, how many economies it covers, when it was last updated and how the IMF asks to be cited. Run this before 'Get data from a dataset' and the filter boxes stop being guesswork.

Inputs

DatasetdatasettextRequired
Which of the IMF's datasets to read. The list holds the hundred or so the IMF maintains; the dated archive copies are not in it but can be typed in by code. A value from an earlier step can be the code ('WEO'), the full reference ('IMF.RES:WEO') or the dataset's name. Use 'Find a dataset' to search the catalogue by words.

Outputs

agencytext
The IMF department that publishes it
citationtext
How the IMF asks to be cited
contacttext
Where the IMF takes questions about it
country_countnumber
How many economies it covers, 0 when it is not by country
datasettext
The dataset's code
descriptiontext
What it holds
doitext
Its DOI, when it has one
filter_countnumber
How many filters that is
filterslist
Every filter it is keyed by, in key order
frequencieslist
How often the dataset reports
is_archivedtrue/false
True for a dated copy rather than the maintained dataset
licensetext
The terms it is published under
nametext
Its name
published_attext
When it was first published
referencetext
Its full IMF reference
sourcetext
Who compiled the figures
updated_attext
When it was last updated
urltext
Where to read it on the IMF's site
versiontext
The version the IMF is serving
Example output
{
  "agency": "IMF.STA",
  "citation": "",
  "contact": "help@data.imf.org",
  "country_count": 227,
  "dataset": "ER",
  "description": "This dataset contains historical exchange rate data between the US Dollar, Special Drawing Rights (SDR), Euro, and various national currencies. It includes both period average and end-of-period exchange rates.",
  "doi": "",
  "filter_count": 4,
  "filters": [
    {
      "description": "The country or region for which the data or statistics in a resource are collected or reported.",
      "examples": [
        {
          "label": "Aruba, Kingdom of the Netherlands",
          "value": "ABW"
        },
        {
          "label": "Afghanistan, Islamic Republic of",
          "value": "AFG"
        }
      ],
      "filter": "COUNTRY",
      "label": "Country",
      "position": 1,
      "value_count": 227
    },
    {
      "description": "A variable that sheds light on some phenomenon or situation.",
      "examples": [
        {
          "label": "ECU per domestic currency",
          "value": "ECU_XDC"
        },
        {
          "label": "Euros per domestic currency",
          "value": "EUR_XDC"
        }
      ],
      "filter": "INDICATOR",
      "label": "Indicator",
      "position": 2,
      "value_count": 10
    }
  ],
  "frequencies": [
    {
      "label": "Annual",
      "value": "A"
    },
    {
      "label": "Monthly",
      "value": "M"
    }
  ],
  "is_archived": false,
  "license": "",
  "name": "Exchange Rates (ER)",
  "published_at": "2026-09-13T05:27:54.901815100Z",
  "reference": "IMF.STA:ER",
  "source": "",
  "updated_at": "2026-09-13T05:27:54.936239700Z",
  "url": "https://data.imf.org/en/datasets/IMF.STA:ER",
  "version": "4.0.1"
}

Get a time series

Follow one series from any IMF dataset through time. Every point carries the change and the percentage change on the one before, and the result carries the highest, the lowest, the average and the change across the whole period - so a chart or a trend alert needs no arithmetic of its own. Where the figures are already percentages the change is given in points instead, because the percentage change between two percentages is not a number anybody wants. The filters have to pin the dataset down to a single series; if they do not, the step says which box is still open. Covers the last 24 periods unless you set dates.

Inputs

DatasetdatasettextRequired
Which of the IMF's datasets to read. The list holds the hundred or so the IMF maintains; the dated archive copies are not in it but can be typed in by code. A value from an earlier step can be the code ('WEO'), the full reference ('IMF.RES:WEO') or the dataset's name. Use 'Find a dataset' to search the catalogue by words.
Filtersfiltersobject
One box per filter of the chosen dataset, filled in with the IMF's own codes - COUNTRY=USA, INDICATOR=NGDP_RPCH, FREQUENCY=A. Use 'List a filter's values' to see what a box accepts, and separate several codes with commas. A box left blank returns every value that filter has, which can be hundreds, so filling in the ones you care about is what keeps a step quick.
Fromfrom_datedate
The earliest date to cover. The IMF reports in whole periods - a year, a quarter, a month - so this is read as the period that contains the date rather than as the day itself. Left empty, a step returns the recent part of the series rather than all of it, because a monthly one runs back to the 1950s and eight hundred figures is rarely what was wanted; set a date here to reach the whole history.
Toto_datedate
The latest date to cover, read as the period that contains it. Leave it empty to run to the end of the series, which for a World Economic Outlook figure is several years of IMF projections.

Outputs

averagenumber
The mean across the range
changenumber
The last figure less the first
citationtext
How the IMF asks to be cited
countnumber
How many periods came back
datasettext
The dataset that was read
dataset_nametext
That dataset's name
dataset_urltext
Where to read it on the IMF's site
filters_appliedobject
The filters that pinned the series down
first_periodtext
The earliest period
first_valuenumber
The figure at the start
highestobject
The highest point in the range
is_percenttrue/false
True when the figures are themselves percentages
keytext
The key that was asked for, in the IMF's own notation
last_periodtext
The latest period
latestobject
The most recent point
lowestobject
The lowest point in the range
percent_changenumber
That difference as a percentage. Empty when the series is already a percentage
pointslist
The series, oldest first
projection_countnumber
How many of these points are IMF forecasts
scalenumber
The exponent the IMF prints these figures in
series_nametext
What the series is, named by the IMF or by its filters
sourcetext
Who compiled the figures
unittext
The IMF's unit code for it
Example output
{
  "average": 7.583333400000001,
  "change": -0.641667,
  "citation": "International Monetary Fund. World Economic Outlook (WEO), https://data.imf.org/en/datasets/IMF.RES:WEO. Accessed on [current date].",
  "count": 5,
  "dataset": "WEO",
  "dataset_name": "World Economic Outlook (WEO)",
  "dataset_url": "https://data.imf.org/en/datasets/IMF.RES:WEO",
  "filters_applied": {
    "COUNTRY": "FRA",
    "FREQUENCY": "A",
    "INDICATOR": "LUR"
  },
  "first_period": "2020",
  "first_value": 8.025,
  "highest": {
    "change": null,
    "formatted": "8.03",
    "is_projection": false,
    "percent_change": null,
    "period": "2020",
    "period_end": "2020-12-31",
    "period_label": "2020",
    "period_start": "2020-01-01",
    "value": 8.025
  },
  "is_percent": false,
  "key": "FRA.LUR.A",
  "last_period": "2024",
  "latest": {
    "change": 0.0416660000000002,
    "formatted": "7.38",
    "is_projection": false,
    "percent_change": 0.5675,
    "period": "2024",
    "period_end": "2024-12-31",
    "period_label": "2024",
    "period_start": "2024-01-01",
    "value": 7.383333
  },
  "lowest": {
    "change": -0.5666669999999998,
    "formatted": "7.30",
    "is_projection": false,
    "percent_change": -7.2034,
    "period": "2022",
    "period_end": "2022-12-31",
    "period_label": "2022",
    "period_start": "2022-01-01",
    "value": 7.3
  },
  "percent_change": -7.9959,
  "points": [
    {
      "change": null,
      "formatted": "8.03",
      "is_projection": false,
      "percent_change": null,
      "period": "2020",
      "period_end": "2020-12-31",
      "period_label": "2020",
      "period_start": "2020-01-01",
      "value": 8.025
    },
    {
      "change": -0.15833300000000072,
      "formatted": "7.87",
      "is_projection": false,
      "percent_change": -1.973,
      "period": "2021",
      "period_end": "2021-12-31",
      "period_label": "2021",
      "period_start": "2021-01-01",
      "value": 7.866667
    }
  ],
  "projection_count": 0,
  "scale": 0,
  "series_name": "Unemployment rate",
  "source": "IMF staff calculations.",
  "unit": ""
}

Get an economic statistic

Get one of twenty-six headline IMF statistics for a country and follow it through time - GDP and its growth, inflation, unemployment, government debt and deficit, the current account, population, the exchange rate. Pick the statistic and the country by name; the IMF dataset and its codes are already filled in. The World Economic Outlook forecasts five years ahead in the same column as its measurements, so every figure says which it is and the result carries the latest actual separately. No account or API key required.

Inputs

Statisticstatistictext
Which figure to read. These are the twenty-six headline statistics the IMF is asked for most, and the dataset and codes behind each one are already filled in. GDP growth by default. For anything else the IMF publishes - trade by partner country, financial soundness, reserves - use 'Get data from a dataset'.One of: gdp_growth (GDP growth (percent a year)), gdp (GDP (US dollars)), gdp_per_person (GDP per person (US dollars a person)), gdp_ppp (GDP at purchasing-power parity (international dollars)), gdp_per_person_ppp (GDP per person at purchasing-power parity (international dollars a person)), share_of_world_gdp (Share of world GDP (percent of world GDP)), output_gap (Output gap (percent of potential GDP)), inflation (Inflation (percent a year)), inflation_end_of_year (Inflation at the end of the year (percent a year)), inflation_monthly (Inflation, monthly (percent a year)), and 16 more. Default: gdp_growth.
Countrycountrytext
Which economy to read. The list holds every country the IMF reports on, followed by the groups it aggregates - the world, the euro area, the G7. A value from an earlier step can be the country's name ('Japan'), either of its ISO codes ('JP' or 'JPN'), or the name a person would say rather than the IMF's formal one ('South Korea' finds 'Korea, Republic of'). The United States by default.Default: USA.
Fromfrom_datedate
The earliest date to cover. The IMF reports in whole periods - a year, a quarter, a month - so this is read as the period that contains the date rather than as the day itself. Left empty, a step returns the recent part of the series rather than all of it, because a monthly one runs back to the 1950s and eight hundred figures is rarely what was wanted; set a date here to reach the whole history.
Toto_datedate
The latest date to cover, read as the period that contains it. Leave it empty to run to the end of the series, which for a World Economic Outlook figure is several years of IMF projections.
Include IMF forecastsinclude_projectionstrue/false
On by default, because the IMF's forecasts are much of why people read the World Economic Outlook and each one is marked as a forecast. Turn it off to keep only what has actually been measured, which is what a chart of history wants.Default: true.

Outputs

actual_countnumber
How many of these are measurements
citationtext
How the IMF asks to be cited
countnumber
How many periods came back
countrytext
The IMF's code for the economy, such as JPN
country_labeltext
That economy's name
covers_recent_onlytrue/false
True when no dates were given, so this is the recent part of the series rather than all of it. Set a From date for more
datasettext
The IMF dataset the figures came from
dataset_urltext
Where to read the same dataset on the IMF's site
first_periodtext
The earliest period
frequencytext
How often it is reported: Annual, Quarterly or Monthly
has_projectionstrue/false
True when the series runs past the last actual
last_periodtext
The latest period
latestobject
The last point, forecast or actual
latest_actualobject
The last point the IMF reports as measured, empty when every figure in the range is a forecast
observationslist
The series, oldest first
projection_countnumber
How many of these are IMF forecasts
sourcetext
Who compiled the figures
statistictext
The statistic that was read
statistic_labeltext
Its name
unittext
What the figures are in, such as percent of GDP
updated_attext
When the IMF last published this dataset
Example output
{
  "actual_count": 3,
  "citation": "International Monetary Fund. World Economic Outlook (WEO), https://data.imf.org/en/datasets/IMF.RES:WEO. Accessed on [current date].",
  "count": 4,
  "country": "FRA",
  "country_label": "France",
  "covers_recent_only": false,
  "dataset": "WEO",
  "dataset_url": "https://data.imf.org/en/datasets/IMF.RES:WEO",
  "first_period": "2023",
  "frequency": "Annual",
  "has_projections": true,
  "last_period": "2026",
  "latest": {
    "basis": "projection",
    "formatted": "0.9",
    "is_projection": true,
    "period": "2026",
    "period_end": "2026-12-31",
    "period_label": "2026",
    "period_start": "2026-01-01",
    "value": 0.858141,
    "year": 2026
  },
  "latest_actual": {
    "basis": "actual",
    "formatted": "0.9",
    "is_projection": false,
    "period": "2025",
    "period_end": "2025-12-31",
    "period_label": "2025",
    "period_start": "2025-01-01",
    "value": 0.928126,
    "year": 2025
  },
  "observations": [
    {
      "basis": "actual",
      "formatted": "1.6",
      "is_projection": false,
      "period": "2023",
      "period_end": "2023-12-31",
      "period_label": "2023",
      "period_start": "2023-01-01",
      "value": 1.62017,
      "year": 2023
    },
    {
      "basis": "actual",
      "formatted": "1.1",
      "is_projection": false,
      "period": "2024",
      "period_end": "2024-12-31",
      "period_label": "2024",
      "period_start": "2024-01-01",
      "value": 1.106862,
      "year": 2024
    }
  ],
  "projection_count": 1,
  "source": "IMF staff calculations.",
  "statistic": "gdp_growth",
  "statistic_label": "GDP growth",
  "unit": "percent a year",
  "updated_at": "2026-04-15T13:00:00Z"
}

Get data from a dataset

Get figures from any IMF dataset. Name the dataset and its filters appear as boxes, labelled the way the IMF labels them. Comes back as figures to loop over - each carrying every filter in both code and words - and as a table ready to append to a spreadsheet, and it says which boxes you left open. A request that would select thousands of series is refused before it is sent, naming the box to fill in.

Inputs

DatasetdatasettextRequired
Which of the IMF's datasets to read. The list holds the hundred or so the IMF maintains; the dated archive copies are not in it but can be typed in by code. A value from an earlier step can be the code ('WEO'), the full reference ('IMF.RES:WEO') or the dataset's name. Use 'Find a dataset' to search the catalogue by words.
Filtersfiltersobject
One box per filter of the chosen dataset, filled in with the IMF's own codes - COUNTRY=USA, INDICATOR=NGDP_RPCH, FREQUENCY=A. Use 'List a filter's values' to see what a box accepts, and separate several codes with commas. A box left blank returns every value that filter has, which can be hundreds, so filling in the ones you care about is what keeps a step quick.
Fromfrom_datedate
The earliest date to cover. The IMF reports in whole periods - a year, a quarter, a month - so this is read as the period that contains the date rather than as the day itself. Left empty, a step returns the recent part of the series rather than all of it, because a monthly one runs back to the 1950s and eight hundred figures is rarely what was wanted; set a date here to reach the whole history.
Toto_datedate
The latest date to cover, read as the period that contains it. Leave it empty to run to the end of the series, which for a World Economic Outlook figure is several years of IMF projections.
Number of recordslimitnumber
Optional. How many records to return. Between 1 and 500; 25 by default.From 1 to 500. Default: 25.
Skipoffsetnumber
Optional. How many matching records to skip before this page. Use the next offset from the previous result to page through. 0 by default.At least 0. Default: 0.

Outputs

citationtext
How the IMF asks to be cited
countnumber
How many are on this page
covers_recent_onlytrue/false
True when no dates were given, so these are the recent periods rather than the dataset's whole history. Set a From date for more
datasettext
The dataset that was read
dataset_nametext
That dataset's name
dataset_urltext
Where to read it on the IMF's site
figureslist
The figures, oldest first. Each one also carries one field per filter of the dataset, in lower case, plus the same name with '_label' for the words behind the code
filters_appliedobject
The filters that were sent to the IMF
first_periodtext
The earliest period matched
has_moretrue/false
True when more matched than this page holds
keytext
The key that was asked for, in the IMF's own notation
last_periodtext
The latest period matched
next_offsetnumber
The offset that returns the next page
open_filterslist
The filters left blank, which is why a result is larger than expected. Fill these in to narrow it
sourcetext
Who compiled the figures
tableobject
The same figures ready to append to a spreadsheet
total_countnumber
How many matched in all
updated_attext
When the IMF last published this dataset
Example output
{
  "citation": "International Monetary Fund. World Economic Outlook (WEO), https://data.imf.org/en/datasets/IMF.RES:WEO. Accessed on [current date].",
  "count": 5,
  "covers_recent_only": false,
  "dataset": "WEO",
  "dataset_name": "World Economic Outlook (WEO)",
  "dataset_url": "https://data.imf.org/en/datasets/IMF.RES:WEO",
  "figures": [
    {
      "country": "FRA",
      "country_label": "France",
      "formatted": "8.03",
      "frequency": "A",
      "frequency_label": "Annual",
      "indicator": "LUR",
      "indicator_label": "Unemployment rate",
      "is_projection": false,
      "period": "2020",
      "period_end": "2020-12-31",
      "period_label": "2020",
      "period_start": "2020-01-01",
      "series_name": "Unemployment rate",
      "status": "",
      "unit": "",
      "value": 8.025
    },
    {
      "country": "FRA",
      "country_label": "France",
      "formatted": "7.87",
      "frequency": "A",
      "frequency_label": "Annual",
      "indicator": "LUR",
      "indicator_label": "Unemployment rate",
      "is_projection": false,
      "period": "2021",
      "period_end": "2021-12-31",
      "period_label": "2021",
      "period_start": "2021-01-01",
      "series_name": "Unemployment rate",
      "status": "",
      "unit": "",
      "value": 7.866667
    }
  ],
  "filters_applied": {
    "COUNTRY": "FRA",
    "FREQUENCY": "A",
    "INDICATOR": "LUR"
  },
  "first_period": "2020",
  "has_more": false,
  "key": "FRA.LUR.A",
  "last_period": "2024",
  "next_offset": null,
  "open_filters": [],
  "source": "IMF staff calculations.",
  "table": {
    "headers": [
      "Period",
      "Country",
      "Indicator",
      "Frequency",
      "Value"
    ],
    "rows": [
      [
        "2020",
        "France",
        "Unemployment rate",
        "Annual",
        8.025
      ],
      [
        "2021",
        "France",
        "Unemployment rate",
        "Annual",
        7.866667
      ]
    ]
  },
  "total_count": 5,
  "updated_at": "2026-04-15T13:00:00Z"
}

Get the latest figure

Get the most recent value of one IMF statistic for one country, returned flat so a later step can read the number, the period and the change on the period before without indexing into a list. Answers 'what is inflation in Brazil' in one step. Because the IMF publishes forecasts beside measurements, this returns the latest measurement by default and will only hand back a forecast if you ask it to.

Inputs

Statisticstatistictext
Which figure to read. These are the twenty-six headline statistics the IMF is asked for most, and the dataset and codes behind each one are already filled in. GDP growth by default. For anything else the IMF publishes - trade by partner country, financial soundness, reserves - use 'Get data from a dataset'.One of: gdp_growth (GDP growth (percent a year)), gdp (GDP (US dollars)), gdp_per_person (GDP per person (US dollars a person)), gdp_ppp (GDP at purchasing-power parity (international dollars)), gdp_per_person_ppp (GDP per person at purchasing-power parity (international dollars a person)), share_of_world_gdp (Share of world GDP (percent of world GDP)), output_gap (Output gap (percent of potential GDP)), inflation (Inflation (percent a year)), inflation_end_of_year (Inflation at the end of the year (percent a year)), inflation_monthly (Inflation, monthly (percent a year)), and 16 more. Default: gdp_growth.
Countrycountrytext
Which economy to read. The list holds every country the IMF reports on, followed by the groups it aggregates - the world, the euro area, the G7. A value from an earlier step can be the country's name ('Japan'), either of its ISO codes ('JP' or 'JPN'), or the name a person would say rather than the IMF's formal one ('South Korea' finds 'Korea, Republic of'). The United States by default.Default: USA.
What counts as the latestbasistext
The World Economic Outlook publishes forecasts five years ahead in the same column as the measurements, so 'the latest figure' is ambiguous and this settles it. By default the latest actual is returned, because a number presented as a measurement should be one. Switch to include forecasts when the question really is what the IMF expects. Either way each figure says which it is.One of: actual (Only figures the IMF reports as actual), any (The latest figure, forecast or actual). Default: actual.

Outputs

basistext
'actual' or 'projection'
changenumber
This figure less the one before it
citationtext
How the IMF asks to be cited
countrytext
The IMF's code for the economy
country_labeltext
That economy's name
datasettext
The dataset it came from
dataset_urltext
Where to read the same dataset on the IMF's site
formattedtext
The figure written out, scaled the way the IMF prints it
is_projectiontrue/false
True when this is an IMF forecast rather than a measurement
periodtext
The period it belongs to
period_labeltext
That period for people
previous_periodtext
The period that figure belongs to
previous_valuenumber
The figure for the period before, empty when there is none
sourcetext
Who compiled the figures
statistictext
The statistic that was read
statistic_labeltext
Its name
unittext
What the figure is in
updated_attext
When the IMF last published this dataset
valuenumber
The figure itself
yearnumber
The calendar year it falls in
Example output
{
  "basis": "actual",
  "change": -1.390609,
  "citation": "International Monetary Fund. World Economic Outlook (WEO), https://data.imf.org/en/datasets/IMF.RES:WEO. Accessed on [current date].",
  "country": "FRA",
  "country_label": "France",
  "dataset": "WEO",
  "dataset_url": "https://data.imf.org/en/datasets/IMF.RES:WEO",
  "formatted": "0.9",
  "is_projection": false,
  "period": "2025",
  "period_label": "2025",
  "previous_period": "2024",
  "previous_value": 2.316636,
  "source": "IMF staff calculations.",
  "statistic": "inflation",
  "statistic_label": "Inflation",
  "unit": "percent a year",
  "updated_at": "2026-04-15T13:00:00Z",
  "value": 0.926027,
  "year": 2025
}

List a filter's values

List the codes one filter of one dataset accepts, each with the words behind it, so a filter box can be filled in rather than guessed at. The IMF shares its code lists across datasets - the country list has 343 entries and no single dataset covers them all - so the values this dataset actually holds figures for come first and every row says which it is. Search by words to find one in a list of hundreds.

Inputs

DatasetdatasettextRequired
Which of the IMF's datasets to read. The list holds the hundred or so the IMF maintains; the dated archive copies are not in it but can be typed in by code. A value from an earlier step can be the code ('WEO'), the full reference ('IMF.RES:WEO') or the dataset's name. Use 'Find a dataset' to search the catalogue by words.
Filterfilter_nametextRequired
Which of the dataset's filters to list. The list fills in once a dataset is chosen. 'Get a dataset's details' shows them all at once with their sizes.
Searchsearchtext
Only the entries containing this text. Capitals, accents and punctuation are ignored. Leave it empty for everything.
Number of recordslimitnumber
Optional. How many records to return. Between 1 and 500; 25 by default.From 1 to 500. Default: 25.
Skipoffsetnumber
Optional. How many matching records to skip before this page. Use the next offset from the previous result to page through. 0 by default.At least 0. Default: 0.

Outputs

countnumber
How many are on this page
datasettext
The dataset it belongs to
dataset_nametext
That dataset's name
filtertext
The filter that was listed
filter_labeltext
What the IMF calls it
has_moretrue/false
True when more matched than this page holds
next_offsetnumber
The offset that returns the next page
searchtext
The text that was searched for
total_countnumber
How many matched in all
urltext
Where to read the dataset on the IMF's site
valueslist
The values, the ones with figures first
with_data_countnumber
How many of them this dataset has figures for
Example output
{
  "count": 3,
  "dataset": "ER",
  "dataset_name": "Exchange Rates (ER)",
  "filter": "INDICATOR",
  "filter_label": "Indicator",
  "has_more": true,
  "next_offset": 3,
  "search": "",
  "total_count": 10,
  "url": "https://data.imf.org/en/datasets/IMF.STA:ER",
  "values": [
    {
      "description": "Domestic currency per ECU",
      "has_data": true,
      "label": "Domestic currency per ECU",
      "value": "XDC_ECU"
    },
    {
      "description": "Domestic currency per Euro",
      "has_data": true,
      "label": "Domestic currency per Euro",
      "value": "XDC_EUR"
    }
  ],
  "with_data_count": 10
}

On this page