MOT history API: tax status and every MOT test by registration
Last updated: 9 November 2026
POST a UK registration to /api/v1/vehicle/tax-mot and you get the vehicle tax status and due date, the MOT status and expiry date, and every MOT test: date, result, odometer reading and each advisory, minor, major or dangerous defect. The data comes from DVLA and DVSA. It costs 5p a call on Pay As You Go, down to 2p on Enterprise. Sandbox keys are free and answer for the published test registrations (GET /v1/sandbox/vrms, no key needed), so you can build the whole integration before paying for a call.
One call reads both government sources. The sources field says what each one answered. When the vehicle register holds no record (common for classic vehicles and plates on retention), the vehicle is identified from the MOT record and tax and mot are left out.
The call is charged whenever either source returns data. When neither knows the vehicle the answer is 404 VEHICLE_NOT_FOUND, not charged.
Prices per call
Prices in force today, per call, by package. Errors are not charged except where the API reference says so. Live keys only: sandbox calls are free.
| Endpoint | Pay As You Go | Starter | Pro | Enterprise |
|---|---|---|---|---|
| Tax and MOT POST /api/v1/vehicle/tax-mot Tax status, MOT status and the full MOT history for a registration. | 5p | 4p | 3p | 2p |
| Vehicle decode POST /api/v1/vehicle/decode The full identity and registration record, for a registration or VIN. Daily cap per account: 300 / 1,000 / 3,000 / 10,000 | 16p | 10p | 8p | 6p |
Pay As You Go has no monthly fee (top up from £10). On Starter, Pro, Enterprise the monthly fee comes back as plan credit to spend on calls, expiring at the end of each monthly billing period. Package limits per second, minute and day are on the pricing page.
Example request and answer
Every endpoint is a JSON POST under https://www.dealerpricing.co.uk/api with your key in the X-API-Key header. This request uses a sandbox test value, so it is free with a sandbox key.
curl -X POST https://www.dealerpricing.co.uk/api/v1/vehicle/tax-mot \
-H "X-API-Key: your_sandbox_key" \
-H "Content-Type: application/json" \
-d '{"vrm":"SA22TLZ"}'The answer (long lists shortened; fields not held for a vehicle are left out):
{
"success": true,
"data": {
"vrm": "SA22TLZ",
"sources": {
"dvla": "found",
"mot": "found"
},
"tax": {
"status": "Taxed",
"due_date": "2027-04-01"
},
"mot": {
"status": "Valid",
"expiry_date": "2027-04-23"
},
"vehicle": {
"make": "VOLKSWAGEN",
"model": "POLO LIFE TSI",
"colour": "BLUE",
"year_of_manufacture": 2022,
"first_registration_date": "2022-04-23",
"engine_capacity": 999,
"co2_emissions": 118,
"fuel_type": "PETROL",
"marked_for_export": false,
"type_approval": "M1",
"wheelplan": "2 AXLE RIGID BODY",
"euro_status": "EURO 6 AP",
"date_of_last_v5c_issued": "2022-04-23",
"month_of_first_registration": "2022-04",
"revenue_weight": 1620,
"has_outstanding_recall": "Unknown",
"manufacture_date": "2022-04-23",
"source": "dvla"
},
"mot_history": {
"total_tests": 3,
"tests": [
{
"test_date": "2026-04-24T09:16:59.000Z",
"expiry_date": "2027-04-23",
"result": "PASSED",
"odometer_value": "10088",
"odometer_unit": "MI",
"mot_test_number": "976134633448",
"odometer_result_type": "READ",
"defects": []
},
{
"test_date": "2025-04-08T08:11:26.000Z",
"expiry_date": "2026-04-22",
"result": "PASSED",
"odometer_value": "7909",
"odometer_unit": "MI",
"mot_test_number": "211085358720",
"odometer_result_type": "READ",
"defects": []
}
]
}
},
"meta": {
"request_id": "req_3f9a1c0d2b7e4a5f6c8d9e01",
"cost_pence": 5,
"balance_pence": 995,
"is_sandbox": false
}
}What you get
- tax.status
- Tax status and tax due_date
- mot.status
- MOT status and expiry_date
- mot_history.total_tests
- Number of tests and first_test_due_date for newer cars
- mot_history.tests[].test_date
- Each test: date, result, expiry_date and mot_test_number
- mot_history.tests[].odometer_value
- Odometer reading and unit at each test, for mileage checks
- mot_history.tests[].defects
- Every defect with its type, text and whether it was dangerous
- vehicle.has_outstanding_recall
- Whether a manufacturer recall is outstanding, when known
- vehicle.make
- Make, model, colour, fuel_type, engine_capacity and first_registration_date
- sources.dvla
- What each source answered: found, not_found or unavailable
Every field, with its type and meaning, is in the API reference.
What developers use it for
- Show the MOT history and next MOT date on a stock page or a customer report.
- Spot mileage that goes down between MOT tests.
- Remind customers when their tax or MOT is due.
Questions
Is there an API for MOT history in the UK?
Yes. DealerPricing's /api/v1/vehicle/tax-mot endpoint returns the tax status, the MOT status and every MOT test with mileage and defects for a UK registration, from DVLA and DVSA data, for 5p a call on Pay As You Go, down to 2p on Enterprise.
Why use this instead of going to DVLA and DVSA directly?
One key and one call give you both sources in one JSON answer, with the same authentication, error codes, balance and request log as the rest of the vehicle data API. You do not need to apply for and manage two separate government keys.
Does it include mileage readings?
Yes. Every MOT test carries odometer_value and odometer_unit, so you can chart the mileage or spot a reading that went down.
Can I search by VIN?
No. Tax and MOT takes a registration only; a VIN is refused with 400 VIN_NOT_SUPPORTED. Use the decode endpoint to find a VIN's registration details.
What if the vehicle is not found?
When neither source knows the vehicle the answer is 404 VEHICLE_NOT_FOUND and you are not charged. When one source could not be reached and the other returned nothing, the answer is 502 SOURCE_UNAVAILABLE, also not charged.
Is there a daily limit?
Tax and MOT has no daily cap of its own. The package limits per second, minute and day apply.
Documentation and next steps
- Tax and MOT in the API reference
- Tax and MOT in the documentation guide
- API test console (send a request with your sandbox key)
- Example searches (worked examples, once you sign in)
- Error codes and what each one costs
- Create a developer account