# Our World in Data

More than 4,300 charts (16 October 2026; the sitemap lists 5,425, but 1,109 of those are views of 40 multi-dimensional charts) on climate, energy, health, population and prosperity, with explanations. Behind almost every chart is a CSV with the same figures and a description of the source. The Netherlands is almost always included, next to the rest of the world.

- Publisher: Global Change Data Lab (Our World in Data)
- Area: World · Finest detail: country
- Period: verschilt per grafiek, bv. CO₂ 1750 – 2024 · Refreshed: yearly
- Access: Open · Licence: CC BY 4.0 (eigen werk); data van derden onder hun eigen licentie
- Join keys: landcode (NLD), jaar
- Status: ok (2025-11-13) · CO₂ per inwoner · volgende update 2026-11-13
- URL: https://ourworldindata.org

## What can you do with it?
- **CO₂ per Dutch person, since 1846.** Fossil CO₂ emissions in the Netherlands peaked in 1979: 13.3 tonnes per person. In 1990 it was 10.8 tonnes, in 2024 6.3 tonnes. Germany was at 6.8 in 2024, Belgium at 7.3 and the world average at 4.7 tonnes.
- **A quick comparison for an article.** Find the chart, select the Netherlands and two neighbours and download the CSV. The source and processing are in the metadata, ready to cite.
- **A chart that updates itself.** Let your own chart read the CSV URL. The nextUpdate field in the metadata says when new figures are due (for CO₂ per person, 13 November 2026).
- **Back to the original source.** Follow the link to the producer in the full metadata (origins), such as the Global Carbon Project. For a fact check you want to know what OWID processed itself.

## How to process it
1. **Take the chart name from the URL.** Every chart has a short name: ourworldindata.org/grapher/co-emissions-per-capita. Add .csv for the figures, .metadata.json for the description or .zip for both with a readme.
2. **Filter on the Netherlands.** With csvType=filtered and country=~NLD you get only the Netherlands. Separate more countries with a tilde: NLD~DEU~BEL. Use time=2024 or time=1990..2024 to pick the years.
   `https://ourworldindata.org/grapher/co-emissions-per-capita.csv?v=1&csvType=filtered&useColumnShortNames=true&country=~NLD`
3. **Read unit and source from the metadata.** The columns section holds unit (t/person), timespan, lastUpdated, nextUpdate and the citation. fullMetadata points to the full description with the licence per original source.
   `https://ourworldindata.org/grapher/co-emissions-per-capita.metadata.json?v=1&csvType=filtered&useColumnShortNames=true&country=~NLD`
4. **Read the Chart API documentation.** All parameters are in OWID's documentation.
   `https://docs.owid.io/projects/etl/api/chart-api/`

## Interesting combinations
- Does the international figure match the Dutch one? → [cbs-statline](https://www.opendataindex.nl/en/bron/cbs-statline.md) via jaar. Put, e.g., OWID's CO₂ series next to CBS emission figures. Differences often come from a different scope, such as aviation and shipping.

## Similar sources
- [worldbank](https://www.opendataindex.nl/en/bron/worldbank.md): More indicators in one fixed API, but without explanations and curated sources.
- [eurostat](https://www.opendataindex.nl/en/bron/eurostat.md): Official European statistics with regional detail, Europe only.
- [oecd-data](https://www.opendataindex.nl/en/bron/oecd-data.md): The raw OECD tables, often one of the sources behind OWID charts.

## What to watch out for
- **Mostly not their own data.** Most figures come from third parties (WHO, UN, World Bank, Global Carbon Project …). Those fall under that source's licence. Check it before publishing.
- **Processed figures.** OWID often recalculates, e.g. per person using its own population series. The citation then says 'with major processing by Our World in Data'. Mention that in your own citation too.
- **The scope is in the small print.** CO₂ per person, for example, excludes land use and international aviation and shipping, and counts what is emitted within the borders (not what we import). Read descriptionKey in the metadata.
- **Watch the nonRedistributable field.** The full metadata of every series has a nonRedistributable field. Check it before you pass on or republish third-party figures.

## API (REST (CSV en JSON), Chart API)

- Base: https://ourworldindata.org/grapher
- Access: No key or account needed (tested)
- Formats: csv, json, zip
- Size: 4316 charts (sitemap 5,425 addresses, 1,109 of which are views of 40 charts; 16 Oct 2026) (tested)
- Filtering: No query language: pick the chart in the path, countries with country (~ between) and years with time (.. for a range).; ~, ..

### Endpoints
- `GET /{grafiek}.csv`: The figures behind a chart: Entity, Code (ISO3 or OWID_…), Year, and a column per series. The chart name is in the URL on the site.
- `GET /{grafiek}.metadata.json`: Per column unit, timespan, lastUpdated, nextUpdate, explanation (descriptionKey, descriptionProcessing), citation and a link to the full metadata.
- `GET /{grafiek}.zip`: CSV, metadata and a readme in one ZIP (CO₂ per capita, NL only: 7.6 kB).
- `GET /{grafiek}.config.json`: The chart settings: title, default country selection, map, dimensions (which indicator ids).
- `GET https://api.ourworldindata.org/v1/indicators/{id}.metadata.json`: Full metadata of one indicator: origins (producer, licence, link), nonRedistributable, updatePeriodDays, processingLevel.
- `GET https://api.ourworldindata.org/v1/indicators/{id}.data.json`: All values of one indicator as three lists: values, years, entities (entity ids, not ISO codes). CO₂ per capita: 26,509 values, 580 kB.
- `GET https://ourworldindata.org/sitemap.xml`: All chart addresses (/grapher/…); OWID has no public list API for charts.

### Parameters
- `csvType`: full (all countries and years, default) or filtered (only what country and time select). (tested)
- `country`: Countries separated by ~: NLD~DEU~BEL, or ~NLD for one country. Also OWID_WRL (world), OWID_EU27 and names (Netherlands). (tested)
- `time`: 2024, 1990..2024 or latest. (tested)
- `useColumnShortNames`: true gives short column names (entity, code, year, emissions_total_per_capita) instead of titles with characters like ₂. (tested)
- `v`: Chart version (v=1), as in the site's download links. (from the description)
- `dimensies (bv. metric, source, frequency)`: For multi-dimensional charts you pick the view with its own parameters, e.g. electricity-mix.csv?metric=share_of_generation&source=renewables&frequency=annual. (tested)

### Columns in the CSV (useColumnShortNames=true) and fields in metadata.json (8)
`entity` tekst, `code` tekst, `year` integer, `emissions_total_per_capita` getal, `columns.<kolom>.unit / shortUnit` tekst, `columns.<kolom>.lastUpdated / nextUpdate` datum, `columns.<kolom>.citationShort` tekst, `columns.<kolom>.fullMetadata` url

### Limits and pitfalls
- No key, no documented request limit. Responses come via Cloudflare (cached). csvType=full is 800 kB for CO₂ per capita (26,509 rows); filter instead. (tested)
- Old chart names redirect (301) to a multi-dimensional chart and then lose the country filter: share-electricity-renewables.csv?country=~NLD returned all countries after the redirect. Catch redirects (curl without -L, fetch with redirect: 'manual') and use the new name with its dimensions. (tested)
- An unknown country code gives no error, just a header row, which then lacks the Code column. An unknown chart: 404 with {"status":404,"error":"Not found"}. (tested)
- The CSV's Last-Modified header is the generation time, not freshness. Use lastUpdated and nextUpdate from the metadata (CO₂ per capita: 2025-11-13, next 2026-11-13). (tested)
- Check nonRedistributable and origins[].license in the full metadata before republishing third-party figures. For CO₂ per capita: false, Global Carbon Project CC BY 4.0. (tested)
- For charts that open as a map, country=~NLD only works with &tab=chart added. (experience)
- robots.txt of ourworldindata.org allows everything; api.ourworldindata.org has no robots.txt (404). (tested)

### Example
```
https://ourworldindata.org/grapher/co-emissions-per-capita.csv?v=1&csvType=filtered&useColumnShortNames=true&country=NLD~DEU~BEL~OWID_WRL&time=2020..2024
```

## How to fetch it

### curl
```bash
curl "https://ourworldindata.org/grapher/co-emissions-per-capita.csv?v=1&csvType=filtered&useColumnShortNames=true&country=NLD~DEU~BEL~OWID_WRL&time=2024"
```

### python
```python
import io, pandas as pd, requests

url = "https://ourworldindata.org/grapher/co-emissions-per-capita.csv"
r = requests.get(url, params={"v": 1, "csvType": "filtered", "useColumnShortNames": "true",
                              "country": "NLD~DEU~BEL"})
df = pd.read_csv(io.StringIO(r.text))
print(df[df.year == 2024])   # emissions_total_per_capita = ton CO₂ per inwoner
```

## What you can build with it
- [The Netherlands next to Europe: a comparison tool for any indicator](https://www.opendataindex.nl/en/bouwen/nederland-naast-europa.md): Pick a figure (unemployment, hours worked, life expectancy, CO2) and see at once where the Netherlands ranks among the 27 EU countries, with four international sources behind one button.


## What is in it: 4,321 charts

All Our World in Data charts, in OWID's own areas and topics, fetched every night. A chart can sit under several topics; charts without a topic are listed separately. Every chart has its own page with the CSV for the Netherlands and the metadata (source, unit, last updated).

- Kinds: grafiek 4,321
- Last changed: 2026-10-30 (827 in the past 30 days)
- With an API call on the dataset page: 4,321
- Search: https://www.opendataindex.nl/api/catalogus/owid?q=… or the MCP function zoek_datasets with herkomst=owid
- Every row has its own page: https://www.opendataindex.nl/en/dataset/owid/<key>

### Folders
- Education and Knowledge (60): Books (4), Education Spending (10), Internet (11), Literacy (12), Research & Development (23)
- Energy and Environment (871): Air Pollution (50), Animal Welfare (31), Biodiversity (106), Clean Water & Sanitation (73), Climate Change (71), CO2 & Greenhouse Gas Emissions (197), Energy (139), Environmental Impacts of Food Production (48) …
- Food and Agriculture (558): Agricultural Production (92), Animal Welfare (31), Crop Yields (46), Diet Compositions (25), Employment in Agriculture (27), Environmental Impacts of Food Production (48), Famines (17), Farm Size (11) …
- Health (1,381): Air Pollution (50), Alcohol Consumption (60), Antibiotics & Antibiotic Resistance (34), Burden of Disease (117), Cancer (82), Cardiovascular Diseases (58), Causes of Death (268), Child & Infant Mortality (101) …
- Human Rights and Democracy (410): Child Labor (15), Corruption (18), Democracy (162), Economic Inequality by Gender (35), Human Rights (58), LGBT+ Rights (49), State Capacity (45), Violence Against Children & Children's Rights (25) …
- Innovation and Technological Change (184): Artificial Intelligence (35), Internet (11), Medicine & Biotechnology (17), Research & Development (23), Space Exploration & Satellites (12), Technological Change (55), Transport (54)
- Living Conditions, Community and Wellbeing (200): Clean Water & Sanitation (73), Homelessness (8), Indoor Air Pollution (21), Light at Night (5), Loneliness & Social Connections (15), Marriages & Divorces (23), Time Use (17), Trust (31) …
- Population and Demographic Change (327): Age Structure (30), Child & Infant Mortality (101), Fertility Rate (63), Gender Ratio (16), Life Expectancy (67), Migration (23), Population Growth (59)
- Poverty and Economic Development (614): Clean Water & Sanitation (73), Corruption (18), Economic Growth (154), Economic Inequality by Gender (35), Education Spending (10), Foreign Aid (54), Healthcare Spending (56), Migration (23) …
- Violence and War (232): Homicides (38), Military Personnel & Spending (16), Nuclear Weapons (14), State Capacity (45), Terrorism (26), Violence Against Children & Children's Rights (25), War & Peace (73)
- Zonder onderwerp (633)

## Examples with real figures (2)

For each example the finding, the reference date and the call that fetches exactly these figures.

- **CO₂ emissions per person in the Netherlands: 6.3 tonnes in 2024, 42% less than in 1990** (2024). Table co-emissions-per-capita. [Example](https://www.opendataindex.nl/en/voorbeeld/owid-co2-per-inwoner)
  - `https://ourworldindata.org/grapher/co-emissions-per-capita.csv?v=1&csvType=filtered&useColumnShortNames=true&country=~NLD&time=1990..latest`
- **CO₂ emissions per person in the Netherlands: higher than in 20 of the 26 other EU countries** (2024). Table co-emissions-per-capita. [Example](https://www.opendataindex.nl/en/voorbeeld/owid-co2-per-inwoner-eu)
  - `https://ourworldindata.org/grapher/co-emissions-per-capita.csv?v=1&csvType=filtered&useColumnShortNames=true&country=AUT~BEL~BGR~HRV~CYP~CZE~DNK~EST~FIN~FRA~DEU~GRC~HUN~IRL~ITA~LVA~LTU~LUX~MLT~NLD~POL~PRT~ROU~SVK~SVN~ESP~SWE~OWID_EU27&time=2016..latest`
