Tag: vehicle data fraud uk

  • How DVLA’s Vehicle Data APIs Are Being Scraped and Abused: The Hidden Attack Surface Behind UK Number Plate Lookups

    The DVLA sits on one of the most queried public datasets in the UK. Every day, millions of number plate lookups happen across insurance comparison sites, parking enforcement systems, ANPR cameras, and just plain-curious members of the public using the free vehicle enquiry service at gov.uk/check-if-a-vehicle-is-taxed. What most people don’t think about is that the same infrastructure sitting behind that friendly web form is also being quietly harvested by OSINT operators, fleet data aggregators, and outright fraudsters running bulk scraping scripts. DVLA vehicle data scraping is not a new problem, but in 2026 it has become trivially easy in ways that deserve a proper technical breakdown.

    What the DVLA actually exposes publicly

    The primary public interface is the Vehicle Enquiry Service (VES). Submit a valid UK registration mark and it returns tax status, MOT expiry, make, colour, engine size, fuel type, and date of first registration. No authentication. No CAPTCHA on the API endpoint itself. Just a POST request with a VRM and you get JSON back.

    There’s also the official DVLA Vehicle Enquiry API, documented on the DVLA’s developer pages and technically rate-limited, which third parties can apply to use programmatically. The official API requires an API key and is intended for legitimate businesses. MOT history is available separately via the DVSA (Driver and Vehicle Standards Agency) MOT History API. Between VES, the DVLA API, and the DVSA endpoint, you can build a reasonably rich picture of any registered vehicle in Great Britain from public data alone.

    The problem is that public doesn’t mean protected. The web-facing VES form is backed by calls to an API endpoint at https://driver-vehicle-licensing.api.gov.uk/vehicle-enquiry/v1/vehicles. That endpoint requires an x-api-key header for direct calls, but the web form itself proxies requests through DVLA’s own backend, which means the browser is making a request to a DVLA-controlled intermediary rather than the API directly. That intermediary is where the interesting attack surface lives.

    How bulk scraping actually works against VES

    UK number plates follow a predictable format. Post-2001 plates are two letters (area code), two digits (year), then three random letters. The total keyspace for any given half-year cohort is 26x26x26 letters at the end, which is 17,576 combinations, multiplied by however many area codes and year codes are valid. A motivated scraper can enumerate a specific year’s registrations methodically, or use known partial plates to target specific regions or vehicle ages.

    Scripts doing this aren’t sophisticated. A basic Python script with requests and a rotating proxy pool can hammer VES through the web form pathway. Rate limiting on the public-facing web service has historically been lenient enough that a few hundred requests per IP per hour go unnoticed. Distribute that across a handful of residential proxy IPs and you’re pulling tens of thousands of records daily without triggering anything visible.

    The responses are clean JSON through the browser’s network tab, which means you don’t even need to parse HTML. Open DevTools on the VES page, inspect the XHR requests, and you have your payload structure in under two minutes. I’ve watched people do this live in Discord servers as a casual exercise. The barrier to entry is basically zero.

    For OSINT practitioners this is a legitimate and legal activity in many contexts. Checking whether a vehicle at a specific address is taxed and MOT’d is not illegal. Aggregating VRMs at scale to build commercial datasets without authorisation from the DVLA is a different matter entirely, sitting in murkier legal territory under the Computer Misuse Act 1990 and the DVLA’s own terms of service. The DVLA does pursue enforcement actions, but proving intent and scale in court is hard when the underlying data is publicly accessible.

    What fraudsters do with harvested vehicle data

    The obvious use case is cloning. If you know a legitimate vehicle’s make, model, colour, and approximate age from its registration, you can produce cloned plates that will pass a casual visual inspection and match any ANPR query on a road without DVLA enforcement cameras. Vehicle cloning has been a persistent problem in the UK; the DVLA and police forces acknowledge thousands of clone-related reports annually.

    Beyond cloning, harvested VRM data gets layered with other sources. Cross-reference a plate with council planning portals that list addresses, cross-reference that with Companies House records being abused for identity fraud, and you start building profiles. Fleet operators are particularly exposed because their vehicles tend to be clustered by postcode and registered to a single company address. A scraper that targets commercial plate formats can extract an entire fleet’s data and sell it to competitors or use it for targeted vishing attacks against fleet managers.

    Insurance fraud is another downstream abuse. Knowing that a specific vehicle lacks valid MOT or tax is useful if you’re planning to make a fraudulent claim against that vehicle’s owner, or if you want to verify that a vehicle you’re planning to acquire illegitimately hasn’t already been flagged. The same data that helps a legitimate buyer avoid purchasing an untaxed car helps a fraudster confirm a target is low-risk.

    Some of the more creative abuses feed into wider social engineering campaigns. The UK scambaiter exposing fraudsters community has documented cases where scraped vehicle data gets dropped into vishing scripts to make calls seem more credible. If a scammer can tell you the make, colour, and MOT status of the car on your driveway before you’ve said a word, the psychological effect on a target is significant.

    The authentication gap and why it persists

    The official DVLA Vehicle Enquiry API requires an API key tied to an approved account. That’s the right model. The problem is the public web service doesn’t enforce the same controls end-to-end. The DVLA’s own intermediary layer handles authentication on behalf of the browser user, which is standard practice, but it means that any rate limiting applied is based on IP or session heuristics rather than authenticated identity.

    Compare this with how HMRC’s systems handle equivalent public-facing data. HMRC’s CONNECT system is deliberately opaque about its own query infrastructure precisely because making bulk enumeration easy would undermine its fraud detection value. The DVLA doesn’t have the same luxury because vehicle tax and MOT status genuinely need to be publicly checkable, but the absence of any challenge mechanism on high-frequency queries from single sources is a design gap that has never been properly closed.

    Adding a CAPTCHA or proof-of-work challenge to the web form wouldn’t stop determined programmatic scrapers for long, but it would raise the cost. Implementing anomaly detection on query patterns (sequential VRM enumeration is obvious when you look at the logs) and feeding that into a threat intelligence feed is the more robust approach. The NCSC’s Early Warning service is built around exactly this kind of behavioural signal analysis, but that architecture isn’t currently connected to DVLA’s public query infrastructure in any visible way.

    What would actually fix this

    The simplest mitigation is aggressive IP-based rate limiting with exponential backoff on the public web service, combined with log analysis for sequential or near-sequential VRM patterns. Not groundbreaking, not expensive. The DVLA already has the telemetry to do this.

    Longer term, moving the public-facing VES to a model where users authenticate with GOV.UK One Login would allow per-user query limits and proper audit trails. GOV.UK One Login’s architecture is built to handle exactly this kind of authenticated public service interaction. Yes, adding login friction will reduce casual use. That’s the trade-off the DVLA needs to have an honest conversation about publicly.

    The DVLA does publish its API terms of service and runs takedowns against commercial entities it identifies scraping without authorisation. But reactive enforcement after the fact is a lot less useful than building the detection into the infrastructure from day one. The data is too rich, too accessible, and too useful to bad actors for the current approach to hold much longer.