PHPackages                             jdkweb/rdw-api - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. jdkweb/rdw-api

ActiveLibrary[API Development](/categories/api)

jdkweb/rdw-api
==============

Wrapper for RDW API for getting vehicle information from opendata.rdw.nl

v1.2.2(2mo ago)154↓100%1GPL-3.0-or-laterPHPPHP &gt;=8.1

Since Feb 11Pushed 2mo ago1 watchersCompare

[ Source](https://github.com/jdkweb/rdw-api)[ Packagist](https://packagist.org/packages/jdkweb/rdw-api)[ RSS](/packages/jdkweb-rdw-api/feed)WikiDiscussions main Synced today

READMEChangelogDependencies (2)Versions (17)Used By (0)

RDW API
=======

[](#rdw-api)

[![Packagist Version](https://camo.githubusercontent.com/c528775aa2d52a2523a8064cb272f3fc01418b735197e69569391d9dd885eb5b/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6a646b7765622f7264772d617069)](https://github.com/jdkweb/rdw-api)[![Static Badge](https://camo.githubusercontent.com/cecb38ec8d1565cf515e7fe38fe8bc8cd3a033291a7cf47f7026baf19d47fd65/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6275696c642d253230253345253344253230382e312d627269676874677265656e3f7374796c653d666c6174266c6f676f3d706870266c6f676f53697a653d3136266c6162656c3d504850)](https://github.com/jdkweb/rdw-api-filament)[![Static Badge](https://camo.githubusercontent.com/16a05260506814f18580062bb392250d0d1a771682a747a27dbabb6df3fed5fa/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6275696c642d25323025334525334425323031302d736c617465677261793f7374796c653d666c61742d737175617265266c6f676f3d6c61726176656c266c6f676f436f6c6f723d7768697465266c6f676f53697a653d3136266c6162656c3d4c61726176656c)](https://github.com/jdkweb/rdw-api-filament)

Laravel wrapper for the Dutch open mobility data. Basic Vehicle Registration All non-sensitive data of the Dutch vehicle fleet.

Laravel application to get vehicle information from [opendata.rdw.nl](https://opendata.rdw.nl) or [overheid.io](https://overheid.io). \\

This wrapper can be extended to be used in Filament:
[![Static Badge](https://camo.githubusercontent.com/3642a66aea454950f45b2e6d77e5d2b47d0b4162f73f2b47c2cfd27a5799f4c9/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6275696c642d6a646b7765622532467264772d2d6170692d2d66696c616d656e742d626c75653f7374796c653d666c61742d737175617265266c6f676f3d676974687562266c6162656c3d476974687562)](https://github.com/jdkweb/rdw-api-filament)[![Static Badge](https://camo.githubusercontent.com/3caad96916b76db4d7c735a3dcc98874f83673e379481e68fa48be611dc1517b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6275696c642d6a646b7765622532467264772d2d6170692d2d66696c616d656e742d626c75653f7374796c653d666c61742d737175617265266c6f676f3d7061636b6167697374266c6f676f436f6c6f723d7768697465266c6162656c3d5061636b6167697374)](https://packagist.org/packages/jdkweb/rdw-api-filament)

Table of contents
-----------------

[](#table-of-contents)

- [Installation](#installation)
- [Translation](#translation)
- [Usage](#usage)
    - [Request](#request)
    - [Response](#response)
- [Demo](#demo)
- [Change Default API](#api)
- [Extension for Filament](#filament)

Installation
------------

[](#installation)

Requires PHP 8.1 and Laravel 10 or higher

Install the package via composer:

```
composer require jdkweb/rdw-api
```

If needed you can publish the config

```
php artisan vendor:publish --provider="Jdkweb\RdwApi\RdwServiceProvider" --tag="config"
```

For changing options see: [change API](#api) and [Demo](#demo)

Translation
-----------

[](#translation)

If changes are needed you can publish the translation files

```
# published in: trans/vendor/jdkweb/rdw-api
php artisan vendor:publish --provider="Jdkweb\RdwApi\RdwServiceProvider" --tag="lang"
```

Translations available:

- [Dutch (nl)](https://github.com/jdkweb/rdw-api/tree/main/lang/nl)
- [English (en)](https://github.com/jdkweb/rdw-api/tree/main/lang/en)

Usage
=====

[](#usage)

- [Request: RdwApiRequest](#request)
- [Response RdwApiResponse](#response)

Request
-------

[](#request)

### Basic usage

[](#basic-usage)

```
use Jdkweb\RdwApi\Controllers\RdwApiRequest;
...
$result = (object) RdwApiRequest::make()
    ->setLicenseplate('AB-895-P')
    ->fetch();
```

- Request to the active API (default: opendata.rdw.nl)
- All RDW endpoints are selected
- [RdwApiResponse](#RdwApiResponse) object is returned

### All options used

[](#all-options-used)

```
use Jdkweb\RdwApi\Controllers\RdwApiRequest;
use Jdkweb\RdwApi\Enums\OutputFormats;
use Jdkweb\RdwApi\Enums\Endpoints;
...
$result = RdwApiRequest::make()
    ->setAPI(0)
    ->setLicenseplate('AB-895-P')
    ->setEndpoints(Endpoints::cases())
    ->setOutputformat(OutputFormats::JSON)
    ->setLanguage('en')
    ->fetch(true);
```

### Options

[](#options)

#### Select other API than default

[](#select-other-api-than-default)

```
->setApi(int|string) // 0 | opendata | 1 | overheid
```

Overwrite the config settings

- 0 or 'opendata' for using the RDW API opendata.rdw.nl **\[default\]**
- 1 or 'overheidio' for using the overheid.io API

#### Set Licenseplate

[](#set-licenseplate)

```
->setLicense('AB-895-P')
```

With or without hyphen-minus

#### Select endpoints for request

[](#select-endpoints-for-request)

```
use \Jdkweb\RdwApi\Enums\Endpoints;
...
->setEndpoints(array)

# examples:

    // Call to all endpoints
    ->setEndpoints(Endpoints::cases())

    // Specific selection
    ->setEndpoints([
        Endpoints::VEHICLE,
        Endpoints::FUEL
    ])

    // Use enum names, case insensitive
    ->setEndpoints([
        'vehicle',
        'fuel'
    ])
```

Available endpoints (not case sensitive):

- Endpoints::VEHICLE | vehicle
- Endpoints::VEHICLE\_CLASS |vehicle\_class
- Endpoints::FUEL | fuel
- Endpoints::BODYWORK | bodywork
- Endpoints::BODYWORK\_SPECIFIC | bodywork\_specific
- Endpoints::AXLES | axles
- Endpoints::cases() **\[default\]**

#### Format of the response output

[](#format-of-the-response-output)

```
use \Jdkweb\RdwApi\Enums\OutputFormats;
...
->setOuputformat(string|OutputFormat)

# examples

    // Enum
    ->setOuputformat(OutputFormats::JSON)

    // name, case insensitive
    ->setOuputformat('json')
```

- OutputFormat::ARRAY | array **\[default\]**
- OutputFormat::JSON | json
- OutputFormat::XML | xml

by using this method the response contains a formated output. see [RdwApiResponse](#RdwApiResponse)

#### Set output language

[](#set-output-language)

```
->setLanguage(string)
```

Force output language, so form can be English and RDW response in Dutch.
Available:

- nl
- en

#### Send the request

[](#send-the-request)

```
->fetch(?bool $return = null)
```

[RdwApiResponse](#RdwApiResponse) object will be returned
When boolean isset and true RdwApiRequest object will be returned

Response
--------

[](#response)

Response data form the RDW API request in $result:

```
Jdkweb\RdwApi\Controllers\RdwApiResponse {#2800 ▼
  +response: array:2 [▶]    // API response
  +request: {#3036 ▶}       // Request vars
  +output: array:2 [▶]      // Formated output when setOutputFormat is used
  +status: true
}
```

### Response methods

[](#response-methods)

#### Format for response data

[](#format-for-response-data)

```
$result->toArray()
```

```
$result->toJson()
```

```
$result->toXml(bool $pretty)
```

Boolean to make xml readable

```
$result->toObject()
```

#### quickSearch method

[](#quicksearch-method)

Get specific values form response data, always use Dutch key for the value.

```
$result->quickSearch(string $keyname) // Keynames are Dutch

# examples:

    // Brand:  TOYOTA
    $result->quickSearch('merk')

    // Vehicle type: Personenauto
    $result->quickSearch('voertuigsoort')

    // Track width firste axle: 147
    $result->quickSearch('1.spoorbreedte')

    // First fuel description, hybrid have two
    $set('brandstof_omschrijving', $result->quickSearch('1.brandstof_omschrijving'));

    // Second axle legally permitted maximum axle load
    $set('aslast', $result->quickSearch('2.wettelijk_toegestane_maximum_aslast'));
```

- Use dutch key for the value
- When more results:
    Axles: axle\_location\_code for first and second:
    - 1.plaatscode\_as
    - 2.plaatscode\_as

### Example request

[](#example-request)

Request:

```
$result = RdwApiRequest::make()
    ->setLicenseplate('52BVL9')
    ->setEndpoints(Endpoints::cases())
    ->setOutputformat(OutputFormat::JSON)
    ->setLanguage('en')
    ->fetch(true);
```

the method setOutputformat creates a prepared output else output is empty

Response:

```
$result->output
# OR
$result->toJson()
```

$result is an RdwApiResponse object

Json output:

```
{
   Vehicle: {
      registration_number: "52BVL9",
      vehicle_type: "Bus",
      brand: "VDL",
      trade_name: "CITEA LF-122/ ELECTRIC",
      expiry_date_mot: "20250921",
      date_of_registration: "20230721",
      configuration: "bus",
      number_of_seats: "37",
      ...
      ..
      .
   },
   Fuel: {
      registration_number: "52BVL9",
      fuel_sequence_number: "1",
      fuel_description: "Elektriciteit",
      ...
      ..
```

Demo
----

[](#demo)

There is a demo available to test this wrapper
Two options to use the demo:

1. ### .env

    [](#env)

    ```
     RDW_API_DEMO=1
    ```

    Add this value to .env
2. ### config

    [](#config)

    Import the rwd-api config en set the value to 1 ([Installation](#installation)) ```
     rdw_api_demo => 1,
    ```

    Demo: 0 = Off | 1 = On

### Demo url

[](#demo-url)

```
http://[domainname]/rdw-api/demo
```

(Do not forget npm run dev)

API
---

[](#api)

Changing Default API\\

- 0: [opendata.rdw.nl](https://opendata.rdw.nl)
- 1: [overheid.io](https://overheid.io)

Use setApi method in request

```
->setApi(int $apiKey)
```

Or import the rwd-api config ([Installation](#installation))
And set 'rdw\_api\_use' to the correct value

> To use  a token is needed \\
> Place the token in the config: 'rdw\_api\_key'.

Filament
--------

[](#filament)

To use this wrapper in [Filament](https://filamentphp.com/) install the filament extension

```
composer require jdkweb/rdw-api-filament
```

[![Static Badge](https://camo.githubusercontent.com/3642a66aea454950f45b2e6d77e5d2b47d0b4162f73f2b47c2cfd27a5799f4c9/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6275696c642d6a646b7765622532467264772d2d6170692d2d66696c616d656e742d626c75653f7374796c653d666c61742d737175617265266c6f676f3d676974687562266c6162656c3d476974687562)](https://github.com/jdkweb/rdw-api-filament)[![Static Badge](https://camo.githubusercontent.com/3caad96916b76db4d7c735a3dcc98874f83673e379481e68fa48be611dc1517b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6275696c642d6a646b7765622532467264772d2d6170692d2d66696c616d656e742d626c75653f7374796c653d666c61742d737175617265266c6f676f3d7061636b6167697374266c6f676f436f6c6f723d7768697465266c6162656c3d5061636b6167697374)](https://packagist.org/packages/jdkweb/rdw-api-filament)

###  Health Score

43

—

FairBetter than 91% of packages

Maintenance86

Actively maintained with recent releases

Popularity11

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity54

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 95.5% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~22 days

Recently: every ~83 days

Total

16

Last Release

69d ago

Major Versions

v0.9.0 → v1.0.02025-02-11

PHP version history (4 changes)v0.9.0PHP &gt;=8.0

v1.0.1PHP ^8.0

v1.1.0PHP ^8.1

v1.2.0PHP &gt;=8.1

### Community

Maintainers

![](https://www.gravatar.com/avatar/f7678317f18dfcd8050447d525368dff1ff81c2b62b898fffb7d4e2a73954727?d=identicon)[jdkweb](/maintainers/jdkweb)

---

Top Contributors

[![jdkweb](https://avatars.githubusercontent.com/u/6470612?v=4)](https://github.com/jdkweb "jdkweb (63 commits)")[![FreakyWizard](https://avatars.githubusercontent.com/u/114140418?v=4)](https://github.com/FreakyWizard "FreakyWizard (3 commits)")

---

Tags

opendatardwphpapilaravelrdwoverheid.io

### Embed Badge

![Health badge](/badges/jdkweb-rdw-api/health.svg)

```
[![Health](https://phpackages.com/badges/jdkweb-rdw-api/health.svg)](https://phpackages.com/packages/jdkweb-rdw-api)
```

###  Alternatives

[jeroen-g/flickr

Modern PHP package to make Flickr API calls. Ships with Laravel implementation.

2559.1k2](/packages/jeroen-g-flickr)[shipu/php-aamarpay-payment

PHP client for Aamarpay Payment Gateway API

3214.6k](/packages/shipu-php-aamarpay-payment)[exlo89/laravel-sevdesk-api

A helpful Sevdesk API client for Laravel.

1015.8k](/packages/exlo89-laravel-sevdesk-api)[gufy/whmcs

WHMCS API for Laravel 5

211.7k](/packages/gufy-whmcs)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
