WHO Global Health Observatory — Health Indicator Time Series
Long-format observations from the WHO Global Health Observatory (GHO): one row per indicator, place, time period, and disaggregation. The key columns are `indicator_code` (the GHO metric, e.g. life expectancy, child mortality, immunization coverage), `spatial_dim`/`spatial_dim_type` (country or WHO region), `year`, and up to three disaggregation dimensions (`dim1`–`dim3`, typically sex and age group). `numeric_value` carries the estimate with `low`/`high` as its uncertainty bounds; `value_display` is the source display string and may embed confidence intervals, so use `numeric_value` for analysis. Coverage spans all GHO indicators across countries and WHO regions over multiple decades (~10.2M rows). The table mixes national totals with WHO-region aggregates and disaggregated breakdowns, so filter `indicator_code`, `spatial_dim_type`, `time_dim_type`, and the `dim*` columns before aggregating.
Source: WHO · connector code
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 subsetsiosubsets sync --bundle small # or medium, or largesubsets serve # search + SQL at http://localhost:8080Free 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 →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 \"who-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.