{"openapi":"3.1.0","info":{"title":"AutoReiskosten.nl API","version":"1.0.0","summary":"Nederlandse kentekengegevens, verbruik, wegenbelasting, autoverzekering en ritkosten.","description":"Alle gegevens die AutoReiskosten.nl gebruikt, op kenteken beschikbaar als JSON: RDW-voertuiggegevens, officieel verbruik (benzine, diesel, LPG, CNG, elektrisch, waterstof, hybride en plug-in hybride), wegenbelasting per provincie (tarieven per 1 juli 2026), WA-verzekeringspremies en brandstof- of laadkosten van een rit.\n\nZonder sleutel: 20 aanroepen per dag per IP. Gratis sleutel: 1.000 aanroepen per maand. Meer nodig? Mail info@hollandstechniek.nl.","contact":{"name":"AutoReiskosten.nl","email":"info@hollandstechniek.nl","url":"https://autoreiskosten.nl/developers"},"license":{"name":"Gebruiksvoorwaarden","url":"https://autoreiskosten.nl/voorwaarden"}},"servers":[{"url":"https://autoreiskosten.nl/api/v1"}],"security":[{"bearer":[]},{}],"paths":{"/vehicles/{plate}":{"get":{"operationId":"getVehicle","summary":"Voertuig, energietype en verbruik op kenteken","description":"Kost 1 aanroep. Met `include=insurance` komt de verzekeringsinfo (meldcode, dagwaarde, foto's) erbij, met `include=raw` de ruwe RDW-records.","parameters":[{"name":"plate","in":"path","required":true,"description":"Nederlands kenteken, met of zonder streepjes (65TPLT of 65-TPL-T).","schema":{"type":"string","example":"65TPLT"}},{"name":"include","in":"query","description":"Komma-gescheiden extra onderdelen: `insurance`, `raw`.","schema":{"type":"string","example":"insurance,raw"}}],"responses":{"200":{"description":"Voertuig","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Ongeldige parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Onbekende of ingetrokken API-sleutel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Kenteken niet gevonden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limiet bereikt (zie Retry-After en X-RateLimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Gegevensbron tijdelijk niet bereikbaar; er is niets afgeschreven","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/road-tax/{plate}":{"get":{"operationId":"getRoadTaxByPlate","summary":"Wegenbelasting op kenteken","description":"Kost 1 aanroep. Per kwartaal, maand en jaar, inclusief opbouw (rijksdeel, toeslagen, opcenten).","parameters":[{"name":"plate","in":"path","required":true,"description":"Nederlands kenteken, met of zonder streepjes (65TPLT of 65-TPL-T).","schema":{"type":"string","example":"65TPLT"}},{"name":"province","in":"query","description":"Provincie voor de opcenten. Standaard het gemiddelde van de 12 provincies.","schema":{"type":"string","enum":["gemiddeld","groningen","friesland","drenthe","overijssel","flevoland","gelderland","utrecht","noord-holland","zuid-holland","zeeland","noord-brabant","limburg"],"default":"gemiddeld"}}],"responses":{"200":{"description":"Wegenbelasting","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Ongeldige parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Onbekende of ingetrokken API-sleutel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Kenteken niet gevonden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limiet bereikt (zie Retry-After en X-RateLimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Gegevensbron tijdelijk niet bereikbaar; er is niets afgeschreven","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/road-tax":{"get":{"operationId":"calculateRoadTax","summary":"Wegenbelasting zonder kenteken","description":"Kost 1 aanroep.","parameters":[{"name":"kind","in":"query","description":"Soort voertuig.","schema":{"type":"string","enum":["personenauto","bestelauto","motor"],"default":"personenauto"}},{"name":"fuel","in":"query","description":"Brandstofcategorie voor de belasting.","schema":{"type":"string","enum":["benzine","diesel","gas-laag","overig","emissievrij"],"default":"benzine"}},{"name":"massKg","in":"query","description":"Massa rijklaar in kg (niet nodig voor motoren).","schema":{"type":"integer","minimum":100,"maximum":5000,"example":1300}},{"name":"province","in":"query","description":"Provincie voor de opcenten. Standaard het gemiddelde van de 12 provincies.","schema":{"type":"string","enum":["gemiddeld","groningen","friesland","drenthe","overijssel","flevoland","gelderland","utrecht","noord-holland","zuid-holland","zeeland","noord-brabant","limburg"],"default":"gemiddeld"}},{"name":"firstAdmission","in":"query","description":"Eerste toelating (YYYY-MM-DD), voor de oldtimervrijstelling.","schema":{"type":"string","format":"date"}}],"responses":{"200":{"description":"Wegenbelasting","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Ongeldige parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Onbekende of ingetrokken API-sleutel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Kenteken niet gevonden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limiet bereikt (zie Retry-After en X-RateLimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Gegevensbron tijdelijk niet bereikbaar; er is niets afgeschreven","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/insurance/{plate}":{"get":{"operationId":"getInsurance","summary":"WA-verzekeringspremies op kenteken","description":"Zware aanroep (6-10 s bij een nieuwe combinatie, daarna 24 uur gecachet). **Kost 5 aanroepen.** Veel motoren, bedrijfswagens en nieuwe modellen zijn niet bekend.","parameters":[{"name":"plate","in":"path","required":true,"description":"Nederlands kenteken, met of zonder streepjes (65TPLT of 65-TPL-T).","schema":{"type":"string","example":"65TPLT"}},{"name":"km","in":"query","description":"Kilometers per jaar.","schema":{"type":"integer","minimum":1000,"maximum":100000,"default":10000}},{"name":"claimFreeYears","in":"query","description":"Schadevrije jaren.","schema":{"type":"integer","minimum":0,"maximum":20,"default":5}},{"name":"birthYear","in":"query","description":"Geboortejaar van de bestuurder.","schema":{"type":"integer","default":1985}},{"name":"postcode","in":"query","description":"Postcode (optioneel, bv. 3511AB).","schema":{"type":"string","pattern":"^\\d{4}[A-Za-z]{2}$"}}],"responses":{"200":{"description":"Goedkoopste 5 aanbiedingen","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Ongeldige parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Onbekende of ingetrokken API-sleutel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Kenteken niet gevonden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limiet bereikt (zie Retry-After en X-RateLimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Gegevensbron tijdelijk niet bereikbaar; er is niets afgeschreven","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/trip-cost/{plate}":{"get":{"operationId":"getTripCost","summary":"Brandstof- of laadkosten van een rit","description":"Kost 1 aanroep. Rekent met praktijkverbruik (+15%) en actuele CBS-prijzen. Elektrisch: standaard volledig snelladen (slechtste geval); plug-in hybrides rijden eerst elektrisch.","parameters":[{"name":"plate","in":"path","required":true,"description":"Nederlands kenteken, met of zonder streepjes (65TPLT of 65-TPL-T).","schema":{"type":"string","example":"65TPLT"}},{"name":"distanceKm","in":"query","description":"Afstand in km (enkele reis).","schema":{"type":"number","minimum":0.1,"maximum":5000,"example":120}},{"name":"return","in":"query","description":"Retourrit (afstand x2).","schema":{"type":"boolean","default":false}},{"name":"practicalMargin","in":"query","description":"Praktijkverbruik +15%.","schema":{"type":"boolean","default":true}},{"name":"charging","in":"query","description":"Elektrisch laden: `fast` (snel), `mix` (thuis starten, daarna snel), `home` (thuis).","schema":{"type":"string","enum":["fast","mix","home"],"default":"fast"}},{"name":"homePrice","in":"query","description":"Eigen thuistarief per kWh.","schema":{"type":"number"}},{"name":"fastPrice","in":"query","description":"Eigen snellaadtarief per kWh.","schema":{"type":"number"}},{"name":"fuelPrice","in":"query","description":"Eigen brandstofprijs per L (of per kg voor CNG/waterstof).","schema":{"type":"number"}}],"responses":{"200":{"description":"Ritkosten","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Ongeldige parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Onbekende of ingetrokken API-sleutel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Kenteken niet gevonden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limiet bereikt (zie Retry-After en X-RateLimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Gegevensbron tijdelijk niet bereikbaar; er is niets afgeschreven","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/fuel-prices":{"get":{"operationId":"getFuelPrices","summary":"Actuele brandstofprijzen (CBS)","description":"Kost 1 aanroep.","responses":{"200":{"description":"Brandstofprijzen","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Ongeldige parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Onbekende of ingetrokken API-sleutel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Kenteken niet gevonden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limiet bereikt (zie Retry-After en X-RateLimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Gegevensbron tijdelijk niet bereikbaar; er is niets afgeschreven","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"API-sleutel (ark_…), ook mogelijk via de header `X-API-Key`. Optioneel: zonder sleutel geldt het anonieme daglimiet."}},"schemas":{"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_plate"},"message":{"type":"string"}}}}}}}}