# 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: CC0
- Koppelsleutels: kenteken
- Status: ok (2026-10-15)
- 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.

## Interessante koppelingen
- Waar rijden de elektrische auto's? → [cbs-kwb](https://www.opendataindex.nl/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.

## 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: 16870095 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)
- 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
```
