# Emissieregistratie

De officiële cijfers over wat Nederland uitstoot: broeikasgassen, stikstof, fijnstof en honderden andere stoffen, naar lucht, water en bodem. Per sector, per bron, per gemeente of provincie en voor grote bedrijven apart. Vanaf 1990. Nederland gebruikt dezelfde cijfers voor zijn internationale rapportages. De landelijke totalen staan ook als tabel bij het CBS, met een open API.

- Uitgever: Rijksinstituut voor Volksgezondheid en Milieu, Centraal Bureau voor de Statistiek
- Gebied: Nederland · Laagste detail: gemeente, bedrijf, sector
- Periode: 1990 – 2025 (2025 voorlopig) · Ververst: jaarlijks
- Toegang: Open · Licentie: Overnemen met bronvermelding; CBS-tabellen CC BY 4.0
- Koppelsleutels: stof, emissiebron of sector, jaar, gemeente
- Status: ok (2026-09-03) · Emissies naar lucht op Nederlands grondgebied; totalen · nieuwste periode: 2025
- URL: https://www.emissieregistratie.nl

## Wat kun je ermee?
- **CO₂ sinds 1990.** Zet de totale CO₂-uitstoot op Nederlands grondgebied in een lijn. Volgens CBS-tabel 85668NED was die 170,9 miljard kilo in 1990 en 142,2 miljard kilo in 2025 (voorlopig).
- **De grootste uitstoters in je provincie.** Bedrijven die onder de Europese PRTR-regels vallen, rapporteren hun uitstoot per stof. De bedrijfsrapportagetool laat per bedrijf zien wat er de lucht of het water in ging.
- **Stikstof per gemeente.** Exporteer ammoniak en stikstofoxiden per gemeente en per sector. Waar komt het meeste van landbouw, waar van verkeer of industrie?
- **Het kwartaal na het jaar.** CBS rekent voorlopige kwartaalcijfers voor broeikasgassen (tabel 84979NED). Zo kun je al in het lopende jaar zien of de uitstoot stijgt of daalt.

## Zo verwerk je het
1. **Landelijke totalen via de CBS-API.** Tabel 85668NED heeft tien stoffen en 50 emissiebronnen. Dit haalt de totale CO₂-uitstoot per jaar op, in miljoen kilo. De bronsleutel is met spaties aangevuld: 'T001176  '.
   `https://opendata.cbs.nl/ODataApi/OData/85668NED/TypedDataSet?$filter=Emissiebronnen%20eq%20'T001176%20%20'%20and%20EmissiesNaarLucht%20eq%20'A044109'&$select=Perioden,EmissiesNaarLucht_1`
2. **Regionale cijfers via de exportmodule.** Voor gemeenten, provincies, sectoren en meer dan 375 stoffen gebruik je de exportmodule op de site. Je kiest jaren, stoffen en gebieden en downloadt het resultaat. Er is geen gedocumenteerde API achter.
   `https://www.emissieregistratie.nl/data/data-export`
3. **Kaartlagen via WMS.** De kaarten van het dataportaal draaien op een GeoServer met tien lagen, zoals bedrijven, gemeenten en stroomgebieden. WFS staat uit, dus alleen plaatjes, geen data.
   `https://data.emissieregistratie.nl/geoserver/wms?service=WMS&request=GetCapabilities`
4. **Weet welk jaar definitief is.** Elk jaar in september komen voorlopige cijfers over het jaar ervoor. De definitieve cijfers over 2025 verschijnen begin 2027. De hele reeks wordt dan opnieuw berekend: haal altijd alles opnieuw op.

## Interessante koppelingen
- Welke gemeente stoot per inwoner het meest uit? → [cbs-kwb](https://www.opendataindex.nl/bron/cbs-kwb.md) via gemeente. Deel de uitstoot per gemeente door het aantal inwoners uit de kerncijfers. Let op grote puntbronnen (een centrale, een fabriek) die één gemeente sterk opdrijven.
- Daalt de concentratie mee met de uitstoot? → [luchtmeetnet](https://www.opendataindex.nl/bron/luchtmeetnet.md) via locatie en jaar. Vergelijk de trend in uitstoot van stikstofoxiden in een regio met de jaargemiddelde NO₂ op de meetstations daar.

## Vergelijkbare bronnen
- [luchtmeetnet](https://www.opendataindex.nl/bron/luchtmeetnet.md): Meet wat er in de lucht zit (concentratie), niet wat er wordt uitgestoten.
- [rivm-gcn](https://www.opendataindex.nl/bron/rivm-gcn.md): Berekende concentraties per kilometer, deels op basis van deze uitstootcijfers.
- [Industrial Emissions Portal (EEA)](https://industry.eea.europa.eu): Uitstoot van grote bedrijven in heel Europa. Voor Nederland dezelfde PRTR-meldingen, naast die van buurlanden.

## Waar je op moet letten
- **Regionale cijfers zitten achter een webformulier.** De exportmodule is een webapplicatie zonder gedocumenteerde API. Adressen als data.emissieregistratie.nl/export geven zelfs HTTP 404 terug, ook al laat de browser de app gewoon zien. Scripts kunnen alleen de landelijke totalen (via CBS) en de WMS-plaatjes ophalen.
- **Cijfers veranderen achteraf.** Bij elke nieuwe ronde wordt de hele reeks vanaf 1990 opnieuw berekend met de nieuwste methode. Vergelijk nooit een oud getal met een nieuw getal uit een latere publicatie.
- **Regionaal is deels geschat.** Een deel van de uitstoot wordt over het land verdeeld, bijvoorbeeld naar arbeidsplaatsen. Dat gaf soms hoge uitstoot op de plek van een hoofdkantoor; met de reeks 1990-2024 is die methode aangepast (september 2026).
- **Grondgebied of economie.** Tabel 85668NED telt de uitstoot op Nederlands grondgebied. CBS heeft ook een tabel over de uitstoot door de Nederlandse economie (83300NED, nationale rekeningen), met een andere afbakening. Noem altijd welke je gebruikt.

## API (OData v3)

- Basis: https://opendata.cbs.nl/ODataApi/OData/85668NED
- Toegang: Geen sleutel of account; de beschrijving en onze aanroep werken anoniem. (getest)
- Formaten: JSON, Atom/XML
- Omvang: 14000 rijen (cellen) in TypedDataSet (getest)
- Filteren: OData-expressies in $filter, sleutels tussen enkele aanhalingstekens; eq, ne, gt, ge, lt, le, and, or, substringof(), startswith()

### Endpoints
- `GET /TableInfos`: titel, samenvatting, periode en wijzigingsdatum van de tabel
- `GET /UntypedDataSet`: de cijfers, alle waarden als tekst
- `GET /TypedDataSet`: de cijfers, met getallen als getal
- `GET /DataProperties`: alle kolommen: dimensies en onderwerpen met eenheid
- `GET /CategoryGroups`: groepering van categorieën
- `GET /Emissiebronnen`: codes en namen van de dimensie Emissiebronnen
- `GET /EmissiesNaarLucht`: codes en namen van de dimensie EmissiesNaarLucht
- `GET /Perioden`: codes en namen van de dimensie Perioden

### Parameters
- `$filter`: rijen kiezen, bv. WijkenEnBuurten eq 'GM0363    ' (platform)
- `$select`: alleen deze kolommen (platform)
- `$top / $skip`: pagineren (platform)
- `$orderby`: sorteren (platform)
- `$format`: json of atom (platform)
- `$count`: achter een pad: alleen het aantal (platform)

### Dimensies
- `Emissiebronnen` (50 codes): 'T001176  ' = Totaal Stationaire en mobiele bronnen; 'A025447  ' = Stationaire bronnen; totaal; '800044   ' = Energiesector
- `EmissiesNaarLucht` (10 codes): 'A044109' = Kooldioxide (CO2); 'A044107' = Methaan (CH4); 'A044110' = Distikstofoxide (N20)
- `Perioden` (28 codes): '1990JJ00' = 1990; '1995JJ00' = 1995; '2000JJ00' = 2000

### Velden (1)
`EmissiesNaarLucht_1` double

### Limieten en valkuilen
- Maximaal 10.000 rijen per verzoek; pagineer met $skip. (ervaring)
- Dit is de CBS-tabel met de landelijke totalen van de Emissieregistratie. Regionale cijfers en bedrijven staan alleen in de exportmodule op emissieregistratie.nl. (ervaring)
- Sleutels van Emissiebronnen zijn met spaties aangevuld ('T001176  ' is het totaal). Stofcodes niet: 'A044109' is CO₂. (getest)
- De jaren 1991 tot en met 1994 en 1996 tot en met 1999 ontbreken; de reeks springt van 1990 naar 1995 naar 2000. (uit de beschrijving)
- De eenheid is miljoen kilo (mln kg). 142.200 betekent dus 142,2 miljard kilo, oftewel 142,2 megaton. (uit de beschrijving)

### Voorbeeld
```
https://opendata.cbs.nl/ODataApi/OData/85668NED/TypedDataSet?$filter=Emissiebronnen%20eq%20'T001176%20%20'%20and%20EmissiesNaarLucht%20eq%20'A044109'&$select=Perioden,EmissiesNaarLucht_1
```

## Zo haal je het op

### curl
```bash
curl "https://opendata.cbs.nl/ODataApi/OData/85668NED/TypedDataSet?\$filter=Emissiebronnen%20eq%20'T001176%20%20'%20and%20EmissiesNaarLucht%20eq%20'A044109'&\$select=Perioden,EmissiesNaarLucht_1"
```

### python
```python
import requests

# Totale CO2-uitstoot op Nederlands grondgebied, per jaar (CBS 85668NED, mln kg)
r = requests.get("https://opendata.cbs.nl/ODataApi/OData/85668NED/TypedDataSet", params={
    "$filter": "Emissiebronnen eq 'T001176  ' and EmissiesNaarLucht eq 'A044109'",
    "$select": "Perioden,EmissiesNaarLucht_1"})
for rij in r.json()["value"]:
    print(rij["Perioden"][:4], rij["EmissiesNaarLucht_1"] / 1000, "megaton")
```


## Voorbeelden met echte cijfers (2)

Per voorbeeld de bevinding, de peildatum en de aanroep die precies deze cijfers ophaalt.

- **Uitstoot van CO₂ naar bron: energiesector is het grootste deel, 30% in 2025** (2025). Tabel 85668NED. [Voorbeeld](https://www.opendataindex.nl/voorbeeld/emissieregistratie-co2-bronnen)
  - `https://opendata.cbs.nl/ODataApi/OData/85668NED/TypedDataSet?$filter=EmissiesNaarLucht%20eq%20'A044109'%20and%20(Emissiebronnen%20eq%20'800044%20%20%20'%20or%20Emissiebronnen%20eq%20'800045%20%20%20'%20or%20Emissiebronnen%20eq%20'1050010%20%20'%20or%20Emissiebronnen%20eq%20'800051%20%20%20'%20or%20Emissiebronnen%20eq%20'A025421%20%20')%20and%20Perioden%20eq%20'2025JJ00'&$select=Emissiebronnen,EmissiesNaarLucht_1`
- **Uitstoot van CO₂ op Nederlands grondgebied: 142,2 megaton in 2025, 17% minder dan in 1990** (2025). Tabel 85668NED. [Voorbeeld](https://www.opendataindex.nl/voorbeeld/emissieregistratie-co2-reeks)
  - `https://opendata.cbs.nl/ODataApi/OData/85668NED/TypedDataSet?$filter=Emissiebronnen%20eq%20'T001176%20%20'%20and%20EmissiesNaarLucht%20eq%20'A044109'%20and%20substringof('JJ'%2CPerioden)&$select=Perioden,EmissiesNaarLucht_1`
