303.489 datasets geïndexeerd1.419 uitgevers
Open Data IndexDe index van open data over Nederland
Open Data Index›Bouwen›Rijksbegroting-tracker: begroot tegen uitgegeven
DashboardGevorderdFinancieelBestuur

Rijksbegroting-tracker: begroot tegen uitgegeven

Volg per ministerie en per begrotingsartikel wat het Rijk van plan was uit te geven en wat het echt uitgaf, jaar na jaar, met de moties en amendementen die de Kamer erover indiende.

Je AI-assistentOpen Data Index MCP aan
De MCP-server van Open Data Index staat aan in je chat. Zo leest de assistent dit project en de bronnen zelf.
Jij plakt de prompt van dit project
De assistent haalt op bij Open Data Index
  • geef_project("rijksbegroting-tracker")
  • geef_bron("rijksfinancien")
  • geef_bron("tweedekamer-opendata")
De assistent

Ik heb het project, de geteste aanroepen en de valkuilen. Ik bouw een dashboard met Rijksbegroting (Rijksfinanciën open data) en Tweede Kamer open data. Zo kan het eruitzien:

Dit bouw je zelf. Kopieer de prompt naar Claude, ChatGPT of Cursor, met de MCP-server aan, of volg de stappen hieronder.

Volg de stappen
begroting-ocw.rkw — Rekenwerkopgeslagen
Sans · 10BIU,00Opmaak als
D9fx=C9-B9
ABCDE
1Hoofdstuk VIII · Onderwijs, Cultuur en Wetenschap
2Jaar (mld €)BegrootBesteedVerschilMeer
3201636,8538,70+1,84
4201737,1638,05+0,89
5201838,8742,33+3,46
6201941,9843,08+1,09
7202042,7244,46+1,74
8202143,6048,75+5,15
9202247,6453,20+5,56
10202353,2555,12+1,88
11202455,4756,46+1,00
12202557,6059,53+1,94
13
14Artikel 2025BegrootBesteedVerschil%
151Primair onderwijs16,2916,90+0,61+3,8%
163Voortgezet onderwijs11,8212,33+0,51+4,3%
177Wetenschappelijk onderwijs7,077,41+0,33+4,7%
184Beroepsonderwijs en volwasseneneducatie5,966,14+0,18+3,0%
196Hoger beroepsonderwijs4,494,65+0,16+3,5%
2016Onderzoek en wetenschapsbeleid1,711,83+0,12+6,8%
2111Studiefinanciering6,606,57−0,03−0,4%
229Arbeidsmarkt en personeelsbeleid0,410,37−0,04−10,1%
23Kamer, 36800 VIII✓✗OverigTotaal
24Moties393922100
25Amendementen310922
+VIII OCWAlle hoofdstukkenMoties
Bron: rijksfinancien.nl · Tweede KamerSom: 5,56
Mockup

Dit is een mockup, geen werkende versie, met de jaren en de moties uit onze proefdraai van 16 oktober 2026 en de artikelen 2025 uit een aanroep op 17 oktober 2026, 23:32 (budgettaire tabellen OCW, begroting en jaarverslag). De MCP-server zet je aan met het adres op Voor AI.

Voor wie

Journalisten en factcheckers die willen weten of een ministerie meer of minder uitgaf dan begroot, Kamerleden en hun medewerkers, studenten bestuurskunde en iedereen die wil zien waar het belastinggeld heen gaat.

Wat je krijgt

Een dashboard per ministerie (begrotingshoofdstuk) met per jaar de begroting naast het jaarverslag, per artikel het verschil, en daaronder de moties en amendementen die de Kamer bij die begroting indiende, met hun uitslag.

Proefdraai op 16 oktober 2026 voor Onderwijs, Cultuur en Wetenschap (hoofdstuk VIII): in elk jaar van 2016 tot en met 2025 gaf OCW meer uit dan begroot. In 2025 was 57,60 miljard euro begroot en werd 59,53 miljard uitgegeven (1,94 miljard meer). Het grootste verschil zat in 2022: 47,64 miljard begroot, 53,20 miljard uitgegeven. Primair onderwijs ging in 2025 van 16,29 naar 16,90 miljard. Bij de OCW-begroting voor 2026 (Kamerstuk 36800 VIII) dienden Kamerleden 100 moties in: 39 aangenomen, 39 verworpen, 6 overgenomen, 6 vervallen. Van de 22 amendementen werden er 3 aangenomen en 10 verworpen; 9 hebben geen besluit, meestal omdat ze vervangen zijn door een gewijzigde versie.

Uitgaven van het ministerie van OCW per begrotingsartikel: het meest primair onderwijs (17.733 miljoen euro), dan voortgezet onderwijs en wetenschappelijk onderwijs

Uitgaven van het ministerie van OCW per begrotingsartikel, 2027, in miljoen euro. Totaal: 60.774; de grootste 12 van 15 categorieën staan in de grafiek. Primair onderwijs is 29% van het totaal. Hoofdstuk VIII (Onderwijs Cultuur en Wetenschap), ontwerpbegroting 2027, uitgaven (vuo=U). Bedragen in de API in duizenden euro's.

Bron: Ministerie van Financiën, Rijksfinanciën open data (budgettaire tabellen) · opgehaald 25 oktober 2026 · selectie: hoofdstuk VIII; fase OWB; vuo=U (uitgaven)Open de tabel Los blok

Zo zou je kunnen starten6 stappen

  1. 1

    Haal de begroting van één ministerie op

    De begrotingstabellen van Rijksfinanciën hebben één regel per regeling. year en phase zijn verplicht; phase=OWB is de begroting, vuo=U de uitgaven, chapter het hoofdstuk (VIII is OCW). Het bedrag staat in duizenden euro's: 14552052 is 14,6 miljard. OCW had voor 2025 265 regels.

    https://www.rijksfinancien.nl/open-data/api/json/budgettaire_tabellen?year=2025&phase=OWB&vuo=U&chapter=VIII
    [{"index":"VIII.1.70.1.596032.U","jaar":2025,"fase":"OWB","verantwoordelijk_minister":null,
      "hoofdstuk_naam":"Onderwijs, Cultuur en Wetenschap","hoofdstuk_nummer":"VIII",
      "artikel_naam":"Primair onderwijs","artikel_nummer":"1", …
      "regeling_detailniveau_naam":"Bekostiging po-instellingen","regeling_detailniveau_nummer":"596032",
      "vuo":"U","bedrag":14552052}, …]
  2. 2

    Zet het jaarverslag ernaast, en koppel op naam

    Met phase=JV krijg je wat er echt is uitgegeven. Pas op: dezelfde regeling heeft in de begroting en het jaarverslag van hetzelfde jaar een ander nummer (Bekostiging po-instellingen: 596032 in de OWB, 686087 in het JV). Koppel daarom op artikelnummer, of op artikel plus regelingnaam, nooit op regeling_detailniveau_nummer. Voor 2026 en 2027 is er nog geen jaarverslag.

    https://www.rijksfinancien.nl/open-data/api/json/budgettaire_tabellen?year=2025&phase=JV&vuo=U&chapter=VIII
    [{"index":"VIII.1.70.1.686087.U","jaar":2025,"fase":"JV","verantwoordelijk_minister":null,
      "hoofdstuk_naam":"Onderwijs, Cultuur en Wetenschap","hoofdstuk_nummer":"VIII",
      "artikel_naam":"Primair onderwijs","artikel_nummer":"1", …
      "regeling_detailniveau_naam":"Bekostiging po-instellingen","regeling_detailniveau_nummer":"686087",
      "vuo":"U","bedrag":15254960}, …]
  3. 3

    Controleer het veld fase zelf

    De specificatie noemt ook O1 en O2 (de suppletoire begrotingen), maar phase=O1 gaf op 16 oktober 2026 voor 2025 564 regels terug: de 265 van de OWB en de 299 van het JV door elkaar. Voor 2026 gaf O1 gewoon de OWB. Filter in je code dus altijd op het veld fase in de regels, niet alleen op de parameter.

    https://www.rijksfinancien.nl/open-data/api/json/budgettaire_tabellen?year=2025&phase=O1&vuo=U&chapter=VIII
    [{"index":"VIII.1.70.1.596032.U","jaar":2025,"fase":"OWB", … "bedrag":14552052},
     …
     {"index":"VIII.1.70.1.686087.U","jaar":2025,"fase":"JV", … "bedrag":15254960}, …]
  4. 4

    Zoek het begrotingsdossier in de Tweede Kamer

    Elke begroting is een Kamerstukdossier met een nummer en als toevoeging het hoofdstuk (VIII). De titel noemt het jaar. Gebruik de nieuwe OData v5 van de Kamer; daar is Verwijderd een veld waar je altijd op filtert.

    https://gegevensmagazijn.tweedekamer.nl/OData/v5/Kamerstukdossier?$filter=startswith(Titel,'Vaststelling van de begrotingsstaten') and Toevoeging eq 'VIII' and Verwijderd eq false&$orderby=Nummer desc&$top=3&$select=Nummer,Toevoeging,Titel
    {"@odata.context":"…/OData/v5/$metadata#Kamerstukdossier(Nummer,Toevoeging,Titel)","value":[
      {"Titel":"Vaststelling van de begrotingsstaten van het Ministerie van Onderwijs, Cultuur en Wetenschap (VIII) voor het jaar 2027","Nummer":37020,"Toevoeging":"VIII"},
      {"Titel":"… voor het jaar 2026","Nummer":36800,"Toevoeging":"VIII"},
      {"Titel":"… voor het jaar 2025","Nummer":36600,"Toevoeging":"VIII"}]}
  5. 5

    Haal de moties en amendementen met hun uitslag op

    Zaken (Soort Motie of Amendement) hangen aan het dossier. Met $expand=Besluit zie je de uitslag in Besluit.Soort ('Stemmen - aangenomen', 'Stemmen - verworpen', 'Overgenomen' …). De besluiten komen niet op volgorde terug; kies zelf de sterkste uitkomst. $count=true geeft het totaal: 100 moties bij de OCW-begroting 2026. Hoogstens 250 per verzoek.

    https://gegevensmagazijn.tweedekamer.nl/OData/v5/Zaak?$filter=Soort eq 'Motie' and Verwijderd eq false and Kamerstukdossier/any(k:k/Nummer eq 36800 and k/Toevoeging eq 'VIII')&$count=true&$top=1&$select=Nummer,Onderwerp&$expand=Besluit($select=Soort;$filter=Verwijderd eq false)
    {"@odata.context":"…/OData/v5/$metadata#Zaak(Nummer,Onderwerp,Besluit(Soort))","@odata.count":100,"value":[
      {"Nummer":"2026Z00817","Onderwerp":"Motie van het lid Van der Plas over de verankering van agrarisch erfgoed, visserijcultuur en streekgebonden tradities in het toekomstige cultuurbestel ",
       "Besluit":[{"Soort":"Ingediend"},{"Soort":"Stemmen - verworpen"}]}]}
  6. 6

    Optioneel: wie ontvangt het geld?

    De financiële instrumenten noemen de ontvangers van subsidies en bijdragen, tot en met 2025. Let op drie afwijkingen: de jaarparameter heet hier jaar (niet year), bedragen zijn hele euro's (niet duizenden) en je krijgt altijd 25 resultaten per pagina (verder met start).

    https://www.rijksfinancien.nl/open-data/api/json/v2/financiele_instrumenten/ontvangers?jaar=2025&sort=amount desc
    {"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},
      {"id":"tennet holding b.v.","titel":"TenneT Holding B.V.","bedrag":11900000000}, …]}

Hoe de bronnen samenkomen

  • Rijksbegroting (Rijksfinanciën open data)Tweede Kamer open datavia hoofdstuk (VIII) = Kamerstukdossier.Toevoeging, jaar uit de titel

    Het hoofdstuknummer uit de begrotingstabel is de toevoeging van het begrotingsdossier in de Kamer. Zo zet je bij elk ministerie en jaar de moties en amendementen die over dat geld gingen. Amendementen verschuiven echt bedragen tussen artikelen; de onderwerpen noemen vaak het artikel.

Laat AI het bouwen

Plak deze prompt in Claude, ChatGPT, Cursor of Lovable. Hij noemt de echte endpoints, de koppelsleutels en de valkuilen, zodat de assistent meteen werkende code schrijft. Controleer de uitkomst altijd met de bron zelf.

Bouw een klein dashboard (Next.js of één HTML-bestand met JavaScript) waarin ik een ministerie kies en zie wat het Rijk van plan was uit te geven en wat het echt uitgaf, per jaar en per begrotingsartikel, met eronder de moties en amendementen van de Tweede Kamer bij die begroting.

Bron 1, Rijksfinanciën (geen sleutel, OpenAPI op https://www.rijksfinancien.nl/swagger.json):
https://www.rijksfinancien.nl/open-data/api/json/budgettaire_tabellen?year=2025&phase=OWB&vuo=U&chapter=VIII
- year en phase zijn verplicht. phase=OWB is de begroting, phase=JV het jaarverslag. vuo=U uitgaven, V verplichtingen, O ontvangsten. chapter is het hoofdstuk als Romeins cijfer (VIII = OCW, X = Defensie, XVI = VWS).
- Velden: jaar, fase, hoofdstuk_nummer, hoofdstuk_naam, artikel_nummer, artikel_naam, artikelonderdeel_naam, regeling_detailniveau_naam, regeling_detailniveau_nummer, vuo, bedrag.
- bedrag is in DUIZENDEN euro's (57.596.669 = 57,6 miljard). Bij de financiële instrumenten (ontvangers) zijn het hele euro's.
- Filter altijd zelf op het veld fase: phase=O1 of O2 geeft OWB- en JV-regels door elkaar (gemeten 16 oktober 2026).
- Koppel begroting en jaarverslag op artikel_nummer (of artikel plus regelingnaam). regeling_detailniveau_nummer verschilt tussen OWB en JV van hetzelfde jaar en verandert elk jaar.
- Tel niet alle hoofdstukken op: fondsen (Gemeentefonds, Mobiliteitsfonds) krijgen hun geld uit ministeries, dat telt dubbel.
- VWS (XVI): de artikelen Wlz en Zvw (12, 4111, 4112) bevatten in de OWB de premiegelden (tientallen miljarden), in het JV niet. Laat ze weg of toon ze apart.
- Jaarverslagen bestaan tot en met 2025; OWB tot en met 2027. Niet elk hoofdstuk heeft elk jaar een JV: toon "geen jaarverslag" in plaats van 0.

Bron 2, Tweede Kamer OData v5 (geen sleutel): https://gegevensmagazijn.tweedekamer.nl/OData/v5
- Dossier: /Kamerstukdossier?$filter=startswith(Titel,'Vaststelling van de begrotingsstaten') and Toevoeging eq 'VIII' and Verwijderd eq false. De titel eindigt op "voor het jaar 2026".
- Moties: /Zaak?$filter=Soort eq 'Motie' and Verwijderd eq false and Kamerstukdossier/any(k:k/Nummer eq 36800 and k/Toevoeging eq 'VIII')&$expand=Besluit($select=Soort;$filter=Verwijderd eq false). Idem met Soort eq 'Amendement'.
- Uitslag staat in Besluit.Soort: 'Stemmen - aangenomen', 'Stemmen - verworpen', 'Overgenomen', 'Stemmen - aangehouden', 'Termijn - vervallen …', 'Ingediend'. De volgorde van de besluiten is niet chronologisch: neem de sterkste uitkomst. Amendementen zonder besluit zijn meestal vervangen door een "gewijzigd amendement".
- $top hoogstens 250; volg @odata.nextLink. Gebruik v5-veldnamen (Datum, niet GestartOp).

Uitkomst: een keuzelijst met ministeries; een staafgrafiek per jaar (2016 tot en met 2025) met begroot naast uitgegeven in miljarden; een tabel per artikel voor het gekozen jaar met het verschil, grootste verschil bovenaan; daaronder de moties en amendementen bij de begroting van het jaar erna, met uitslag en het zaaknummer (bijvoorbeeld 2026Z00817). Zet bij elk getal de eenheid en de fase.

Probeer het zelf

De kern van het project in een klein script. Nodig: Node 20 of nieuwer (ingebouwde fetch); draai met: node rijksbegroting.mjs [hoofdstuk]. Getest op 2026-10-16; hieronder de echte uitvoer van die proefdraai.

// Rijksbegroting-tracker: begroot (OWB) tegen uitgegeven (JV) per jaar en per artikel, plus de moties op de begroting.
// Bronnen: rijksfinancien.nl open data (geen sleutel) en de Tweede Kamer OData v5 (geen sleutel). Node 20+.
const UA = { "User-Agent": "mijn-project/1.0 (+jij@voorbeeld.nl)" };
const HOOFDSTUK = process.argv[2] ?? "VIII";      // VIII = Onderwijs, Cultuur en Wetenschap
const JAREN = [2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025];
// VWS (XVI): Wlz en Zvw (artikel 12, 4111, 4112) staan in de OWB met de premiegelden, in het JV niet. Laat ze weg.
const PREMIE = HOOFDSTUK === "XVI" ? new Set(["12", "4111", "4112"]) : new Set();

async function tabel(jaar, fase) {
  const q = new URLSearchParams({ year: jaar, phase: fase, vuo: "U", chapter: HOOFDSTUK });
  const r = await fetch(`https://www.rijksfinancien.nl/open-data/api/json/budgettaire_tabellen?${q}`, { headers: UA });
  const rijen = await r.json();
  // Let op: controleer het veld fase zelf. Bij phase=O1/O2 geeft de API OWB- en JV-regels door elkaar terug.
  return rijen.filter((x) => x.fase === fase && x.jaar === jaar && !PREMIE.has(x.artikel_nummer));
}
const som = (rijen) => rijen.reduce((s, x) => s + x.bedrag, 0);              // bedrag = duizenden euro's
const mld = (k) => (k / 1e6).toFixed(2).replace(".", ",").padStart(6);       // duizenden -> miljarden

console.log(`Hoofdstuk ${HOOFDSTUK}: begroot (OWB) tegen uitgegeven (JV), uitgaven in miljard euro`);
console.log(" jaar  begroot  uitgegeven  verschil");
let laatste;
for (const jaar of JAREN) {
  const [owb, jv] = await Promise.all([tabel(jaar, "OWB"), tabel(jaar, "JV")]);
  if (!jv.length) { console.log(` ${jaar}  ${mld(som(owb))}     (nog geen jaarverslag)`); continue; }
  const v = som(jv) - som(owb);
  console.log(` ${jaar}  ${mld(som(owb))}  ${mld(som(jv))}      ${v >= 0 ? "+" : "-"}${mld(Math.abs(v)).trim()}`);
  laatste = { jaar, owb, jv };
}

// Per artikel in het nieuwste jaar met een jaarverslag. Koppel op artikelnummer, NIET op regelingnummer:
// regeling_detailniveau_nummer verschilt zelfs tussen OWB en JV van hetzelfde jaar.
const perArtikel = {};
for (const [k, rijen] of [["owb", laatste.owb], ["jv", laatste.jv]])
  for (const x of rijen) {
    const a = (perArtikel[x.artikel_nummer] ??= { naam: x.artikel_naam, owb: 0, jv: 0 });
    a[k] += x.bedrag;
  }
console.log(`\n${laatste.jaar} per artikel (miljard euro), grootste verschil eerst:`);
for (const [nr, a] of Object.entries(perArtikel).sort((p, q) => Math.abs(q[1].jv - q[1].owb) - Math.abs(p[1].jv - p[1].owb)).slice(0, 6))
  console.log(`  ${nr.padStart(2)} ${a.naam.slice(0, 34).padEnd(34)} ${mld(a.owb)} -> ${mld(a.jv)}`);

// De Kamer: moties en amendementen bij de begroting van dit hoofdstuk voor 2026.
const TK = "https://gegevensmagazijn.tweedekamer.nl/OData/v5";
const tk = async (pad, q) => (await fetch(`${TK}/${pad}?${new URLSearchParams(q)}`, { headers: UA })).json();
const dossier = (await tk("Kamerstukdossier", {
  $filter: `startswith(Titel,'Vaststelling van de begrotingsstaten') and Toevoeging eq '${HOOFDSTUK}' and contains(Titel,'jaar 2026') and Verwijderd eq false`,
  $select: "Nummer,Toevoeging,Titel",
})).value[0];
console.log(`\nKamerstuk ${dossier.Nummer} ${dossier.Toevoeging}: ${dossier.Titel}`);
for (const soort of ["Motie", "Amendement"]) {
  const zaken = [];
  let url = `${TK}/Zaak?` + new URLSearchParams({
    $filter: `Soort eq '${soort}' and Verwijderd eq false and Kamerstukdossier/any(k: k/Nummer eq ${dossier.Nummer} and k/Toevoeging eq '${HOOFDSTUK}')`,
    $select: "Nummer,Onderwerp", $expand: "Besluit($select=Soort;$filter=Verwijderd eq false)", $top: "250",
  });
  while (url) { const j = await (await fetch(url, { headers: UA })).json(); zaken.push(...j.value); url = j["@odata.nextLink"]; }
  // Besluit.Soort: 'Stemmen - aangenomen', 'Stemmen - verworpen', 'Overgenomen', 'Stemmen - aangehouden', 'Ingediend' …
  // De volgorde van de besluiten in het antwoord is niet chronologisch: kies de sterkste uitkomst.
  const UITKOMST = ["aangenomen", "verworpen", "ingetrokken", "overgenomen", "vervallen", "aangehouden", "ingediend"];
  const uitslag = (z) => UITKOMST.find((u) => z.Besluit.some((b) => b.Soort.toLowerCase().includes(u))) ?? "geen besluit";  // vaak vervangen door een gewijzigde versie
  const telling = {};
  for (const z of zaken) { const u = uitslag(z); telling[u] = (telling[u] ?? 0) + 1; }
  console.log(`  ${soort === "Motie" ? "moties" : "amendementen"}: ${zaken.length} (` + Object.entries(telling).map(([k, n]) => `${k} ${n}`).join(", ") + ")");
}
Uitvoer
Hoofdstuk VIII: begroot (OWB) tegen uitgegeven (JV), uitgaven in miljard euro
 jaar  begroot  uitgegeven  verschil
 2016   36,85   38,70      +1,84
 2017   37,16   38,05      +0,89
 2018   38,87   42,33      +3,46
 2019   41,98   43,08      +1,09
 2020   42,72   44,46      +1,74
 2021   43,60   48,75      +5,15
 2022   47,64   53,20      +5,56
 2023   53,25   55,12      +1,88
 2024   55,47   56,46      +1,00
 2025   57,60   59,53      +1,94

2025 per artikel (miljard euro), grootste verschil eerst:
   1 Primair onderwijs                   16,29 ->  16,90
   3 Voortgezet onderwijs                11,82 ->  12,33
   7 Wetenschappelijk onderwijs           7,07 ->   7,41
   4 Beroepsonderwijs en volwassenenedu   5,96 ->   6,14
   6 Hoger beroepsonderwijs               4,49 ->   4,65
  16 Onderzoek en wetenschapsbeleid       1,71 ->   1,83

Kamerstuk 36800 VIII: Vaststelling van de begrotingsstaten van het Ministerie van Onderwijs, Cultuur en Wetenschap (VIII) voor het jaar 2026
  moties: 100 (verworpen 39, aangenomen 39, overgenomen 6, vervallen 6, aangehouden 2, ingetrokken 1, ingediend 7)
  amendementen: 22 (geen besluit 9, verworpen 10, aangenomen 3)

Waar het misgaat

  • Bedragen in de begrotingstabellen zijn duizenden euro's, bij de financiële instrumenten hele euro's. De specificatie zegt het niet. Deel door 1.000.000 voor miljarden in de tabellen, door 1.000.000.000 bij de ontvangers.
  • phase=O1 en O2 werken niet zoals beschreven: je krijgt OWB- en JV-regels door elkaar (2025) of gewoon de OWB (2026). Filter altijd op het veld fase in de regels.
  • Regelingnummers zijn geen vaste sleutel: Bekostiging po-instellingen is 596032 in de begroting 2025 en 686087 in het jaarverslag 2025. Koppel op artikelnummer of op naam.
  • VWS is niet te vergelijken zonder opschonen: de OWB 2025 heeft 66,8 miljard op artikel 4111 (Zorgverzekeringswet), het jaarverslag 9,7 miljard. De premiegelden staan alleen in de begroting. Ook vóór 2021 zijn de VWS-artikelen anders ingedeeld.
  • Tel niet alle hoofdstukken op tot 'de rijksbegroting': fondsen krijgen hun geld uit ministeries en hoofdstuk IX (Financiën en Nationale Schuld) bevat de aflossing van de staatsschuld.
  • In de Kamer-API komen besluiten van één motie niet op volgorde terug ('Stemmen - verworpen' kan vóór 'Ingediend' staan). Kies de uitkomst op inhoud, niet op positie. Amendementen zonder besluit zijn meestal vervangen door een gewijzigde versie.

Verder bouwen

  • Zet de ontwerpbegroting 2027 (phase=OWB, year=2027) naast 2026 en laat per artikel zien wat er bij komt of af gaat: precies wat journalisten op Prinsjesdag zoeken.
  • Koppel de ontvangers (financiële instrumenten) aan het artikel waar het geld vandaan komt (/v2/financiele_instrumenten met referrer en type) en maak per artikel een top-10 van ontvangers.
  • Volg aangenomen amendementen: haal de stemmingen per fractie op ($expand=Besluit($expand=Stemming)) en laat zien welke partijen geld verschoven.
  • Zet het Gemeentefonds (hoofdstuk B) naast de som van de algemene uitkering in de gemeentebegrotingen (Iv3, taakveld 0.7): wat het Rijk stuurt tegen wat gemeenten boeken.

Meer met deze data

Ingediende amendementen: 982 per jaar in 2025, 7% meer dan in 2009

Ingediende amendementen, 2009 – 2025, per jaar. Het hoogste punt was 2016 (1.163).

Bron: Tweede Kamer, Gegevensmagazijn (Zaak, alleen volle jaren) · opgehaald 25 oktober 2026Open de tabel Los blok

De bronnen2

Rijksbegroting (Rijksfinanciën open data)

Ministerie van FinanciënNederland, begrotingsregeling

Het ministerie van Financiën zet de begrotingstabellen van alle ministeries en fondsen in een open API: uitgaven, verplichtingen en ontvangsten per hoofdstuk, artikel en regeling, voor de begroting, de suppletoire begrotingen en het jaarverslag. Daarnaast: wie welke subsidie of bijdrage kreeg (financiële instrumenten, 2016–2025). De ontwerpbegroting 2027 stond er op 16 oktober 2026 al in; OCW alleen al is goed voor 60,8 miljard euro.

OpenAPIDownloadFinancieelBestuur
Bereikbaar
elk kwartaal

Tweede Kamer open data

Tweede KamerNederland, motie, stemming, Kamerlid

Alles wat de Tweede Kamer doet, als open API: moties en amendementen, hoe elke fractie stemde, schriftelijke Kamervragen, debatten en commissies, Kamerstukken, en de Kamerleden zelf, met hun nevenfuncties, geschenken en reizen.

OpenAPIBestuur
Actueel
bijgewerkt gisteren

Meer om te bouwen