BesluitBron 1.4.4-23 Status Aanmelden

Tweede Kamer

Laatst gewijzigd op .

Het Gegevensmagazijn van de Tweede Kamer is het officiële register van het nationale parlement. Het bevat kamerstukken, zaken, besluiten, stemmingen, activiteiten, verslagen en de personen en fracties daarachter. Het is anoniem te bevragen op gegevensmagazijn.tweedekamer.nl.

Dit is de gezaghebbende bron voor wat het parlement heeft besloten en hoe er is gestemd.

Wat er in zit

Vastgesteld op 13 augustus 2026 door meting aan alle 38 entiteitsverzamelingen:

Onderdeel Aantal
Documentversies 1.566.500
Stemmingen 1.012.844
Besluiten 732.603
Documenten 706.237
Zaken 339.911
Activiteiten 99.157
Verslagen 23.267
Kamerstukdossiers 7.741
Vergaderingen 7.466
Toezeggingen 6.452
Personen 4.470
Commissies 234
Fracties 160

Deze aantallen zijn stuk voor stuk te hoog. Verwijderde rijen tellen mee en hun velden zijn leeggemaakt. De overschatting loopt van 0,4 procent bij personen tot 26,7 procent bij activiteiten. BesluitBron filtert die rijen weg, zodat een gemeld aantal het aantal bestaande rijen is.

Documenten: 606.893, niet 706.237

Voor documenten is de overschatting op 17 augustus 2026 gemeten. Het register meldt 706.414 documenten als je niets wegfiltert, en 606.893 als je de verwijderde rijen wegfiltert. Dat is een overschatting van 99.521 rijen, ofwel 16,4 procent.

Het aantal documenten van de Tweede Kamer is dus 606.893. De grafiek op de Startpagina gebruikt dat cijfer. Tot en met versie 1.3.40 stond daar 706.237.

Diezelfde meting geeft antwoord op een vraag over OpenTK. Dat platform had 606.873 documenten op 14 augustus 2026. Naast het niet-gefilterde aantal lijkt dat 86 procent van het register. Naast het gefilterde aantal is het 99,997 procent: 606.873 van 606.893, twintig documenten verschil. OpenTK mist dus geen zevende deel van het register. Het heeft er vrijwel alles van, en de tekst daarvan is te doorzoeken.

Wat het toevoegt boven de lokale bronnen

Drie dingen die Open Raadsinformatie en OpenBesluitvorming niet hebben:

  • stemmingen per fractie en per lid, met de uitslag erbij;
  • woordelijke verslagen van plenaire vergaderingen, met de spreker en het tijdstip erbij;
  • toezeggingen van bewindspersonen als zelfstandig geregistreerd gegeven.

De beperking die het gebruik bepaalt

Het register doorzoekt alleen titels. Een zoekopdracht op een onderwerp vindt dus alleen stukken waarin dat woord in de titel staat. Stukken waarin het onderwerp in de tekst wordt behandeld, blijven buiten beeld. Uit eigen steekproeven bleek 86 tot 99 procent van de treffers in de tekst op die manier onzichtbaar.

Daarom haalt de connector de tekst uit OpenTK wanneer er in tekst wordt gezocht. Dat is in het antwoord zichtbaar via het veld match_type uit Zoekprecisie. De lezer weet daarmee of een treffer uit het officiële register komt of uit de index van een derde.

Overige beperkingen

  • De vorige versie van de dienst, /OData/v4/2.0, stopt op 1 oktober. BesluitBron gebruikt alleen v5, waarin ongeveer veertig veldnamen zijn gewijzigd;
  • Er is geen verzoeklimiet gepubliceerd en er is er geen waargenomen. Dat is niet hetzelfde als de afwezigheid ervan;
  • Het register gaat over de Tweede Kamer. De Eerste Kamer zit er niet in. Voor kamerstukken van de Staten-Generaal als geheel is Officiële Bekendmakingen de bron.

Adres en gereedschappen

Adres: https://besluitbron.nl/mcp/tweedekamer/v1. Het oudere adres zonder /v1 blijft bereikbaar.

  • list_factions: de fracties, met hun omvang en hun periode;
  • search_documents: zoeken in de titels van kamerstukken, want meer kan het register niet;
  • search_document_text: zoeken in de tekst van diezelfde stukken. Dit gereedschap haalt zijn gegevens uit OpenTK en niet uit het register, wat in het veld match_type van het antwoord zichtbaar is;
  • get_document: één kamerstuk met zijn metagegevens;
  • get_case: één zaak met de documenten, besluiten en activiteiten die eraan hangen. Dit is de ingang die het dossier bij elkaar houdt;
  • get_vote: één stemming met de uitslag;
  • faction_votes: het stemgedrag van een fractie over een reeks stemmingen;
  • upcoming_activities: de geagendeerde activiteiten van de Kamer;
  • list_transcripts: de beschikbare woordelijke verslagen;
  • get_transcript: één verslag met de sprekers en de tijdstippen erbij;
  • dataset: elke tabel van het register als rijen en kolommen, met de kolomnamen van het platform zelf. Zonder tabelnaam levert het gereedschap de catalogus: alle bevraagbare tabellen met hun kolommen, hun uitbreidbare verwijzingen en hun exacte rijaantal. Beschikbaar vanaf versie 1.2.24;
  • list_platform_calls: de aanroepen naar het platform in deze sessie.

Daarnaast list_capabilities.

Tabellen en zittingsduur

Naast de vragen per stuk of per zaak is het register vanaf versie 1.2.24 ook als tabel te lezen. Het gereedschap dataset stuurt een filter, een sortering en een selectie door naar het platform, in de taal van het platform zelf. Het antwoord komt terug als kolommen met rijen, als CSV of als objecten. De grenzen van het platform worden daarbij afgevangen: verwijderde rijen blijven weg, een pagina is ten hoogste 250 rijen en grotere reeksen worden serverzijdig doorgebladerd. Loopt een filter tegen de ongedocumenteerde knoopgrens van de dienst aan, dan wordt dat gemeld voordat de dienst met een foutcode antwoordt.

Twee verzamelingen worden niet door het platform geleverd maar door BesluitBron berekend. Zij zijn in het antwoord als zodanig gemerkt. members geeft één rij per zetelperiode: de persoon, de fractie, de functie en de data waartussen die liep. member_tenure voegt de perioden van één persoon samen tot de zittingsduur. Een aansluitende of overlappende periode telt daarbij als doorlopend, en een lopende periode wordt geteld tot de dag van het antwoord.

Het zetelregister begint in 1977 en bevat de perioden die de Kamer administreert. Het is geen naamlijst van elk lid sinds 1815. Wie er niet in staat, heeft daarmee niet aangetoond nooit lid te zijn geweest. Elk antwoord zegt dat erbij.

De twee kanalen achter één adres

De connector spreekt twee diensten aan, en dat onderscheid staat in elk antwoord:

flowchart TD
    C["Adres tweedekamer"] -->|"besluiten, stemmingen,<br/>zaken, verslagen"| TK["Gegevensmagazijn<br/>officieel register"]
    C -->|"zoeken in<br/>de tekst"| OTK["OpenTK<br/>index van een derde"]

Wat uit het register komt, is gezaghebbend. Wat uit de index komt, is een vindplaats die bij het register moet worden bevestigd. Zie OpenTK voor de reden dat die scheiding er is.

Waar dit platform te bereiken is

Deze adressen horen bij de partij achter deze bron en niet bij BesluitBron. Wie een fout in de gegevens of in de API van deze bron vindt, meldt die daar:

De Tweede Kamer noemt een streeftijd van vijf werkdagen, langer tijdens een reces.

Deze adressen zijn op 18 augustus 2026 nagelopen. Er staat met opzet geen e-mailadres bij: waar een partij alleen een adres publiceert, verwijst BesluitBron naar de pagina waarop dat adres staat.

Waarvoor deze bron geschikt is

Voor alles wat het parlement formeel heeft gedaan: stemmen, besluiten, toezeggingen, en wat er woordelijk is gezegd.

Waarvoor niet

Voor de Eerste Kamer, die er niet in zit. Voor decentrale overheden, waarvoor Open Raadsinformatie en OpenBesluitvorming de bronnen zijn. En voor de vraag of een regeling is bekendgemaakt, waarvoor Officiële Bekendmakingen de bron is.

Actualiteit, gemeten in augustus 2026

Gemeten op 16 augustus 2026 met exacte dagtellingen: 11 stukken gedateerd 14 augustus, 32 op 13 augustus, 11 op 12 augustus, en niets op zaterdag en zondag. Dit register loopt bij. Een gat van een dag of twee in het weekend komt door de vergaderkalender en is geen achterstand.

De tekst van een stuk komt op drie manieren bij get_document terecht. Voor ongeveer één op de vier stukken publiceert de Kamer zelf een schone XML-uitgave naast het document. Van de recente stukken is een Worddocument (docx) de meerderheid: op een steekproef van de honderd meest recente stukken, gemeten op 18 augustus 2026, waren dat er 61 van de honderd. get_document haalt de tekst daar sinds diezelfde dag rechtstreeks uit, door het docx-bestand als zip-archief te openen en de tekst uit word/document.xml te lezen. Voor de rest leest get_document de tekst rechtstreeks uit de PDF, zonder OCR: dat is sinds 18 augustus 2026 zo, na een meting op een steekproef van stukken uit 2015 tot 2026 die geen van beide een onleesbare tekstlaag liet zien. Alleen een stuk dat alleen als scan bestaat, zonder een tekstlaag in de PDF zelf, blijft zo onbereikbaar; wie zo'n stuk toch wil doorzoeken, heeft OpenTK nodig, dat de tekst er met OCR uit haalt.

De actualiteit per bron staat op de Laadstatus, met de drempels en de cijfers erachter.