# RDW gekentekende voertuigen

Gegevens van alle Nederlandse kentekens: merk, type, brandstof, gewicht en de vervaldatum van de APK. Zonder persoonsgegevens.

- Uitgever: RDW
- Gebied: Nederland · Laagste detail: kenteken
- Periode: heden · Ververst: dagelijks
- Toegang: Open · Licentie: Publiek domein / CC0 (volgens de RDW-catalogus, 16 okt 2026; Brandstoffen_op_PC4 zonder licentie)
- Koppelsleutels: kenteken
- Status: ok (2026-10-16) · Open Data RDW: Gekentekende_voertuigen
- URL: https://opendata.rdw.nl

## Wat kun je ermee?
- **Hoe oud is het Nederlandse wagenpark?.** Groepeer op datum van eerste toelating en tel per jaar.
- **Elektrisch per merk.** Koppel de brandstoftabel aan de kentekens en zie welke merken het hardst elektrificeren.

## Zo verwerk je het
1. **Bekijk de hele RDW-catalogus.** De kentekentabel is er één van 68 tabellen op opendata.rdw.nl (16 oktober 2026): Voertuigen 10, Parkeren 32, Typegoedkeuring 12, Keuringen 5, Terugroepacties 5, Erkende bedrijven 2, Productcatalogus 1 en Brandstoffen_op_PC4 zonder categorie. De Socrata-catalogus geeft per tabel het id, de kolommen en de laatste wijziging.
   `https://api.eu.socrata.com/api/catalog/v1?domains=opendata.rdw.nl&only=datasets&limit=100`
2. **Auto's per brandstof en postcode.** De tabel Brandstoffen_op_PC4 (8wbe-pu7d) telt voertuigen per viercijferige postcode, voertuigsoort en brandstof. Zo krijg je toch een plek bij de kentekens. Dit voorbeeld: postcode 3511 (Utrecht-centrum) had 1.816 elektrische en 1.503 benzine-personenauto's. De brandstof staat als code (B, D, E, BE …).
   `https://opendata.rdw.nl/resource/8wbe-pu7d.json?$select=voertuigsoort,brandstof,sum(aantal)&$where=postcode='3511'&$group=voertuigsoort,brandstof&$order=sum(aantal)%20DESC&$limit=5`
3. **Terugroepacties.** Vijf tabellen over terugroepacties: de actie zelf (j9yg-7rg9, 5.328 acties), het risico, de status, het informeren van eigenaren en welke merken en typen het raakt. Koppel op referentiecode_rdw; de statustabel (t49b-isb7) geeft per kenteken de herstelstatus (bijvoorbeeld 'Producent heeft herstel gemeld'). Dit voorbeeld geeft de nieuwste acties.
   `https://opendata.rdw.nl/resource/j9yg-7rg9.json?$select=referentiecode_rdw,publicatiedatum_rdw,meldende_producent_distributeur,categorie_defect&$order=publicatiedatum_rdw%20DESC&$limit=3`
4. **APK-gebreken per kenteken.** Geconstateerde Gebreken (a34c-vvps) geeft per kenteken en keuringsdatum een gebrekcode. De omschrijving staat in de tabel Gebreken (hx2c-gt7k, 1.002 codes). RA1 is bijvoorbeeld 'Waarschuwingsinrichting airbag- / gordelsysteem geeft defect'.
   `https://opendata.rdw.nl/resource/hx2c-gt7k.json?gebrek_identificatie=RA1`
5. **Parkeerdata per gemeente.** De 32 parkeertabellen (gebieden, regelingen, tarieven, verkooppunten, garages, P+R) zijn de gegevens die gemeenten aan de RDW leveren. Het veld areamanagerid is voor gemeenten de CBS-gemeentecode zonder GM (Utrecht 344, Amsterdam 363). Utrecht had 496 parkeergebieden.
   `https://opendata.rdw.nl/resource/adw6-9hsg.json?areamanagerid=344&$select=count(*)`

## Interessante koppelingen
- Waar rijden de elektrische auto's? → [cbs-kwb](https://www.opendataindex.nl/bron/cbs-kwb.md) via geen directe sleutel. De RDW heeft geen adres; voor locatie gebruik je de autotellingen per buurt van CBS.

## Vergelijkbare bronnen
- [CBS motorvoertuigen](https://opendata.cbs.nl): Tellingen per gemeente, wel met locatie maar zonder kenteken.

## Waar je op moet letten
- **Niet elke tabel wordt nog bijgewerkt.** De meeste tabellen zijn van de laatste dagen, maar GEO Parkeer Garages (t5pc-eb34) is sinds 21 december 2024 niet bijgewerkt, GEO Carpool en GEO PenR sinds februari 2025, Tellerstandoordeel Trend Toelichting sinds maart 2025, en vier oude tabellen 'Locaties' en 'Gebieden' sinds juli 2019 (catalogus, 16 oktober 2026). Kijk naar data_updated_at.
- **Licentie op twee plekken.** In het standaard licentieveld van de catalogus hebben 45 van de 68 tabellen 'Public Domain' en 23 niets. Het eigen RDW-veld Licentie zegt bij 67 tabellen 'Creative Commons 0 (CC0)', ook bij de 22 parkeertabellen; alleen Brandstoffen_op_PC4 heeft in geen van beide een licentie (Discovery API, 16 oktober 2026).
- **Grote tabellen eerst filteren.** Tellen over een heel jaar Geconstateerde Gebreken gaf na 60 seconden geen antwoord. Filter eerst op kenteken of een korte periode, of download de tabel.

## API (Socrata SODA)

- Basis: https://opendata.rdw.nl
- Toegang: Anoniem te gebruiken. Met een gratis app-token krijg je ruimere limieten. (platform)
- Formaten: JSON, CSV, GeoJSON, XML
- Omvang: 16870266 rijen (getest)
- Filteren: SoQL, een SQL-achtige querytaal in de URL; =, !=, >, <, AND, OR, IN(), LIKE, between, starts_with(), IS NULL

### Endpoints
- `GET /resource/m9d7-ebf2.json`: de rijen, filterbaar met SoQL
- `GET /api/views/m9d7-ebf2.json`: metadata: kolommen, licentie, wijzigingsdatum

### Parameters
- `<kolom>=<waarde>`: eenvoudig filter, bv. merk=TESLA (platform)
- `$where`: SoQL-voorwaarde, bv. datum_eerste_toelating > 20250101 (platform)
- `$select`: kolommen en tellingen, bv. merk, count(*) (platform)
- `$group / $order`: groeperen en sorteren (platform)
- `$limit / $offset`: pagineren (standaard 1.000 rijen) (platform)
- `$q`: vrij zoeken in alle tekstkolommen (platform)

### Velden (98)
`kenteken` text, `voertuigsoort` text, `merk` text, `handelsbenaming` text, `vervaldatum_apk` number, `datum_tenaamstelling` number, `bruto_bpm` number, `inrichting` text, `aantal_zitplaatsen` number, `eerste_kleur` text, `tweede_kleur` text, `aantal_cilinders` number, `cilinderinhoud` number, `massa_ledig_voertuig` number, `toegestane_maximum_massa_voertuig` number, `massa_rijklaar` number, `maximum_massa_trekken_ongeremd` number, `maximum_trekken_massa_geremd` number, `datum_eerste_toelating` number, `datum_eerste_tenaamstelling_in_nederland` number, `wacht_op_keuren` text, `catalogusprijs` number, `wam_verzekerd` text, `maximale_constructiesnelheid` number, `laadvermogen` number, `oplegger_geremd` number, `aanhangwagen_autonoom_geremd` number, `aanhangwagen_middenas_geremd` number, `aantal_staanplaatsen` number, `aantal_deuren` number, `aantal_wielen` number, `afstand_hart_koppeling_tot_achterzijde_voertuig` number, `afstand_voorzijde_voertuig_tot_hart_koppeling` number, `afwijkende_maximum_snelheid` number, `lengte` number, `breedte` number, `europese_voertuigcategorie` text, `europese_voertuigcategorie_toevoeging` text, `europese_uitvoeringcategorie_toevoeging` text, `plaats_chassisnummer` text, `technische_max_massa_voertuig` number, `type` text, `type_gasinstallatie` text, `typegoedkeuringsnummer` text, `variant` text, `uitvoering` text, `volgnummer_wijziging_eu_typegoedkeuring` number, `vermogen_massarijklaar` number, `wielbasis` number, `export_indicator` text, `openstaande_terugroepactie_indicator` text, `vervaldatum_tachograaf` number, `taxi_indicator` text, `maximum_massa_samenstelling` number, `aantal_rolstoelplaatsen` number, `maximum_ondersteunende_snelheid` number, `jaar_laatste_registratie_tellerstand` number, `tellerstandoordeel` text, `code_toelichting_tellerstandoordeel` text, `tenaamstellen_mogelijk` text, `vervaldatum_apk_dt` calendar_date, `datum_tenaamstelling_dt` calendar_date, `datum_eerste_toelating_dt` calendar_date, `datum_eerste_tenaamstelling_in_nederland_dt` calendar_date, `vervaldatum_tachograaf_dt` calendar_date, `maximum_last_onder_de_vooras_sen_tezamen_koppeling` number, `type_remsysteem_voertuig_code` text, `rupsonderstelconfiguratiecode` text, `wielbasis_voertuig_minimum` number, `wielbasis_voertuig_maximum` number, `lengte_voertuig_minimum` number, `lengte_voertuig_maximum` number, `breedte_voertuig_minimum` number, `breedte_voertuig_maximum` number, `hoogte_voertuig` number, `hoogte_voertuig_minimum` number, `hoogte_voertuig_maximum` number, `massa_bedrijfsklaar_minimaal` number, `massa_bedrijfsklaar_maximaal` number, `technisch_toelaatbaar_massa_koppelpunt` number, `maximum_massa_technisch_maximaal` number, `maximum_massa_technisch_minimaal` number, `subcategorie_nederland` text, `verticale_belasting_koppelpunt_getrokken_voertuig` number, `zuinigheidsclassificatie` text, `registratie_datum_goedkeuring_afschrijvingsmoment_bpm` number, `registratie_datum_goedkeuring_afschrijvingsmoment_bpm_dt` calendar_date, `gem_lading_wrde` number, `aerodyn_voorz` text, `massa_alt_aandr` number, `verl_cab_ind` text, `aantal_passagiers_zitplaatsen_wettelijk` number, `aanwijzingsnummer` text, `api_gekentekende_voertuigen_assen` text, `api_gekentekende_voertuigen_brandstof` text, `api_gekentekende_voertuigen_carrosserie` text, `api_gekentekende_voertuigen_carrosserie_specifiek` text, `api_gekentekende_voertuigen_voertuigklasse` text

### Limieten en valkuilen
- Datums staan als getal (20250101), niet als datum. Filter dus met getallen. (uit de beschrijving)
- Alle 68 RDW-tabellen werken op dezelfde manier (/resource/<id>.json met $select, $where, $group). De lijst met id's komt uit de Socrata Discovery API: https://api.eu.socrata.com/api/catalog/v1?domains=opendata.rdw.nl&only=datasets (getest)
- robots.txt van opendata.rdw.nl sluit alleen zoek- en beheerpagina's uit (/browse, /OData.svc/, /api/odata/) en vraagt een Crawl-delay van 1 seconde. (getest)
- Brandstof en emissies staan in een aparte dataset (8ys7-d773), te koppelen op kenteken. (ervaring)

### Voorbeeld
```
https://opendata.rdw.nl/resource/m9d7-ebf2.json?$select=merk,count(*)&$where=voertuigsoort='Personenauto'&$group=merk&$order=count(*)%20DESC&$limit=3
```

## Wat je ermee kunt bouwen
- [Hoe snel rijdt jouw gemeente elektrisch?](https://www.opendataindex.nl/bouwen/elektrisch-rijden-gemeente.md): Een pagina die per gemeente laat zien welk deel van de personenauto's volledig elektrisch is, waar de gemeente staat tussen de 342 andere, en hoe snel het landelijk gaat, uit de dagelijkse RDW-telling per postcode en de jaarreeks van het CBS.
- [Laadpunten per buurt en per elektrische auto](https://www.opendataindex.nl/bouwen/laadpalen-per-buurt.md): Een kaart van je gemeente die per buurt laat zien hoeveel publieke laadpunten er zijn, per 1.000 inwoners en per 100 auto's, en hoeveel elektrische auto's er op één laadpunt aangewezen zijn.


## Wat er allemaal in zit: 68 tabellen

Alle tabellen op opendata.rdw.nl, per categorie van de RDW, elke nacht opgehaald. Elke tabel heeft een eigen pagina met de kolommen, de laatste wijziging en een SODA-aanroep.

- Soorten: tabel 68
- Laatst gewijzigd: 2026-10-31 (52 in de afgelopen 30 dagen)
- Met een API-aanroep op de datasetpagina: 68
- Zoeken: https://www.opendataindex.nl/api/catalogus/rdw?q=… of de MCP-functie zoek_datasets met herkomst=rdw
- Elke rij heeft een eigen pagina: https://www.opendataindex.nl/dataset/rdw/<sleutel>

### Mappen
- Parkeren (32)
- Typegoedkeuring (12)
- Voertuigen (10)
- Keuringen (5)
- Terugroepacties (5)
- Erkende bedrijven (2)
- Product catalogus (1)
- Zonder categorie (1)

## Voorbeelden met echte cijfers (3)

Per voorbeeld de bevinding, de peildatum en de aanroep die precies deze cijfers ophaalt.

- **Verzekerde personenauto's van nu, naar jaar van eerste toelating: 441.391 auto's in 2025, 8,3 keer zo veel als in 2000** (2025). Tabel m9d7-ebf2. [Voorbeeld](https://www.opendataindex.nl/voorbeeld/rdw-autos-bouwjaar)
  - `https://opendata.rdw.nl/resource/m9d7-ebf2.json?$select=date_extract_y(datum_eerste_toelating_dt)%20as%20jaar%2C%20count(*)%20as%20n&$where=voertuigsoort%3D'Personenauto'%20AND%20wam_verzekerd%3D'Ja'&$group=jaar&$order=jaar&$limit=500`
- **Verzekerde personenauto's per kleur: het meest grijs (3.304.539 auto's), dan zwart en wit** (oktober 2026). Tabel m9d7-ebf2. [Voorbeeld](https://www.opendataindex.nl/voorbeeld/rdw-autos-per-kleur)
  - `https://opendata.rdw.nl/resource/m9d7-ebf2.json?$select=eerste_kleur%2C%20count(*)%20as%20n&$where=voertuigsoort%3D'Personenauto'%20AND%20wam_verzekerd%3D'Ja'&$group=eerste_kleur&$order=n%20DESC&$limit=50000`
- **Verzekerde personenauto's per merk: het meest Volkswagen (1.132.395 auto's), dan Toyota en Peugeot** (oktober 2026). Tabel m9d7-ebf2. [Voorbeeld](https://www.opendataindex.nl/voorbeeld/rdw-autos-per-merk)
  - `https://opendata.rdw.nl/resource/m9d7-ebf2.json?$select=merk%2C%20count(*)%20as%20n&$where=voertuigsoort%3D'Personenauto'%20AND%20wam_verzekerd%3D'Ja'&$group=merk&$order=n%20DESC&$limit=50000`
