
CBS StatLine
De statistiekendatabank van het CBS: bijna 6.000 tabellen over bevolking, economie, werk, wonen, energie, zorg en meer, de meeste met lange reeksen per jaar, kwartaal of maand.

CBS StatLine5.961
Alle tabellen in StatLine, in de themaboom van het CBS zelf, elke nacht opgehaald. Elke tabel heeft een eigen pagina met de OData-aanroep.
CBS, tabellen van derden830
Tabellen die het CBS publiceert namens anderen (politie, RIVM, ministeries), per organisatie, elke nacht opgehaald.
Jongeren met een jeugdbeschermingsmaatregel (CBS-cijfer, ook in Waarstaatjegemeente): het hoogst in Heerlen (2,4%), het laagst in Bloemendaal (0,2%)
Jongeren met een jeugdbeschermingsmaatregel (CBS-cijfer, ook in Waarstaatjegemeente) per gemeente, 2025, in procent van de jongeren tot 18 jaar. Heel Nederland: 1,0. 330 gemeenten met een cijfer.
Inwoners naar burgerlijke staat: ongehuwd is het grootste deel, 50% in 2026
Verdeling in 2026: ongehuwd 50%, gehuwd 37%, gescheiden 7,7%, weduwe of weduwnaar 4,8%. Totaal: 18.130.208 inwoners.
Inwoners naar herkomstland: Nederland is het grootste deel, 71% in 2026
Verdeling in 2026: Nederland 71%, buiten Europa 19%, elders in Europa 9,6%. Totaal: 18.130.208 inwoners.
Huishoudens naar samenstelling: alleenwonend is het grootste deel, 40% in 2026
Verdeling in 2026: alleenwonend 40%, getrouwd stel 38%, ongetrouwd stel 13%, eenoudergezin 7,5%, overig 0,6%. Totaal: 8.474.674 huishoudens.
Inwoners naar leeftijd: 40 tot 65 jaar is het grootste deel, 32% in 2026
Verdeling in 2026: 40 tot 65 jaar 32%, 20 tot 40 jaar 26%, jonger dan 20 20%, 65 tot 80 jaar 16%, 80 of ouder 5,3%. Totaal: 18.130.208 inwoners.
Tachtigplussers in Nederland: 957 duizend in 2026, 9,6 keer zo veel als in 1950
Tachtigplussers in Nederland, 1950 – 2026, in duizend. Dat is het hoogste punt in de reeks.
Mensen die alleen wonen: 3,41 miljoen in 2026, 38 keer zo veel als in 1899
Mensen die alleen wonen, 1899 – 2026, in miljoen. Dat is het hoogste punt in de reeks.
Asielverzoeken en nareizigers: 42,4 duizend per jaar in 2025, 109 keer zo veel als in 1975
Asielverzoeken en nareizigers, 1975 – 2025, in duizend per jaar. Het hoogste punt was 2015 (58,9).
Wat je ermee kunt bouwen3
AnalyseHoe snel rijdt jouw gemeente elektrisch?Een pagina die per gemeente laat zien welk deel van de personenauto's volledig elektrisch is, waar de gemeente staat tussen de 342 andere, en hoe snel het landelijk gaat, uit de dagelijkse RDW-telling per postcode en de jaarreeks van het CBS.2 bronnenOm te beginnen
DashboardMonitor voor inflatie, hypotheekrente en spaarrenteEén dashboard dat elke maand laat zien hoe snel prijzen stijgen, wat een nieuwe hypotheek kost en wat sparen oplevert, in Nederland en in de eurozone.3 bronnenOm te beginnen
DashboardWoningmarktdashboard voor je gemeenteEén pagina per gemeente met verkoopprijzen, WOZ-waarde, woningvoorraad, bouwjaren, woninggrootte en leefbaarheid, naast het landelijk gemiddelde. Alles uit open API's zonder sleutel.3 bronnenGevorderdWat kun je ermee?2 ideeën
Eén lange reeks, één verhaal
Kies een tabel met jaarcijfers vanaf 1950 en laat zien wat er veranderde. De blokken hieronder zijn precies zo gemaakt.
Van land naar buurt
Veel tabellen hebben een regio-dimensie. Dezelfde cijfers per gemeente of buurt maken er een kaart van.
Interessante koppelingen
Vergelijkbare bronnen
EurostatEuropese cijfers, vaak met Nederland naast de andere EU-landen.
Waar je op moet letten
- Sleutels met spaties
Dimensiesleutels zijn aangevuld met spaties ('NL01 '). Zonder spaties krijg je een lege lijst, geen foutmelding.
- Voorlopige cijfers
Perioden met een * zijn voorlopig en worden later bijgesteld. Haal reeksen altijd opnieuw helemaal op.
APIOData v3 + OData v4 (CBS) · gelezen 16 okt 2026
Geen sleutel of account nodig getest
tabellen in de catalogus (4.914 Nederlands, 1.073 Engels; 1.301 met status Regulier, de rest gestopt) getest
jsonatom/xmlcsv
Basisadres
https://opendata.cbs.nl
Endpoints 17
- GET
/ODataCatalog/Tables?$format=jsonAlle tabellen in één antwoord (18 MB): Identifier, Title, ShortDescription, Modified, Frequency, Period, OutputStatus, RecordCount, ColumnCount, ApiUrl, FeedUrl. $filter, $select, $orderby en $top werken hier. - GET
/ODataCatalog/Themes?$format=jsonDe themaboom van StatLine: 1.293 thema's met ID, ParentID, Number en Title. - GET
/ODataCatalog/Tables_Themes?$format=jsonKoppeling tabel en thema (8.162 regels; een tabel kan in meer thema's staan). - GET
/ODataCatalog/Featured?$format=jsonDe 12 uitgelichte onderwerpen; Table_Featured koppelt ze aan tabellen. - GET
/ODataApi/OData/{tabel}Dienstdocument van één tabel: TableInfos, UntypedDataSet, TypedDataSet, DataProperties, CategoryGroups en één endpoint per dimensie. - GET
/ODataApi/OData/{tabel}/TableInfosTitel, samenvatting, periode, frequentie, status en wijzigingsdatum (Modified). - GET
/ODataApi/OData/{tabel}/DataPropertiesAlle kolommen: dimensies (Dimension, TimeDimension, GeoDetail), onderwerpen (Topic, met Unit en Decimals) en groepen (TopicGroup). - GET
/ODataApi/OData/{tabel}/{Dimensie}Codes (Key), namen en beschrijvingen van één dimensie, bv. /RegioS of /Perioden. - GET
/ODataApi/OData/{tabel}/TypedDataSetDe cijfers als getallen, één kolom per onderwerp. Maximaal 10.000 rijen per antwoord. - GET
/ODataApi/OData/{tabel}/UntypedDataSetDezelfde cijfers als tekst (soms met voorloopspaties: " 13199"), inclusief symbolen voor ontbrekende waarden. - GET
/ODataApi/OData/{tabel}/TypedDataSet/$countAantal rijen van de tabel (37230ned: 196.160). - GET
/ODataApi/OData/{tabel}/$metadataVolledig datamodel (XML, EDMX). - GET
/ODataFeed/OData/{tabel}/TypedDataSetZelfde data als Atom-XML in pagina's van 10.000 met <link rel="next"> ($skip). Voor de hele tabel; let op de filtervalkuil hieronder. - GET
https://datasets.cbs.nl/odata/v1/CBS/DatasetsNieuwe API (OData v4): alle 4.894 Nederlandse datasets met Identifier, Title, Modified, Status, ObservationCount en Distributions (CSV-download). $filter (ook contains()), $orderby en $select werken. - GET
https://datasets.cbs.nl/odata/v1/CBS/{tabel}Eén dataset in v4: Properties (beschrijving, versie, status), Dimensions, MeasureCodes, MeasureGroups, {Dimensie}Codes, {Dimensie}Groups en Observations. - GET
https://datasets.cbs.nl/odata/v1/CBS/{tabel}/ObservationsLange vorm: één rij per cijfer (Id, Measure, ValueAttribute, Value, StringValue, dimensies). 100.000 per pagina met @odata.nextLink; $count met filter werkt. - GET
https://datasets.cbs.nl/csv/CBS/nl/{tabel}Hele dataset als ZIP met CSV's (37230ned: 16,7 MB, bestandsnaam met versie: 37230ned-202609300000.zip).
De API's van deze bron 2 · uit de documentatie van de aanbieder uit de beschrijving
OData v4 (CBS Cijfer Bank)
De nieuwe API: lange vorm (één rij per cijfer), vaste onderwerpcodes, 100.000 cellen per pagina, CSV-download per dataset. Alleen Nederlandstalige CBS-tabellen.
https://datasets.cbs.nl/odata/v1- GET
/CBS/Datasets?$filter=contains(Title,'wijken')Zoeken in alle datasets - GET
/CBS/{tabel}/Observations?$filter=RegioS eq 'GM0363'Cijfers, sleutels zonder spaties - GET
/CBS/{tabel}/MeasureCodesOnderwerpen met titel, eenheid en beschrijving - GET
https://datasets.cbs.nl/csv/CBS/nl/{tabel}Hele dataset als ZIP met CSV
Tabellen van derden
Dezelfde OData v3-API voor tabellen die CBS voor anderen publiceert: 829 tabellen van o.a. Politie, RIVM, Iv3 (gemeentefinanciën).
https://dataderden.cbs.nl- GET
/ODataCatalog/Tables?$format=json&$filter=Catalog eq 'Politie'Tabellen per eigenaar - GET
/ODataApi/OData/{tabel}/TypedDataSetCijfers, zelfde regels als opendata.cbs.nl
Filteren getest
OData-expressies in $filter. Sleutels tussen enkele aanhalingstekens; in v3 aangevuld met spaties tot een vaste lengte, in v4 zonder. Alleen dimensies zijn filterbaar.
Parameters 6
$filter | Rijen kiezen op dimensies: RegioS eq 'GM0363', startswith(Perioden,'2026'), substringof('wijken',Title) in de catalogus. In v4 ook in (…), ge/le op Perioden en contains(). | getest |
$select | Alleen deze kolommen; een onbekende kolom geeft HTTP 500 (v3) of 400 (v4) met "Could not find a property named …". | getest |
$top / $skip | Pagineren. v3: meer dan 10.000 rijen geeft een fout; v4: $top tot 100.000. | getest |
$orderby | Werkt in de catalogus en in v4, maar wordt in de v3-tabel-endpoints genegeerd. | getest |
$format | json of atom. De catalogus geeft zonder $format=json Atom-XML. | getest |
$count | Achter een pad: alleen het aantal. In v3 negeert /{Dimensie}/$count een $filter; op de catalogus werkt het wel. | getest |
Velden in de catalogus (ODataCatalog/Tables) 9
| Naam | Type | Betekenis |
|---|---|---|
Identifier | tekst | Tabelcode, bv. 37230ned of 85984NED (hoofdletters verschillen per tabel) |
Title | tekst | Titel van de tabel |
Modified | datetime | Laatste wijziging (verandert ook bij metadata) |
Frequency | tekst | Permaand, Perkwartaal, Perjaar, Eenmalig … |
Period | tekst | Periode als tekst ('Januari 2002 - augustus 2026') |
OutputStatus | tekst | Regulier of Gediscontinueerd |
RecordCount | getal | Aantal rijen in TypedDataSet |
ApiUrl | url | Adres van de tabel in de OData v3-API |
Catalog | tekst | CBS (opendata.cbs.nl) of een derde (Politie, RIVM … op dataderden.cbs.nl) |
Limieten en valkuilen
- OData v3 (/ODataApi/): meer dan 10.000 rijen geeft HTTP 500 "Please redefine your query so that it returns less than 10000 records". /ODataFeed/ pagineert per 10.000. getest
- OData v4 (datasets.cbs.nl): maximaal 100.000 cellen per antwoord, volg @odata.nextLink. $top boven 100.000 geeft 400. getest
- Geen sleutel en geen gepubliceerde rate limit. opendata.cbs.nl gaf op 16 okt 2026 een tijd lang HTTP 503 (Service Unavailable) en hing eerder die dag soms een minuut: gebruik time-outs en probeer later opnieuw. getest
- Sleutels in v3 zijn met spaties aangevuld tot de langste code van die dimensie: 'NL01 ' en 'GM0363' (RegioS, 6 tekens) maar 'GM0363 ' (WijkenEnBuurten, 10 tekens). Zonder opvulling krijg je een lege lijst, geen fout. Lees de lengte uit /{Dimensie}. In v4 zijn sleutels niet aangevuld; mét spaties krijg je daar juist niets. getest
- In v3 werkt $filter alleen op dimensies. Een filter op een onderwerp (Overledenen_3 gt 12000) wordt zonder melding genegeerd en geeft alle rijen. v4 is eerlijker: filteren op Value geeft 400 "cannot be used in the $filter query option". getest
- Het Feed-endpoint (/ODataFeed/) past alleen het eerste $filter-predicaat toe en negeert de rest zonder melding. ervaring
- Perioden-codes: 2025JJ00 (jaar), 2026KW02 (kwartaal), 2026MM08 (maand). Een * in de titel of Status 'Voorlopig' (v4 PeriodenCodes) = voorlopig cijfer. Oude perioden worden bijgesteld: haal reeksen altijd helemaal opnieuw op. getest
- Onderwerp-codes verschillen tussen v3 (Overledenen_3, nummer schuift per tabelversie) en v4 (M000134, vast over tabellen heen). CBS-dataset 900002NED (in v4) zet ze om: per tabel OData3Identifier naar OData4Identifier. getest
- v4 kent alleen de Nederlandstalige CBS-tabellen (0 Engelse, geen dataderden). De Engelse tabellen (…ENG) en de tabellen van derden (politie, RIVM: dataderden.cbs.nl) staan alleen in v3. getest
- v4 $metadata geeft 406 met de standaard Accept-kop van curl (*/*); stuur Accept: application/xml. ReleaseCalendar deed er 28 s over en was leeg. $apply wordt niet ondersteund. Het adres odata4.cbs.nl (oude bèta) bestaat niet meer (DNS). getest
- TableInfos.Modified verandert bijna dagelijks (ook bij metadata). Voor versheid: de hoogste Perioden-code, of in v4 ObservationsModified. ervaring
- robots.txt van opendata.cbs.nl verbiedt /ODataAPI/OData/*, /ODataFeed/OData/* en /ODataCatalog/OData/* (met Noindex, voor zoekmachines). De gedocumenteerde paden schrijven /ODataApi/ (andere hoofdletters) en /ODataCatalog/Tables. datasets.cbs.nl en dataderden.cbs.nl hebben geen robots.txt (404). getest
- Python urllib (LibreSSL op macOS) faalt op de TLS van cbs.nl; gebruik curl, Node fetch of de pakketten cbsodata (Python) en cbsodataR (R). ervaring
Probeer het HTTP 200 · 328 ms · 16 okt
https://opendata.cbs.nl/ODataCatalog/Tables?$format=json&$orderby=Modified desc&$top=3&$select=Identifier,Title,Modified,Period,RecordCount,ApiUrl
{
"odata.metadata": "https://opendata.cbs.nl/ODataCatalog/$metadata#Tables&$select=Identifier,Title,Modified,Period,RecordCount,ApiUrl",
"value": [
{
"Identifier": "81901NED",
"Title": "Beloningsverschillen tussen mannen en vrouwen; kenmerken baan, werknemer",
"Modified": "2026-10-16T02:00:00",
"Period": "2008-2025",
"ApiUrl": "https://opendata.cbs.nl/ODataApi/OData/81901NED",
"RecordCount": 468
},
{
"Identifier": "81920NED",
"Title": "Beloningsverschillen tussen mannen en vrouwen; bedrijfstakken (SBI 2008)",
"Modified": "2026-10-16T02:00:00",
"Period": "2008-2025",
"ApiUrl": "https://opendata.cbs.nl/ODataApi/OData/81920NED",
"RecordCount": 522
}
]
}Ingekort antwoord, opgeslagen bij het oogsten. Klik op het adres voor het echte, actuele antwoord.
Gelezen uit CBS: snelstartgids OData v3 (R-pakket cbsodataR, Python-pakket cbsodata) · CBS: snelstartgids OData v4 (datasets.cbs.nl, Observations, @odata.nextLink) · Dienstdocument van de catalogus (Tables, Themes, Tables_Themes, Featured) · Dienstdocument van de nieuwe API (Datasets, Catalogs, ReleaseCalendar). Labels: uit de beschrijving staat in wat de api zelf publiceert. getest uit onze eigen kleine aanroep. platform geldt voor elk api van dit platform, volgens de documentatie. ervaring zelf ondervonden bij het bouwen van open data index.
Meer van CBS in onze index
14.153 datasets in data.overheid.nl, CBS StatLine, Nationaal Georegister, NDE Datasetregister. Dit zijn de laatst gewijzigde.
- Aardgas en elektriciteit; leveringen openbaar net, bouw en dienstensector2026-10-30
- Jeugdhulptrajecten in natura; verwijzer, regio (gemeente)2026-10-30
- Nieuwbouwwoningen; inputprijsindex bouwkosten 2000=100, vanaf 19902026-10-30
- Elektriciteitsbalans; aanbod en verbruik2026-10-30
- Bevolking op 31 december, immigranten niet-EU/EFTA, migratiemotief2026-10-30
- Nieuwbouwwoningen; inputprijsindex bouwkosten 2021=1002026-10-30
Meer in dit thema
Bekijk hoe deze pagina is opgebouwd
bron: cbs-statline blokken: [] secties: - ideeen - koppelingen - vergelijkbaar - beperkingen cache: tag: bron:cbs-statline ververs: na statuscheck, als de bron nieuwer is statuscheck: methode: "ODataCatalog: nieuwste wijziging van een tabel" verwacht: dagelijks
Bron: content/bronnen/cbs-statline.yaml · Markdown

