New here? Create an account and get 10 free vehicle lookups: no card required.

VehicleMatic
History & Provenance

Full vehicle check API — DVLA, MOT, valuation and provenance in one call

Everything in one call: details, MOT history, valuation and provenance.

Also known as: full vehicle check · complete car check · all-in-one vehicle report

An example JSON response from the Full Vehicle Check API

Overview

The complete picture in a single request: DVLA details, full MOT history, a current valuation and the provenance risk check: merged into one normalised response.

Cheaper than calling each product separately, and one round-trip for your users.

Features

  • DVLA vehicle details
  • Complete MOT history
  • Current market valuation
  • Write-off, finance and stolen checks
  • One request, one merged response

Example response

A successful lookup for AB12CDE. Illustrative values.

{
    "data": {
        "vrm": "AB12CDE",
        "registration_number": "AB12CDE",
        "make": "FORD",
        "model": "FIESTA",
        "colour": "BLUE",
        "fuel_type": "PETROL",
        "engine_capacity": 1499,
        "year_of_manufacture": 2019,
        "month_of_first_registration": "2019-03",
        "co2_emissions": 119,
        "tax_status": "Taxed",
        "tax_due_date": "2026-09-01",
        "mot_status": "Valid",
        "mot_expiry_date": "2026-03-14",
        "wheelplan": "2 AXLE RIGID BODY",
        "export_marker": false,
        "mot_history": [
            {
                "test_date": "2025-03-12T10:41:07.000Z",
                "result": "PASSED",
                "odometer": 48210,
                "odometer_unit": "MI",
                "expiry_date": "2026-03-14",
                "advisories": [
                    "Nearside front tyre worn close to the legal limit"
                ]
            },
            {
                "test_date": "2024-03-05T09:12:33.000Z",
                "result": "FAILED",
                "odometer": 36940,
                "odometer_unit": "MI",
                "expiry_date": null,
                "advisories": [
                    "Offside rear brake disc worn"
                ]
            }
        ],
        "mot_summary": {
            "next_due_date": "2026-03-14",
            "has_outstanding_recall": false
        },
        "valuation": {
            "trade": 6450,
            "retail": 8195,
            "private": 7300,
            "currency": "GBP"
        },
        "provenance": {
            "write_off": false,
            "write_off_category": null,
            "write_off_date": null,
            "outstanding_finance": false,
            "finance_agreement_count": 0,
            "stolen": false,
            "scrapped": false,
            "scrapped_date": null,
            "certificate_of_destruction": false,
            "exported": false,
            "export_date": null,
            "imported": false,
            "import_date": null,
            "imported_from_outside_eu": false,
            "keeper": {
                "previous_keeper_count": 2,
                "latest_keeper_change_date": "2023-04-18T00:00:00Z",
                "latest_v5c_issued_date": "2023-04-21T00:00:00Z"
            },
            "mileage": {
                "anomaly_detected": false,
                "record_count": 3,
                "records": [
                    {
                        "date": "2022-05-14T09:31:22Z",
                        "mileage": 24118,
                        "source": "MOT"
                    },
                    {
                        "date": "2023-05-20T11:02:48Z",
                        "mileage": 33042,
                        "source": "MOT"
                    },
                    {
                        "date": "2024-05-22T14:15:03Z",
                        "mileage": 41967,
                        "source": "MOT"
                    }
                ]
            },
            "plate_changes": {
                "count": 1,
                "records": [
                    {
                        "date": "2021-09-02T00:00:00Z",
                        "previous_vrm": "XY09ZZZ",
                        "current_vrm": "AB12CDE"
                    }
                ]
            },
            "colour_changes": {
                "count": 1,
                "previous_colour": "Blue",
                "latest_change_date": "2020-11-30T00:00:00Z"
            },
            "vin_last_5": "48213"
        }
    },
    "credit_balance": 499
}

Fields returned

Field Type Description
registration_number string The vehicle registration mark (VRM).
make string Manufacturer, as recorded by the DVLA.
model string Model, resolved from the MOT record where available.
colour string Current registered colour, normalised.
fuel_type string Fuel type, normalised (PETROL, DIESEL, ELECTRIC…).
engine_capacity integer Engine capacity in cc.
year_of_manufacture integer Year the vehicle was manufactured.
month_of_first_registration string Year and month the vehicle was first registered (YYYY-MM).
co2_emissions integer CO₂ emissions in g/km.
tax_status string Current tax status (Taxed, Untaxed, SORN).
tax_due_date date Date the current tax expires.
mot_status string Current MOT status.
mot_expiry_date date Expiry date of the current MOT certificate.
wheelplan string DVLA wheelplan description.
export_marker boolean Whether the vehicle is marked for export.
mot_history[].test_date datetime When the test was carried out (ISO 8601).
mot_history[].result string PASSED or FAILED.
mot_history[].odometer integer Odometer reading recorded at the test.
mot_history[].odometer_unit string MI or KM.
mot_history[].expiry_date date|null Certificate expiry (null on a failure).
mot_history[].advisories array Advisory and failure notes recorded by the tester.
mot_summary.next_due_date date|null When the next MOT is due.
mot_summary.has_outstanding_recall boolean Whether DVSA holds an outstanding safety recall for this vehicle.
valuation.trade integer Trade-in value.
valuation.retail integer Forecourt / retail value.
valuation.private integer Private-sale value.
valuation.currency string ISO currency code.
provenance.write_off boolean Whether the vehicle has been written off.
provenance.write_off_category string|null Insurance write-off category (A, B, S, N).
provenance.write_off_date string|null Date the write-off was recorded.
provenance.outstanding_finance boolean Whether a finance agreement is recorded against the vehicle.
provenance.finance_agreement_count integer Number of finance agreements on record.
provenance.stolen boolean Police stolen marker.
provenance.scrapped boolean Recorded as scrapped.
provenance.scrapped_date string|null Date the vehicle was recorded as scrapped.
provenance.certificate_of_destruction boolean Whether a Certificate of Destruction has been issued.
provenance.exported boolean Recorded as exported.
provenance.export_date string|null Date of export.
provenance.imported boolean Recorded as an import.
provenance.import_date string|null Date the vehicle was imported.
provenance.imported_from_outside_eu boolean Whether the import came from outside the EU.
provenance.keeper.previous_keeper_count integer Number of previous registered keepers.
provenance.keeper.latest_keeper_change_date string|null Date of the most recent keeper change.
provenance.keeper.latest_v5c_issued_date string|null Date the most recent V5C was issued.
provenance.mileage.anomaly_detected boolean Whether the mileage record is inconsistent — what the trade calls clocking.
provenance.mileage.record_count integer Number of odometer readings on record.
provenance.mileage.records[].date string Date the reading was taken.
provenance.mileage.records[].mileage integer Odometer reading.
provenance.mileage.records[].source string Where the reading came from.
provenance.plate_changes.count integer Number of registration transfers.
provenance.plate_changes.records[].date string Date of the transfer.
provenance.plate_changes.records[].previous_vrm string Registration before the transfer.
provenance.plate_changes.records[].current_vrm string Registration after the transfer.
provenance.colour_changes.count integer Number of recorded colour changes.
provenance.colour_changes.previous_colour string|null Colour before the most recent change.
provenance.colour_changes.latest_change_date string|null Date of the most recent colour change.
provenance.vin_last_5 string|null Last five characters of the VIN, for checking against the vehicle.
Is this cheaper than calling each product?

Yes. the bundle costs fewer credits than the individual products it contains, and it is a single round-trip.

What happens if one source is unavailable?

The response still returns with whatever resolved successfully: an unavailable source simply omits its block, so you never get fabricated data.

Official registers

Vehicle records from the DVLA Vehicle Enquiry Service, MOT records from the DVSA MOT History API.

Charged on delivery

You are charged on a successful lookup. A lookup that returns nothing costs nothing.

No lock-in

No contract and no minimum. Credits last 12 months; monthly plans are rolling.

UK data protection

You act as controller and we act as processor for delivery, under the UK GDPR and the Data Protection Act 2018.

Guides and tools for this API

Need help integrating this API? Get in touch for a free quote.

Get in touch