MOT history is one of the richest, most underused datasets in UK motoring. Every test a vehicle has ever taken is recorded — the result, the mileage on the day, and any advisories the tester noted. For developers, that's a goldmine for verifying condition, spotting mileage fraud and enriching a vehicle record. This guide explains how to work with an MOT history API and what to do with the data once you have it.
What the DVSA MOT history dataset contains
The DVSA records an MOT entry for cars, vans and motorcycles in Great Britain since 2005 (and Northern Ireland more recently). For each vehicle you get an array of tests, and for each test:
- Test date and result (pass / fail / pass with advisories)
- Odometer reading and its unit (miles or km) on the test date
- Expiry date (for passes)
- Advisory and failure items — the free-text notes about worn tyres, corrosion, brake wear and so on
VehicleMatic's MOT History product returns this as a clean, normalized JSON array so you don't have to reconcile the quirks of the raw feed.
The response shape
A lookup is a single call by registration:
POST /products/mot-history/api/live/lookup
X-API-KEY: your_key_here
{ "registration": "AB12CDE" }
You get back the vehicle summary plus a chronological list of tests. Because the schema matches the rest of the VehicleMatic catalog, you can drop MOT history into the same internal "vehicle" model you populate from vehicle details or provenance.
The killer use case: detecting mileage fraud ("clocking")
Because every MOT records the odometer reading, the sequence of readings over time is the single most reliable public signal for odometer tampering. Legitimate mileage only ever goes up, at a broadly consistent rate. Red flags include:
- A reading that drops from one test to the next
- A long flat period where mileage barely moves, then jumps
- Annual mileage that's wildly inconsistent with the vehicle's history
To flag this programmatically, sort the tests by date, walk the readings, and assert each is greater than or equal to the previous one; compute year-on-year deltas and flag any that are negative or implausibly large. That single check adds real fraud protection to a buying, lending or insurance flow with a few lines of code.
Using advisories to assess condition
Advisory notes are qualitative but valuable. A pattern of the same advisory recurring — "tyre worn close to legal limit", "brake disc corroded" — tells you how a vehicle has been maintained. For dealer appraisal, fleet condition monitoring or pre-purchase checks, surfacing the advisory trail alongside the pass/fail record turns a raw feed into a decision aid.
Combining MOT history with other data
MOT history is most powerful in combination:
- With vehicle details for the current tax/MOT status and core attributes.
- With provenance to cross-check a suspicious mileage pattern against a recorded mileage-anomaly marker.
- As part of the Full Vehicle Check bundle, which pulls details, MOT history, valuation and provenance in one call.
Latency, caching and cost
MOT history changes at most once a year per vehicle, so it's a good candidate for caching within your own compliance rules. On cost, MOT history is one of the cheaper lookups — from around 2p per call at the best volume tier — and you're only charged when data is returned. Model your spend on the pricing page or the cost calculator.
Try it first
See a realistic MOT history payload in the sandbox with no account, then sign up for 10 free lookups to test against real registrations.
Frequently asked questions
How far back does MOT history go? To 2005 for Great Britain; a vehicle first tested more recently will simply have fewer entries.
Can I detect clocking from the API alone? You can flag the strong signal — non-increasing or implausible odometer readings across tests. Confirming fraud needs the provenance mileage-anomaly marker and, ultimately, physical inspection.
Is MOT status the same as MOT history? No. Status (current pass/expiry) comes with vehicle details; history (every past test) is this product.
Start with the MOT History product, or see the whole catalog on the APIs page.