District and neighbourhood map
The official boundaries of all municipalities, districts and neighbourhoods, as a map service (WFS) and download. The geometry you need to map neighbourhood figures.
This page was built from the catalogue and the daily status check. A full page also gets charts from the source itself, its pitfalls, sample code and sites that use it.
What can you do with it?2 ideas
From table to map
Every CBS table with neighbourhood codes becomes a map once you add the boundaries.
Finding neighbours
Compute which neighbourhoods share a border. Useful for comparisons with the immediate area.
Interesting combinations
Similar sources
- G
APIOGC WFS 2.0.0 · read 15 Oct 2026
No key. Fees: none; access constraints: https://creativecommons.org/publicdomain/zero/1.0/deed.nl. from the description
features in wijkenbuurten:buurten tested
application/gml+xml; version=3.2text/xml; subtype=gml/3.2.1text/xml; subtype=gml/3.1.1application/json; subtype=geojsonapplication/json
Base URL
https://service.pdok.nl/cbs/wijkenbuurten/2024/wfs/v1_0
Endpoints 5
- GET
?request=GetCapabilitiesservice description - GET
?request=DescribeFeatureTypefields of a layer (XSD) - GET
?request=GetFeaturethe features themselves, with geometry - GET
?request=ListStoredQueriesstored queries - GET
?request=DescribeStoredQueriesstored query details
Layers and projections
- Buurten
wijkenbuurten:buurtenEPSG:28992, EPSG:25831, EPSG:25832, EPSG:3034, EPSG:3035, EPSG:3857, EPSG:4258, EPSG:4326 - Wijken
wijkenbuurten:wijkenEPSG:28992, EPSG:25831, EPSG:25832, EPSG:3034, EPSG:3035, EPSG:3857, EPSG:4258, EPSG:4326 - Gemeenten
wijkenbuurten:gemeentenEPSG:28992, EPSG:25831, EPSG:25832, EPSG:3034, EPSG:3035, EPSG:3857, EPSG:4258, EPSG:4326
Filtering from the description
OGC Filter Encoding (FES 2.0)
Parameters 6
typeNames | which layer: wijkenbuurten:buurten, wijkenbuurten:wijken, wijkenbuurten:gemeenten | from the description |
outputFormat | e.g. application/json for GeoJSON | from the description |
srsName | projection, e.g. EPSG:4326 for web maps (default EPSG:28992, RD) | from the description |
count / startIndex | paging | from the description |
filter | FES XML filter on fields or geometry | from the description |
bbox | box in the chosen projection | platform |
Fields 246 · wijkenbuurten:buurten
| Name | Type | Meaning |
|---|---|---|
geom | geometrie | |
buurtcode | string | |
buurtnaam | string | |
wijkcode | string | |
gemeentecode | string | |
gemeentenaam | string | |
indelingswijzigingWijkenEnBuurten | integer | |
water | string | |
meestVoorkomendePostcode | string | |
dekkingspercentage | integer | |
omgevingsadressendichtheid | integer | |
stedelijkheidAdressenPerKm2 | integer |
Show all 246
| Name | Type | Meaning |
|---|---|---|
bevolkingsdichtheidInwonersPerKm2 | integer | |
aantalInwoners | integer | |
mannen | integer | |
vrouwen | integer | |
percentagePersonen0Tot15Jaar | integer | |
percentagePersonen15Tot25Jaar | integer | |
percentagePersonen25Tot45Jaar | integer | |
percentagePersonen45Tot65Jaar | integer | |
percentagePersonen65JaarEnOuder | integer | |
percentageOngehuwd | integer | |
percentageGehuwd | integer | |
percentageGescheid | integer | |
percentageVerweduwd | integer | |
geboorteTotaal | integer | |
geboortesPer1000Inwoners | integer | |
sterfteTotaal | integer | |
sterfteRelatief | integer | |
aantalHuishoudens | integer | |
percentageEenpersoonshuishoudens | integer | |
percentageHuishoudensZonderKinderen | integer | |
percentageHuishoudensMetKinderen | integer | |
gemiddeldeHuishoudsgrootte | double | |
percentageMetHerkomstlandNederland | integer | |
percentageMetHerkomstlandUitEuropaExclNl | integer | |
percentageMetHerkomstlandBuitenEuropa | integer | |
percentageGebInNlMetHerkomstlandNederland | integer | |
percGebInNlMetHerkomstlandInEuropaExNl | integer | |
percGebInNlMetHerkomstlandBuitenEuropa | integer | |
percGebBuitenNlMetHerkomstlndInEuropaExNl | integer | |
percGebBuitenNlMetHerkomstlndBuitenEuropa | integer | |
aantalBedrijvenLandbouwBosbouwVisserij | integer | |
aantalBedrijvenNijverheidEnergie | integer | |
aantalBedrijvenHandelEnHoreca | integer | |
aantalBedrijvenVervoerInformatieCommunicatie | integer | |
aantalBedrijvenFinancieelOnroerendGoed | integer | |
aantalBedrijvenZakelijkeDienstverlening | integer | |
aantalBedrijvenOverheidOnderwijsEnZorg | integer | |
aantalBedrijvenCultuurRecreatieOverige | integer | |
aantalBedrijfsvestigingen | integer | |
woningvoorraad | integer | |
gemiddeldeWoningwaarde | integer | |
percentageEengezinswoning | integer | |
percentageMeergezinswoning | integer | |
percentageBewoond | integer | |
percentageKoopwoningen | integer | |
percentageHuurwoningen | integer | |
percHuurwoningenInBezitWoningcorporaties | integer | |
percHuurwoningenInBezitOverigeVerhuurders | integer | |
percentageWoningenMetEigendomOnbekend | integer | |
percentageBouwjaarklasseTot2000 | integer | |
percentageBouwjaarklasseVanaf2000 | integer | |
percentageLeegstandWoningen | integer | |
gemiddeldGasverbruikTotaal | integer | |
gemiddeldGasverbruikAppartement | integer | |
gemiddeldGasverbruikTussenwoning | integer | |
gemiddeldGasverbruikHoekwoning | integer | |
gemiddeldGasverbruik2Onder1KapWoning | integer | |
gemiddeldGasverbruikVrijstaandeWoning | integer | |
gemiddeldGasverbruikHuurwoning | integer | |
gemiddeldGasverbruikkoopwoning | integer | |
gemiddeldElektriciteitsverbruikTotaal | integer | |
gemiddeldElektriciteitsverbruikAppartement | integer | |
gemiddeldElektriciteitsverbruikTussenwoning | integer | |
gemiddeldElektriciteitsverbruikHoekwoning | integer | |
gemElektriciteitsverbruik2Onder1KapWoning | integer | |
gemElektriciteitsverbruikVrijstaandeWoning | integer | |
gemiddeldElektriciteitsverbruikHuurwoning | integer | |
gemiddeldElektriciteitsverbruikkoopwoning | integer | |
percentageWoningenMetStadsverwarming | integer | |
opleidingsniveauLaag | integer | |
opleidingsniveauMiddelbaar | integer | |
opleidingsniveauHoog | integer | |
nettoArbeidsparticipatie | integer | |
percentageWerknemers | integer | |
percentageZelfstandigen | integer | |
aantalInkomensontvangers | integer | |
gemiddeldInkomenPerInkomensontvanger | integer | |
gemiddeldInkomenPerInwoner | integer | |
percentagePersonenMetHoogInkomen | integer | |
percentagePersonenMetLaagInkomen | integer | |
percentageHuishoudensMetHoogInkomen | integer | |
percentageHuishoudensMetLaagInkomen | integer | |
percentageHuishoudensMetLaagsteInkomen | integer | |
percentageHuishoudensOnderOfRondSociaalMinimum | integer | |
aantalPersonenMetEenAoUitkeringTotaal | integer | |
aantalPersonenMetEenWwUitkeringTotaal | integer | |
aantalPersonenMetEenAlgBijstandsuitkeringTot | integer | |
aantalPersonenMetEenAowUitkeringTotaal | integer | |
gemiddeldGestandaardiseerdInkomenVanHuishoudens | double | |
huishoudensTot110PercentVanSociaalMinimum | double | |
huishoudensTot120PercentVanSociaalMinimum | double | |
mediaanVermogenVanParticuliereHuish | double | |
aantalJongerenMetJeugdzorgInNatura | integer | |
percentageJongerenMetJeugdzorgInNatura | double | |
aantalWmoClienten | integer | |
aantalWmoClientenPer1000Inwoners | integer | |
personenautosTotaal | integer | |
personenautosPerHuishouden | double | |
personenautosPerKm2 | integer | |
motortweewielersTotaal | integer | |
aantalPersonenautosMetBrandstofBenzine | integer | |
aantalPersonenautosMetOverigeBrandstof | integer | |
oppervlakteTotaalInHa | integer | |
oppervlakteLandInHa | integer | |
oppervlakteWaterInHa | integer | |
huisartsenpraktijkGemiddeldeAfstandInKm | double | |
huisartsenpraktijkGemiddeldAantalBinnen1Km | double | |
huisartsenpraktijkGemiddeldAantalBinnen3Km | double | |
huisartsenpraktijkGemiddeldAantalBinnen5Km | double | |
huisartsenpostGemiddeldeAfstandInKm | double | |
apotheekGemiddeldeAfstandInKm | double | |
ziekenhuisInclBuitenpolikliniekGemAfstInKm | double | |
ziekenhuisInclBuitenpoliGemAantalBinnen5Km | double | |
ziekenhuisInclBuitenpoliGemAantalBinnen10Km | double | |
ziekenhuisInclBuitenpoliGemAantalBinnen20Km | double | |
ziekenhuisExclBuitenpolikliniekGemAfstInKm | double | |
ziekenhuisExclBuitenpoliGemAantalBinnen5Km | double | |
ziekenhuisExclBuitenpoliGemAantalBinnen10Km | double | |
ziekenhuisExclBuitenpoliGemAantalBinnen20Km | double | |
groteSupermarktGemiddeldeAfstandInKm | double | |
groteSupermarktGemiddeldAantalBinnen1Km | double | |
groteSupermarktGemiddeldAantalBinnen3Km | double | |
groteSupermarktGemiddeldAantalBinnen5Km | double | |
winkelsOvDagelijkseLevensmGemAfstInKm | double | |
winkelsOvDagelLevensmGemAantalBinnen1Km | double | |
winkelsOvDagelLevensmGemAantalBinnen3Km | double | |
winkelsOvDagelLevensmGemAantalBinnen5Km | double | |
warenhuisGemiddeldeAfstandInKm | double | |
warenhuisGemiddeldAantalBinnen5Km | double | |
warenhuisGemiddeldAantalBinnen10Km | double | |
warenhuisGemiddeldAantalBinnen20Km | double | |
cafeGemiddeldeAfstandInKm | double | |
cafeGemiddeldAantalBinnen1Km | double | |
cafeGemiddeldAantalBinnen3Km | double | |
cafeGemiddeldAantalBinnen5Km | double | |
cafetariaGemiddeldeAfstandInKm | double | |
cafetariaGemiddeldAantalBinnen1Km | double | |
cafetariaGemiddeldAantalBinnen3Km | double | |
cafetariaGemiddeldAantalBinnen5Km | double | |
restaurantGemiddeldeAfstandInKm | double | |
restaurantGemiddeldAantalBinnen1Km | double | |
restaurantGemiddeldAantalBinnen3Km | double | |
restaurantGemiddeldAantalBinnen5Km | double | |
hotelGemiddeldeAfstandInKm | double | |
hotelGemiddeldAantalBinnen5Km | double | |
hotelGemiddeldAantalBinnen10Km | double | |
hotelGemiddeldAantalBinnen20Km | double | |
kinderdagverblijfGemiddeldeAfstandInKm | double | |
kinderdagverblijfGemiddeldAantalBinnen1Km | double | |
kinderdagverblijfGemiddeldAantalBinnen3Km | double | |
kinderdagverblijfGemiddeldAantalBinnen5Km | double | |
buitenschoolseOpvangGemAfstandInKm | double | |
buitenschoolseOpvangGemiddeldAantalBinnen1Km | double | |
buitenschoolseOpvangGemiddeldAantalBinnen3Km | double | |
buitenschoolseOpvangGemiddeldAantalBinnen5Km | double | |
basisonderwijsGemiddeldeAfstandInKm | double | |
basisonderwijsGemiddeldAantalBinnen1Km | double | |
basisonderwijsGemiddeldAantalBinnen3Km | double | |
basisonderwijsGemiddeldAantalBinnen5Km | double | |
voortgezetOnderwijsGemAfstandInKm | double | |
voortgezetOnderwijsGemiddeldAantalBinnen3Km | double | |
voortgezetOnderwijsGemiddeldAantalBinnen5Km | double | |
voortgezetOnderwijsGemiddeldAantalBinnen10Km | double | |
vmboGemiddeldeAfstandInKm | double | |
vmboGemiddeldAantalBinnen3Km | double | |
vmboGemiddeldAantalBinnen5Km | double | |
vmboGemiddeldAantalBinnen10Km | double | |
havoVwoGemiddeldeAfstandInKm | double | |
havoVwoGemiddeldAantalBinnen3Km | double | |
havoVwoGemiddeldAantalBinnen5Km | double | |
havoVwoGemiddeldAantalBinnen10Km | double | |
brandweerkazerneGemiddeldeAfstandInKm | double | |
opritHoofdverkeerswegGemiddeldeAfstandInKm | double | |
treinstationGemiddeldeAfstandInKm | double | |
overstapstationGemiddeldeAfstandInKm | double | |
zwembadGemiddeldeAfstandInKm | double | |
kunstijsbaanGemiddeldeAfstandInKm | double | |
bibliotheekGemiddeldeAfstandInKm | double | |
poppodiumGemiddeldeAfstandInKm | double | |
bioscoopGemiddeldeAfstandInKm | double | |
bioscoopGemiddeldAantalBinnen5Km | double | |
bioscoopGemiddeldAantalBinnen10Km | double | |
bioscoopGemiddeldAantalBinnen20Km | double | |
saunaGemiddeldeAfstandInKm | double | |
zonnebankGemiddeldeAfstandInKm | double | |
attractieparkGemiddeldeAfstandInKm | double | |
attractieparkGemiddeldAantalBinnen10Km | double | |
attractieparkGemiddeldAantalBinnen20Km | double | |
attractieparkGemiddeldAantalBinnen50Km | double | |
theaterGemiddeldeAfstandInKm | double | |
theaterGemiddeldAantalBinnen5Km | double | |
theaterGemiddeldAantalBinnen10Km | double | |
theaterGemiddeldAantalBinnen20Km | double | |
gemiddeldeAfstandTotMuseum | double | |
gemiddeldAantalMuseaBinnen5Km | double | |
gemiddeldAantalMuseaBinnen10Km | double | |
gemiddeldAantalMuseaBinnen20Km | double | |
afstandTotOpenbaarGroenTotaal | double | |
afstandTotParkOfPlantsoen | double | |
afstandTotDagrcreatiefTerrein | double | |
afstandTotBos | double | |
afstandTotOpenNatuurTerreinTotaal | double | |
afstandTotOpenDroogNatuurTerrein | double | |
afstandTotOpenNatNatuurlijkTerrein | double | |
afstandTotSemiopenbaarGroenTotaal | double | |
afstandTotSportterrein | double | |
afstandTotVolkstuin | double | |
afstandTotVerblijfsrecreatiefTerrein | double | |
afstandTotRecreatiefBinnenwater | double | |
afstandTotBegraafplaats | double | |
jrstatcode | string | |
jaar | integer | |
aantalNieuwbouwWoningen | double | |
aantalNietWoningvoorraad | integer | |
aantalNieuwbouwNietWoningen | integer | |
percEengezinswoningTussenwoning | double | |
percEengezinswoningHoekwoning | double | |
percEengezinswoning2Onder1Kap | double | |
percEengezinswoningVrijstaand | double | |
percBouwjaarMeerDan10JaarGeleden | double | |
percBouwjaarAfgelopen10Jaar | double | |
percentageOnbewoond | integer | |
gemiddeldAardgasverbruik | integer | |
percentageAardgaswoningen | double | |
percentageAardgasvrijeWoningen | double | |
gemiddeldeElektriciteitslevering | double | |
gemiddeldeElektriciteitsteruglevering | double | |
percentageWoningenMetZonnestroom | double | |
aantalLeerlingenPrimairOnderwijs | integer | |
aantalLeerlingenVoortgezetOnderwijs | integer | |
aantalStudentenMbo | integer | |
aantalStudentenHbo | integer | |
aantalStudentenWo | integer | |
fuuid | string |
Limits and pitfalls
- At most 1,000 features per request (CountDefault). from the description
- Paging supported: count and startIndex (ImplementsResultPaging). from the description
- Each year is a separate service (…/wijkenbuurten/2024/…). Use the boundaries from the same year as your figures. experience
- By default everything comes in RD (EPSG:28992). For a web map, request srsName=EPSG:4326 or EPSG:3857. experience
- Negative values such as -99997 are codes (confidential or unknown), not numbers. Remove them before calculating. The first neighbourhood in the service is 'Buitenland' (abroad) with aantalInwoners -99997. tested
Try it HTTP 200 · 72 ms · 15 Oct
https://service.pdok.nl/cbs/wijkenbuurten/2024/wfs/v1_0?request=GetFeature&service=WFS&version=2.0.0&typeNames=wijkenbuurten:buurten&outputFormat=application/json&srsName=EPSG:4326&count=1&propertyName=buurtcode,buurtnaam,gemeentenaam,aantalInwoners
{
"type": "FeatureCollection",
"name": "buurten",
"crs": {
"type": "name",
"properties": {
"name": "urn:ogc:def:crs:OGC:1.3:CRS84"
}
},
"features": [
{
"type": "Feature",
"properties": {
"buurtcode": "BU09989999",
"buurtnaam": "Buitenland",
"gemeentenaam": "Buitenland",
"aantalInwoners": -99997
},
"bbox": [
4.835744053139339,
51.4051144592693
],
"geometry": {
"type": "MultiPolygon",
"coordinates": "…"
}
}
],
"bbox": [
4.83574405313934,
51.4051144592693
]
}Shortened response, saved at harvest time. Click the URL for the real, current response.
Read from GetCapabilities: layers, projections, formats, filters, limit · DescribeFeatureType: fields of wijkenbuurten:buurten. Labels: from the description stated in what the api itself publishes. tested from our own small call. platform applies to every api on this platform, per its documentation. experience learned while building open data index.
Questions this source helps answer
More in this topic
See how this page is built
bron: pdok-wijkenbuurten blokken: [] secties: - ideeen - koppelingen - vergelijkbaar cache: tag: bron:pdok-wijkenbuurten ververs: na statuscheck, als de bron nieuwer is statuscheck: methode: WFS GetCapabilities bereikbaar verwacht: jaarlijks
Source: content/bronnen/pdok-wijkenbuurten.yaml · Markdown





