Vehicle provenance API โ write-off, outstanding finance and stolen checks
Write-off, outstanding finance, stolen and scrapped markers in one call.
Also known as: HPI-style check ยท vehicle history check ยท write-off check ยท outstanding finance check ยท stolen vehicle check
Overview
The risk check: insurance write-off categories, outstanding finance agreements, stolen markers and scrappage status.
This is the call to make before money changes hands: the single highest-value check in a vehicle purchase or finance journey.
Features
- Insurance write-off category (A / B / S / N) and the date recorded
- Outstanding finance agreements, with a count
- Stolen (police marker) status
- Scrappage, Certificate of Destruction, import and export records
- Keeper history: previous keepers, latest keeper change and V5C dates
- Every recorded odometer reading, with a mileage-anomaly flag
- Plate transfers and colour changes
- Last five characters of the VIN, to check against the vehicle
Example response
A successful lookup for AB12CDE. Illustrative values.
{
"data": {
"vrm": "AB12CDE",
"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 |
|---|---|---|
| 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. |
Who uses this
You might also need
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.
Validating Vehicles at Quote Time for Insurers
Stop pricing on customer-declared details. Validate the vehicle from its registration, pre-fill the quote, and flag writ...
Read the guide โ API GuidesBuilding a Provenance (HPI-Style) Check into Your Product
What a provenance/HPI check API returns: outstanding finance, write-off category, stolen and mileage markers, and how to...
Read the guide โ API GuidesThe DVSA MOT History API Explained
How to work with MOT history data: tests, mileage readings and advisories, and how to flag odometer fraud (clocking) pro...
Read the guide โ Free toolNumber plate checker
Validate a UK registration and decode the year and period it was issued.
Open the tool โ Free toolAPI cost calculator
Estimate your monthly cost from your expected lookup volume and product mix.
Open the tool โ