RDW Kenteken Scraper - Dutch Vehicle Registry Lookup avatar

RDW Kenteken Scraper - Dutch Vehicle Registry Lookup

Pricing

from $12.00 / 1,000 result scrapeds

Go to Apify Store
RDW Kenteken Scraper - Dutch Vehicle Registry Lookup

RDW Kenteken Scraper - Dutch Vehicle Registry Lookup

Look up any Dutch license plate (kenteken) in the official RDW vehicle registry. Get make, model, APK expiry, catalog price, fuel type, CO2 emissions, and recall status for 16.8M vehicles. Bulk plate lists and filter search supported. Official open data, no login required.

Pricing

from $12.00 / 1,000 result scrapeds

Rating

0.0

(0)

Developer

Studio Amba

Studio Amba

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Categories

Share

RDW Kenteken Scraper

Look up any Dutch license plate (kenteken) in the official RDW vehicle registry. The actor queries the RDW open data API directly, so you get authoritative registration data for all 16.8 million vehicles registered in the Netherlands. No login, no cookies, no scraping tricks. The data is refreshed by RDW daily.

Give it one plate, a list of thousands, or a filter query (make, vehicle type, APK expiry date) and get back a clean, structured record per vehicle: make, model, APK/MOT expiry, catalog price, fuel type, CO2 emissions, open recall status, and more.

What is the RDW registry

RDW (Rijksdienst voor het Wegverkeer) is the Dutch national vehicle authority. Every vehicle registered in the Netherlands has a record in its registry, published as open data. This actor wraps that dataset (plus the fuel/emissions sub-dataset) into a simple bulk lookup tool, so you don't have to learn the Socrata query language or write your own batching logic.

Use cases

  • Fleet checks: verify APK (MOT) expiry dates and insurance status for a whole fleet in one run
  • Car dealers and marketplaces: enrich listings with official registration data, catalog price, and recall flags
  • Lead generation for garages: find vehicles of a given make whose APK expires soon
  • Insurance and finance: validate plate, model, first registration date, and weight class before quoting
  • Data teams: join official vehicle data onto your own datasets by license plate

Input

FieldTypeDescription
kentekensarrayDutch plates to look up. Any format: 1-KBB-99, 1KBB99, 1 kbb 99 all work
searchFiltersobjectAlternative to plates: make (e.g. TESLA), vehicleType (e.g. Personenauto), apkExpiryBefore (ISO date). Filter searches can match MANY vehicles, so set maxResults
includeFuelDatabooleanJoin fuel type, CO2, consumption, power, and emission class per vehicle (default true)
maxResultsintegerCap on the number of vehicles returned (default 100)
appTokenstringOptional free Socrata app token for guaranteed throughput on large runs
proxyConfigurationobjectStandard Apify proxy settings. The API is public, so the default works

Example input:

{
"kentekens": ["1-KBB-99", "0001-TJ"],
"includeFuelData": true,
"maxResults": 10
}

Or search by filters instead of plates:

{
"searchFilters": {
"make": "TESLA",
"apkExpiryBefore": "2026-09-01"
},
"maxResults": 100
}

Output

One record per vehicle. Real sample for plate 1-KBB-99:

{
"kenteken": "1-KBB-99",
"kentekenRaw": "1KBB99",
"make": "HYUNDAI",
"model": "VELOSTER",
"vehicleType": "Personenauto",
"bodyType": "hatchback",
"color": "ZWART",
"firstRegistrationDate": "2013-03-08",
"firstRegistrationNL": "2013-03-08",
"apkExpiryDate": "2027-03-08",
"catalogPrice": 30545,
"grossBpm": 5250,
"numberOfSeats": 4,
"numberOfCylinders": 4,
"engineDisplacement": 1591,
"massEmpty": 1160,
"curbWeight": 1260,
"numberOfDoors": 4,
"euVehicleCategory": "M1",
"energyLabel": "B",
"odometerJudgment": "Logisch",
"insured": true,
"openRecall": false,
"exportIndicator": false,
"taxiIndicator": false,
"fuelType": "Benzine",
"co2Emission": 137,
"fuelConsumptionCombined": 5.9,
"powerKw": 103,
"electricRange": null,
"emissionClass": "EURO 5 A",
"url": "https://ovi.rdw.nl/default.aspx?kenteken=1KBB99",
"scrapedAt": "2026-07-11T12:00:00.000Z"
}

How to scrape RDW kenteken data

  1. Go to this actor's page on the Apify Store and click Try for free.
  2. Enter one or more Dutch license plates in the License Plates field. Dashes and spaces don't matter, the actor normalizes them.
  3. Leave Include Fuel & Emissions Data on if you want fuel type, CO2, and emission class per vehicle.
  4. Click Start. Results appear in the dataset within seconds and can be exported as JSON, CSV, or Excel.
  5. For bulk lookups, paste your full plate list. Plates are queried in batches of 100 per API call, so even thousands of plates run fast.
  6. To search instead of look up, fill Search Filters with a make, vehicle type, or APK expiry date and set Max Results.

You can also run the actor programmatically via the Apify API:

curl "https://api.apify.com/v2/acts/studio-amba~rdw-kenteken-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \
-X POST \
-H "Content-Type: application/json" \
-d '{"kentekens": ["1-KBB-99"]}'

Rate limits and app tokens

The RDW open data API is keyless, but anonymous callers share a soft rate-limit pool on the Socrata platform. For normal volumes (up to thousands of plates per run) this is not a problem, since the actor batches 100 plates per request and paces its calls. For very large or frequent runs, get a free app token at opendata.rdw.nl and paste it into the Socrata App Token field for guaranteed throughput.

FAQ

Is this legal? Yes. RDW publishes this registry as official open data, intended for reuse. The actor only reads public data through the official API.

Does it include owner information? No. The RDW open data contains vehicle data only. Owner names and addresses are not public.

How fresh is the data? RDW refreshes the open dataset daily. APK expiry dates, insurance status, and recall flags reflect the latest published state.

What happens with a plate that doesn't exist? It's logged as not found. If at least one plate resolves, the run succeeds and the missing plates are listed in the log. If nothing resolves, the run fails loudly so a typo'd list can't silently produce an empty dataset.

Which vehicles are covered? Everything with a Dutch registration: passenger cars, commercial vehicles, motorcycles, mopeds, trailers. That's 16.8 million records.

Can I filter by APK expiry? Yes. Use searchFilters.apkExpiryBefore with an ISO date to find vehicles whose APK inspection expires before that date, optionally combined with make or vehicleType.

Support

Found an issue or missing a field you need? Open an issue on the actor's page and it gets picked up quickly.