CivicStat stelt parlementaire data gratis beschikbaar via een publieke API. Gebruik onze data voor onderzoek, journalistiek of civic tech projecten.
Publieke endpoints zijn direct toegankelijk zonder authenticatie:
curl https://civicstat-api.fly.dev/v2/partiesResponse: JSON met alle partijen en hun metadata.
Geen API-sleutel vereist. Rate limit: 100 verzoeken per minuut.
| GET | /v2/parliaments | Alle parlementen (Tweede Kamer, gemeenteraden) |
| GET | /v2/parties | Alle partijen, optioneel gefilterd op parlement |
| GET | /v2/parliament/:slug/scorecards | MCS-scorecards per parlement |
| GET | /v2/insights | Automatisch berekende inzichten |
| GET | /v2/search?q=... | Zoek partijen, moties, beloften en Kamerleden |
| GET | /v2/stats | Platformstatistieken (aantallen moties, beloften, etc.) |
Voor volledige toegang tot beloftedata, matchresultaten en ruwe stemdata is een API-sleutel vereist.
| GET | /v2/promises | Beloften met matchdata (partij, jaar, thema filters) |
| GET | /v2/promises/:id | Enkelvoudige belofte met alle gekoppelde moties |
| GET | /v2/motions | Moties doorzoeken (query, partij, soort, parlement) |
| GET | /v2/motions/:id | Motiedetails met stemresultaten |
| GET | /v2/votes | Stemmingen opvragen |
| GET | /v2/votes/:id | Stemdetails per partij |
Voeg je API-sleutel toe via de X-API-Key header:
curl -H "X-API-Key: csk_jouw_sleutel" \
https://civicstat-api.fly.dev/v2/promisesAlternatieven: Authorization: Bearer csk_... header of ?api_key=csk_... query parameter.
import requests
# Publieke data (geen sleutel nodig)
parties = requests.get("https://civicstat-api.fly.dev/v2/parties").json()
for party in parties:
print(party["name"], party.get("abbreviation", ""))
# Geauthenticeerde data
headers = {"X-API-Key": "csk_jouw_sleutel"}
promises = requests.get(
"https://civicstat-api.fly.dev/v2/promises",
params={"party": "VVD", "theme": "KLIMAAT"},
headers=headers,
).json()// Publieke data
const parties = await fetch("https://civicstat-api.fly.dev/v2/parties")
.then(r => r.json());
// Geauthenticeerde data
const promises = await fetch(
"https://civicstat-api.fly.dev/v2/promises?party=VVD&theme=KLIMAAT",
{ headers: { "X-API-Key": "csk_jouw_sleutel" } }
).then(r => r.json());Publieke endpoints: 100 verzoeken per minuut. Geauthenticeerde endpoints: 1.000 verzoeken per minuut. Bij overschrijding ontvang je een 429 Too Many Requests response. Wacht 60 seconden en probeer het opnieuw.
Bekijk de volledige OpenAPI-specificatie en test endpoints direct in de browser:
Swagger UI openen →Alle data is beschikbaar onder CC BY 4.0. Vrij te gebruiken met bronvermelding:
Data: CivicStat.nl (CC BY 4.0)Stuur een e-mail naar api@civicstat.nl met je naam, organisatie en beoogd gebruik. We streven ernaar binnen 24 uur te reageren.
Bugs en feature requests kunnen gemeld worden via GitHub Issues.