303,525 datasets indexed1,419 publishers
Open Data IndexThe index of open data about the Netherlands
Sources›Population

CBS statistics per postcode and per grid square

CBS also publishes its key figures per postcode area (4 digits, and 6 characters) and per grid square of 100 and 500 metres, finer than the district and neighbourhood division. Each area has about 140 fields: residents by age and origin, households, dwellings by construction year and ownership, WOZ value, energy use, income, benefits, urbanisation and the distance to amenities such as GP, supermarket and station. Postcode figures run from 2015 to 2024, grid squares from 2000 to 2024. In 2024 there were 4,071 four-digit postcode areas and 464,964 six-character ones. Via PDOK as OGC API, and per year as WFS and WMS; CBS itself also offers ZIP files, which already include 2025 (first version).

PopulationHousing and landOpenAPIMap layerDownloadNetherlands · postcode (6 characters) and 100-metre grid square
Up to date · updated in October 2025 · checked 17:23
cbs.nl
Screenshot of cbs.nl

Residents by urbanisation of their postcode area: strongly urbanised is the largest part, 28% in 2024

Breakdown in 2024: strongly urbanised 28%, extremely urbanised 24%, moderately urbanised 18%, hardly urbanised 16%, not urbanised 14%. Total: 17.9 million residents.

Source: CBS, statistiek per postcode (pc4, 2024) via PDOK (WFS) · opgehaald 25 oktober 2026 · selection: 4.071 postcodegebieden, waarvan 16 zonder cijfer (geheim); stedelijkheid van het postcodegebied (omgevingsadressendichtheid); aantallen afgerond op 5Open the table Single block

What can you do with it?4 ideas

Getting started

Figures for any address list

Almost every list has a postcode. Join on the four digits and each address gets the population, average WOZ value and distance to the GP of its area.

Getting started

City or countryside?

Each postcode area has an urbanisation class from 1 (extremely urbanised) to 5 (not urbanised). In 2024, 24% of residents lived in an extremely urbanised area and 14% in a non-urbanised one.

Advanced

A 100 by 100 metre heat map

The 100-metre squares show where people live, regardless of municipal boundaries. Compare 2000 with 2024 to see new housing estates appear.

Advanced

Distance to amenities

Fields such as dichtstbijzijnde_huisartsenpraktijk_afstand_in_km and the train station give the average road distance per area. Map where the station is far away.

How to process it4 steps

  1. One postcode, one year

    The OGC API filters on postcode and jaarcode (and location). The response has 143 fields plus the boundary as geometry.

    https://api.pdok.nl/cbs/postcode4/ogc/v1/collections/postcode4/items?f=json&postcode=3511&jaarcode=2024
  2. One field for the whole country, without boundaries

    The OGC API always includes the geometry. The yearly WFS (service.pdok.nl/cbs/postcode4/<year>/wfs/v1_0, for 2022, 2023 and 2024) returns just the field with GetPropertyValue: 1,000 values per request, sorted by postcode.

    https://service.pdok.nl/cbs/postcode4/2024/wfs/v1_0?service=WFS&version=2.0.0&request=GetPropertyValue&typeNames=postcode4&valueReference=aantalInwoners&sortBy=postcode&count=1000&startIndex=0
  3. 100-metre squares

    Filter on jaarcode and a bbox (in degrees). The square code is in crs28992res100m: E2054N6114 is the lower-left corner at x 205,400, y 611,400 in RD.

    https://api.pdok.nl/cbs/vierkantstatistieken100m/ogc/v1/collections/vierkant100/items?f=json&jaarcode=2024&bbox=5.11,52.08,5.13,52.10&limit=100
  4. Filter out the codes

    Missing figures are codes such as -99997 and -99995 (their meaning is in the CBS product notes). Set them to empty before calculating; otherwise an average turns strongly negative.

Interesting combinations

Similar sources

What to watch out for

  • Many figures suppressed

    According to CBS, figures for residents, households and dwellings are withheld when the total in an area is below five; a code such as -99997 appears instead. For pc6 and 100-metre squares this is common: the first 2024 square has 5 residents and almost only -99997 otherwise.

  • Rounded counts

    According to CBS, counts for 2023 to 2025 are usually rounded to multiples of five. Summed over all postcodes, 2024 gives 17.9 million residents, slightly below the official population.

  • Not every field in every year

    According to the description, 2022 and 2023 were extended in 2025 with demographics, housing, energy, income and amenities; older years have fewer fields. Some 2024 fields are a code (-99995), such as the WOZ value for postcode 3511.

  • PDOK lags a year behind

    On 16 October 2026 PDOK had postcode figures up to 2024. CBS already publishes 2025 as ZIP (pc4, pc5 and pc6, version 1; erratum of 18 August 2026 for pc5 and pc6) on www.cbs.nl. New years and stricter confidentiality from 2025 make comparing years harder.

  • Postcode boundaries are derived

    According to CBS, Esri Nederland derives the postcode polygons from BAG addresses, and CBS simplified the boundaries. Compare years for the same postcode with care; grid squares do stay the same.

APIOGC WFS 2.0.0 · read 16 Oct 2026

StandardOGC WFS 2.0.0docs
Access no key

No key. Fees: none; access constraints: https://creativecommons.org/licenses/by/4.0/deed.nl. from the description

Size4,071

features in postcode4:postcode4 tested

Formats

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/postcode4/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

  • Postcode 2024, numeriek deelpostcode4:postcode4EPSG: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)

PropertyIsEqualToPropertyIsNotEqualToPropertyIsLessThanPropertyIsGreaterThanPropertyIsLessThanOrEqualToPropertyIsGreaterThanOrEqualToPropertyIsLikePropertyIsBetweenPropertyIsNullEqualsDisjointTouchesWithinOverlapsCrossesIntersectsContainsDWithinBeyondBBOXDuring

Parameters 6

typeNameswhich layer: postcode4:postcode4from the description
outputFormate.g. application/json for GeoJSONfrom the description
srsNameprojection, e.g. EPSG:4326 for web maps (default EPSG:28992, RD)from the description
count / startIndexpagingfrom the description
filterFES XML filter on fields or geometryfrom the description
bboxbox in the chosen projectionplatform

Fields 138 · postcode4:postcode4

NameTypeMeaning
geomgeometrie
postcodeinteger
aantalInwonersinteger
aantalManneninteger
aantalVrouweninteger
aantalInwoners0Tot15Jaarinteger
aantalInwoners15Tot25Jaarinteger
aantalInwoners25Tot45Jaarinteger
aantalInwoners45Tot65Jaarinteger
aantalInwoners65JaarEnOuderinteger
aantalGeboorteninteger
percentageGebNederlandHerkomstNederlandinteger
Show all 138
NameTypeMeaning
percentageGebNederlandHerkomstOverigEuropainteger
percentageGebNederlandHerkomstBuitenEuropainteger
percentageGebBuitenNederlandHerkomstEuropainteger
percentageGebBuitenNederlandHerkmstBuitenEuropainteger
aantalPartHuishoudensinteger
aantalEenpersoonshuishoudensinteger
aantalMeerpersoonshuishoudensZonderKindinteger
aantalEenouderhuishoudensinteger
aantalTweeouderhuishoudensinteger
gemiddeldeHuishoudensgroottedouble
aantalWoningeninteger
aantalWoningenBouwjaarVoor1945integer
aantalWoningenBouwjaar45Tot65integer
aantalWoningenBouwjaar65Tot75integer
aantalWoningenBouwjaar75Tot85integer
aantalWoningenBouwjaar85Tot95integer
aantalWoningenBouwjaar95Tot05integer
aantalWoningenBouwjaar05Tot15integer
aantalWoningenBouwjaar15EnLaterinteger
aantalMeergezinsWoningeninteger
percentageKoopwoningeninteger
percentageHuurwoningeninteger
aantalHuurwoningenInBezitWoningcorporatiesinteger
aantalNietBewoondeWoningeninteger
gemiddeldeWozWaardeWoninginteger
gemiddeldGasverbruikWoninginteger
gemiddeldElektriciteitsverbruikWoninginteger
gemiddeldInkomenHuishoudendouble
percentageLaagInkomenHuishoudendouble
percentageHoogInkomenHuishoudendouble
aantalPersonenMetUitkeringOnderAowlftinteger
dichtstbijzijndeGroteSupermarktAfstandInKmdouble
groteSupermarktAantalBinnen1Kmdouble
groteSupermarktAantalBinnen3Kmdouble
groteSupermarktAantalBinnen5Kmdouble
dichtstbijzijndeWinkelsOvDagelLevensmAfstInKmdouble
winkelsOvDagelLevensmAantalBinnen1Kmdouble
winkelsOvDagelLevensmAantalBinnen3Kmdouble
winkelsOvDagelLevensmAantalBinnen5Kmdouble
dichtstbijzijndeWarenhuisAfstandInKmdouble
warenhuisAantalBinnen5Kmdouble
warenhuisAantalBinnen10Kmdouble
warenhuisAantalBinnen20Kmdouble
dichtstbijzijndeCafeAfstandInKmdouble
cafeAantalBinnen1Kmdouble
cafeAantalBinnen3Kmdouble
cafeAantalBinnen5Kmdouble
dichtstbijzijndeCafetariaAfstandInKmdouble
cafetariaAantalBinnen1Kmdouble
cafetariaAantalBinnen3Kmdouble
cafetariaAantalBinnen5Kmdouble
dichtstbijzijndeHotelAfstandInKmdouble
hotelAantalBinnen5Kmdouble
hotelAantalBinnen10Kmdouble
hotelAantalBinnen20Kmdouble
dichtstbijzijndeRestaurantAfstandInKmdouble
restaurantAantalBinnen1Kmdouble
restaurantAantalBinnen3Kmdouble
restaurantAantalBinnen5Kmdouble
dichtstbijzijndeBuitenschoolseOpvangAfstandInKmdouble
buitenschoolseOpvangAantalBinnen1Kmdouble
buitenschoolseOpvangAantalBinnen3Kmdouble
buitenschoolseOpvangAantalBinnen5Kmdouble
dichtstbijzijndeKinderdagverblijfAfstandInKmdouble
kinderdagverblijfAantalBinnen1Kmdouble
kinderdagverblijfAantalBinnen3Kmdouble
kinderdagverblijfAantalBinnen5Kmdouble
dichtstbijzijndeBrandweerkazerneAfstandInKmdouble
dichtstbijzijndeOpritHoofdverkeerswegAfstandInKmdouble
dichtstbijzijndeOverstapstationAfstandInKmdouble
dichtstbijzijndeTreinstationAfstandInKmdouble
dichtstbijzijndeAttractieparkAfstandInKmdouble
attractieparkAantalBinnen10Kmdouble
attractieparkAantalBinnen20Kmdouble
attractieparkAantalBinnen50Kmdouble
dichtstbijzijndeBioscoopAfstandInKmdouble
bioscoopAantalBinnen5Kmdouble
bioscoopAantalBinnen10Kmdouble
bioscoopAantalBinnen20Kmdouble
dichtstbijzijndeMuseumAfstandInKmdouble
museumAantalBinnen5Kmdouble
museumAantalBinnen10Kmdouble
museumAantalBinnen20Kmdouble
dichtstbijzijndeTheaterAfstandInKmdouble
theaterAantalBinnen5Kmdouble
theaterAantalBinnen10Kmdouble
theaterAantalBinnen20Kmdouble
dichtstbijzijndeBibliotheekAfstandInKmdouble
dichtstbijzijndeKunstijsbaanAfstandInKmdouble
dichtstbijzijndePoppodiumAfstandInKmdouble
dichtstbijzijndeSaunaAfstandInKmdouble
dichtstbijzijndeZonnebankAfstandInKmdouble
dichtstbijzijndeZwembadAfstandInKmdouble
dichtstbijzijndeBasisonderwijsAfstandInKmdouble
basisonderwijsAantalBinnen1Kmdouble
basisonderwijsAantalBinnen3Kmdouble
basisonderwijsAantalBinnen5Kmdouble
dichtstbijzijndeHavoVwoAfstandInKmdouble
havoVwoAantalBinnen3Kmdouble
havoVwoAantalBinnen5Kmdouble
havoVwoAantalBinnen10Kmdouble
dichtstbijzijndeVmboAfstandInKmdouble
vmboAantalBinnen3Kmdouble
vmboAantalBinnen5Kmdouble
vmboAantalBinnen10Kmdouble
dichtstbijzijndeVoortgezetOnderwijsAfstandInKmdouble
voortgezetOnderwijsAantalBinnen3Kmdouble
voortgezetOnderwijsAantalBinnen5Kmdouble
voortgezetOnderwijsAantalBinnen10Kmdouble
dichtstbijzijndeHuisartsenpraktijkAfstandInKmdouble
huisartsenpraktijkAantalBinnen1Kmdouble
huisartsenpraktijkAantalBinnen3Kmdouble
huisartsenpraktijkAantalBinnen5Kmdouble
dichtstbijzijndeZiekenhExclBuitenpoliAfstInKmdouble
ziekenhuisExclBuitenpoliAantalBinnen5Kmdouble
ziekenhuisExclBuitenpoliAantalBinnen10Kmdouble
ziekenhuisExclBuitenpoliAantalBinnen20Kmdouble
dichtstbijzijndeZiekenhInclBuitenpoliAfstInKmdouble
ziekenhuisInclBuitenpoliAantalBinnen5Kmdouble
ziekenhuisInclBuitenpoliAantalBinnen10Kmdouble
ziekenhuisInclBuitenpoliAantalBinnen20Kmdouble
dichtstbijzijndeApotheekAfstandInKmdouble
dichtstbijzijndeHuisartsenpostAfstandInKmdouble
omgevingsadressendichtheidinteger
stedelijkheidinteger
fuuidstring

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 WFS: …/cbs/postcode4/2022/…, 2023 and 2024 (2025 returned 404 on 16 Oct 2026). The OGC API https://api.pdok.nl/cbs/postcode4/ogc/v1 holds all years 2015 to 2024 in one collection. tested
  • In the WFS field names are camelCase (aantalInwoners), in the OGC API snake_case (aantal_inwoners). tested

Try it HTTP 200 · 229 ms · 16 Oct

https://service.pdok.nl/cbs/postcode4/2024/wfs/v1_0?request=GetFeature&service=WFS&version=2.0.0&typeNames=postcode4:postcode4&outputFormat=application/json&srsName=EPSG:4326&count=1&propertyName=postcode,aantalInwoners,stedelijkheid,gemiddeldeWozWaardeWoning
{
  "type": "FeatureCollection",
  "name": "postcode4",
  "crs": {
    "type": "name",
    "properties": {
      "name": "urn:ogc:def:crs:OGC:1.3:CRS84"
    }
  },
  "features": [
    {
      "type": "Feature",
      "properties": {
        "postcode": 1184,
        "aantalInwoners": 625,
        "gemiddeldeWozWaardeWoning": -99995,
        "stedelijkheid": 4
      },
      "bbox": [
        4.878073485096519,
        52.278081688430284
      ],
      "geometry": {
        "type": "MultiPolygon",
        "coordinates": "…"
      }
    }
  ],
  "bbox": [
    4.87807348509652,
    52.2780816884303
  ]
}

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 postcode4:postcode4. 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.

How to fetch it

curl "https://api.pdok.nl/cbs/postcode4/ogc/v1/collections/postcode4/items?f=json&postcode=1011&jaarcode=2024"

More from CBS in our index

14,153 datasets in data.overheid.nl, CBS StatLine, Nationaal Georegister, NDE Datasetregister. These changed most recently.

All about CBS

More in this topic

See how this page is built
bron: cbs-vierkant-postcode
blokken: []
secties:
  - ideeen
  - verwerken
  - koppelingen
  - vergelijkbaar
  - beperkingen
  - code
cache:
  tag: bron:cbs-vierkant-postcode
  ververs: na statuscheck, als de bron nieuwer is
statuscheck:
  methode: veld updated van de collectie postcode4 in de OGC API
  verwacht: jaarlijks

Source: content/bronnen/cbs-vierkant-postcode.yaml · Markdown