Sample code for 30+ languages & platforms
Swift

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 Swift Downloads

Swift

func chilkatTest() {
    var success: Bool = false

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

    let http = CkoHttp()!

    // 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"
    // }

    let json = CkoJsonObject()!
    json.updateString(jsonPath: "registrationNumber", value: "ABC1234")

    http.setRequestHeader(name: "Accept", value: "application/json")
    http.setRequestHeader(name: "x-api-key", value: "supplied API key")

    let resp = CkoHttpResponse()!
    success = http.httpJson(verb: "POST", url: "https://driver-vehicle-licensing.api.gov.uk/vehicle-enquiry/v1/vehicles", json: json, contentType: "application/json", response: resp)
    if success == false {
        print("\(http.lastErrorText!)")
        return
    }

    let sbResponseBody = CkoStringBuilder()!
    resp.getBodySb(sb: sbResponseBody)
    let jResp = CkoJsonObject()!
    jResp.loadSb(sb: sbResponseBody)
    jResp.emitCompact = false

    print("Response Body:")
    print("\(jResp.emit()!)")

    var respStatusCode: Int = resp.statusCode.intValue
    print("Response Status Code = \(respStatusCode)")
    if respStatusCode >= 400 {
        print("Response Header:")
        print("\(resp.header!)")
        print("Failed.")
        return
    }

    // 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

    var artEndDate: String? = jResp.string(of: "artEndDate")
    var co2Emissions: Int = jResp.int(of: "co2Emissions").intValue
    var colour: String? = jResp.string(of: "colour")
    var engineCapacity: Int = jResp.int(of: "engineCapacity").intValue
    var fuelType: String? = jResp.string(of: "fuelType")
    var make: String? = jResp.string(of: "make")
    var markedForExport: Bool = jResp.bool(of: "markedForExport")
    var monthOfFirstRegistration: String? = jResp.string(of: "monthOfFirstRegistration")
    var motStatus: String? = jResp.string(of: "motStatus")
    var registrationNumber: String? = jResp.string(of: "registrationNumber")
    var revenueWeight: Int = jResp.int(of: "revenueWeight").intValue
    var taxDueDate: String? = jResp.string(of: "taxDueDate")
    var taxStatus: String? = jResp.string(of: "taxStatus")
    var typeApproval: String? = jResp.string(of: "typeApproval")
    var wheelplan: String? = jResp.string(of: "wheelplan")
    var yearOfManufacture: Int = jResp.int(of: "yearOfManufacture").intValue
    var euroStatus: String? = jResp.string(of: "euroStatus")
    var realDrivingEmissions: String? = jResp.string(of: "realDrivingEmissions")
    var dateOfLastV5CIssued: String? = jResp.string(of: "dateOfLastV5CIssued")

}