303.489 datasets geïndexeerd1.419 uitgevers
Open Data IndexDe index van open data over Nederland
Open Data Index›Bouwen›Dashboard met files, snelheden en wegwerkzaamheden
DashboardGevorderdVerkeer en vervoer

Dashboard met files, snelheden en wegwerkzaamheden

Een dashboard dat elke minuut toont hoe hard er op de snelwegen gereden wordt, waar het stilstaat en welke wegen dicht zijn, uit de open bestanden van NDW, met de maximumsnelheid van de borden ter plaatse.

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("files-en-wegwerkzaamheden")
  • geef_bron("ndw-verkeer")
  • geef_bron("ndw-wegkenmerken")
De assistent

Ik heb het project, de geteste aanroepen en de valkuilen. Ik bouw een dashboard met NDW actuele verkeersgegevens en Verkeersborden en bereikbaarheidskaart (NDW). 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
23:46vr 16 oktNDW · elke minuut
FileBij de Duitse grens52,31 N · 7,01 O
2,1 kmstilstaand
+5 minvertraging
20:57sinds

“Door grenscontrole” · borden binnen 2 km: 4× 100 op de Rijksweg A1

Snelwegen nu

  • A1111
  • A12109
  • A15108
  • A2107

km/u, gemiddeld over de meetpunten

A2
10 km/ubij km 251,1

1 van de 6.264 meetpunten onder 50

734rijbaan dicht
157omleidingen
147tijdelijke limiet
113gestrande auto's
2 · 2files · ongevallen
Mockup

Dit is een mockup, geen werkende versie, met de cijfers uit onze proefdraai van vrijdag 16 oktober 2026, 23:46 (NDW-bestanden en verkeersborden-API). De MCP-server zet je aan met het adres op Voor AI.

Voor wie

Regionale media en verkeersjournalisten, gemeenten en provincies die werkzaamheden plannen, en wie een eigen file-app wil bouwen zonder betaalde dienst.

Wat je krijgt

Een dashboard met een kaart van de snelwegen (meetpunten gekleurd naar snelheid), een lijst met files en incidenten, het aantal afsluitingen en wegwerkzaamheden dat nu geldt, en per file de maximumsnelheid volgens de borden ter plaatse. Alles ververst elke minuut.

Proefdraai op vrijdag 16 oktober 2026 om 23:46: 6.264 meetpunten van Rijkswaterstaat op de hoofdrijbaan maten verkeer; maar 1 daarvan zat onder de 50 km/u (A2 bij km 251,1, 10 km/u). Op de A2 lag de gemiddelde snelheid over 820 meetpunten op 107 km/u. Het actuele beeld had 1.508 meldingen, waarvan 1.498 op dat moment geldig: 1.069 afsluitingen en rijstrookmaatregelen (734 rijbaanafsluitingen), 157 omleidingen, 147 tijdelijke maximumsnelheden, 113 gestrande voertuigen, 2 ongevallen en 2 files. Een van de twee files (2.100 meter, 5 minuten vertraging) stond bij de Duitse grens (52,31 N, 7,01 O) 'door grenscontrole'; binnen 2 km stonden 29 snelheidsborden, waaronder 4 keer 100 km/u op de Rijksweg A1.

Zo zou je kunnen starten6 stappen

  1. 1

    Kies de kleine bestanden

    opendata.ndw.nu is een gewone map. Voor dit dashboard heb je drie bestanden nodig die samen onder de 4 MB blijven: snelheden_en_intensiteiten_meetgegevens.xml.gz (1,0 MB), actueel_beeld.xml.gz (474 kB), en eenmalig snelheden_en_intensiteiten_configuratie_meetlocaties.xml.gz (1,8 MB, de plek van elk meetpunt). Laat planningsfeed_wegwerkzaamheden_en_evenementen (16 MB) en de OCPI-bestanden liggen. NDW stapt over op DATEX II versie 3: de oude bestanden trafficspeed.xml.gz, measurement.xml.gz en traveltime.xml.gz stoppen op 9 februari 2027.

    https://opendata.ndw.nu/
    Per 9 februari 2027 stopt NDW met het aanbieden van de Actuele Verkeersgegevens (AVG) in DATEX II v2.3. …
    actueel_beeld.xml.gz 2026-10-16 23:44 474K
    snelheden_en_intensiteiten_configuratie_meetlocaties.xml.gz 2026-10-16 23:44 1.8M
    snelheden_en_intensiteiten_meetgegevens.xml.gz 2026-10-16 23:44 1.0M
    tijdelijke_verkeersmaatregelen_afsluitingen.xml.gz 2026-10-16 23:44 380K
    tijdelijke_verkeersmaatregelen_maximum_snelheden.xml.gz 2026-10-16 23:44 40K
  2. 2

    Lees de snelheden per meetpunt

    Elke minuut een nieuw bestand: 1 MB gzip, maar 70 MB XML. Per meetpunt (20.573 in totaal, 9.501 van Rijkswaterstaat) staan per rijstrook om en om de intensiteit (voertuigen per uur) en de gemiddelde snelheid (km/u). Snelheid -1 betekent: geen meting. Neem een gemiddelde gewogen naar intensiteit. De naam van een RWS-meetpunt vertelt waar het staat: 0021hrl0403ra = weg 002 (A2), altijd een 1, hoofdrijbaan links, km 40,3.

    https://opendata.ndw.nu/snelheden_en_intensiteiten_meetgegevens.xml.gz
    <roa:measurementSiteReference targetClass="roa:MeasurementSite" id="RWS01_MONIBAS_0011hrl0033ra" version="1742"/>
    <roa:physicalQuantity index="1">…<roa:basicData xsi:type="roa:TrafficFlow"><roa:vehicleFlow accuracy="0.0">
      <com:vehicleFlowRate>300</com:vehicleFlowRate></roa:vehicleFlow>…
    <roa:physicalQuantity index="2">…<roa:basicData xsi:type="roa:TrafficSpeed"><roa:averageVehicleSpeed accuracy="0.0">
      <com:speed>110.0</com:speed></roa:averageVehicleSpeed>…
    <roa:physicalQuantity index="4">…<com:speed>97.0</com:speed>…
    <roa:measurementTimeDefault><roa:timeValue>2026-10-16T21:40:00Z</roa:timeValue></roa:measurementTimeDefault>
  3. 3

    Zet de meetpunten op de kaart

    De plek staat niet in de meetgegevens maar in het configuratiebestand (1,8 MB gzip, 147 MB XML): per meetpunt breedte en lengte, aantal rijstroken, het soort rijbaan (mainCarriageway, exitSlipRoad …) en welk index-nummer bij welke rijstrook en voertuigklasse hoort. Lees het één keer per dag; meetpunten veranderen zelden.

    https://opendata.ndw.nu/snelheden_en_intensiteiten_configuratie_meetlocaties.xml.gz
    <roa:measurementSite id="RWS01_MONIBAS_0010vwa0057ra" version="1742">…
      <roa:measurementSiteName><com:values><com:value lang="nl">0010vwa0057ra</com:value></com:values></roa:measurementSiteName>
      <roa:measurementSiteNumberOfLanes>1</roa:measurementSiteNumberOfLanes>
      …<roa:specificMeasurementValueType>trafficSpeed</roa:specificMeasurementValueType>
      …<loc:carriageway>exitSlipRoad</loc:carriageway>…
      <loc:latitude>52.34542</loc:latitude><loc:longitude>4.97708</loc:longitude>
  4. 4

    Haal files, incidenten en afsluitingen op

    actueel_beeld.xml.gz (DATEX II v3) bevat alles wat nu op de weg speelt, als situationRecord met een type: AbnormalTraffic (file, met queueLength in meters en delayTimeValue in seconden), Accident, VehicleObstruction (gestrand voertuig), RoadOrCarriagewayOrLaneManagement (afsluitingen en rijstrookmaatregelen), SpeedManagement (tijdelijke maximumsnelheid) en ReroutingManagement (omleiding). De bron staat erbij: een RWS-district, NDW of een provincie. Er is geen wegnummer: de plek is een lijn met coördinaten (posList, eerst breedte, dan lengte) en een Alert-C-locatiecode.

    https://opendata.ndw.nu/actueel_beeld.xml.gz
    <sit:situationRecord xsi:type="sit:AbnormalTraffic" id="NLRWS_0005489543_1" version="8">…
      <sit:source><com:sourceName><com:values><com:value lang="nl">NLRWS</com:value>…
      <com:overallStartTime>2026-10-16T18:57:25.772411Z</com:overallStartTime>…
      <sit:impact><sit:delays><sit:delayBand>upToTenMinutes</sit:delayBand><sit:delayTimeValue>322.0</sit:delayTimeValue></sit:delays></sit:impact>
      <sit:cause><sit:causeDescription><com:values><com:value lang="nl">Door grenscontrole</com:value>…<sit:causeType>other</sit:causeType></sit:cause>
      …<loc:posList>52.309761 7.010353 52.31377 7.043839</loc:posList>…
      <sit:abnormalTrafficType>stationaryTraffic</sit:abnormalTrafficType><sit:queueLength>2100</sit:queueLength></sit:situationRecord>
  5. 5

    Zoek de borden ter plaatse

    De verkeersborden-API van NDW (wegkenmerken) geeft elk bord met RVV-code. A1 is de maximumsnelheid; blackCode is het getal op het bord. Vraag nooit zonder filter: alleen alle A1-borden van Nederland is 97 MB. Een vak (bbox=west,zuid,oost,noord in graden) van ongeveer 4 bij 4 km rond een file geeft een paar tientallen borden. Kijk naar lastSeenOn: de borden langs de A1 bij Diemen waren voor het laatst gezien in april 2022.

    https://wegkenmerken.ndw.nu/api/rest/static-road-data/traffic-signs/v4/current-state?rvvCode=A1&roadAuthorityType=R&bbox=4.95,52.33,5.0,52.36
    {"type":"FeatureCollection","features":[{"type":"Feature","id":"0278838e-1887-4283-af6f-a006af41593d",
      "geometry":{"type":"Point","coordinates":[4.9825913058197,52.342211534899]},
      "properties":{"validated":"n","rvvCode":"A1","blackCode":"100","status":"PLACED","textSigns":[],"placement":"L",
        "side":"NW","bearing":323,"fraction":0.4749358296394348,"drivingDirection":"H","roadName":"Rijksweg A1",
        "roadType":1,"roadNumber":1,"roadSectionId":600125974,"nwbVersion":"2024-03-01","countyName":"Diemen",
        "countyCode":"GM0384","townName":"Diemen","imageUrl":"https://wegkenmerken.ndw.nu/api/images/c8760c1b-…",
        "firstSeenOn":"2014-09-02","lastSeenOn":"2022-04-20"}}, …
  6. 6

    Bouw het dashboard

    Laat een server elke minuut de twee kleine bestanden ophalen (met If-Modified-Since), ze samenvatten tot een klein JSON-bestand en dat aan de pagina geven. Op de kaart: meetpunten als stippen (groen boven 80, oranje 50 tot 80, rood onder 50 km/u), files als rode lijnen uit posList, afsluitingen als grijze lijnen. Naast de kaart de tellers en een lijst incidenten met bron en begintijd.

Hoe de bronnen samenkomen

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 live verkeersdashboard voor Nederland: een Node 20-server die elke minuut open NDW-bestanden samenvat, en één HTML-pagina met een MapLibre- of Leaflet-kaart.

Data (open, geen sleutel, DATEX II versie 3, gzip):
- Snelheden en intensiteiten per minuut: https://opendata.ndw.nu/snelheden_en_intensiteiten_meetgegevens.xml.gz (1 MB gzip, 70 MB XML)
- Plek van elk meetpunt (één keer per dag): https://opendata.ndw.nu/snelheden_en_intensiteiten_configuratie_meetlocaties.xml.gz (1,8 MB gzip, 147 MB XML)
- Files, incidenten, afsluitingen, omleidingen, tijdelijke maximumsnelheden: https://opendata.ndw.nu/actueel_beeld.xml.gz (0,5 MB gzip)
- Verkeersborden (maximumsnelheid = RVV-code A1, het getal in blackCode): https://wegkenmerken.ndw.nu/api/rest/static-road-data/traffic-signs/v4/current-state?rvvCode=A1&bbox=west,zuid,oost,noord

Wat je moet weten:
- Meetgegevens: per siteMeasurements een measurementSiteReference id en per rijstrook om en om TrafficFlow (vehicleFlowRate, voertuigen per uur) en TrafficSpeed (speed, km/u). speed -1 = geen meting. Gemiddelde gewogen naar intensiteit. Gebruik een streaming XML-parser (sax) of regex per blok; 70 MB in een DOM laden is traag.
- RWS-meetpunten heten RWS01_MONIBAS_0021hrl0403ra: weg 002 (A2; nummers boven 100 zijn N-wegen), dan een 1, hrl/hrr = hoofdrijbaan links/rechts, 0403 = km 40,3. Gebruik alleen hoofdrijbaan voor 'snelheid op de snelweg'.
- Configuratie: measurementSite id → latitude/longitude, carriageway, en per index de vehicleType en het soort meting. Cache dit een dag.
- Actueel beeld: situationRecord xsi:type = AbnormalTraffic (queueLength m, delayTimeValue s), Accident, VehicleObstruction, RoadOrCarriagewayOrLaneManagement (roadOrCarriagewayOrLaneManagementType: carriagewayClosures, laneClosures …), SpeedManagement (temporarySpeedLimit), ReroutingManagement. Geldig als overallStartTime ≤ nu ≤ overallEndTime (eind kan ontbreken). posList is 'breedte lengte breedte lengte …': omdraaien voor GeoJSON. Er is geen wegnummer in het actueel beeld.
- Verkeersborden: altijd filteren (zonder filter tientallen MB's), onbekende parameters worden stil genegeerd. Toon lastSeenOn; veel borden zijn jaren niet opnieuw gezien.
- NDW stopt op 9 februari 2027 met de oude v2.3-bestanden (trafficspeed.xml.gz e.d.); gebruik ze niet meer.
- Haal de bestanden hooguit eens per minuut, met een eigen User-Agent en If-Modified-Since.

Uitkomst: bovenaan tellers (meetpunten, onder 50 km/u, files, ongevallen, gestrande voertuigen, afsluitingen nu), een kaart met gekleurde meetpunten en files als lijnen, een tabel per snelweg met de gemiddelde snelheid, en een lijst incidenten met bron, begintijd, filelengte, vertraging en de limiet volgens de borden in de buurt.

Probeer het zelf

De kern van het project in een klein script. Nodig: Node 20+ (fetch en zlib ingebouwd), geen pakketten. Getest op 2026-10-16; hieronder de echte uitvoer van die proefdraai.

// Files en wegwerkzaamheden nu: snelheden op de snelweg, incidenten en afsluitingen, plus de borden ter plaatse.
// Bronnen: NDW open data (DATEX II v3) en de NDW-verkeersborden-API. Node 20+, geen pakketten nodig.
import zlib from "node:zlib";
const UA = { "User-Agent": "mijn-filedashboard/1.0 (+jij@voorbeeld.nl)" };
const ndw = async (bestand) => { const r = await fetch("https://opendata.ndw.nu/" + bestand, { headers: UA });
  if (!r.ok) throw new Error(`${bestand}: HTTP ${r.status}`); return zlib.gunzipSync(Buffer.from(await r.arrayBuffer())).toString("utf8"); };
const tag = (xml, naam) => xml.match(new RegExp(`<[a-z]+:${naam}>([^<]*)<`))?.[1];

// 1. Snelheden per minuut: 1 MB gzip, 70 MB XML. Alleen RWS-meetpunten op de hoofdrijbaan.
//    Naam 0021hrl0403ra: weg 002 (A2), dan altijd een 1, hrl/hrr = hoofdrijbaan links/rechts, 0403 = km 40,3.
const metingen = await ndw("snelheden_en_intensiteiten_meetgegevens.xml.gz");
const meettijd = tag(metingen, "publicationTime").slice(0, 16);
const perWeg = {}; let punten = 0, traag = [];
for (const blok of metingen.split("<roa:siteMeasurements>").slice(1)) {
  const id = blok.match(/id="([^"]+)"/)[1], m = id.match(/^RWS01_MONIBAS_(\d{4})hr[lr](\d{4})/); if (!m) continue;
  let stroom = 0, som = 0, n = 0;   // per rijstrook: eerst intensiteit (voertuigen/uur), dan snelheid (km/u); -1 = geen meting
  for (const [, soort, waarde] of blok.matchAll(/xsi:type="roa:(TrafficFlow|TrafficSpeed)">.*?<com:(?:vehicleFlowRate|speed)>([-\d.]+)</g)) {
    if (soort === "TrafficFlow") stroom = Number(waarde); else if (Number(waarde) > 0 && stroom > 0) { som += Number(waarde) * stroom; n += stroom; } }
  if (!n) continue;
  const nr = Number(m[1].slice(0, 3)), weg = (nr < 100 ? "A" : "N") + nr, v = som / n; punten++;
  (perWeg[weg] ??= []).push(v);
  if (v < 50) traag.push({ weg, km: Number(m[2]) / 10, v: Math.floor(v) });
}

// 2. Actueel beeld: incidenten, afsluitingen, wegwerkzaamheden en tijdelijke maximumsnelheden (0,5 MB gzip)
const beeld = await ndw("actueel_beeld.xml.gz"), nu = new Date();
const records = [...beeld.matchAll(/<sit:situationRecord xsi:type="sit:(\w+)"[\s\S]*?<\/sit:situationRecord>/g)].map(([xml, soort]) => ({
  soort, oorzaak: tag(xml, "causeType"), maatregel: tag(xml, "roadOrCarriagewayOrLaneManagementType"), start: tag(xml, "overallStartTime"),
  eind: tag(xml, "overallEndTime"), bron: xml.match(/<com:sourceName><com:values><com:value lang="nl">([^<]*)/)?.[1],
  file: tag(xml, "queueLength"), vertraging: tag(xml, "delayTimeValue"), punt: tag(xml, "posList")?.split(" ").slice(0, 2).map(Number) }));   // let op: eerst breedte, dan lengte
const actief = records.filter((r) => new Date(r.start) <= nu && (!r.eind || new Date(r.eind) >= nu));
const tel = (lijst, f) => Object.entries(lijst.reduce((t, r) => ((t[f(r)] = (t[f(r)] ?? 0) + 1), t), {})).sort((a, b) => b[1] - a[1]);

console.log(`Snelheden ${meettijd}: ${punten} RWS-meetpunten op de hoofdrijbaan met verkeer, ${traag.length} onder 50 km/u`);
for (const [weg, vs] of Object.entries(perWeg).sort((a, b) => b[1].length - a[1].length).slice(0, 4))
  console.log(`  ${weg}: ${vs.length} meetpunten, gemiddeld ${Math.round(vs.reduce((s, v) => s + v, 0) / vs.length)} km/u`);
for (const t of traag.slice(0, 5)) console.log(`  traag: ${t.weg} bij km ${t.km}: ${t.v} km/u`);
console.log(`\nActueel beeld: ${records.length} meldingen, ${actief.length} nu geldig`);
console.log("  nu geldig per soort:", tel(actief, (r) => r.soort).map(([k, n]) => `${k} ${n}`).join(", "));
console.log("  afsluitingen:", tel(actief.filter((r) => r.maatregel), (r) => r.maatregel).slice(0, 4).map(([k, n]) => `${k} ${n}`).join(", "));
console.log("  meeste meldingen van:", tel(actief, (r) => r.bron).slice(0, 3).map(([k, n]) => `${k} (${n})`).join(", "));
const files = actief.filter((r) => r.soort === "AbnormalTraffic");
for (const f of files) console.log(`  file: ${f.file ?? "?"} m, vertraging ${Math.round((f.vertraging ?? 0) / 60)} min, bij ${f.punt.join(", ")}`);

// 3. Welke snelheid geldt daar volgens de borden? (NDW-verkeersborden, A1 = maximumsnelheid, kleine bbox rond de file)
if (files.length) { const [lat, lon] = files[0].punt, d = 0.02;
  const borden = (await (await fetch(`https://wegkenmerken.ndw.nu/api/rest/static-road-data/traffic-signs/v4/current-state?rvvCode=A1&bbox=${lon - d},${lat - d},${lon + d},${lat + d}`, { headers: UA })).json()).features;
  console.log(`  borden A1 binnen ~2 km: ${borden.length};`, tel(borden, (b) => `${b.properties.roadName} ${b.properties.blackCode} km/u`).slice(0, 3).map(([k, n]) => `${k} (${n}x)`).join(", ")); }
Uitvoer
Snelheden 2026-10-16T21:46: 6264 RWS-meetpunten op de hoofdrijbaan met verkeer, 1 onder 50 km/u
  A2: 820 meetpunten, gemiddeld 107 km/u
  A12: 596 meetpunten, gemiddeld 109 km/u
  A1: 542 meetpunten, gemiddeld 111 km/u
  A15: 428 meetpunten, gemiddeld 108 km/u
  traag: A2 bij km 251.1: 10 km/u

Actueel beeld: 1508 meldingen, 1498 nu geldig
  nu geldig per soort: RoadOrCarriagewayOrLaneManagement 1069, ReroutingManagement 157, SpeedManagement 147, VehicleObstruction 113, GeneralNetworkManagement 4, GeneralObstruction 4, Accident 2, AbnormalTraffic 2
  afsluitingen: carriagewayClosures 734, laneClosures 161, other 80, lanesDeviated 50
  meeste meldingen van: WNZ-Z [RWS West-Nederland Zuid District Zuid] (133), ZN-W [RWS Zuid-Nederland District West] (112), ZN-M [RWS Zuid-Nederland District Midden] (91)
  file: 2100 m, vertraging 5 min, bij 52.309761, 7.010353
  file: 2100 m, vertraging 7 min, bij 51.93462, 4.153484
  borden A1 binnen ~2 km: 29; Bentheimerstraat 60 km/u (6x), Rijksweg A1 100 km/u (4x), Ambachtstraat 30 km/u (3x)

Waar het misgaat

  • Klein bestand, groot geheugen. De meetgegevens zijn 1 MB gzip maar 70 MB XML, de configuratie 147 MB. Een DOM-parser in de browser loopt daarop vast. Verwerk op de server en stuur alleen een samenvatting door.
  • Snelheid -1 is geen snelheid. Zonder verkeer (of bij een defecte lus) staat er -1. Wie dat meetelt, ziet 's nachts overal files. Weeg naar intensiteit en sla rijstroken zonder voertuigen over.
  • Het wegnummer zit verstopt. 0021hrl… is de A2, niet de A21: de vierde cijfer is altijd een 1. Nummers boven 100 (2051, 3251) zijn N-wegen in beheer van Rijkswaterstaat.
  • Breedte en lengte omgedraaid. In posList staat eerst de breedte (52.31) en dan de lengte (7.01). GeoJSON wil het andersom; anders liggen je files in de Indische Oceaan.
  • Oude bestanden stoppen. trafficspeed.xml.gz en measurement.xml.gz (DATEX II v2.3) verdwijnen op 9 februari 2027. measurement.xml.gz was op 16 oktober al sinds 12 oktober niet bijgewerkt. Bouw meteen op de v3-bestanden.
  • Borden zijn niet altijd actueel. Alle 32 borden in de proef (A1, bij Diemen) hadden validated = n en een lastSeenOn uit 2022. Een tijdelijke limiet (SpeedManagement in het actueel beeld) of een matrixbord gaat voor het vaste bord.

Verder bouwen

  • Spits in beeld: bewaar elke minuut de gemiddelde snelheid per snelweg en maak een heatmap van uur tegen weekdag.
  • Effect van werkzaamheden: vergelijk de snelheid op en rond een afgesloten traject in de week voor en tijdens de afsluiting.
  • Matrixborden: Matrixsignaalinformatie.xml.gz (1 MB) geeft per minuut wat de matrixborden boven de snelweg tonen (snelheid, kruis, pijl). Zet ze naast de gemeten snelheid.
  • Luchtkwaliteit erbij: koppel de intensiteit bij een meetpunt aan de NO2-metingen van een Luchtmeetnet-station langs dezelfde weg, per uur.

De bronnen2

NDW actuele verkeersgegevens

Nationaal Dataportaal WegverkeerNederland, meetlus

Snelheden en intensiteiten van tienduizenden meetpunten op de weg, elke minuut ververst. Ook werkzaamheden en incidenten.

OpenRealtimeDownloadVerkeer en vervoer
Actueel
bijgewerkt minder dan een uur geleden

Verkeersborden en bereikbaarheidskaart (NDW)

Nationaal Dataportaal Wegverkeer (NDW), met gegevens van de wegbeheerdersNederland, verkeersbord

Het Nationaal Dataportaal Wegverkeer houdt een landelijk bestand bij van verkeersborden: per bord de RVV-code (A1 voor een snelheidslimiet, C22a voor een milieuzone …), onderborden, kant van de weg, het NWB-wegvak, gemeente, verkeersbesluit en sinds wanneer het bord gezien is. Alleen al in Amsterdam stonden er op 16 oktober 2026 97.175 borden in. De verkeersborden-API v4 geeft het actuele beeld (dagelijks bijgewerkt) en alle wijzigingen; het hele bestand is ook te downloaden. Daarnaast een bereikbaarheidskaart die per gemeente berekent welke wegen open zijn voor een voertuig met bepaalde afmetingen, nog in bèta.

OpenAPIDownloadVerkeer en vervoer
Actueel
bijgewerkt 5 uur geleden

Meer om te bouwen