
Tweede Kamer open data
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.

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).
Brieven van de regering aan de Kamer: 4.935 per jaar in 2025, 17% minder dan in 2009
Brieven van de regering aan de Kamer, 2009 – 2025, per jaar. Het hoogste punt was 2009 (5.958).
Geschenken die Kamerleden meldden: 434 per jaar in 2025, 52% meer dan in 2010
Geschenken die Kamerleden meldden, 2010 – 2025, per jaar. Het hoogste punt was 2018 (592).
Initiatiefwetsvoorstellen van Kamerleden: 13 per jaar in 2025, 2,2 keer zo veel als in 2009
Initiatiefwetsvoorstellen van Kamerleden, 2009 – 2025, per jaar. Het hoogste punt was 2016 (28).
Schriftelijke Kamervragen: 1.993 per jaar in 2025, 34% minder dan in 2009
Schriftelijke Kamervragen, 2009 – 2025, per jaar. Het hoogste punt was 2019 (3.076).
Mondelinge vragen in het vragenuur: 76 per jaar in 2025, 44% minder dan in 2009
Mondelinge vragen in het vragenuur, 2009 – 2025, per jaar. Dat is het laagste punt in de reeks.
Ingediende moties in de Tweede Kamer: 4.440 per jaar in 2025, 70% meer dan in 2009
Ingediende moties in de Tweede Kamer, 2009 – 2025, per jaar. Het hoogste punt was 2022 (5.010).
Waar de Kamer vorig jaar mee bezig was: brief regering is het grootste deel, 31% in 2025
Verdeling in 2025: brief regering 31%, motie 28%, schriftelijke vragen 12%, amendement 6,1%, brief commissie 5,3%, position paper 3,5%, overig (26) 14%. Totaal: 15.992 zaken.
Wat je ermee kunt bouwen2
Wat kun je ermee?3 ideeën
Welke fractie dient de meeste moties in?
Tel moties per indiener en per jaar. Kijk ook hoeveel ervan zijn aangenomen.
Stemgedrag naast elkaar
Leg voor twee fracties alle stemmingen van een jaar naast elkaar en reken uit hoe vaak ze hetzelfde stemden.
Nevenfuncties en geschenken
Per Kamerlid staan nevenfuncties, inkomsten daaruit, ontvangen geschenken en reizen. Koppel aan de commissies waarin ze zitten.
Zo verwerk je het2 stappen
Gebruik de nieuwe adressen (OData v5)
Sinds 12 juni 2026 is er een nieuwe versie van de OData API, met dezelfde 38 entiteiten maar andere veldnamen. De datum van een zaak heet daar Datum (in v4: GestartOp). Dit voorbeeld geeft de nieuwste moties.
https://gegevensmagazijn.tweedekamer.nl/OData/v5/Zaak?$filter=Soort%20eq%20'Motie'%20and%20Verwijderd%20eq%20false&$orderby=Datum%20desc&$top=3&$select=Nummer,Onderwerp,Datum
Tel per jaar in één aanroep
Ook in v5 werkt $apply. Zo krijg je het aantal moties per jaar zonder alles op te halen (op 16 oktober 2026: 66.147 moties in totaal, in v4 en v5 hetzelfde).
https://gegevensmagazijn.tweedekamer.nl/OData/v5/Zaak?$apply=filter(Soort%20eq%20'Motie'%20and%20Verwijderd%20eq%20false)/compute(year(Datum)%20as%20Jaar)/groupby((Jaar),aggregate($count%20as%20n))
Interessante koppelingen
Vergelijkbare bronnen
- DDDebat Direct nog niet uitgelegd
De debatten zelf, live en terug te kijken, met sprekersinformatie. Geen data-API; de vergaderingen staan wel als Activiteit en Vergadering in het Gegevensmagazijn.
- Open Raadsinformatie
Hetzelfde soort stukken, maar van gemeenteraden en Provinciale Staten.
Waar je op moet letten
- Maximaal 250 per verzoek
Een hogere $top geeft een foutmelding. Pagineer met $skip, of gebruik de SyncFeed voor bulk.
- Stemmingen zitten aan besluiten
Een stemming hoort bij een Besluit, dat bij een Zaak hoort (de motie). Gebruik $expand of koppel op Besluit_Id.
- Versie 4 is afgeschreven
De Kamer meldde op 29 mei 2026 dat het oude adres (/OData/v4/2.0) vanaf 1 oktober 2026 geen resultaat meer geeft. Op 16 oktober 2026 antwoordde v4 nog wel, met dezelfde aantallen als v5. Bouw nieuwe code op /OData/v5. De SyncFeed verandert niet.
- Andere veldnamen in v5
Een oude veldnaam in v5 geeft een foutmelding. Voorbeelden: Zaak.GestartOp wordt Datum, Organisatie wordt Kamer, Volgnummer wordt Ondernummer; Document.DocumentNummer wordt Nummer; ActorNaam en ActorFractie worden Naam en FractieNaam (Stemming, ZaakActor, DocumentActor, ActiviteitActor); Relatie wordt Rol. Zaak.Status, HuidigeBehandelstatus en GrootProject vervallen. De volledige lijst staat in het nieuwsbericht van de Kamer: https://opendata.tweedekamer.nl/nieuws/nieuwe-versie-odata-api
APIOData v4 · gelezen 16 okt 2026
Geen sleutel of account; het dienstdocument en de tellingen werken anoniem. getest
JSONXML (Atom)
Basisadres
https://gegevensmagazijn.tweedekamer.nl/OData/v5
Endpoints 38
- GET
/PersoonKamerleden (en oud-Kamerleden) - GET
/PersoonContactinformatiePersoonContactinformatie - GET
/PersoonGeschenkPersoonGeschenk - GET
/PersoonLoopbaanPersoonLoopbaan - GET
/PersoonNevenfunctiePersoonNevenfunctie - GET
/PersoonNevenfunctieInkomstenPersoonNevenfunctieInkomsten - GET
/PersoonOnderwijsPersoonOnderwijs - GET
/PersoonReisPersoonReis - GET
/CommissieCommissie - GET
/CommissieContactinformatieCommissieContactinformatie - GET
/CommissieZetelCommissieZetel - GET
/CommissieZetelVastPersoonCommissieZetelVastPersoon - GET
/CommissieZetelVastVacatureCommissieZetelVastVacature - GET
/CommissieZetelVervangerPersoonCommissieZetelVervangerPersoon - GET
/CommissieZetelVervangerVacatureCommissieZetelVervangerVacature - GET
/Fractiefracties met aantal zetels - GET
/FractieZetelFractieZetel - GET
/FractieZetelPersoonFractieZetelPersoon - GET
/FractieZetelVacatureFractieZetelVacature - GET
/Activiteitdebatten, commissievergaderingen, gesprekken - GET
/ActiviteitActorActiviteitActor - GET
/AgendapuntAgendapunt - GET
/Besluitbesluiten over een zaak, met de stemmingssoort - GET
/Stemmingstemmingen per fractie of Kamerlid - GET
/Zaakzaken: moties, amendementen, wetsvoorstellen, Kamervragen (veld Soort) - GET
/ZaakActorZaakActor - GET
/ZaalZaal - GET
/ReserveringReservering - GET
/Documentdocumenten: Kamerstukken, brieven, verslagen - GET
/DocumentActorDocumentActor - GET
/DocumentVersieDocumentVersie - GET
/DocumentPublicatieDocumentPublicatie - GET
/DocumentPublicatieMetadataDocumentPublicatieMetadata - GET
/Kamerstukdossier7.840 records - GET
/Vergadering7.569 records - GET
/VerslagVerslag - GET
/ToezeggingToezegging - GET
/ToegezegdAanToegezegdAan
De API's van deze bron 2 · uit de documentatie van de aanbieder uit de beschrijving
OData API (v5)
Gericht zoeken: met entiteiten, attributen en filters maak je zelf een zoekvraag in de vorm van een URL (de API op deze pagina).
https://gegevensmagazijn.tweedekamer.nl/OData/v5- GET
/Zaak?$filter=Soort eq 'Motie'Moties, met $orderby, $select en $expand - GET
/Zaak?$apply=…groupby(…)Tellen en groeperen in de API zelf - GET
documentatiehttps://opendata.tweedekamer.nl/documentatie/odata-api
Open Data Index gebruikt deze API voor de Kamerblokken en de statuscheck.
SyncFeed API
Synchroniseren: (een deel van) het Gegevensmagazijn bijhouden in je eigen database, met een feed van alle wijzigingen.
https://gegevensmagazijn.tweedekamer.nl/SyncFeed/2.0/Feed- GET
/FeedAtom-feed met wijzigingen, te volgen met een volgnummer - GET
documentatiehttps://opendata.tweedekamer.nl/documentatie/syncfeed-api
Filteren platform
OData v4-expressies in $filter
Parameters 7
$filter | rijen kiezen, bv. Soort eq 'Motie' and Datum ge 2025-01-01T00:00:00Z | platform |
$select | alleen deze velden | platform |
$expand | gekoppelde entiteiten meenemen, bv. Zaak met Besluit en Stemming | platform |
$orderby | sorteren, bv. Datum desc | platform |
$top / $skip | pagineren | platform |
$count | totaal meegeven ($count=true) of alleen tellen (/$count) | platform |
$apply | groeperen en tellen, bv. groupby((Soort),aggregate($count as n)) | getest |
Dimensies · = spatie in de sleutel
| Dimensie | Codes | Voorbeelden |
|---|---|---|
Zaakzaken: moties, amendementen, wetsvoorstellen, Kamervragen (veld Soort) | 343.619 | |
Documentdocumenten: Kamerstukken, brieven, verslagen | 728.947 | |
Besluitbesluiten over een zaak, met de stemmingssoort | 740.618 | |
Stemmingstemmingen per fractie of Kamerlid | 1.030.560 | |
Activiteitdebatten, commissievergaderingen, gesprekken | 100.752 | |
VergaderingVergadering | 7.569 | |
PersoonKamerleden (en oud-Kamerleden) | 4.480 | |
Fractiefracties met aantal zetels | 160 | |
KamerstukdossierKamerstukdossier | 7.840 |
Velden van Zaak 18
| Naam | Type | Betekenis |
|---|---|---|
Id | guid | |
Nummer | string | |
Soort | string | |
Titel | string | |
Citeertitel | string | |
Alias | string | |
Onderwerp | string | |
Datum | datetimeoffset | |
Kamer | string | |
Voorhang | string | |
Termijn | datetimeoffset | |
Vergaderjaar | string |
Toon alle 18
| Naam | Type | Betekenis |
|---|---|---|
Ondernummer | int32 | |
Afgedaan | boolean | |
GewijzigdOp | datetimeoffset | |
ApiGewijzigdOp | datetimeoffset | |
Verwijderd | boolean | |
Kabinetsappreciatie | string |
Limieten en valkuilen
- Maximaal 250 rijen per verzoek ($top); hoger geeft een foutmelding. Volg @odata.nextLink of pagineer met $skip. getest
- De data beginnen niet allemaal tegelijk: Parlis (activiteiten, documenten, stemmingen) sinds 1 september 2008, VLOS (verslagen) sinds 25 juni 2013, Sesam (Kamerleden, fracties, commissies) sinds 1 september 2021, toezeggingen sinds 1 september 2022. Reeksen van vóór die data zijn onvolledig. uit de beschrijving
- Licentie: CC0 1.0, tenzij anders vermeld (disclaimer: https://opendata.tweedekamer.nl/disclaimer). De Tweede Kamer onderschrijft het gebruik niet en sluit aansprakelijkheid uit. uit de beschrijving
- Voor alles in één keer is er de SyncFeed (gegevensmagazijn.tweedekamer.nl/SyncFeed/2.0/Feed): een Atom-feed met alle wijzigingen. getest
- Tellen en groeperen kan in de API zelf: $apply=groupby((Soort),aggregate($count as n)). getest
- Records worden niet gewist maar krijgen Verwijderd = true; filter daar altijd op. ervaring
Probeer het HTTP 200 · 320 ms · 16 okt
https://gegevensmagazijn.tweedekamer.nl/OData/v5/Zaak?$filter=Soort eq 'Motie'&$orderby=Datum desc&$top=3&$select=Nummer,Onderwerp,Titel,Datum
{
"@odata.context": "https://gegevensmagazijn.tweedekamer.nl/OData/v5/$metadata#Zaak(Nummer,Onderwerp,Titel,Datum)",
"value": [
{
"Nummer": "2026Z22500",
"Titel": "Vaststelling van de begrotingsstaten van het Ministerie van Volksgezondheid, Welzijn en Sport (XVI) voor het jaar 2027",
"Onderwerp": "Motie van het lid Dobbe",
"Datum": "2026-10-15T00:00:00+02:00"
},
{
"Nummer": "2026Z22487",
"Titel": "Vaststelling van de begrotingsstaten van het Ministerie van Volksgezondheid, Welzijn en Sport (XVI) voor het jaar 2027",
"Onderwerp": "Motie van het lid Van Meijeren",
"Datum": "2026-10-15T00:00:00+02:00"
}
]
}Ingekort antwoord, opgeslagen bij het oogsten. Klik op het adres voor het echte, actuele antwoord.
Gelezen uit dienstdocument: 38 entiteiten · datamodel: 38 entiteittypen met hun velden. Labels: uit de beschrijving staat in wat de api zelf publiceert. getest uit onze eigen kleine aanroep. platform geldt voor elk api van dit platform, volgens de documentatie. ervaring zelf ondervonden bij het bouwen van open data index.
Meer van Tweede Kamer in onze index
3 datasets in Open Archieven, data.overheid.nl. Dit zijn de laatst gewijzigde.
Meer in dit thema
Bekijk hoe deze pagina is opgebouwd
bron: tweedekamer-opendata blokken: [] secties: - ideeen - verwerken - koppelingen - vergelijkbaar - beperkingen cache: tag: bron:tweedekamer-opendata ververs: na statuscheck, als de bron nieuwer is statuscheck: methode: "OData v5: nieuwste motie (Datum)" verwacht: dagelijks
Bron: content/bronnen/tweedekamer-opendata.yaml · Markdown




