Documentatie · API v1
Kentekenzicht API v1
Eén REST-API over de volledige Nederlandse voertuigregistratie, met de afgeleide laag die de RDW niet levert: leeftijdgenormaliseerde betrouwbaarheid met betrouwbaarheidsinterval, risicovlaggen en de 2026-belastingen. Tarieven en toegang staan op de API-pagina.
Basis-URL
Alle endpoints staan onder https://kentekenzicht.nl/v1. Antwoorden zijn JSON
(UTF-8). Elk antwoord bevat bron en peildatum; neem die over wanneer
u onze cijfers toont of citeert.
Authenticatie
Stuur uw sleutel mee als bearer-token. Sleutels beginnen met kz_live_ (productie)
of kz_test_ (sandbox). Wij bewaren alleen een SHA-256-hash van uw sleutel: raakt u
hem kwijt, dan geven we een nieuwe uit, terughalen kan niet.
curl -H "Authorization: Bearer kz_live_…" \
https://kentekenzicht.nl/v1/health Behandel de sleutel als een wachtwoord: alleen server-naar-server, nooit in browsercode of een mobiele app.
Limieten
| Tarief | Calls per maand |
|---|---|
| Gratis (sandbox) | 500 |
| Start | 10.000 |
| Pro | 100.000 |
| Schaal | 500.000 |
Elk antwoord bevat X-RateLimit-Limit, X-RateLimit-Remaining en
X-RateLimit-Reset (unix-tijd waarop de teller terugloopt: de 1e van de volgende
maand, UTC). Boven de limiet krijgt u 429.
Kenteken opvragen
GET /v1/kenteken/{kenteken} geeft het volledige beeld van één voertuig.
Streepjes in het kenteken zijn toegestaan.
Dekking op dit moment. Dit endpoint draait op een steekproef van het
kentekenregister, niet op het volledige wagenpark: onbekende kentekens geven 404.
De modelcijfers onder /v1/model zijn wél fleet-breed. Volledige kentekendekking is
in voorbereiding — vraag de actuele status op voordat u hierop
bouwt.
GET /v1/kenteken/AB-123-C?provincie=Utrecht
# provincie is optioneel. Laat u hem weg, dan krijgt u "mrbPerProvincie":
# de wegenbelasting voor alle twaalf provincies (de opcenten verschillen). Het blok risico.vlaggen bevat nul of meer van:
| Vlag | Betekenis |
|---|---|
tellerstand_onlogisch | RDW beoordeelt de tellerstandhistorie als onlogisch (NAP-signaal) |
openstaande_terugroepactie | er staat een terugroepactie open |
niet_wam_verzekerd | geregistreerd als niet WAM-verzekerd |
geexporteerd | exportindicatie geregistreerd |
taxiverleden | ooit als taxi geregistreerd |
apk_verlopen | de APK-vervaldatum ligt in het verleden |
Een ontbrekend veld levert nooit een vlag op. Als de RDW niets over de WAM-verzekering publiceert, betekent dat niet "onverzekerd", en dan zeggen wij dat ook niet.
terugroepacties. Dit veld is nu een lege lijst: wij verwerken de
RDW-terugroepregisters nog niet. De vlag openstaande_terugroepactie komt uit
het kentekenregister zelf en is wél betrouwbaar — gebruik die, en lees een lege
terugroepacties niet als "geen terugroepacties".
Model-betrouwbaarheid
GET /v1/model/{merk}/{model}/{bouwjaar}
GET /v1/model/volkswagen/golf/2015
{
"slug": "volkswagen-golf-2015",
"aandeelMetGebrek": 0.25,
"interval95": [0.242, 0.258],
"n": 12000,
"relatieveIndex": 0.98,
"kenmerkendeGebreken": [ { "code": "…", "omschrijving": "…", "lift": 1.8 } ],
"toelichting": "Aandeel van het wagenpark met een geregistreerd APK-gebrek — géén slagingspercentage."
}
Cohorten onder de publicatiedrempel (wagenpark ≥ 200 én ≥ 100 gebrekregistraties) krijgen
bewust geen cijfer en geven 404. Geen score zonder n.
Zo rekenen wij →
Wegenbelasting berekenen
POST /v1/mrb
POST /v1/mrb
Content-Type: application/json
{ "gewichtKg": 1300, "brandstof": "diesel", "provincie": "Utrecht", "fijnstof": true } brandstof: petrol, diesel, lpg_g3,
electric, hydrogen of phev. gewichtKg is de
massa rijklaar (vanaf 1 juli 2026 de grondslag). Het antwoord splitst hoofdsom, toeslagen,
fijnstof en provinciale opcenten uit.
BPM berekenen
POST /v1/bpm
POST /v1/bpm
Content-Type: application/json
{ "co2": 120, "diesel": false, "leeftijdMaanden": 36, "kmStand": 60000 } Levert de bruto BPM tegen 2026-tarieven en de restwaarde na de forfaitaire afschrijving. Een koerslijst of taxatierapport kan lager uitvallen; die routes rekenen wij niet door.
Foutcodes
{
"fout": {
"code": "limiet_bereikt",
"bericht": "Maandlimiet van 10000 calls bereikt. …"
}
} | HTTP | code | Wanneer |
|---|---|---|
| 400 | ongeldig_kenteken | kenteken is geen zes letters/cijfers |
| 400 | ongeldige_invoer | ontbrekend of verkeerd getypeerd veld in de body |
| 401 | geen_sleutel | geen Authorization-header meegestuurd |
| 401 | ongeldige_sleutel | sleutel bestaat niet of is ingetrokken |
| 404 | niet_gevonden | onbekend kenteken of niet-gepubliceerd cohort |
| 429 | limiet_bereikt | maandlimiet bereikt |
| 500 | interne_fout | fout aan onze kant |
Versiebeleid & actualiteit
Het versienummer staat in het pad. Binnen v1 voegen we alleen velden toe; velden
verwijderen of hernoemen doen we niet zonder een nieuwe versie. De dataset wordt dagelijks
bijgewerkt vanuit de RDW open data; peildatum in elk antwoord zegt hoe vers de
cijfers zijn. Belastingtarieven volgen het kalenderjaar.
Gebruik & licentie
De onderliggende RDW-data is CC-0; de afgeleide laag is ons werk. U mag die verwerken in uw eigen product, maar niet als losse dataset doorverkopen. De sandbox vereist een zichtbare bronvermelding. Wij leveren geen persoonsgegevens: geen tenaamstelling, geen adressen.
Sandbox-sleutel aanvragen → · vragen: redactie@kentekenzicht.nl
Onafhankelijke dienst op basis van RDW Open Data (CC-0), niet afkomstig van of goedgekeurd door de RDW. Belastingbedragen zijn indicaties; de Belastingdienst stelt het definitieve bedrag vast. Aan de uitkomsten kunnen geen rechten worden ontleend.