# UK HGV Operator Licence Lookup (Official DVSA) (`japan-open-data/uk-hgv-operator-licence`) Actor

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.

- **URL**: https://apify.com/japan-open-data/uk-hgv-operator-licence.md
- **Developed by:** [Japan Open Data](https://apify.com/japan-open-data) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.00 / 1,000 licence rows

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## UK HGV Operator Licence Lookup (Official DVSA)

**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.

| Input | Type | Default | What it does |
|---|---|---|---|
| `operatorName` | string | `""` | Case-insensitive; every word must appear in the operator's name, e.g. `haulage`, `stobart`, `coaches`. |
| `postcode` | string | `""` | Postcode area (`CF`), district (`CF10`), sector (`CF10 1`) or full postcode (`CF10 1AA`). Matches the correspondence address or any operating centre. |
| `trafficArea` | string | `all` | `all` 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`. |
| `companyNumber` | string | `""` | Exact Companies House number, e.g. `01234567` or `SC123456` (short numbers are zero-padded). |
| `vehicleCategory` | `any` / `goods` / `psv` | `any` | `goods` = HGV (goods vehicle) licences, `psv` = bus and coach licences. |
| `licenceType` | `any` / `standard` / `standard_national` / `standard_international` / `restricted` | `any` | `standard` = hire-and-reward operators (national or international); `restricted` = own-account fleets. |
| `minVehicles` | integer | `0` | Only licences authorising at least this many vehicles. |
| `maxVehicles` | integer | – | Only licences authorising at most this many vehicles. |
| `sortBy` | `vehicles` / `name` / `continuationDate` / `licenceNumber` | `vehicles` | Largest fleet first, A–Z, soonest renewal first, or by licence number. |
| `maxResults` | integer | `50` | Maximum 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:

```json
{
  "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):

```json
{
  "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):

```json
{
  "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

| Field | Description |
|---|---|
| `status` | `ok`, `not_found` or `error`. |
| `licenceNumber` | Operator licence number. Starts with `O` for goods vehicle (HGV) licences and `P` for bus / coach (PSV) licences; the second letter is the traffic area. |
| `operatorName` | Licence holder (a company or organisation). |
| `operatorType` | `Limited Company`, `Limited Liability Partnership` or `Other organisation` (councils, NHS trusts, charities, universities…). |
| `companyNumber` / `companiesHouseUrl` | Companies House number as recorded on the licence, and a link to the company's Companies House page (`null` when there is no usable number). |
| `licenceType` | `Standard National`, `Standard International` (hire and reward) or `Restricted` (own goods / own passengers only). |
| `vehicleCategory` | `goods` (HGV) or `psv` (bus and coach). |
| `licenceStatus` | `valid`, `curtailed` or `suspended` (the register lists live licences only). |
| `trafficArea` | Traffic Commissioner area that issued the licence. |
| `vehiclesAuthorised` / `trailersAuthorised` | Maximum number of vehicles / trailers the licence allows (fleet size). |
| `vehiclesSpecified` | Vehicles currently specified (registered) on the licence. |
| `operatingCentreCount` / `operatingCentrePostcodes` | Number of operating centres (where the vehicles are kept) and their distinct postcodes, comma-separated. Street addresses are not output (see Privacy). |
| `operatingCentresTruncated` | `true` 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` / `postcodeArea` | Postcode 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`. |
| `continuationDate` | Date by which the licence must next be continued (renewed), `YYYY-MM-DD`. |
| `dataUpdatedAt` | When DVSA last refreshed the traffic-area files (UTC; the oldest file date when several areas are read). |
| `fetchedAt`, `source` | Run time (UTC) and attribution. |
| `error` | On `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:

| Event | Price | When it is charged |
|---|---|---|
| Licence row (`result-row`) | **$0.004** ($4 per 1,000 rows) | Each `ok` row (one licence) |
| Actor start | **$0.001** | Once per run |

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

| Example | Rows | Cost |
|---|---|---|
| **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) | 50 | about $0.20 |
| Lead list: 500 hauliers with a Standard licence in your region | 500 | about $2.00 |
| Every goods vehicle licence with 75+ vehicles in Great Britain (1,060 licences on 22 Sep 2026) | 1,060 | about $4.24 |
| Whole register (every company licence, about 54,000) | ~54,000 | about $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:

```bash
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):**

```python
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, "<person> trading as <company>" licences, and a few licences whose holder name reads like people's names without a company word. In total about 15,000 of the register's 69,000 licences are left out and about 54,000 are returned. If a haulier you know is missing, it most likely holds its licence as a sole trader or partnership — the Actor will return a free `not_found` row for it (only the $0.001 run fee applies).

#### 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).

#### Is it legal to use this data?

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](https://www.data.gov.uk/dataset/2a67d1ee-8f1b-43a3-8bc6-e8772d162a3c/traffic-commissioners-goods-and-public-service-vehicle-operator-licence-records) (data.gov.uk).
- License: [Open Government Licence v3.0](https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/). 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 "<person> trading as <company>";
- 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

- [UK Visa Sponsor Register Tracker (Daily Changes)](https://apify.com/japan-open-data/uk-visa-sponsor-register) — new, removed and downgraded UK visa sponsor licences from the official Home Office register, or check whether a company can sponsor workers.
- [US Flood Zone Lookup by Address (FEMA NFHL)](https://apify.com/japan-open-data/us-flood-zone-lookup) — official FEMA flood zone (A, AE, VE, X…), base flood elevation and FIRM panel for any U.S. address or coordinates.
- [UK Flood Risk Lookup by Postcode (England)](https://apify.com/japan-open-data/uk-flood-zone-lookup) — the other UK dataset in this series: Environment Agency flood zone, recorded flood extents and flood defences for any postcode or coordinates in England, one row per location.
- [UK Waste Carrier Licence Check (Environment Agency)](https://apify.com/japan-open-data/uk-waste-carrier-register) — another UK business register in this series (many hauliers also hold a waste carrier registration): check whether a company is a registered waste carrier, broker or dealer in England by registration number, company name or postcode radius, from the Environment Agency's public register (companies and organisations only).
- [Mexico Gas Prices API by Station (Official CNE)](https://apify.com/japan-open-data/mexico-fuel-station-prices) — today's gas and diesel prices at every Mexican gas station, from the official CNE feed.
- [Argentina Fuel Prices API by Station (Official)](https://apify.com/japan-open-data/argentina-fuel-station-prices) — last reported gasoline (nafta), diesel and CNG prices at every Argentine gas station, with the report date of each price.
- [US Hail History by Location (NOAA NEXRAD Radar)](https://apify.com/japan-open-data/us-hail-history) — every hail day near any U.S. latitude/longitude with max estimated hail size.
- [US Storm Reports API: Hail, Wind & Tornado (NWS)](https://apify.com/japan-open-data/us-storm-reports-live) — U.S. hail, wind, tornado and flood reports from official NWS Local Storm Reports.
- [TSA Checkpoint Travel Numbers (Daily, Weekly & YoY)](https://apify.com/japan-open-data/tsa-checkpoint-throughput) — daily U.S. TSA airport checkpoint traveler counts.
- [Japan Postal Code & Address in English](https://apify.com/japan-open-data/japan-postal-code-english) — Japanese postal codes and addresses in English/romaji, kanji and kana.
- [France Property Risk Lookup by Address (Georisques)](https://apify.com/japan-open-data/france-property-risk-lookup) — official Géorisques risks for any French address or coordinates: flood, clay shrink-swell, seismic zone, radon, past natural-disaster declarations and nearby industrial / polluted sites, one row per location.
- [England Listed Building & Conservation Area Check](https://apify.com/japan-open-data/england-heritage-constraint-lookup) — official listed buildings, scheduled monuments, conservation areas and Article 4 directions for any postcode or coordinates in England, one row per location.
- [UK NHS Organisation Lookup (Official ODS Codes)](https://apify.com/japan-open-data/uk-nhs-organisation-lookup) — GP practices, pharmacies, dentists, hospitals and NHS trusts from the official ODS register, by postcode, type or ODS code (organisations only).

### Feedback

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

# Actor input Schema

## `operatorName` (type: `string`):

Case-insensitive; every word must appear in the operator's name, e.g. "haulage", "eddie stobart", "coaches". Leave empty to list all companies that match the other filters.

## `postcode` (type: `string`):

Matches the correspondence address or any operating centre: postcode area ("CF"), district ("CF10"), sector ("CF10 1") or full postcode ("CF10 1AA"). Leave empty for all postcodes.

## `trafficArea` (type: `string`):

Traffic Commissioner area that issued the licence. Choosing one area reads only that area's file, which is faster; "all" searches the whole of Great Britain.

## `companyNumber` (type: `string`):

Exact company registration number, e.g. "01234567" or "SC123456" (leading zeros are added for short numbers). Leave empty to ignore.

## `vehicleCategory` (type: `string`):

"goods" = goods vehicle (HGV) licences, "psv" = public service vehicle (bus and coach) licences.

## `licenceType` (type: `string`):

"standard" = Standard National or Standard International (hire and reward operators); "restricted" = own-account only.

## `minVehicles` (type: `integer`):

Only licences authorising at least this many vehicles (fleet size). 0 = no minimum.

## `maxVehicles` (type: `integer`):

Only licences authorising at most this many vehicles. Leave empty (or 0) for no maximum.

## `sortBy` (type: `string`):

"vehicles" = largest fleets first; "name" = A to Z; "continuationDate" = licences due for renewal soonest first; "licenceNumber".

## `maxResults` (type: `integer`):

Maximum number of licence rows to return (1 to 70000).

## Actor input object example

```json
{
  "operatorName": "",
  "postcode": "",
  "trafficArea": "all",
  "companyNumber": "",
  "vehicleCategory": "any",
  "licenceType": "any",
  "minVehicles": 0,
  "sortBy": "vehicles",
  "maxResults": 50
}
```

# Actor output Schema

## `results` (type: `string`):

Licence number, operator, licence type and status, vehicles and trailers authorised, operating centres and Companies House link per licence. Table view: overview.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("japan-open-data/uk-hgv-operator-licence").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("japan-open-data/uk-hgv-operator-licence").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call japan-open-data/uk-hgv-operator-licence --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,japan-open-data/uk-hgv-operator-licence"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/hLfNEtadTWo7HbckT/builds/tK5Ttw3Aq0WRt5dx9/openapi.json
