Organization Limited Access

IMF Data

Provides critical global economic data, including national accounts, balance of payments, international financial statistics, and economic forecasts. Essential resource for global economic research and policy analysis

Status Tracker Past 24 hours

Current status

Operational

100.0% operational in known checks

Checked Jun 16, 7:10 PM

24h ago Now
Operational Polling issues Impacted No data
All sources
Data access source profile JSON profile →

Access

limited

Collection level

L2

Confidence

medium

Recommended next action

Use the documented public content probe, then promote to freshness only after a stable value is confirmed.

Exportable data

public_api

Docker fit

docker_ok

Estimated size

large

apiautomation-readybulk-exportcsvdirect-linkend-userportalsdmxsdmx-json-api
Access & Pricing Visit source →

Cost

Free

Access type

limited

Signup required

Yes

Update alerts

Not offered

Coverage

global

Update frequency

yearly

Source Documentation

What You're Getting

IMF Data covers World Economic Outlook (WEO) projections, Balance of Payments, International Financial Statistics (IFS), Direction of Trade Statistics (DOTS), and more. The Data API uses a SDMX-JSON format. Key datasets: WEO (annual projections + actuals for 190+ countries), IFS (monthly financial indicators), DOTS (bilateral trade flows). Identifiers follow SDMX conventions: dataflow + key (country + indicator codes).

Ingestion Strategy

Use the SDMX REST API at dataservices.imf.org/REST/sdmx/2.1. No auth required. For WEO: the bulk CSV download (available on imf.org) is the simplest approach — download the WEO release zip twice yearly (April and October). For IFS and DOTS, use the API with specific dataflow IDs. Expect XML or JSON responses; JSON is easier to parse.

import requests

# Fetch IFS monthly data for US, Canada — exchange rate series
url = "https://dataservices.imf.org/REST/sdmx/2.1/data/IFS/M.US+CA.ENDA_XDC_USD_RATE"
r = requests.get(url, params={"startPeriod": "2020-01", "format": "jsondata"})
data = r.json()["data"]["dataSets"][0]["series"]

Rate Limits & API Details

  • No authentication; soft rate limit around 10 req/min — back off if 429s appear
  • WEO bulk download: imf.org/en/Publications/WEO (Excel/CSV, ~10MB)
  • SDMX API: dataservices.imf.org/REST/sdmx/2.1
  • Dataflow list endpoint: /dataflow/IMF/all/latest to discover available datasets

Schema Stability

SDMX dataflow codes are stable between releases. Country codes follow ISO + IMF additions. WEO vintage comparisons require downloading both April and October releases — do not assume the previous year's estimate is final. IFS series codes occasionally deprecated; monitor the release notes.

Data Quality Gotchas

  • WEO projections mixed with actuals: the dataset contains both historical actuals and forward projections in the same rows — use the WEO Estimates Start After column to separate them
  • Currency and scale: IFS indicators come in local currency or USD; check UNIT and SCALE metadata
  • Country aggregates: IMF includes regional groups (Advanced Economies, EMDE) — filter by IMF country code length (3-char = country)
  • April vs October releases differ: store the release date as a partition key

Tool Compatibility

  • Python: imf-datatools or imfpy (lightweight wrappers)
  • R: imfr package
  • Direct SDMX parsers: pandasdmx (Python) handles the response format well
  • Bulk CSV/Excel works for dbt seeds

Benchmarking Approach

WEO release: expect ~8,500 rows per release (190 countries × ~45 variables). Spot-check US GDP growth rate for current year against IMF press release. IFS exchange rates: verify ENDA_XDC_USD_RATE for EUR matches ECB published rate within 0.01%. Alert if row count deviates >3% from prior release.

Visit Data Source

Data Formats

api csv

API Quickstart

— Python — fetch CPI data
Docs →
import requests

base = "https://dataservices.imf.org/REST/SDMX_JSON.svc"
# IFS dataset — CPI for United States
url = f"{base}/CompactData/IFS/Q.US.PCPI_IX"
r = requests.get(url)
series = r.json()["CompactData"]["DataSet"]["Series"]
obs = series.get("Obs", [])
for o in obs[-5:]:
    print(o["@TIME_PERIOD"], o["@OBS_VALUE"])

How to Access

  • 🌐 end user
  • automation ready programmable
  • 📦 bulk export

Notable Datasets

6 total
  • Asia and Pacific Regional Economic Outlook (APDREO)
  • Balance of Payments (BOP)
  • Balance of Payments (BOP), World and Regional Aggregates
  • Commodity Terms of Trade
  • Consumer Price Index (CPI)
  • 100+ Data Sets

Index entry

Added: Apr 30, 2026

Last indexed: Jun 16, 2026

Unverified entry

Learn

Recent articles

View all →