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

Central government budget (Rijksfinanciën open data)

The Ministry of Finance publishes the budget tables of all ministries and funds through an open API: expenditure, commitments and revenue per chapter, article and scheme, for the budget, the supplementary budgets and the annual report. Plus who received which grant or contribution (financial instruments, 2016–2025). The draft budget for 2027 was already there on 16 October 2026; the Ministry of Education alone accounts for 60.8 billion euros.

FinanceGovernmentOpenAPIDownloadNetherlands · budget scheme
Reachable · checked 17:23
rijksfinancien.nl
Screenshot of rijksfinancien.nl

Spending by the Ministry of Education by budget article: most primary education (17,733 million euros), then secondary education and universities

Spending by the Ministry of Education by budget article, 2027, in million euros. Total: 60,774; the largest 12 of 15 categories are shown. Primary education is 29% of the total. Chapter VIII (Onderwijs Cultuur en Wetenschap), draft budget 2027, expenditure (vuo=U). Amounts in the API are in thousands of euros.

Source: Ministerie van Financiën, Rijksfinanciën open data (budgettaire tabellen) · opgehaald 25 oktober 2026 · selection: hoofdstuk VIII; fase OWB; vuo=U (uitgaven)Open the table Single block

What you can build with it1

What can you do with it?4 ideas

Getting started

Where does the education money go?

Add up the Ministry of Education's spending (chapter VIII) per article. In the draft budget for 2027 primary education is the largest: 17.7 billion of 60.8 billion euros. The chart on this page does exactly that.

Getting started

Budgeted against spent

Put the budget (phase=OWB) next to the annual report (phase=JV) of the same year and see where the gap is largest.

Advanced

Who gets the most from central government?

The financial instruments name the recipient. Top of 2025: Zorginstituut Nederland (41.1 billion), the Social Insurance Bank (29.1 billion) and TenneT Holding (11.9 billion).

Advanced

One scheme over the years

Look up one scheme by name in every budget since 2015. Not by number: regeling_detailniveau_nummer changes every year (Multiproblematiek at the Interior Ministry: 484520 in 2024, 595647 in 2025, 692510 in 2027).

How to process it4 steps

  1. Budget table of one ministry

    year and phase are required. vuo picks expenditure (U), revenue (O) or commitments (V); chapter the budget chapter. Amounts are in thousands of euros.

    https://www.rijksfinancien.nl/open-data/api/json/budgettaire_tabellen?year=2027&phase=OWB&vuo=U&chapter=VIII
  2. Everything as CSV

    Same call with csv instead of json. Without chapter you get the whole budget (2,797 rows of expenditure for 2026).

    https://www.rijksfinancien.nl/open-data/api/csv/budgettaire_tabellen?year=2026&phase=OWB&vuo=U
  3. Recipients of grants and contributions

    Note: the year parameter is called jaar here (not year), amounts are in whole euros and you get at most 25 results at a time (start for the next).

    https://www.rijksfinancien.nl/open-data/api/json/v2/financiele_instrumenten/ontvangers?jaar=2025&sort=amount%20desc
  4. The API description

    OpenAPI 3.1 with all paths and parameters (17 paths).

    https://www.rijksfinancien.nl/swagger.json

Interesting combinations

Similar sources

What to watch out for

  • Two units in one API

    In the budget tables the amount is in thousands of euros (Education 2026: 57,033,064 = 57.0 billion, as in the explanatory memorandum). In the financial instruments it is in whole euros. The specification does not say so.

  • Do not just add everything up

    Funds such as the Municipalities Fund and the Mobility Fund get their money from ministry chapters, and Finance includes repayment of the national debt. A sum across all chapters therefore double counts.

  • Parameters differ from the specification

    For the financial instruments the API ignores year and limit (use jaar; always 25 per page). The tax schemes only returned data for 2020 and earlier; 2021–2026 is empty (16 October 2026).

  • Annual report not for every chapter

    For 2025, phase=JV returned rows for Defence (X) but not for the King (I). Check that a phase exists before comparing.

APIREST (JSON en CSV), OpenAPI 3.1 · read 16 Oct 2026

StandardREST (JSON en CSV), OpenAPI 3.1docs
Access no key

No key or account. tested

Size3,183

budget lines in the 2026 draft budget (2,797 expenditure, 386 revenue); 21,193 recipients of financial instruments in 2025 tested

Formats

jsoncsv

Base URL

https://www.rijksfinancien.nl/open-data/api

Endpoints 7

  • GET/json/budgettaire_tabellenBudget tables: per line chapter, article, article part, instrument, scheme and amount (in thousands of euros). Also as /csv/budgettaire_tabellen.
  • GET/json/v2/financiele_instrumenten/{ontvangers|regelingen|artikelen|hoofdstukken}Financial instruments (grants, contributions, contracts) summed per recipient, scheme, article or chapter, with total, min and max. Amounts in whole euros. Also as /csv/v2/….
  • GET/json/v2/financiele_instrumenten?referrer={soort}&referrer_id={id}Drill down: e.g. all schemes from which one recipient received money (referrer=ontvanger&referrer_id=politie).
  • GET/json/v2/financiele_instrumenten/available_yearsAvailable years (2016–2025 on 16 Oct 2026).
  • GET/json/financiele_instrumentenOld version (v1) with year[], regulation[], receiver[], instrument[]: returns a tree policy › chapter › article › scheme.
  • GET/json/financiele_instrumenten/instrumentsList of instrument types (Bekostiging, contributions to other governments …).
  • GET/json/fiscale_regelingen/{year}Tax schemes as a tree with budget, premium and tax parts. Returned data for 2020 (25 items), an empty list for 2021–2026.

Filtering tested

Plain query parameters, no query language. For the budget tables filter on year, phase, vuo and chapter/article; for the instruments on year, name (search) and amount (min/max).

Parameters 11

yearBudget year for budgettaire_tabellen (required per the spec). From 2015; 2014 returned an empty list.tested
phaseOWB (draft budget), O1, O2 (supplementary budgets) or JV (annual report). Without phase, OWB came back.tested
vuoU = expenditure, O = revenue, V = commitments.from the description
chapterBudget chapter in Roman numerals or letter (VIII = Education, B = Municipal Fund). Also chapter_name, article, article_name, sub_article, minister.from the description
jaarYear for the v2 financial instruments. Note: jaar, not year; year is ignored (then no year in the response).tested
searchSearch by name (search=stichting: 3,902 recipients in 2025).tested
sortamount desc|asc, name_string desc|asc, score desc|asc.from the description
minMinimum amount in euros (min=1000000000: 13 recipients in 2024). Also max.tested
limitNumber per page; below 25 it becomes 25, above that it works (100, 1,000 and 5,000 returned exactly that many).tested
startOffset for the next page (records_start in the response).tested
referrerartikel, hoofdstuk, ontvanger or regeling, with referrer_id (the id from the list, e.g. politie) and optionally type.tested

Fields in the response (selection) 12

NameTypeMeaning
indexstringUnieke sleutel van de regel (VIII.1.70.1.692752.U)
jaarintegerBegrotingsjaar
fasestringOWB, O1, O2 of JV
hoofdstuk_nummerstringHoofdstuk (VIII); hoofdstuk_naam
artikel_nummerstringArtikel; artikel_naam (Primair onderwijs)
artikelonderdeel_naamstringOnderdeel van het artikel (Bekostiging)
instrument_of_uitsplitsing_apparaat_naamstringInstrument of apparaatsuitgave
regeling_detailniveau_naamstringRegeling; regeling_detailniveau_nummer verandert per jaar
vuostringU, O of V
bedraginteger · 1.000 euroBedrag in duizenden euro's (begrotingstabellen)
result[].bedraginteger · eurov2-instrumenten: bedrag in hele euro's per ontvanger/regeling
total_resultsintegerv2-instrumenten: aantal treffers; total is de som van alle bedragen

Limits and pitfalls

  • No documented rate limit. A whole budget (without chapter) is about 3,000 lines and arrives in under a second. tested
  • Two units in one API: bedrag in the budget tables is in thousands of euros (Education 2026: 57,033,064 = 57.0 billion), in the financial instruments in whole euros. The specification doesn't say so. experience
  • Don't add up all chapters: funds (B Municipal Fund, A Mobility Fund, K Delta Fund …) are fed from departmental chapters and IX contains the financing of the national debt. experience
  • regeling_detailniveau_nummer changes per year for the same scheme; link years by name, not by number. experience
  • Annual report (phase=JV) 2025 returned 3,017 expenditure lines, but not for every chapter (I The King was missing). Check per chapter whether the phase exists. tested
  • The v2 recipient list also contains merged items such as "Geanonimiseerde ontvanger(s) van …" (anonymised recipients); these are not real recipients. tested
  • The /api/json/… path is in the specification without a servers field: use https://www.rijksfinancien.nl as base. A DSO-style call (?_format=json) returns 301 then 404. experience

Try it HTTP 200 · 469 ms · 16 Oct

https://www.rijksfinancien.nl/open-data/api/json/v2/financiele_instrumenten/ontvangers?jaar=2025&sort=amount desc&limit=25
{
  "jaar": 2025,
  "search": null,
  "max": 41063185000,
  "min": -3934539000,
  "total": 234370967000,
  "total_results": 21193,
  "records_show": 25,
  "records_start": 0,
  "result": [
    {
      "id": "zorginstituut nederland",
      "titel": "Zorginstituut Nederland",
      "bedrag": 41063185000
    },
    {
      "id": "sociale verzekeringsbank",
      "titel": "Sociale Verzekeringsbank",
      "bedrag": 29107897000
    }
  ]
}

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

Read from OpenAPI 3.1 ("Rijksfinancien: Open API" 1.0.0): 17 paths with parameters and allowed values · API documentation on the site. 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://www.rijksfinancien.nl/open-data/api/json/budgettaire_tabellen?year=2027&phase=OWB&vuo=U&chapter=VIII"

More from Financiën in our index

54 datasets in data.overheid.nl. These changed most recently.

All about Financiën

More in this topic

See how this page is built
bron: rijksfinancien
blokken: []
secties:
  - ideeen
  - verwerken
  - koppelingen
  - vergelijkbaar
  - beperkingen
  - code
cache:
  tag: bron:rijksfinancien
  ververs: na statuscheck, als de bron nieuwer is
statuscheck:
  methode: staat de ontwerpbegroting van volgend jaar (of dit jaar) erin
  verwacht: elk kwartaal

Source: content/bronnen/rijksfinancien.yaml · Markdown