303.489 datasets geïndexeerd1.419 uitgevers
Open Data IndexDe index van open data over Nederland
Open Data Index›Bouwen›Raadsbesluiten-alert: een seintje als je gemeente iets besluit
AlertOm te beginnenBestuur

Raadsbesluiten-alert: een seintje als je gemeente iets besluit

Een script dat elke dag de officiële bekendmakingen van je gemeente doorzoekt op jouw onderwerp, alleen het nieuwe meldt, en erbij zet wat de raad er eerder over besprak.

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("raadsbesluiten-alert")
  • geef_bron("overheid-sru")
  • geef_bron("openraadsinformatie")
De assistent

Ik heb het project, de geteste aanroepen en de valkuilen. Ik bouw een alert met Zoekdienst Overheid.nl (SRU) en Open Raadsinformatie. 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
PostvakZoek in mail
RaadsalertUtrecht · parkeren: niets nieuw
RaadsalertUtrecht · parkeren: 56 nieuwe bekendmakingen

Utrecht · parkeren: 56 nieuwe bekendmakingen

RRaadsalert <alert@jouwsite.nl> · aan mij
Gemeenteblad Utrechtzoekwoord 'parkeren' · sinds 1 sep
56nieuw54verkeersbesluiten2verordeningen

Regels eerst

  • Algemene plaatselijke verordening Utrecht 2010gmb-2026-474587
  • Aanwijzingsbesluit parkeerapparatuurplaatsen gemeente Utrechtgmb-2026-410813

Verkeersbesluiten 54alle 54 →

  • 2026-10-11 Cornelis Houtmanstraat, Noordoost, Intrekken Parkeerverbod, Verkeersmaatregel
  • Onderwerp verkeersbesluit: het aanleggen van een gereserveerde gehandicaptenparkeerplaat…
Let op: Open Raadsinformatie loopt achter

Nieuwste Utrechtse stuk: 7 juli 2026, 102 dagen oud. 7.063 raadsstukken noemen 'parkeren'.

Je volgt Utrecht + 'parkeren'. Volgende keer alleen wat nieuw is.
Mockup

Dit is een mockup, geen werkende versie, met de bekendmakingen uit onze proefdraai voor Utrecht en 'parkeren' van 16 oktober 2026 (Gemeenteblad via de SRU-zoekdienst van overheid.nl, en Open Raadsinformatie). De MCP-server zet je aan met het adres op Voor AI.

Voor wie

Bewoners en buurtcomités die een plan willen volgen, lokale journalisten, belangenorganisaties, raadsleden en ondernemers die moeten weten wanneer een verordening of vergunning verschijnt.

Wat je krijgt

Een klein script (of een dagelijkse taak in GitHub Actions, een cron of een Slack-bot) dat per gemeente en zoekwoord laat zien wat er nieuw is in het Gemeenteblad, regels als verordeningen bovenaan, met een link naar de officiële tekst. Het onthoudt wat je al zag, dus de tweede keer meldt het alleen nieuwe publicaties. Daaronder de nieuwste raadsstukken over hetzelfde woord uit Open Raadsinformatie, met een waarschuwing als die index achterloopt.

Proefdraai op 16 oktober 2026 voor Utrecht en 'parkeren' sinds 1 september 2026: 56 bekendmakingen in het Gemeenteblad, waarvan 54 verkeersbesluiten en 2 verordeningen (de Algemene plaatselijke verordening op 12 oktober en het Aanwijzingsbesluit parkeerapparatuurplaatsen op 1 september). Een tweede run meldde 0 nieuwe. Open Raadsinformatie had 7.063 Utrechtse raadsstukken met 'parkeren', maar het nieuwste stuk in de Utrechtse index is besproken op 7 juli 2026: 102 dagen oud.

Officiële publicaties per blad: het meest Gemeenteblad (560.560 publicaties), dan Staatscourant en Waterschapsblad

Officiële publicaties per blad, 2025, in publicaties. Totaal: 695.682; de grootste 12 van 13 categorieën staan in de grafiek. Gemeenteblad is 81% van het totaal. Naar publicatiedatum (dcterms.available). De bladen tellen precies op tot het totaal.

Bron: KOOP, Zoekdienst Overheid.nl (SRU 1.2, officiële publicaties) · opgehaald 25 oktober 2026 · selectie: x-connection=oep (officiële publicaties); publicatiedatum in 2025Open de tabel Los blok

Zo zou je kunnen starten6 stappen

  1. 1

    Zoek in het Gemeenteblad van je gemeente

    De SRU-zoekdienst van KOOP (versie 1.2) doorzoekt alle officiële bekendmakingen. x-connection=oep is de collectie bekendmakingen; de query is CQL. dcterms.creator is de naam van de gemeente, publicationname het blad, dcterms.available de publicatiedatum en keyword zoekt in de hele tekst. Gebruik zoekdienst.overheid.nl: de SRU 2.0-adressen sluiten in robots.txt alles uit.

    https://zoekdienst.overheid.nl/sru/Search?version=1.2&operation=searchRetrieve&x-connection=oep&startRecord=1&maximumRecords=1&query=dcterms.creator%3D%3D"Utrecht" and dcterms.available>%3D2026-09-01 and keyword%3D"parkeren"
    <searchRetrieveResponse …><version>1.2</version><numberOfRecords>56</numberOfRecords><records><record>…
      <dcterms:title>Aanwijzingsbesluit parkeerapparatuurplaatsen gemeente Utrecht</dcterms:title>
      <dcterms:identifier>gmb-2026-410813</dcterms:identifier>
      <dcterms:type scheme="overheidop:Gemeenteblad">algemeen verbindend voorschrift (verordening)</dcterms:type>
      <dcterms:creator>Utrecht</dcterms:creator> … <dcterms:available>2026-09-01</dcterms:available> …
      <url>https://zoek.officielebekendmakingen.nl/gmb-2026-410813.html</url>
  2. 2

    Let op: de provincie heet ook Utrecht

    dcterms.creator is alleen een naam. Zonder publicationname vind je met "Utrecht" ook het Provinciaal blad van de provincie Utrecht (identifier prb-…): 429 treffers sinds 1 oktober tegen 368 met publicationname=="Gemeenteblad". Zet het blad in de query en controleer daarnaast het voorvoegsel gmb- (Groningen, Utrecht en de provincies Groningen en Utrecht delen hun naam).

    https://zoekdienst.overheid.nl/sru/Search?version=1.2&operation=searchRetrieve&x-connection=oep&startRecord=1&maximumRecords=1&query=dcterms.creator%3D%3D"Utrecht" and dcterms.available>%3D2026-10-01
    <numberOfRecords>429</numberOfRecords> …
      <dcterms:title>Besluit aangevraagde omgevingsvergunning kabel- en leidingenactiviteit - N225 Utrechtsestraatweg ter hoogte van hm 36,2 in Rhenen</dcterms:title>
      <dcterms:identifier>prb-2026-16842</dcterms:identifier>
      <dcterms:type scheme="overheidop:Provinciaal blad">omgevingsvergunning</dcterms:type>
  3. 3

    Haal alles op en onthoud wat je al zag

    Met maximumRecords tot 1.000 en startRecord pagineer je. De volgorde is niet op datum (sortKeys werd stil genegeerd): sorteer zelf. Bewaar de identifiers (gmb-2026-410813) in een bestand of database; wat er nog niet in staat, is nieuw. Fouten komen als diagnostics-XML met HTTP 200; een 'Unexpected HTTP status 500' ging op 16 oktober 2026 bij een tweede poging goed.

    https://zoekdienst.overheid.nl/sru/Search?version=1.2&operation=searchRetrieve&x-connection=oep&startRecord=1&maximumRecords=1&query=dcterms.creator%3D%3D"Utrecht" and publicationname%3D%3D"Gemeenteblad" and dcterms.available>%3D2026-10-01
    <numberOfRecords>368</numberOfRecords><records><record>…
      <dcterms:title>Verleende Omgevingsvergunning, het kappen en herplanten van twee bomen, Kanaalweg achter hsnr 50, Merwedekanaalzone, GU-Z2026-0062296</dcterms:title>
      <dcterms:identifier>gmb-2026-467876</dcterms:identifier>
      <dcterms:type scheme="overheidop:Gemeenteblad">omgevingsvergunning</dcterms:type> …
    </record></records><nextRecordPosition>2</nextRecordPosition></searchRetrieveResponse>
  4. 4

    Vind de index van je gemeente in Open Raadsinformatie

    Open Raadsinformatie (Open State Foundation) is een Elasticsearch met één index per gemeente: ori_<naam>_<tijdstempel>. Amsterdamse stadsdelen hebben een eigen index, provincies beginnen met osi_. Geen sleutel, geen robots.txt.

  5. 5

    Kijk eerst hoe vers de index is

    Het hoogste last_discussed_at zegt tot wanneer de index bijgewerkt is. Begrens op 'now': er staan ook datums in 2098. Op 16 oktober 2026 was het nieuwste Utrechtse stuk van 7 juli 2026, en in alle indexen samen hadden maar 249 documenten een datum na 1 augustus 2026. Gebruik Open Raadsinformatie daarom voor de achtergrond, niet als bron van je alert.

    curl -X POST "https://api.openraadsinformatie.nl/v1/elastic/ori_utrecht_*/_search" \
      -H 'Content-Type: application/json' -d '{"size":0,"query":{"range":{"last_discussed_at":{"lte":"now"}}},"aggs":{"max":{"max":{"field":"last_discussed_at"}}}}'
    {"took":0,"timed_out":false,"_shards":{"total":1,"successful":1,"skipped":0,"failed":0},
     "hits":{"total":{"value":10000,"relation":"gte"},"max_score":null,"hits":[]},
     "aggregations":{"max":{"value":1.7834616E12,"value_as_string":"2026-07-07T22:00:00.000000"}}}
  6. 6

    Zoek de raadsstukken over je onderwerp

    Documenten (@type MediaObject) hebben de volledige tekst in text en md_text. Vraag met _source alleen de velden die je nodig hebt, anders krijg je hele pdf-teksten terug. Sorteer op last_discussed_at. original_url wijst naar het document bij het raadsinformatiesysteem van de gemeente (hier iBabs).

    curl -X POST "https://api.openraadsinformatie.nl/v1/elastic/ori_utrecht_*/_search" \
      -H 'Content-Type: application/json' -d '{"size":2,"_source":["name","last_discussed_at","@type","original_url"],"query":{"bool":{"must":[{"match":{"text":"parkeren"}}],"filter":[{"term":{"@type":"MediaObject"}}]}},"sort":[{"last_discussed_at":"desc"}]}'
    {"took":18,…,"hits":{"total":{"value":7063,"relation":"eq"},"max_score":null,"hits":[
      {"_index":"ori_utrecht_20250705061904","_type":"_doc","_id":"7947074","_score":null,"_source":{
        "original_url":"https://api1.ibabs.eu/publicdownload.aspx?site=Utrecht&id=779bcccf-8fcb-485a-8e73-248aeeb8e9f1",
        "@type":"MediaObject","name":"Voorjaarsnota 2026","last_discussed_at":"2026-07-02T11:30:00+00:00"},"sort":[1782991800000]}, …

Hoe de bronnen samenkomen

  • Zoekdienst Overheid.nl (SRU)Open Raadsinformatievia gemeentenaam (dcterms.creator) en de indexnaam ori_<naam>_…, plus het zoekwoord

    Er is geen gedeelde sleutel tussen een bekendmaking en het raadsstuk erachter. Koppel op gemeente en zoekwoord, en zoek de titel van een verordening (bijvoorbeeld 'Algemene plaatselijke verordening') in de raadsstukken rond de publicatiedatum: het raadsvoorstel en het besluit staan daar meestal een paar weken eerder.

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.

Schrijf een Node-script (20+, alleen ingebouwde fetch) dat ik elke ochtend draai (cron of GitHub Actions) en dat me meldt wat mijn gemeente nieuw publiceert over een onderwerp, met daaronder wat de gemeenteraad er eerder over besprak.

Bron 1, officiële bekendmakingen via SRU 1.2 (geen sleutel; gebruik alleen dit adres, de SRU 2.0-hosts sluiten in robots.txt alles uit):
https://zoekdienst.overheid.nl/sru/Search?version=1.2&operation=searchRetrieve&x-connection=oep&startRecord=1&maximumRecords=1000&query=dcterms.creator=="Utrecht" and publicationname=="Gemeenteblad" and dcterms.available>=2026-09-01 and keyword="parkeren"
- Het antwoord is XML. Per record: dcterms:title, dcterms:identifier (gmb-2026-410813), dcterms:type (soort, bijvoorbeeld 'verkeersbesluit of -mededeling', 'algemeen verbindend voorschrift (verordening)', 'omgevingsvergunning'), dcterms:available (datum), en in enrichedData de url naar zoek.officielebekendmakingen.nl.
- Fouten komen als <diagnostics> met HTTP 200. Controleer daarop; probeer bij 'Unexpected HTTP status 500' na 5 en 10 seconden opnieuw.
- maximumRecords hoogstens 1.000; pagineer met startRecord tot numberOfRecords.
- De volgorde is niet op datum; sorteer zelf. sortKeys wordt genegeerd.
- Veldnamen zijn eigenwijs: publicationname (niet w.publicatienaam), dcterms.available (niet dt.available). keyword zoekt in de hele tekst.
- dcterms.creator is een naam: "Utrecht" vindt zonder publicationname ook de provincie (prb-…). Houd alleen identifiers die met gmb- beginnen.
- Bewaar de identifiers die je al meldde (JSON-bestand of SQLite) en meld alleen nieuwe. Zet regels (soort met 'verordening' of 'beleidsregel') bovenaan.

Bron 2, Open Raadsinformatie (Elasticsearch, geen sleutel): POST https://api.openraadsinformatie.nl/v1/elastic/ori_utrecht_*/_search
- Indexnaam vinden: GET https://api.openraadsinformatie.nl/v1/elastic/_cat/indices?format=json (ori_<naam>_<tijdstempel>).
- Versheid: {"size":0,"query":{"range":{"last_discussed_at":{"lte":"now"}}},"aggs":{"max":{"max":{"field":"last_discussed_at"}}}}. Op 16 oktober 2026 liep de index ruim drie maanden achter (nieuwste stuk 7 juli 2026). Toon een waarschuwing als het nieuwste stuk ouder is dan 30 dagen.
- Zoeken: {"size":5,"_source":["name","last_discussed_at","original_url"],"query":{"bool":{"must":[{"match":{"text":"parkeren"}}],"filter":[{"term":{"@type":"MediaObject"}}]}},"sort":[{"last_discussed_at":"desc"}]}. Vraag nooit text of md_text op tenzij nodig: dat zijn hele pdf's.

Uitkomst: een korte tekst (ook geschikt voor e-mail of Slack) met per nieuwe bekendmaking datum, soort, titel en link; daaronder de vijf nieuwste raadsstukken met datum en link, en de versheidswaarschuwing. Instellingen (gemeente, indexnaam, woorden, vanaf-datum) in een config-bestand; meerdere woorden mogelijk.

Probeer het zelf

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

// Raadsbesluiten-alert: nieuwe officiële bekendmakingen van je gemeente over een onderwerp (Gemeenteblad, via SRU),
// plus wat er in de raadsstukken over staat (Open Raadsinformatie). Draai dagelijks; het onthoudt wat je al zag.
// Bronnen: zoekdienst.overheid.nl (SRU 1.2) en api.openraadsinformatie.nl (Elasticsearch). Geen sleutels. Node 20+.
import { existsSync, readFileSync, writeFileSync } from "node:fs";
const UA = { "User-Agent": "mijn-project/1.0 (+jij@voorbeeld.nl)" };
const GEMEENTE = process.argv[2] ?? "Utrecht";     // zoals in dcterms.creator
const ORI_INDEX = process.argv[3] ?? "utrecht";    // ori_<naam>_<tijdstempel>; zie _cat/indices
const WOORD = process.argv[4] ?? "parkeren";
const VANAF = process.argv[5] ?? "2026-09-01";

// 1. Gemeenteblad via SRU. Fouten komen als diagnostics-XML met HTTP 200; een losse 'Unexpected HTTP status 500' ging
//    bij een tweede poging goed, dus probeer het een paar keer.
const veld = (r, n) => (r.match(new RegExp(`<${n}[^>]*>([^<]*)</${n}>`)) ?? [])[1] ?? "";
async function sru(q) {
  for (let poging = 1; ; poging++) {
    const xml = await (await fetch(`https://zoekdienst.overheid.nl/sru/Search?${q}`, { headers: UA })).text();
    if (!xml.includes("<diagnostics")) return xml;
    if (poging === 3) throw new Error("SRU-fout: " + veld(xml, "message") + " " + veld(xml, "details"));
    await new Promise((r) => setTimeout(r, 5000 * poging));
  }
}
const records = [];
for (let start = 1; ; start += 1000) {                    // oep: hoogstens 1.000 per verzoek
  const xml = await sru(new URLSearchParams({ version: "1.2", operation: "searchRetrieve", "x-connection": "oep", startRecord: start, maximumRecords: 1000,
    query: `dcterms.creator=="${GEMEENTE}" and publicationname=="Gemeenteblad" and dcterms.available>=${VANAF} and keyword="${WOORD}"` }));
  records.push(...xml.split("<record>").slice(1).map((r) => ({ id: veld(r, "dcterms:identifier"), datum: veld(r, "dcterms:available"),
    soort: veld(r, "dcterms:type"), titel: veld(r, "dcterms:title").trim(), url: veld(r, "url") })));
  if (start + 1000 > +veld(xml, "numberOfRecords")) break;
}
// creator=="Utrecht" vindt zonder publicationname óók de provincie Utrecht (prb-…): controleer het voorvoegsel gmb-.
const gmb = records.filter((r) => r.id.startsWith("gmb-")).sort((a, b) => b.datum.localeCompare(a.datum));   // SRU sorteert niet op datum
const BESTAND = `gezien-${GEMEENTE.toLowerCase()}-${WOORD}.json`;
const gezien = new Set(existsSync(BESTAND) ? JSON.parse(readFileSync(BESTAND, "utf8")) : []);
const nieuw = gmb.filter((r) => !gezien.has(r.id));
writeFileSync(BESTAND, JSON.stringify(gmb.map((r) => r.id)));
const perSoort = {};
for (const r of gmb) perSoort[r.soort] = (perSoort[r.soort] ?? 0) + 1;
console.log(`Gemeenteblad ${GEMEENTE}, '${WOORD}', sinds ${VANAF}: ${gmb.length} bekendmakingen, ${nieuw.length} nieuw sinds de vorige keer`);
for (const [s, n] of Object.entries(perSoort).sort((a, b) => b[1] - a[1])) console.log(`  ${String(n).padStart(3)}  ${s}`);
// Regels (verordeningen, beleidsregels) eerst: die stelt de raad of het college vast. Daarna de rest.
const regel = (r) => /verordening|beleidsregel/i.test(r.soort);
const toon = [...nieuw.filter(regel), ...nieuw.filter((r) => !regel(r)).slice(0, 2)];
for (const r of toon) console.log(`  ${r.datum}  ${r.titel.slice(0, 88)}\n              ${r.url}`);

// 2. Raadsstukken in Open Raadsinformatie: hoe vers is de index, en wat zijn de nieuwste stukken over het woord?
const ori = async (body) => (await fetch(`https://api.openraadsinformatie.nl/v1/elastic/ori_${ORI_INDEX}_*/_search`, {
  method: "POST", headers: { ...UA, "Content-Type": "application/json" }, body: JSON.stringify(body) })).json();
const vers = await ori({ size: 0, aggs: { max: { max: { field: "last_discussed_at" } } }, query: { range: { last_discussed_at: { lte: "now" } } } });
const tot = vers.aggregations.max.value_as_string.slice(0, 10);
const dagen = Math.round((Date.now() - Date.parse(tot)) / 864e5);
console.log(`\nOpen Raadsinformatie ori_${ORI_INDEX}: nieuwste stuk besproken op ${tot} (${dagen} dagen geleden)${dagen > 30 ? "  LET OP: index loopt achter" : ""}`);
const hits = await ori({ size: 3, _source: ["name", "last_discussed_at", "@type", "original_url"],
  query: { bool: { must: [{ match: { text: WOORD } }], filter: [{ term: { "@type": "MediaObject" } }] } },
  sort: [{ last_discussed_at: "desc" }] });
console.log(`Raadsstukken met '${WOORD}': ${hits.hits.total.value}${hits.hits.total.relation === "gte" ? "+" : ""}, nieuwste:`);
for (const h of hits.hits.hits) console.log(`  ${h._source.last_discussed_at.slice(0, 10)}  ${h._source.name}`);
Uitvoer
Gemeenteblad Utrecht, 'parkeren', sinds 2026-09-01: 56 bekendmakingen, 56 nieuw sinds de vorige keer
   54  verkeersbesluit of -mededeling
    2  algemeen verbindend voorschrift (verordening)
  2026-10-12  Algemene plaatselijke verordening Utrecht 2010
              https://zoek.officielebekendmakingen.nl/gmb-2026-474587.html
  2026-09-01  Aanwijzingsbesluit parkeerapparatuurplaatsen gemeente Utrecht
              https://zoek.officielebekendmakingen.nl/gmb-2026-410813.html
  2026-10-13  2026-10-11 Cornelis Houtmanstraat, Noordoost, Intrekken Parkeerverbod, Verkeersmaatregel
              https://zoek.officielebekendmakingen.nl/gmb-2026-477731.html
  2026-10-13  Onderwerp verkeersbesluit: het aanleggen van een gereserveerde gehandicaptenparkeerplaat
              https://zoek.officielebekendmakingen.nl/gmb-2026-478013.html

Open Raadsinformatie ori_utrecht: nieuwste stuk besproken op 2026-07-07 (102 dagen geleden)  LET OP: index loopt achter
Raadsstukken met 'parkeren': 7063, nieuwste:
  2026-07-02  Voorjaarsnota 2026
  2026-07-02  Coalitieakkoord 'Voor Uuuu' 2026-2030, gemeente Utrecht
  2026-07-01  Raadsbrief Besluit tot intrekking van de lopende prijsvaststellingsprocedure van kantoor Winthontlaan 1 te Utrecht in MWKZ

Waar het misgaat

  • Open Raadsinformatie liep op 16 oktober 2026 ruim drie maanden achter: het nieuwste Utrechtse stuk was van 7 juli 2026 en in alle indexen samen hadden maar 249 documenten een datum na 1 augustus. Bouw je alert op het Gemeenteblad en gebruik raadsstukken als achtergrond, met een versheidscontrole.
  • dcterms.creator is een naam, geen code. 'Utrecht' en 'Groningen' zijn ook provincies (prb-…), en sommige gemeentenamen staan anders gespeld dan je verwacht. Zet publicationname=="Gemeenteblad" in de query en controleer het voorvoegsel gmb-.
  • SRU geeft fouten als diagnostics-XML met HTTP 200. Een verkeerde veldnaam geeft 'Invalid search field', een tijdelijke storing 'Unexpected HTTP status 500' of 'Socket timeout exception' (beide gezien op 16 en 17 oktober 2026, een paar minuten later weer goed). Controleer altijd op <diagnostics> voor je numberOfRecords leest, anders denk je dat er niets nieuws is.
  • keyword zoekt in de hele tekst en is ruim: 'warmtenet' vond in Utrecht ook vergunningen voor bodemenergie en lozingen. Toon soort en titel, zodat de lezer snel kan schiften, en laat meerdere of preciezere woorden toe.
  • Verkeersbesluiten en vergunningen zijn de meeste bekendmakingen (54 van de 56 bij 'parkeren'). Een raadsbesluit herken je aan de soort 'algemeen verbindend voorschrift (verordening)' of 'beleidsregel'; zet die bovenaan of maak er een apart filter van.
  • Gebruik geen andere ingangen die robots.txt uitsluit: open.overheid.nl (Woo-documenten), repository.overheid.nl (de documenten zelf) en de SRU 2.0-hosts. Link naar zoek.officielebekendmakingen.nl voor de lezer, maar laat je script die pagina's niet ophalen.

Verder bouwen

  • Zoek op locatie in plaats van woord: sommige bekendmakingen hebben coördinaten in dcterms:spatial (RD), veel hebben een straatnaam in de titel. Meld alles binnen 500 meter van je adres.
  • Volg de geldende regels: de collectie cvdr (x-connection=cvdr) bevat de lokale regelgeving zelf. Laat zien wanneer een verordening die je volgt een nieuwe versie krijgt.
  • Maak er een Slack- of Telegram-bot van die per kanaal een gemeente en een lijst woorden volgt, en eens per dag de nieuwe publicaties post.
  • Vergelijk gemeenten: tel per maand het aantal verordeningen en beleidsregels per gemeente (maximumRecords=0 geeft alleen het aantal) en zie wie het meest regelt.

Meer met deze data

Vergaderingen van raden en commissies die in Open Raadsinformatie staan: 20.868 vergaderingen per jaar in 2025, 3,8 keer zo veel als in 2010

Vergaderingen van raden en commissies die in Open Raadsinformatie staan, 2010 – 2025, in vergaderingen per jaar. Het hoogste punt was 2021 (21.656).

Bron: Open State Foundation, Open Raadsinformatie (Elasticsearch-API) · opgehaald 25 oktober 2026 · selectie: @type: Meeting; naar startdatum; alleen hele jarenOpen de tabel Los blok

De bronnen2

Zoekdienst Overheid.nl (SRU)

KOOP (Kennis- en exploitatiecentrum Officiële Overheidspublicaties)Nederland, publicatie of regeling

De zoekdienst achter overheid.nl: één SRU-adres voor de officiële bekendmakingen (Staatscourant, Gemeenteblad, Kamerstukken …), de lokale regelgeving van gemeenten, provincies en waterschappen, de geldende wetten en de producten en diensten van overheden. Op 16 oktober 2026 stonden er 6,7 miljoen officiële publicaties in, 344.109 lokale regelingen, 148.592 wetsteksten en 54.667 producten. Je krijgt metadata in XML met een link naar het document.

OpenAPIZoekdienstBestuur
Actueel
bijgewerkt 15 uur geleden

Open Raadsinformatie

Open State Foundation en VNGNederland, gemeente

Agenda's, moties, raadsvoorstellen en verslagen van honderden gemeenten in één doorzoekbare index, met een open zoek-API.

OpenZoekdienstAPIBestuur
Bereikbaar
dagelijks

Meer om te bouwen