Houd je voertuigdatabase actueel
Laad het register één keer in en verwerk daarna alleen wat er veranderde. Wij vergelijken elke nieuwe versie van de open data van de RDW met de vorige en leveren de verschillen per kenteken en per veld. Zelf volledige imports draaien en vergelijken hoeft niet meer.
Mutaties
Om bij te blijven: alleen wat er veranderde tussen twee versies van de open data, per kenteken en per veld, met de oude en de nieuwe waarde.
- Nieuw
- Een paar keer per dag, na elke nieuwe versie van een dataset
- Vorm
- JSON via de API, of een mutatiebestand in JSONL of CSV
- Terug te lezen
- 90 dagen
Snapshot
Om te beginnen: het hele register op één moment, als bestanden, één per dataset.
- Nieuw
- Elke week
- Vorm
- JSONL en CSV
- Bijblijven
- Elke snapshot heeft een cursor in de mutatiefeed
De mutatiefeed, mutatiebestanden en snapshots zitten in deze pakketten: Mutatiefeed · Voertuig-API en mutatiefeed. Bekijk de pakketten en prijzen
De gevonden wijzigingen, op volgorde
Elke keer dat de RDW een nieuwe versie van een dataset publiceert, vergelijken we die met de vorige versie die we verwerkten en zetten we de verschillen op een rij: per kenteken en per veld, met de oude en de nieuwe waarde. Die verschillen verwerk je in je eigen database.
Wanneer je een wijziging ziet
-
De RDW publiceert
De RDW bepaalt wanneer een dataset een nieuwe versie krijgt, doorgaans dagelijks. Elke wijziging noemt dat moment in
source_published_at. -
Wij controleren
Meerdere keren per dag kijken we of er een nieuwe versie is. Is die er, dan vergelijken we hem met de vorige en maken we er een batch van.
observed_atis het moment waarop wij de batch oppikten. -
Jij leest de batch
Een batch staat in de feed zodra hij compleet is verwerkt. Omdat de datasets elk hun eigen moment hebben, komen er een paar keer per dag batches bij.
-
Wat de feed niet is
Geen logboek van gebeurtenissen. Je krijgt het verschil tussen twee opeenvolgende versies: verandert een waarde daartussen meer dan eens, dan zie je alleen het resultaat. De RDW publiceert geen tijdstip per wijziging, dus
effective_atis altijdnull.
Doorlopend, via de API
GET /api/v1/mutations
Lees de feed pagina voor pagina en ga verder met de cursor uit je vorige antwoord. Volg alles, of filter op kenteken, dataset of soort wijziging.
Per dag, als bestand
POST /api/v1/mutation-files
Vraag een mutatiebestand aan: de wijzigingen van één dag of tussen twee cursors, als één JSONL- of CSV-bestand, met dezelfde records als de feed. Een mutatiebestand blijft 7 dagen beschikbaar en telt mee voor de limiet van je pakket.
Waar je op kunt rekenen
- Alleen complete batches
- Een batch verschijnt pas als al zijn wijzigingen beschikbaar zijn. Je leest nooit een halve update.
GET /api/v1/mutations/batcheszet ze op een rij per dataset en dag. - Posities die nooit veranderen
- Nieuwe batches krijgen altijd hogere posities. Lees je verder met de cursor uit je vorige antwoord, dan sla je niets over, ook niet als er tijdens het lezen een batch bijkomt.
- Minstens één keer bezorgd
- Na een storing kun je een wijziging opnieuw krijgen. Ontdubbel op
iden zet het veld op de nieuwe waarde, dan maakt dat niets uit. - 90 dagen terug te lezen
- Is je cursor ouder, dan begin je opnieuw vanaf een snapshot.
- Beginnen zonder snapshot
GET /api/v1/mutations/checkpointgeeft een cursor aan het einde van de feed, met dezelfde filters. Lees vanaf daar verder en je krijgt alleen de wijzigingen die daarna in de feed komen.
Begin met het hele register
Een snapshot is het hele register als bestanden, zoals het er op dat moment in de open data van de RDW voor stond. Laad hem één keer en je hebt de beginstand. Elke snapshot hoort bij een positie in de feed, dus je sluit daarna zonder gat aan op de mutaties. Een mutatiebestand is iets anders: dat bevat alleen de wijzigingen van één dag of tussen twee cursors.
- Eén bestand per dataset, in JSONL en CSV.
- Dezelfde veldnamen, types en eenheden als de feed.
- Elke week een nieuwe snapshot; de laatste twee blijven beschikbaar.
- Een SHA-256 bij elk bestand, om je download te controleren.
Van snapshot naar een actuele kopie
-
Download de nieuwste snapshot
Per dataset een bestand, in het formaat dat je wilt. Met de SHA-256 bij elk bestand controleer je of de download klopt.
-
Lees de feed vanaf de cursor van de snapshot
Alle wijzigingen van na de snapshot haal je op met
GET /api/v1/mutations?after=…. -
Bewaar na elke pagina de nieuwe cursor
Ook als de pagina leeg is. Kom later terug en lees verder waar je was.