driver-find v1.9.0
A driver find service to enable external organisations to match drivers to their driving licences using their personal details.
Click here to see this OpenAPI specification in JSON format.
Base URLs
Authentication
API Key (jwtAuth)
- Parameter Name: Authorization, in: header. Valid JWT token issued as a result of authentication against the API Gateway.
API Key (apiKeyAuth)
- Parameter Name: X-API-Key, in: header. API key used to access the service.
Find Drivers
Find drivers from at least three items of personal information.
post__v1_drivers_find
POST /v1/drivers/find
Find drivers from their personal details.
Find drivers using three or more of last name, first names, date of birth, gender and postcode.
Parameters
Name | In | Type | Required | Restrictions | Description |
---|---|---|---|---|---|
limit | header | integer | false | Minimum: 1 Maximum: 50 |
Maximum the number of records to return. |
offset | header | integer | false | Maximum: 49 |
Offset to skip the requested number of records. Used in conjunction with limit to page through results. Note requesting a value higher than the number of matched records will return no results. |
body | body | findDriverRequest | true | none | Search parameters - driver’s personal details. |
Example Request
curl -X POST -d '{
"criteria": {
"firstNames": "Barry",
"lastName": "Williams",
"dateOfBirth": "1990-06-01",
"postcode": "SA1 1TH",
"gender": "Male"
},
"options": {
"lastNameMatchType": "exact",
"firstNamesMatchType": "phonetic",
"searchNamesOnPreviousLicences": true,
"searchDateOfBirthOnPreviousLicences": true,
"includePartialPostcodesInResults": true,
"orderBy": "relevance"
}
}' https://driver-vehicle-licensing.api.gov.uk/driver-find/v1/drivers/find \
-H 'Content-Type: application/json' -H 'Accept: application/json' -H 'limit: 10' -H 'offset: 0' -H 'Authorization: API_KEY'
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Success. Returns zero or more drivers matching the supplied personal details. | driversSummaryResponse |
400 | Bad Request | Bad Request. The server could not understand the request due to invalid syntax. | errorResponse |
401 | Unauthorized | Unauthorised. | errorResponse |
403 | Forbidden | Forbidden. No access to the requested resource. | errorResponse |
429 | Too Many Requests | Too many requests in a given amount of time. | errorResponse |
500 | Internal Server Error | The service encountered an unspecified error. | errorResponse |
Additional common error responses are listed in the Common Error Responses page.
Example Response
Successful Response - No results found for search request
{
"results": []
}
Successful Response - Single driver match with mandatory attributes only
{
"results": [
{
"drivingLicenceNumber": "ABCDE123456AB1AB",
"lastName": "Doe",
"gender": "Male"
}
]
}
Successful Response - Single driver match with all attributes
{
"results": [
{
"drivingLicenceNumber": "ABCDE123456AB1AB",
"firstNames": "John",
"lastName": "Doe",
"gender": "Male",
"dateOfBirth": "1990-01-01",
"postcode": "SA18 1LL"
}
]
}
Successful Response - Single driver match redirected from a previous licence
{
"results": [
{
"drivingLicenceNumber": "ABCDE123456AB1AB",
"firstNames": "John",
"lastName": "Doe",
"gender": "Male",
"dateOfBirth": "1990-01-01",
"postcode": "SA18 1LL",
"driverRedirect": true
}
]
}
Successful Response - Single driver match including base64 encoded driver image
{
"results": [
{
"drivingLicenceNumber": "ABCDE123456AB1AB",
"firstNames": "John",
"lastName": "Doe",
"gender": "Male",
"dateOfBirth": "1990-01-01",
"postcode": "SA18 1LL",
"image": {
"type": "image/jpg",
"data": "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"
}
}
]
}
Successful Response - Multiple drivers match
{
"results": [
{
"drivingLicenceNumber": "JANEE123456AB1AB",
"lastName": "Doe",
"gender": "Female"
},
{
"drivingLicenceNumber": "ABCDE123456AB1AB",
"firstNames": "John",
"lastName": "Doe",
"gender": "Male",
"dateOfBirth": "1990-01-01",
"postcode": "SA18 1LL",
"driverRedirect": true
}
]
}
400 Response
{
"errors": [
{
"status": "400",
"code": "BRQ001",
"detail": "Bad request"
}
]
}
401 Response
{
"errors": [
{
"status": "401",
"code": "Unauthorized",
"detail": "API Key or JWT is either not provided, expired or invalid"
}
]
}
403 Response
{
"errors": [
{
"status": "403",
"code": "Forbidden",
"detail": "Access Denied"
}
]
}
429 Response
{
"errors": [
{
"status": "429",
"code": "Throttled",
"detail": "Too many requests"
}
]
}
500 Response
{
"errors": [
{
"status": "500",
"code": "ENQ000",
"detail": "System error occurred"
}
]
}
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
200 | X-Total-Count | integer | none | |
200 | X-DVLA-Request-Id | string | uuid | Request Id to trace the API request. |
400 | X-DVLA-Request-Id | string | uuid | Request Id to trace the API request. |
401 | X-DVLA-Request-Id | string | uuid | Request Id to trace the API request. |
403 | X-DVLA-Request-Id | string | uuid | Request Id to trace the API request. |
429 | X-DVLA-Request-Id | string | uuid | Request Id to trace the API request. |
500 | X-DVLA-Request-Id | string | uuid | Request Id to trace the API request. |
Schemas
x-total-count
0
The total number of driver records returned in the results.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | integer | false | none | The total number of driver records returned in the results. |
findDriverRequest
{
"criteria": {
"lastName": "Doe",
"firstNames": "John",
"dateOfBirth": "2019-12-31",
"gender": "Male",
"postcode": "SA22 9FD"
},
"options": {
"lastNameMatchType": "exact",
"firstNamesMatchType": "exact",
"searchNamesOnPreviousLicences": true,
"searchDateOfBirthOnPreviousLicences": true,
"includePartialPostcodesInResults": true,
"orderBy": "drivingLicenceNumber"
}
}
A driver find request containing search criteria amd options
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
criteria | searchCriteria | false | none | An object representing the information to make a search on. |
options | searchOptions | false | none | An object representing the various search options used to manipulate results. |
driversSummaryResponse
{
"results": [
{
"drivingLicenceNumber": "ABCDE123456AB1AB",
"firstNames": "John",
"lastName": "Doe",
"dateOfBirth": "2019-12-31",
"gender": "Male",
"postcode": "SA22 9FD",
"driverRedirect": true,
"image": {
"type": "image/jpg",
"data": "iVBORw0KGgoAAAANSUhEUgAAABgAAAAYC..."
}
}
]
}
An response containing zero or more driver summaries.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
results | [driverSummary] | true | none | [A summary of a driver’s details as per their current driving licence] |
driverSummary
{
"drivingLicenceNumber": "ABCDE123456AB1AB",
"firstNames": "John",
"lastName": "Doe",
"dateOfBirth": "2019-12-31",
"gender": "Male",
"postcode": "SA22 9FD",
"driverRedirect": true,
"image": {
"type": "image/jpg",
"data": "iVBORw0KGgoAAAANSUhEUgAAABgAAAAYC..."
}
}
A summary of a driver’s details as per their current driving licence
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
drivingLicenceNumber | drivingLicenceNumber | true | none | A UK driving licence number. |
firstNames | firstNames | false | none | The driver’s first name(s). |
lastName | lastName | true | none | The driver’s last name. |
dateOfBirth | dateOfBirth | false | none | The driver’s date of birth in the format YYYY-MM-DD. |
gender | gender | true | none | The driver’s gender. |
postcode | postcode | false | none | The postcode from the address registered to the driver’s driving licence. |
driverRedirect | driverRedirect | false | none | Indicates if record was redirected from a matched previous driving licence for a driver. Details from the driver’s current driving licence are returned. |
image | image | false | none | Contains the mime type and base64 encoded data of a driver’s image, only included if the ‘includeImagesInResults’ option is set to true. |
gender
"Male"
The driver’s gender.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | string | false | Enum: Male,Female |
The driver’s gender. |
Enumerated Values
Property | Value |
---|---|
anonymous | Male |
anonymous | Female |
dateOfBirth
"2019-12-31"
The driver’s date of birth in the format YYYY-MM-DD.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | string(date) | false | Min length: 10 Max length: 10 |
The driver’s date of birth in the format YYYY-MM-DD. |
postcode
"SA22 9FD"
The postcode from the address registered to the driver’s driving licence.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | string | false | Min length: 2 Max length: 8 |
The postcode from the address registered to the driver’s driving licence. |
postcodeSearch
"SA22 9FD"
Full UK postcode, with or without a space.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | string | false | Pattern: ^(([Gg][Ii][Rr]\s?0[Aa]{2}) | ((([A-Za-z][0-9]{1,2}) |
drivingLicenceNumber
"ABCDE123456AB1AB"
A UK driving licence number.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | string | false | Min length: 5 Max length: 16 |
A UK driving licence number. |
uuid
"dbcf549a-43db-4b95-aea8-1e6b792397bb"
A UK driving licence number.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | string(uuid) | false | none | A UK driving licence number. |
firstNamesSearch
"John"
One or more, space separated, first names of a driver to search on
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | string | false | Pattern: ^(?!\s*$)[a-zA-Z .‘,-]{1,38}$ Min length: 1 Max length: 38 |
One or more, space separated, first names of a driver to search on |
firstNames
"John"
The driver’s first name(s).
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | string | false | none | The driver’s first name(s). |
lastNameSearch
"Doe"
Last name of a driver to search on
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | string | false | Pattern: ^(?!\s*$)[a-zA-Z .’,-]{1,43}$ Min length: 1 Max length: 43 |
Last name of a driver to search on |
lastName
"Doe"
The driver’s last name.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | string | false | none | The driver’s last name. |
image
{
"type": "image/jpg",
"data": "iVBORw0KGgoAAAANSUhEUgAAABgAAAAYC..."
}
Contains the mime type and base64 encoded data of a driver’s image, only included if the ‘includeImagesInResults’ option is set to true.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
type | string | false | none | Mime type of driver image |
data | string | false | none | Base64 encoded driver image |
driverRedirect
true
Indicates if record was redirected from a matched previous driving licence for a driver. Details from the driver’s current driving licence are returned.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | boolean | false | none | Indicates if record was redirected from a matched previous driving licence for a driver. Details from the driver’s current driving licence are returned. |
errorResponse
{
"errors": [
{
"status": "400",
"code": "BRQ001",
"detail": "Bad request"
}
]
}
Error response containing a list of errors.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
errors | [error] | false | none | none |
error
{
"status": "400",
"code": "BRQ001",
"detail": "Bad request"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
status | string | false | none | HTTP status code. |
code | string | false | none | DVLA reference code. |
detail | string | false | none | A meaningful description of the error which has occurred. |
searchOptions
{
"lastNameMatchType": "exact",
"firstNamesMatchType": "exact",
"searchNamesOnPreviousLicences": true,
"searchDateOfBirthOnPreviousLicences": true,
"includePartialPostcodesInResults": true,
"orderBy": "drivingLicenceNumber"
}
An object representing the various search options used to manipulate results.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
lastNameMatchType | string | false | Enum: exact,phonetic,token |
Option to specify last name match type. |
firstNamesMatchType | string | false | Enum: exact,phonetic,token |
Option to specify first names match type. |
searchNamesOnPreviousLicences | boolean | false | none | Option to specify whether to search previous licences with the first name(s) and last name provided. |
searchDateOfBirthOnPreviousLicences | boolean | false | none | Option to specify whether to search previous licences with the date of birth provided. |
includePartialPostcodesInResults | boolean | false | none | Option to specify whether to include partial postcode matches in the results (this option only has an effect on the returned results when a postcode is also supplied in the request). |
orderBy | string | false | Enum: drivingLicenceNumber,name,fullName,postcode,relevance |
Option to specify the order in which the results are returned. |
Enumerated Values
Property | Value |
---|---|
lastNameMatchType | exact |
lastNameMatchType | phonetic |
lastNameMatchType | token |
firstNamesMatchType | exact |
firstNamesMatchType | phonetic |
firstNamesMatchType | token |
orderBy | drivingLicenceNumber |
orderBy | name |
orderBy | fullName |
orderBy | postcode |
orderBy | relevance |
searchCriteria
{
"lastName": "Doe",
"firstNames": "John",
"dateOfBirth": "2019-12-31",
"gender": "Male",
"postcode": "SA22 9FD"
}
An object representing the information to make a search on.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
lastName | lastNameSearch | false | none | Last name of a driver to search on |
firstNames | firstNamesSearch | false | none | One or more, space separated, first names of a driver to search on |
dateOfBirth | dateOfBirth | false | none | The driver’s date of birth in the format YYYY-MM-DD. |
gender | gender | false | none | The driver’s gender. |
postcode | postcodeSearch | false | none | Full UK postcode, with or without a space. |