Naar de inhoud

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
Bekijk de mutaties

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
Bekijk de snapshots

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

  1. De RDW publiceert

    De RDW bepaalt wanneer een dataset een nieuwe versie krijgt, doorgaans dagelijks. Elke wijziging noemt dat moment in source_published_at.

  2. 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_at is het moment waarop wij de batch oppikten.

  3. 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.

  4. 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_at is altijd null.

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/batches zet 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 id en 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/checkpoint geeft 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

  1. 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.

  2. Lees de feed vanaf de cursor van de snapshot

    Alle wijzigingen van na de snapshot haal je op met GET /api/v1/mutations?after=….

  3. Bewaar na elke pagina de nieuwe cursor

    Ook als de pagina leeg is. Kom later terug en lees verder waar je was.