World Development Indicators (WDI) — Country-Year Observations

Long-format observations from the World Bank's World Development Indicators (WDI), the flagship cross-country development database. One row per (indicator_code, country_code, year) giving the observed value; ~9.0 million non-null observations spanning 1,498 WDI indicators (GDP, population, life expectancy, poverty, CO2 emissions, school enrollment, and more), 264 countries and aggregate regions, and years 1960–2025. indicator_name and country_name are denormalized alongside the codes for convenience. Value units differ per indicator (percent, US$, count, years, ...) — consult the indicator name or the indicators catalog. Only reported (non-null) cells are stored. Scope note: this covers the WDI database specifically, not all ~61 World Bank databases; sourced from the WDI bulk CSV archive and refreshed on its release cadence.

world-bank-values·6 columns·72.6 MB·Creative Commons Attribution 4.0 International (CC BY 4.0), with additional World Bank Terms of Use for Datasets·updated 9d ago

Schema

indicator_codestring
indicator_namestring
country_codestring
country_namestring
yearint32
valuedouble

Get this dataset on your machine

subsets sync --bundle medium clones the mid-size tiers as queryable local tables — use --bundle large for the widest tier

pip install subsetsio
subsets sync --bundle small # or medium, or large
subsets serve # search + SQL at http://localhost:8080

Free and open — the data syncs straight from the public bucket, and search + SQL run entirely on your machine. See docs →

Query it locally

Full docs →
Bash
subsets serve   # local API on http://localhost:8080
curl -s -X POST "http://localhost:8080/query" \
  -H "Content-Type: application/json" \
  -d '{"sql": "SELECT * FROM \"world-bank-values\" LIMIT 5"}'

No account, no API key — the data syncs straight from bundles.subsets.io and every query runs on your machine. See the local API reference.