Sample code for 30+ languages & platforms
PHP ActiveX

DVLA Vehicle Enquiry Service

See more _Miscellaneous_ Examples

Demonstrates how to make a call to the DVLA Vehicle Enquiry API to get vehicle details of a specified vehicle. It uses the vehicle registration number as input to search and provide details of the vehicle.

Chilkat PHP ActiveX Downloads

PHP ActiveX
<?php

$success = 0;

// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

$http = new COM("Chilkat.Http");

// Implements the following CURL command:

// curl -X POST https://driver-vehicle-licensing.api.gov.uk/vehicle-enquiry/v1/vehicles \
//   -H "x-api-key: supplied API key" \
//   -H "Accept: application/json" \
//   -d '{"registrationNumber": "ABC1234"}'

// Use the following online tool to generate HTTP code from a CURL command
// Convert a cURL Command to HTTP Source Code

// Use this online tool to generate code from sample JSON:
// Generate Code to Create JSON

// The following JSON is sent in the request body.

// {
//   "registrationNumber": "ABC1234"
// }

$json = new COM("Chilkat.JsonObject");
$json->UpdateString('registrationNumber','ABC1234');

$http->SetRequestHeader('Accept','application/json');
$http->SetRequestHeader('x-api-key','supplied API key');

$resp = new COM("Chilkat.HttpResponse");
$success = $http->HttpJson('POST','https://driver-vehicle-licensing.api.gov.uk/vehicle-enquiry/v1/vehicles',$json,'application/json',$resp);
if ($success == 0) {
    print $http->LastErrorText . "\n";
    exit;
}

$sbResponseBody = new COM("Chilkat.StringBuilder");
$resp->GetBodySb($sbResponseBody);
$jResp = new COM("Chilkat.JsonObject");
$jResp->LoadSb($sbResponseBody);
$jResp->EmitCompact = 0;

print 'Response Body:' . "\n";
print $jResp->emit() . "\n";

$respStatusCode = $resp->StatusCode;
print 'Response Status Code = ' . $respStatusCode . "\n";
if ($respStatusCode >= 400) {
    print 'Response Header:' . "\n";
    print $resp->Header . "\n";
    print 'Failed.' . "\n";
    exit;
}

// Sample JSON response:
// (Sample code for parsing the JSON response is shown below)

// {
//   "artEndDate": "2025-02-28",
//   "co2Emissions": 135,
//   "colour": "BLUE",
//   "engineCapacity": 2494,
//   "fuelType": "PETROL",
//   "make": "ROVER",
//   "markedForExport": false,
//   "monthOfFirstRegistration": "2004-12",
//   "motStatus": "No details held by DVLA",
//   "registrationNumber": "ABC1234",
//   "revenueWeight": 1640,
//   "taxDueDate": "2007-01-01",
//   "taxStatus": "Untaxed",
//   "typeApproval": "N1",
//   "wheelplan": "NON STANDARD",
//   "yearOfManufacture": 2004,
//   "euroStatus": "EURO 6 AD",
//   "realDrivingEmissions": "1",
//   "dateOfLastV5CIssued": "2016-12-25"
// }

// Sample code for parsing the JSON response...
// Use the following online tool to generate parsing code from sample JSON:
// Generate Parsing Code from JSON

$artEndDate = $jResp->stringOf('artEndDate');
$co2Emissions = $jResp->IntOf('co2Emissions');
$colour = $jResp->stringOf('colour');
$engineCapacity = $jResp->IntOf('engineCapacity');
$fuelType = $jResp->stringOf('fuelType');
$make = $jResp->stringOf('make');
$markedForExport = $jResp->BoolOf('markedForExport');
$monthOfFirstRegistration = $jResp->stringOf('monthOfFirstRegistration');
$motStatus = $jResp->stringOf('motStatus');
$registrationNumber = $jResp->stringOf('registrationNumber');
$revenueWeight = $jResp->IntOf('revenueWeight');
$taxDueDate = $jResp->stringOf('taxDueDate');
$taxStatus = $jResp->stringOf('taxStatus');
$typeApproval = $jResp->stringOf('typeApproval');
$wheelplan = $jResp->stringOf('wheelplan');
$yearOfManufacture = $jResp->IntOf('yearOfManufacture');
$euroStatus = $jResp->stringOf('euroStatus');
$realDrivingEmissions = $jResp->stringOf('realDrivingEmissions');
$dateOfLastV5CIssued = $jResp->stringOf('dateOfLastV5CIssued');

?>