UK HGV Operator Licence Lookup (Official DVSA) avatar

UK HGV Operator Licence Lookup (Official DVSA)

Pricing

from $4.00 / 1,000 licence rows

Go to Apify Store
UK HGV Operator Licence Lookup (Official DVSA)

UK HGV Operator Licence Lookup (Official DVSA)

Look up UK HGV and bus operators in the official DVSA O-licence register by name, postcode or fleet size: licence type, vehicle counts, operating centre postcodes, Companies House link. Companies only — no personal data, addresses as postcodes only. No API key; JSON via API or MCP. $4/1,000 rows.

Pricing

from $4.00 / 1,000 licence rows

Rating

0.0

(0)

Developer

Japan Open Data

Japan Open Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 hours ago

Last modified

Categories

Share

Look up Great Britain's official register of goods vehicle (HGV) and bus / coach operator licences — the "O-licence" register kept by the Driver and Vehicle Standards Agency (DVSA) for the Traffic Commissioners. Search haulage and trucking companies (hauliers), own-account fleets and coach operators by company name, Companies House number, postcode, traffic area, licence type and fleet size, and get one flat JSON row per licence: licence number, type and status, vehicles and trailers authorised, operating centre postcodes, renewal date and a Companies House link. No API key, $4 per 1,000 licence rows.

  • Companies only — no personal data, addresses as postcodes only. Licences held by sole traders and partnerships are never returned, the names of directors, partners and transport managers are never output, and street addresses are replaced by postcodes. You get about 54,000 of the register's 69,000 licences: those held by limited companies, LLPs and public / charitable organisations.
  • Official data, read live on every run. DVSA publishes the register on data.gov.uk (one file per traffic area) under the Open Government Licence v3.0. DVSA describes the files as weekly, but they are sometimes not refreshed for several weeks, so every row carries dataUpdatedAt — the date DVSA last refreshed the file you are reading.
  • Built for lead lists. Sorted by fleet size by default, with minVehicles, licenceType (hire-and-reward "standard" vs own-account "restricted"), vehicleCategory (HGV vs bus / coach) and postcode filters, plus the Companies House number to join with your CRM.
  • Pay per licence row. $0.004 per licence row plus $0.001 per run; "nothing found" and error rows are free.

What can you do with the UK operator licence data?

  1. Sell to UK hauliers and fleets. Fuel cards, telematics, tyres, leasing, maintenance, insurance, driver agencies: list every haulage company with 10+ trucks in a postcode area, with its operating centre postcodes and Companies House link (for the registered office address), and refresh the list on a schedule.
  2. Check a carrier or subcontractor. Before you give a load to a haulier, confirm that the company holds a valid Standard licence, how many vehicles it is authorised for, and when the licence is due for continuation.
  3. Market research, M&A and credit. Count and rank operators by traffic area, licence type or fleet size; watch fleets grow or shrink by running the Actor on a schedule; join on companyNumber with Companies House data.
  4. A UK alternative to US FMCSA carrier lookups. If you already use FMCSA / DOT carrier data for US trucking companies, this is the Great Britain equivalent: the official operator license (licence) register, searchable by fleet size and location.
  5. AI agents. "Which bus companies operate in Cardiff?", "Is ACME HAULAGE LTD licensed and how many trucks may it run?" — one small JSON row per licence, ready for an LLM.

How to use

  1. Click Start with the default input: the 50 largest fleets (by vehicles authorised) in Great Britain.
  2. Narrow it down with any combination of Company name contains, Postcode, Traffic area, Companies House number, Vehicle category, Licence type and Minimum / maximum vehicles.
  3. Choose how to sort (largest fleet, name, soonest renewal, licence number) and how many rows you want (Maximum licences).
  4. Download the results as JSON, CSV or Excel, or call the Actor via API / MCP (see below).
  5. To keep a list fresh, add an Apify Schedule and compare dataUpdatedAt between runs to see whether DVSA has published new files.

Choosing a single Traffic area makes a run faster (only that area's file is read). Postcodes match the correspondence address or any operating centre of a licence.

Input

No input is required; every field has a default.

InputTypeDefaultWhat it does
operatorNamestring""Case-insensitive; every word must appear in the operator's name, e.g. haulage, stobart, coaches.
postcodestring""Postcode area (CF), district (CF10), sector (CF10 1) or full postcode (CF10 1AA). Matches the correspondence address or any operating centre.
trafficAreastringallall or one of East of England, North East of England, North West of England, London and the South East of England, West Midlands, West of England, Wales, Scotland.
companyNumberstring""Exact Companies House number, e.g. 01234567 or SC123456 (short numbers are zero-padded).
vehicleCategoryany / goods / psvanygoods = HGV (goods vehicle) licences, psv = bus and coach licences.
licenceTypeany / standard / standard_national / standard_international / restrictedanystandard = hire-and-reward operators (national or international); restricted = own-account fleets.
minVehiclesinteger0Only licences authorising at least this many vehicles.
maxVehiclesinteger–Only licences authorising at most this many vehicles.
sortByvehicles / name / continuationDate / licenceNumbervehiclesLargest fleet first, A–Z, soonest renewal first, or by licence number.
maxResultsinteger50Maximum number of licence rows (1–70,000).

Input example

Haulage companies with a Standard licence and at least 10 trucks in the Cardiff (CF) postcode area:

{
"vehicleCategory": "goods",
"licenceType": "standard",
"postcode": "CF",
"minVehicles": 10,
"maxResults": 100
}

Output

One row per operator licence (status: "ok"), sorted as requested. If nothing matches, one free row with status: "not_found" and an error sentence that says what to change; invalid input gives one free status: "error" row.

The first row returned by the input example above (real run, 22 September 2026):

{
"status": "ok",
"licenceNumber": "OG0079437",
"operatorName": "OWENS (ROAD SERVICES) LTD",
"operatorType": "Limited Company",
"companyNumber": "01301976",
"companiesHouseUrl": "https://find-and-update.company-information.service.gov.uk/company/01301976",
"licenceType": "Standard National",
"vehicleCategory": "goods",
"licenceStatus": "valid",
"trafficArea": "Wales",
"vehiclesAuthorised": 345,
"trailersAuthorised": 569,
"vehiclesSpecified": 267,
"operatingCentreCount": 10,
"operatingCentresTruncated": false,
"operatingCentrePostcodes": "LL13 9XN, NP19 4PU, SA13 2NG, SA12 7DJ, SA14 8YP, SA14 8US, NP26 3DG, CF10 4LU, SA14 8QE, CF31 3XB",
"correspondencePostcode": "SA14 8QE",
"postcodeArea": "SA",
"continuationDate": "2027-11-30",
"dataUpdatedAt": "2026-09-07T23:02:43Z",
"fetchedAt": "2026-09-22T05:55:48Z",
"source": "Driver and Vehicle Standards Agency (DVSA) / Traffic Commissioners for Great Britain - operator licence records (data.gov.uk). Contains public sector information licensed under the Open Government Licence v3.0. Companies and organisations only; personal names removed by this Actor."
}

This licence matches CF because two of its operating centres are in the CF (Cardiff) postcode area (CF10 4LU, CF31 3XB), although its correspondence postcode is in the SA (Swansea) area.

When nothing matches (free row):

{
"status": "not_found",
"fetchedAt": "2026-09-22T05:58:53Z",
"dataUpdatedAt": "2026-09-07T23:02:45Z",
"error": "No company or organisation operator licence found with name containing \"ZZQQXX NOTHING\" in the Wales traffic area; loosen the filters (e.g. a shorter \"operatorName\", a postcode area such as \"CF\", a lower \"minVehicles\") or set \"trafficArea\" to \"all\". Licences held by sole traders and partnerships are never returned."
}

Output fields

FieldDescription
statusok, not_found or error.
licenceNumberOperator licence number. Starts with O for goods vehicle (HGV) licences and P for bus / coach (PSV) licences; the second letter is the traffic area.
operatorNameLicence holder (a company or organisation).
operatorTypeLimited Company, Limited Liability Partnership or Other organisation (councils, NHS trusts, charities, universities…).
companyNumber / companiesHouseUrlCompanies House number as recorded on the licence, and a link to the company's Companies House page (null when there is no usable number).
licenceTypeStandard National, Standard International (hire and reward) or Restricted (own goods / own passengers only).
vehicleCategorygoods (HGV) or psv (bus and coach).
licenceStatusvalid, curtailed or suspended (the register lists live licences only).
trafficAreaTraffic Commissioner area that issued the licence.
vehiclesAuthorised / trailersAuthorisedMaximum number of vehicles / trailers the licence allows (fleet size).
vehiclesSpecifiedVehicles currently specified (registered) on the licence.
operatingCentreCount / operatingCentrePostcodesNumber of operating centres (where the vehicles are kept) and their distinct postcodes, comma-separated. Street addresses are not output (see Privacy).
operatingCentresTruncatedtrue when DVSA's file cut the operating-centre list at 1,024 characters (large fleets); the count and postcodes then cover the first centres only.
correspondencePostcode / postcodeAreaPostcode of the licence's correspondence address, and its postcode area (e.g. CF). For a mailing address use the company's registered office via companiesHouseUrl.
continuationDateDate by which the licence must next be continued (renewed), YYYY-MM-DD.
dataUpdatedAtWhen DVSA last refreshed the traffic-area files (UTC; the oldest file date when several areas are read).
fetchedAt, sourceRun time (UTC) and attribution.
errorOn not_found / error rows: one English sentence explaining what to change.

How much does it cost?

This Actor uses Pay per event pricing — you pay for licence rows, not for compute time:

EventPriceWhen it is charged
Licence row (result-row)$0.004 ($4 per 1,000 rows)Each ok row (one licence)
Actor start$0.001Once per run

not_found and error rows are free; the $0.001 start fee is charged once per run, even when nothing is found.

ExampleRowsCost
Is this haulier licensed? ({"operatorName": "owens road services", "maxResults": 1})1$0.005
All licences of one company ({"companyNumber": "01301976"} — 3 licences in 3 traffic areas)3$0.013
Default run (50 largest fleets in Great Britain)50about $0.20
Lead list: 500 hauliers with a Standard licence in your region500about $2.00
Every goods vehicle licence with 75+ vehicles in Great Britain (1,060 licences on 22 Sep 2026)1,060about $4.24
Whole register (every company licence, about 54,000)~54,000about $217
  • Cheapest way to start: check a single company with maxResults: 1 — one row, half a cent.
  • Set a maximum cost per run when you start the Actor to cap spending; if the limit is reached, the Actor stops cleanly and says so in the status message.

Use via API / MCP (AI agents)

Apify API (HTTP). Run the Actor and get the rows in one call:

curl -X POST "https://api.apify.com/v2/acts/japan-open-data~uk-hgv-operator-licence/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"operatorName": "coaches", "vehicleCategory": "psv", "postcode": "CF", "maxResults": 20}'

Python (apify-client):

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("japan-open-data/uk-hgv-operator-licence").call(run_input={
"trafficArea": "Scotland", "licenceType": "standard", "minVehicles": 20, "maxResults": 200,
})
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
print(row["status"], row.get("licenceNumber"), row.get("operatorName"), row.get("vehiclesAuthorised"))

MCP (Claude, ChatGPT, Cursor and other AI agents). Add this Actor as a tool through the Apify MCP server (https://mcp.apify.com), for example with ?tools=japan-open-data/uk-hgv-operator-licence. No input is required.

Recommended agent settings:

  • "Is company X licensed?" → {"companyNumber": "<number>"} or {"operatorName": "<name words>", "maxResults": 5}.
  • "Hauliers near postcode Y" → {"postcode": "<area or district>", "vehicleCategory": "goods", "licenceType": "standard", "maxResults": 20}.
  • Keep maxResults small (5–50) for questions; raise it only for list exports.
  • Always read status first; on not_found the error sentence tells you which filter to loosen. A company that trades as a sole trader or partnership will always be not_found (see FAQ).

Summary for AI agents: Input: optional filters (operatorName, companyNumber, postcode, trafficArea, vehicleCategory, licenceType, minVehicles, maxVehicles, sortBy, maxResults). Output: flat rows, one per Great Britain operator licence held by a company or organisation, with status, licence number/type/status, vehicles and trailers authorised, operating centre postcodes, companyNumber, continuationDate and dataUpdatedAt. No personal names, no street addresses. $0.004 per ok row + $0.001 per run; not_found / error rows are free.

FAQ

Why can't I find an operator I know?

Licences held by sole traders and partnerships are excluded on purpose, because the licence holder is a private person. So are limited partnerships, "

How fresh is the data?

The Actor downloads DVSA's current files on every run, so you always get the latest published version. DVSA describes the register as updated weekly, but in practice the files can go several weeks without a refresh (for example, the files dated 7 September 2026 were still the current ones on 22 September 2026). Check dataUpdatedAt on each row; licences granted, revoked or changed after that date are not reflected yet.

How much does it cost to export a lead list?

$4 per 1,000 licences plus $0.001 per run — for example about $4.24 for all 1,060 goods vehicle licences with 75+ vehicles. See "How much does it cost?" above.

Can I get directors, transport managers or full addresses?

No. The Actor never outputs personal names, and it outputs postcodes only because DVSA's free-text address fields sometimes contain a person's name or a director's home address. Use companiesHouseUrl for a company's registered office address and officers.

Does it cover Northern Ireland?

No. Northern Ireland operator licensing is run separately by the DVA; this register covers Great Britain (England, Wales, Scotland).

The register is published by DVSA as open data under the Open Government Licence v3.0, which allows commercial use and re-use with attribution (included in every row's source). The Actor only outputs licences held by companies and organisations. You remain responsible for how you use the data, for example UK direct-marketing rules when you contact companies.

Known limitations

  • The operator name is as typed in DVSA's register (often upper case, some odd spacing); postcodes are cleaned up where possible.
  • For very large fleets DVSA's file cuts the operating-centre list at 1,024 characters (operatingCentresTruncated: true); operatingCentreCount and operatingCentrePostcodes then cover the first centres only.
  • Data freshness depends on DVSA (see the FAQ): check dataUpdatedAt.
  • A run over all of Great Britain reads about 81 MB of files and takes about 5–10 seconds for small result sets; exporting all 54,000 rows took about 27 seconds in our tests. Keep the default 512 MB memory for large exports.
  • A licence appears under the traffic area that issued it; its operating centres can be in other areas. Use postcode to search by location.
  • A few small real companies whose registered name has no company word (e.g. a two-word name that looks like a person's name) are left out as a precaution.

Data source and license

  • Source: Driver and Vehicle Standards Agency (DVSA) / Traffic Commissioners for Great Britain, Traffic Commissioners: goods and public service vehicle operator licence records (data.gov.uk).
  • License: Open Government Licence v3.0. Contains public sector information licensed under the Open Government Licence v3.0.
  • Changes made by this Actor: rows grouped into one row per licence, sole trader / partnership licences and person-like holder names removed, director / partner / transport manager columns dropped, addresses reduced to postcodes, Companies House links added.
  • This Actor is not affiliated with, endorsed by or connected to DVSA, the Traffic Commissioners or the UK Government.

Privacy

The register includes private persons (sole traders, partners, directors and transport managers). This Actor:

  • returns only licences whose holder is a limited company, an LLP or an organisation such as a council, NHS body, charity or university (for "Other" holders the name must contain an organisation word such as COUNCIL, TRUST or LTD, and "trading as" names are excluded);
  • drops sole trader, partnership and limited partnership licences entirely, as well as licences whose holder name reads like people's names (e.g. initials and surnames without a company word) or "
  • never reads the director / partner and transport manager columns into its output;
  • outputs postcodes only, never street addresses, because the register's free-text address fields can contain people's names and home addresses.

More from Japan Open Data

Feedback

Missing a filter or a field? Open an issue on the Actor's Issues tab with your input and what you expected.