303,525 datasets indexed1,419 publishers
Open Data IndexThe index of open data about the Netherlands
Sources›Health
Vektis
Dutch source

Vektis open data on healthcare costs

What basic health insurance pays out per year, split into 26 cost types such as hospital care, medicines, GP and mental health. Per municipality (age in 5-year bands) and per three-digit postcode area (per year of age), for all insured people. Cost years 2011 to 2024.

HealthFinanceOpenDownloadNetherlands · postcode (3 digits) and municipality
Up to date · updated in July 2026 · checked 17:23
vektis.nl
Screenshot of vektis.nl

Basic health insurance costs by type of care: most Specialist medical care (31,273 million euros), then Pharmaceuticals and Mental health, consultations

Basic health insurance costs by type of care, 2024, in million euros. Total: 59,525; the largest 12 of 25 categories are shown. Specialist medical care is 53% of the total. Claimed costs under the basic health insurance, including the residual category (groups smaller than ten and unknown characteristics). 17,773,377 insured years.

Source: Vektis, Open Databestand Zorgverzekeringswet 2024 (gemeente); bron: Vektis · opgehaald 25 oktober 2026 · selection: kostenjaar 2024; basisverzekering (Zvw), alle kostenrubriekenOpen the table Single block

Basic health insurance costs per insured person: highest in Heerlen and 1 other municipality (4,520 euros), lowest in Urk (2,601 euros)

Basic health insurance costs per insured person per municipality, 2024, in euros per insured year. Netherlands as a whole: 3,349. 342 municipalities with a figure.

Source: Vektis, Open Databestand Zorgverzekeringswet 2024 (gemeente); bron: Vektis · opgehaald 25 oktober 2026 · selection: kostenjaar 2024; basisverzekering (Zvw), alle kostenrubrieken; per verzekerdejaarOpen the table Single block

What you can build with it1

What can you do with it?4 ideas

Getting started

Healthcare costs per resident in your municipality

Add up all cost categories per municipality and divide by insured-years. Put your municipality next to the national figure and its neighbours.

Getting started

Where does the money go after 65?

Plot costs per insured-year by age band, per cost type. You see where medicines, hospital care and community nursing start to weigh most.

Advanced

Correct for ageing

A municipality with many older people naturally has higher costs. Calculate what each municipality would cost with the national age profile, and only then compare.

Advanced

Mental health costs and income per postcode area

Join the postcode3 figures with income data and see whether mental health consultation costs rise in poorer areas. Beware of small areas and of categories that changed name.

How to process it5 steps

  1. Read the leaflet

    It defines every cost category, explains the residual category and says which costs are still missing.

    https://www.vektis.nl/vektisnl-assets/prd/storage/uploads/Docs%20per%20pagina/Open%20Data%20Bestanden/2024/Bijsluiter%20bij%20de%20Vektis%20Open%20Databestanden%20Zorgverzekeringswet%202011%20-%202024.pdf
  2. Download one year per municipality

    A semicolon-separated CSV. The 2024 municipality file is 2.9 MB with 12,992 rows (342 municipalities, two sexes, 19 age bands). The postcode file is 21.8 MB.

    https://www.vektis.nl/vektisnl-assets/prd/storage/uploads/Docs%20per%20pagina/Open%20Data%20Bestanden/2024/Vektis%20Open%20Databestand%20Zorgverzekeringswet%202024%20-%20gemeente.csv
  3. Remove the residual category

    The row without sex, age and municipality is the residual category: groups of fewer than 10 people and insured people with unknown characteristics. In 2024 that was 412,394 people. Include it in the national total, not per municipality.

  4. Divide by insured-years, not persons

    aantal_verzekerdejaren weighs how long someone was insured or lived in the municipality. Anyone born, deceased or moving during the year counts only partly.

  5. Join municipalities by name

    There is no municipality code, only the name in capitals ('AA EN HUNZE'). The 2024 file follows the 2026 municipal boundaries. Build a lookup table to the GM code.

Interesting combinations

Similar sources

What to watch out for

  • Not for commercial use

    The files are for personal use and research. Reselling and commercial use are not allowed. Always credit 'source: Vektis'.

  • Only what goes through the insurer

    Costs you pay yourself without claiming, and statutory personal contributions, are not included. The deductible that the insurer paid first and then reclaimed is included.

  • Two years of claims, not everything

    Each cost year includes claims over 8 quarters. For specialist mental health about 90% is in by then. Cross-border care is incomplete. Negative amounts are corrections.

  • Cost categories change

    The mental health category was called second-line up to 2013 and specialist up to 2021. From 2022 there are new categories for consultations, inpatient stays and other services. GP-MDZ only exists from 2015. Check the columns per year.

  • Age bands sort badly

    The bands are text with double spaces ('0 t/m 4 jaar', '5 t/m 9 jaar'). Sorted alphabetically, '10 t/m 14' comes before '5 t/m 9'. Turn them into numbers yourself.

APIBestanden (CSV) · read 16 Oct 2026

StandardBestanden (CSV)docs
Access no key

No key or account needed tested

Size12,992

rows in the 2024 municipality file (2.9 MB); the postcode3 file is 21.8 MB experience

Formats

csv

Base URL

https://www.vektis.nl/vektisnl-assets/prd/storage/uploads/Docs%20per%20pagina/Open%20Data%20Bestanden

Endpoints 5

  • GET/{jaar}/Vektis%20Open%20Databestand%20Zorgverzekeringswet%20{jaar}%20-%20gemeente.csvCosts per municipality, sex and 5-year age band, cost years 2017 to 2024 (2024: Last-Modified 20 July 2026).
  • GET/{jaar}/Vektis%20Open%20Databestand%20Zorgverzekeringswet%20{jaar}%20-%20postcode3.csvCosts per 3-digit postcode area, sex and age in years, 2017 to 2024 (2024: 21.8 MB).
  • GET/Gemeentebestanden%202011-2016/Vektis%20Open%20Databestand%20Zorgverzekeringswet%20{jaar}%20-%20gemeente.csvMunicipality files 2011 to 2016 (different folder).
  • GET/Oud/Vektis%20Open%20Databestand%20Zorgverzekeringswet%20{jaar}%20-%20postcode3.csvPostcode3 files 2011 to 2016 (folder Oud).
  • GET/2020/Vektis%20Open%20Databestand%20Zorgverzekeringswet%202020%20-%20gemeente_versie2.csvException: 2020 is named _versie2 (municipality and postcode3).

Filtering tested

No filters: whole files. Find the newest year by trying the fixed path with descending years (HEAD).

Parameters 1

jaarCost year 2011 to 2024; one file per year and per breakdown. 2025 didn't exist yet on 16 Oct 2026 (404); next release mid-2027.tested

Columns in the 2024 CSV file (selection) 10

NameTypeMeaning
geslachttekstM of V; leeg in de restcategorie
leeftijdsklassetekstGemeentebestand: klassen van 5 jaar met dubbele spatie ('0 t/m 4 jaar'); postcode3: leeftijd in jaren
gemeentenaamtekstNaam in hoofdletters ('AA EN HUNZE'), geen GM-code; indeling 2026 in het bestand 2024. Postcode3-bestand: postcode_3
aantal_bsngetal · personenAantal verzekerden (unieke BSN's)
aantal_verzekerdejarengetal · jarenVerzekerde jaren; deel kosten hierdoor, niet door aantal_bsn
kosten_medisch_specialistische_zgetal · euroZiekenhuiszorg en medisch specialisten (kolomnaam afgekapt op 32 tekens)
kosten_farmaciegetal · euroGeneesmiddelen
kosten_huisarts_inschrijftariefgetal · euroHuisarts: inschrijftarief; ook _consult, _mdz (vanaf 2015) en _overig
kosten_consulten_ggzgetal · euroGgz-consulten; met _intramuraal_verblijf_ggz en _overige_prestaties_ggz nieuw vanaf 2022
kosten_overiggetal · euroOverige kosten; 26 kostenrubrieken in 2024

Limits and pitfalls

  • No key and no limit; plain files with Last-Modified and Accept-Ranges (Range returns 206). tested
  • The first data row is the residual category: sex, age and municipality empty (2024: 412,394 insured). Include it in the national total, not per municipality. tested
  • Semicolon separator, dot as decimal mark, CRLF line endings, no BOM. tested
  • Columns differ per year: 2011 uses upper case and full names (KOSTEN_MEDISCH_SPECIALISTISCHE_ZORG, KOSTEN_TWEEDELIJNS_GGZ), 2024 lower case truncated at 32 characters and different mental-health categories. Check the header per year. tested
  • Matching municipality names to CBS codes works by name with a few aliases (BERGEN LB = Bergen (L.), NUENEN CA = Nuenen, Gerwen en Nederwetten). experience
  • Costs are claims over 8 quarters; negative amounts are corrections. Specialist mental healthcare is about 90% complete. experience
  • robots.txt allows everything for normal user agents; only AGB register pages are forbidden for AI crawlers. tested

Try it HTTP 200 · 998 ms · 16 Oct

https://www.vektis.nl/vektisnl-assets/prd/storage/uploads/Docs per pagina/Open Data Bestanden/2024/Vektis Open Databestand Zorgverzekeringswet 2024 - gemeente.csv
geslacht;leeftijdsklasse;gemeentenaam;aantal_bsn;aantal_verzekerdejaren;kosten_medisch_specialistische_z;kosten_farmacie;kosten_huisarts_inschrijftarief;kosten_huisarts_consult;kosten_huisarts_mdz;kosten_huisarts_overig;kosten_hulpmiddelen;kosten_mondzorg;kosten_paramedische_zorg_fysioth;kosten_paramedische_zorg_overig;kosten_ziekenvervoer_zittend;kosten_ziekenvervoer_liggend;kosten_kraamzorg;kosten_verloskundige_zorg;kosten_grensoverschrijdende_zorg;kosten_eerstelijns_ondersteuning;kosten_geriatrische_revalidatiez;kosten_eerstelijnsverblijf;kosten_verpleging_en_verzorging;kosten_gzsp;kosten_integrale_geboortezorg;kosten_innovatiegelden_ggz;kosten_overig;kosten_consulten_ggz;kosten_intramuraal_verblijf_ggz;kosten_overige_prestaties_ggz
;;;412394;220748.91;75738481.61;11107600.71;6081467.62;2120101.39;1852201.82;7886723.95;2751693.39;1909400.32;670095.03;685824.08;137566.16;3089765.03;1106950.27;1066411.95;36255655.9;0;233868.73;276735.8;1297283.78;53388.62;760262.82;0;489674.26;9488679.78;2134088.05;641623.15
M;0 t/m  4 jaar;AA EN HUNZE;503;462.82;594197.18;32444.9;35500.43;20536.52;15357.5;60736.99;6294.89;21220.92;19570.15;9072.21;1311.56;11235.92;0;0;531.63;0;0;0;2453.22;0;0;0

Shortened response, saved at harvest time. Click the URL for the real, current response.

Read from Page with all files per cost year and the terms · Package leaflet (PDF): definitions of the cost categories, residual category, completeness. 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 -o vektis-2024-gemeente.csv "https://www.vektis.nl/vektisnl-assets/prd/storage/uploads/Docs%20per%20pagina/Open%20Data%20Bestanden/2024/Vektis%20Open%20Databestand%20Zorgverzekeringswet%202024%20-%20gemeente.csv"

More in this topic

See how this page is built
bron: vektis-zorgkosten
blokken: []
secties:
  - ideeen
  - verwerken
  - koppelingen
  - vergelijkbaar
  - beperkingen
  - code
cache:
  tag: bron:vektis-zorgkosten
  ververs: na statuscheck, als de bron nieuwer is
statuscheck:
  methode: Last-Modified van het gemeentebestand van het nieuwste kostenjaar
  verwacht: jaarlijks

Source: content/bronnen/vektis-zorgkosten.yaml · Markdown