# Bevolkingsontwikkeling per maand

Per gemeente en per maand: hoeveel mensen er geboren werden, overleden, kwamen wonen of vertrokken.

- Uitgever: Centraal Bureau voor de Statistiek
- Gebied: Nederland · Laagste detail: gemeente
- Periode: 2002 – 2026 · Ververst: maandelijks
- Toegang: Open · Licentie: CC BY 4.0
- Koppelsleutels: gemeentecode (GM), provinciecode (PV)
- Status: ok (2026-09-30) · Bevolkingsontwikkeling; regio per maand · nieuwste periode: 2026 augustus
- URL: https://opendata.cbs.nl/#/CBS/nl/dataset/37230ned

## Wat kun je ermee?
- **Groeit of krimpt je gemeente?.** Splits de groei in geboorte, sterfte, verhuizing en migratie. Dan zie je waar de groei vandaan komt.
- **Sterfte per seizoen.** Maandelijkse sterfte laat griepgolven en hittegolven zien. Vergelijk met de temperatuur van het KNMI.

## Interessante koppelingen
- Overlijden er meer mensen tijdens hittegolven? → [knmi-daggegevens](https://www.opendataindex.nl/bron/knmi-daggegevens.md) via datum (maand). Zet de sterfte per maand naast het aantal tropische dagen in De Bilt.

## Vergelijkbare bronnen
- [cbs-kwb](https://www.opendataindex.nl/bron/cbs-kwb.md): Jaarcijfers, maar tot op buurtniveau.

## API (OData v3)

- Basis: https://opendata.cbs.nl/ODataApi/OData/37230ned
- Toegang: Geen sleutel of account; de beschrijving en onze aanroep werken anoniem. (getest)
- Formaten: JSON, Atom/XML
- Omvang: 196160 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 /RegioS`: codes en namen van de dimensie RegioS
- `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
- `RegioS` (613 codes): 'NL01  ' = Nederland; 'LD01  ' = Noord-Nederland (LD); 'LD02  ' = Oost-Nederland (LD)
- `Perioden` (320 codes): '2002MM01' = 2002 januari; '2002MM02' = 2002 februari; '2002MM03' = 2002 maart

### Velden (15)
`BevolkingAanHetBeginVanDePeriode_1` long, `LevendGeborenKinderen_2` long, `Overledenen_3` long, `TotaleVestiging_4` long, `VestigingVanuitEenAndereGemeente_5` long, `Immigratie_6` long, `TotaalVertrekInclAdmCorrecties_7` long, `VertrekNaarAndereGemeente_8` long, `EmigratieInclusiefAdmCorrecties_9` long, `OverigeCorrecties_10` long, `Bevolkingsgroei_11` long, `BevolkingsgroeiRelatief_12` double, `BevolkingsgroeiSinds1Januari_13` long, `BevolkingsgroeiSinds1JanuariRela_14` double, `BevolkingAanHetEindeVanDePeriode_15` long

### Limieten en valkuilen
- Maximaal 10.000 rijen per verzoek; pagineer met $skip. Hele tabel in één keer kan via de nieuwe API (datasets.cbs.nl) of de CSV-download. (ervaring)
- Perioden-codes: 2026MM08 = augustus 2026, 2025JJ00 = heel jaar 2025. De cijfers van het lopende jaar zijn voorlopig en worden elke maand bijgesteld; in het derde kwartaal worden die van het vorige jaar definitief. Haal de hele reeks opnieuw op. (uit de beschrijving)
- RegioS-sleutels zijn in deze tabel precies 6 tekens (GM0363, PV27, LD01, NL01 wordt 'NL01  '): vul aan met spaties tot de lengte die /RegioS teruggeeft. Een verkeerde lengte geeft een lege lijst, geen fout. (getest)
- $orderby wordt in deze OData v3-API genegeerd (Perioden desc gaf toch 2002MM01 eerst): sorteer zelf. De nieuwste maand vind je met $filter op Perioden of in de nieuwe API, waar $orderby wel werkt. (getest)
- Regio's volgen de nieuwste gemeentelijke indeling: oude jaren zijn omgerekend naar de huidige gemeenten (Weesp zit vanaf 2002 in Amsterdam). De beschrijving van elke regio (/RegioS) noemt de herindelingen. (getest)
- Dezelfde tabel staat in de nieuwe CBS-API: https://datasets.cbs.nl/odata/v1/CBS/37230ned (Observations, 2.942.291 waarden, 100.000 per pagina, sleutels zonder spaties). (getest)
- Python urllib (LibreSSL op macOS) faalt op de TLS van cbs.nl; gebruik curl, requests met een recente OpenSSL of Node fetch. (ervaring)

### Voorbeeld
```
https://opendata.cbs.nl/ODataApi/OData/37230ned/TypedDataSet?$filter=RegioS%20eq%20'GM0363'%20and%20Perioden%20eq%20'2026MM08'&$select=RegioS,Perioden,BevolkingAanHetBeginVanDePeriode_1,LevendGeborenKinderen_2,Overledenen_3
```

## Wat je ermee kunt bouwen
- [Dashboard asielopvang: landelijk en per gemeente](https://www.opendataindex.nl/bouwen/asielopvang-dashboard.md): Een dashboard dat laat zien hoeveel mensen er in de COA-opvang wonen sinds 2016, hoeveel er binnenkomen en vertrekken, en hoeveel opvangplaatsen elke gemeente heeft, ook per 1.000 inwoners.
- [Gemeentebegroting-verkenner: waar geeft mijn gemeente geld aan uit?](https://www.opendataindex.nl/bouwen/gemeentebegroting-verkenner.md): Kies een gemeente en zie de begroting per taakveld, in euro's per inwoner, en hoe één taakveld zich verhoudt tot alle 342 andere gemeenten.


## Voorbeelden met echte cijfers (2)

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

- **Bevolkingsgroei: het hoogst in Woudenberg en 1 andere gemeente (2,3%), het laagst in Westerwolde (-7,9%)** (2025). Tabel 37230ned. [Voorbeeld](https://www.opendataindex.nl/voorbeeld/bevolkingsgroei-gemeente-jaar)
  - `https://opendata.cbs.nl/ODataApi/OData/37230ned/TypedDataSet?$filter=substringof('GM'%2CRegioS)%20and%20Perioden%20eq%20'2025JJ00'&$select=RegioS,BevolkingsgroeiRelatief_12&$top=2000`
- **Nieuwe inwoners van de gemeente Groningen: gemiddeld het hoogst in augustus, het laagst in mei** (augustus 2026). Tabel 37230ned. [Voorbeeld](https://www.opendataindex.nl/voorbeeld/vestiging-groningen-maand)
  - `https://opendata.cbs.nl/ODataApi/OData/37230ned/TypedDataSet?$filter=RegioS%20eq%20'GM0014'%20and%20substringof('MM'%2CPerioden)&$select=Perioden,TotaleVestiging_4`
