# UK Landlord Register (`spookyweb/uk-landlord-register`) Actor

🏷️ From $0.60 / 1K | Postcodes in, landlords out. Bulk searches the Scottish Landlord Register and Rent Smart Wales, returning one row per rental property: the registered landlord, the letting agent, the contact address, the registration number, and whether it is registered at all.

- **URL**: https://apify.com/spookyweb/uk-landlord-register.md
- **Developed by:** [丂卩ㄖㄖҜㄚ](https://apify.com/spookyweb) (community)
- **Categories:** Real estate, Lead generation, AI
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.60 / 1,000 register checks

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## UK Landlord Register

### 🔍 What does UK Landlord Register do?

**UK Landlord Register turns two one-at-a-time government search forms into a list you can run.** Give it a postcode and it returns **every rental property at that postcode** with the **registered landlord**, the **letting agent**, the landlord's **contact address**, the **registration number** and the council that enforces it. Properties with **no register entry** come back too, which in both Scotland and Wales is the whole point: letting an unregistered property is a criminal offence.

The quickest way to try it is to leave the prefilled postcode `EH6 6QH` in place and hit Start. That is a street in Leith with 67 addresses on it, and roughly a third of them are registered.

It reads two live registers:

- the **[Scottish Landlord Register](https://landlordregistrationscotland.gov.uk/)**, which covers all 32 Scottish local authorities
- **[Rent Smart Wales](https://rentsmart.gov.wales/)**, the Welsh landlord and agent licensing register

England has no public landlord register yet. The Private Rented Sector Database created by the Renters' Rights Act begins its rollout later in 2026, and until it lands an English postcode comes back flagged rather than silently dropped.

### 🆚 What is the official route, and what does this add?

Both registers are **free to search and genuinely good**, and neither needs an account. The Scottish one is at [landlordregistrationscotland.gov.uk](https://landlordregistrationscotland.gov.uk/search), the Welsh one at [rentsmart.gov.wales](https://rentsmart.gov.wales/en/check-register/). If you want to check one property, use them directly.

What neither offers is **bulk**. There is no API, no download and no export. The Scottish register takes one postcode, shows you a dropdown of addresses, and makes you click each address in turn to see its landlord. Rent Smart Wales shows twenty results a page. Checking a street means dozens of clicks; checking a council area is not realistically possible by hand.

UK Landlord Register adds exactly that: **a list in, a table out**, both nations in one schema, run from a schedule or an API call, with the results going straight into a spreadsheet, a CRM or a database. No key management, no account, and one row per property whether or not the register had an entry for it.

### 📊 What data can I extract?

| Field | What it is |
|---|---|
| 🏠 `propertyAddress` | The rental property as the register holds it |
| 📮 `postcode` | The postcode searched, in canonical form |
| 🌍 `nation` | Which register answered, Scotland or Wales |
| 📋 `registrationStatus` | The register's answer, in full, from `registered` to `no-register` |
| ✅ `isRegistered` | True only for a live entry, so it is safe to filter on |
| 🔢 `registrationNumber` | The landlord registration number. Scotland |
| 👤 `landlordName` | The registered landlord, a person or a company |
| 🏷️ `landlordType` | How the register classifies them, such as Company or Charity |
| 👥 `jointOwners` | Any further owners named alongside the lead landlord. Scotland |
| 👥 `hasJointOwners` | True where a second owner is named |
| 🏢 `agentName` | The letting or managing agent, empty where the landlord self-manages |
| 🏢 `isAgentManaged` | True where an agent is named |
| 🏢 `agents` | Every connected agent, with licence status and expiry in Wales |
| 📜 `licences` | The licences the property is let or managed under. Wales |
| 🌐 `websiteUrl` | The agent's own website, from an agent name search. Wales |
| 📅 `registeredDate` | When the landlord first registered, as an ISO date. Wales |
| 📅 `expiryDate` | When the registration expires, as an ISO date. Wales |
| 🏛️ `localAuthority` | The council that holds and enforces the registration. Scotland |
| ✉️ `contactAddress` | The landlord's own contact address, often not the rental property. Scotland |
| 🛠️ `repairingStandardEnforcementOrder` | Whether an enforcement order is recorded. Scotland |
| 📝 `consentToLet` | Whether consent to let is recorded. Scotland |
| 🔑 `addressKey` | The register's identifier for the address, so it can be re-checked directly |
| 🔗 `sourceUrl` | The register page the row was read from |
| 🕒 `retrievedAt` | When the register was read, as an ISO timestamp |
| 🔎 `searchType` | Which search produced the row |
| 🔎 `searchTerm` | The input value that asked for it |

Fields marked Scotland or Wales are published by one register and not the other. They arrive empty rather than absent, so one export holds both nations without a ragged table.

### 💡 Why search the landlord register?

**Because registration is a legal duty with a name and an address attached to it.**

In Scotland, private landlords must register with their local authority under Part 8 of the **Antisocial Behaviour etc. (Scotland) Act 2004**. Operating unregistered is a **criminal offence**, carrying a penalty on conviction of **up to £50,000** and a ban on letting for **up to five years**. Every rental advert must display a current registration number, and registration has to be renewed every three years.

In Wales, landlords must register and anyone letting or managing must be **licensed** under the **Housing (Wales) Act 2014**.

That makes the register the only public list that connects a rental property to the real person or company behind it, and it makes "is this property registered" a question with money attached.

**Letting agents.** The `agentName` column is empty whenever a landlord manages the property themselves. A landlord with several properties and no agent named is a self-managing portfolio owner, and that is a prospecting list nobody else is selling. Across 452 registered Scottish records sampled while building this, 353 named an agent and 99 did not.

**Councils and enforcement teams.** Finding unregistered lets is a statutory duty carried out one postcode at a time. `registrationStatus: not-registered` across a ward is that job as a spreadsheet, and `repairingStandardEnforcementOrder` surfaces properties already under an order.

**Buy-to-let lenders and insurers.** Confirming a borrower or policyholder is compliant before lending or covering, in bulk, at application time.

**Tenants, advice services and deposit schemes.** Checking a landlord is who they say they are, and that the number on the advert is real, before anyone signs.

**Renewal and expiry work.** In Wales, `expiryDate` turns the register into a dated pipeline of registrations coming up for renewal.

### 🚀 How do I use UK Landlord Register?

1. Click **Try for free** at the top of this page.
2. Paste your postcodes into **Postcodes**, one per line. Full postcodes only, such as `EH6 6QH` or `CF24 4AA`, because neither register accepts a partial one.
3. Optionally add Scottish **registration numbers**, or Welsh **landlord** and **agent names**, to search those ways as well. Those three return the landlord or agent themselves rather than a list of their properties, because that is what each register publishes.
4. Leave **Include properties with no register entry** on unless you only want registered ones.
5. Set **Maximum properties** to cap the run while you are testing.
6. Press **Start**. Watch the log or come back later.
7. Take the results from the **Storage** tab as JSON, CSV, Excel or XML, or pull them from the API.

### ⬇️ Input

| Field | Type | What it does |
|---|---|---|
| `postcodes` | array | Full postcodes to check. Every property at each one is returned |
| `registrationNumbers` | array | Scottish registration numbers to look up, such as `201203/230/14591` |
| `landlordNames` | array | Landlord names to look up in Wales. Needs the full name |
| `agentNames` | array | Agent names to look up in Wales. Matches part of a name |
| `nations` | array | `Scotland`, `Wales`, or both. Both by default |
| `includeUnregistered` | boolean | Keep properties with no register entry. `true` by default |
| `maxResults` | integer | Stop after this many properties. `1000` by default |
| `concurrency` | integer | Parallel lookups, 1 to 10. `5` by default |

```json
{
  "postcodes": ["EH6 6QH", "G3 6LG", "CF24 4AA"],
  "includeUnregistered": true,
  "maxResults": 500,
  "concurrency": 5
}
```

### ⬆️ Output

#### Table view

| Property | Postcode | Register | Status | Landlord | Agent | Reg number | Council |
|---|---|---|---|---|---|---|---|
| 59, TIMBER BUSH, EDINBURGH, EH6 6QH | EH6 6QH | Scotland | registered | KAAS Properties Ltd | | 201203/230/14591 | City of Edinburgh |
| 6, CAMPHILL AVENUE, GLASGOW, G41 3AY | G41 3AY | Scotland | registered | Laura Chong | | 216242/260/14301 | Glasgow City |
| FLAT 1, 18 TIMBER BUSH, EDINBURGH, EH6 6QH | EH6 6QH | Scotland | not-registered | | | | |
| 9, SALISBURY ROAD, CATHAYS, CF24 4AA | CF24 4AA | Wales | registered | Daniel Bultitude-Froud | CPS Property Management Limited (T/A CPS Homes) | | |

#### JSON

```json
{
  "searchType": "postcode",
  "searchTerm": "EH6 6QH",
  "nation": "Scotland",
  "postcode": "EH6 6QH",
  "propertyAddress": "59, TIMBER BUSH, EDINBURGH, EH6 6QH",
  "registrationStatus": "registered",
  "isRegistered": true,
  "registrationNumber": "201203/230/14591",
  "landlordName": "KAAS Properties Ltd",
  "landlordType": null,
  "jointOwners": [],
  "hasJointOwners": false,
  "agentName": null,
  "isAgentManaged": false,
  "agents": [],
  "licences": [],
  "registeredDate": null,
  "expiryDate": null,
  "localAuthority": "City of Edinburgh",
  "contactAddress": "Kindrochet, Gosford Road, LONGNIDDRY, EH32 0LF, UNITED KINGDOM",
  "repairingStandardEnforcementOrder": null,
  "consentToLet": null,
  "addressKey": "10094688950-0-0:59, TIMBER BUSH, EDINBURGH, EH6 6QH",
  "sourceUrl": "https://landlordregistrationscotland.gov.uk/search/registration/property-results",
  "retrievedAt": "2026-09-01T12:00:00.000Z"
}
```

A Welsh row fills `registeredDate`, `expiryDate`, `agents` and `licences`, and leaves `registrationNumber`, `localAuthority` and `contactAddress` empty, because that is what each register publishes.

### 📋 What each status means

The register does not simply answer yes or no, and the differences matter legally. Landlords are **registered**; letting agents are **licensed**; the two are separate regimes and have separate statuses here.

**A property**

| Status | What it means |
|---|---|
| `registered` | A live entry. The landlord is named |
| `registration-pending` | An application is lodged and awaiting review. **The property may legally be let while this is outstanding**, so this is not a breach |
| `not-registered` | No entry. Letting this property is an offence in both nations |
| `details-withheld` | The register declined to publish and refers you to the council. This is **not** the same as unregistered |

**A letting agent, from an agent name search**

| Status | What it means |
|---|---|
| `licensed` | A current licence |
| `not-licensed` | The register holds the agent but shows no current licence |
| `licence-status-unknown` | The agent's record was found but the licence block could not be read. Never treated as a finding against them, and never charged for |

**Neither register applies**

| Status | What it means |
|---|---|
| `no-register` | No public landlord register covers that postcode. Today that means England, Northern Ireland and the Crown Dependencies |
| `outside-selected-registers` | A register does cover it, but your `nations` setting excluded it |

Treating `registration-pending`, `details-withheld` or `licence-status-unknown` as a breach would accuse a compliant landlord or agent of an offence, so they are kept apart in the data rather than merged for tidiness, and none of the three is charged for.

### 🗺️ Coverage and limits

- **Scotland** covers all 32 local authorities through one portal. A postcode search returns the register's own address list, which holds residential addresses it knows about. A postcode it does not hold comes back as no addresses rather than as an error.
- **Wales** caps any single search at **300 results across 15 pages**. A postcode with more than that is reported to the cap, and the log says so rather than presenting a truncated total as complete.
- **Registration numbers** are a Scottish concept. Rent Smart Wales does not publish one against a property.
- **Name search** is Welsh only. The Scottish register cannot be searched by landlord or agent name, only by postcode or registration number.
- The Welsh register matches a **landlord** on the full name and an **agent** on part of one. That is the register's behaviour, not a choice made here.
- **A name search returns the person or company, not their properties.** Neither register publishes the link from a landlord or agent to the properties they hold, so a search for an agent returns that agent's licence, status, expiry and website, and a search for a landlord returns their registration and its dates. To find properties, search by postcode.
- An agent is **licensed** rather than registered, so an agent row uses `licensed` and `not-licensed` rather than the property statuses. Searching a common trading name often returns several separate legal entities with different licence states, which is what that column exists to surface.

### ⏱️ How long does a run take?

A Scottish property lookup takes about **0.1 to 5 seconds** depending on whether there is an entry to return, with a median near 0.13 seconds. A Welsh search takes 1.5 to 2.5 seconds and each detail page a further 0.4 to 4.7 seconds.

At the default concurrency of 5, a busy 67 address Scottish postcode finishes in well under a minute. Set the run timeout to **900 seconds** for a list of up to about twenty postcodes, and higher for a council-sized pull. The Actor watches the deadline and stops cleanly with everything it has collected rather than being killed part way, so a timeout costs you the rest of the list, never the rows already saved.

### 💰 How much does it cost?

Pay per event. You are charged **once per property or agent the register gave a definitive answer for**, and nothing else.

| Plan | Price per 1,000 records |
|---|---|
| Free | $1.00 |
| Bronze | $0.85 |
| Silver | $0.70 |
| Gold | $0.60 |
| Platinum | $0.50 |
| Diamond | $0.40 |

Worked through: `EH6 6QH` is a street in Leith with **67 addresses**, of which 23 are registered and 44 are not. Checking the whole street is 67 records, so **under 7 pence on the Free plan and under 3 pence on Diamond**, and it took 69 seconds. Checking a hundred such postcodes is roughly 6,700 records, so $6.70 at the top of the ladder and $2.68 at the bottom.

You are **not** charged for a postcode no register covers, a postcode the register does not hold, a lookup that failed, a property whose details the register declined to publish, or an agent whose licence status could not be read. Those still arrive as rows so your coverage is honest, and they cost nothing.

The Actor also carries Apify's standard start event at $0.00005, charged once per run.

### 🔌 Integrations

Runs on the Apify platform, so everything the platform does comes with it: **scheduling**, so a watchlist of postcodes is rechecked weekly; **webhooks**, to fire when a run finishes; **monitoring and alerting**; and integrations with **Zapier**, **Make**, **Slack**, **Google Sheets**, **GitHub** and **Airtable** without writing any glue.

**AI agents can call this Actor directly** through the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp) as `spookyweb/uk-landlord-register`. An assistant asked "who owns the flats on Timber Bush and are they registered" can run the search and read the table back without anyone opening a browser. The output schema is declared, so an agent can chain the results into whatever it does next.

### 🔗 Using UK Landlord Register with the Apify API

Start a run and wait for it:

```bash
curl -X POST "https://api.apify.com/v2/acts/spookyweb~uk-landlord-register/run-sync-get-dataset-items?token=YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"postcodes":["EH6 6QH"],"maxResults":100}'
```

With the JavaScript client:

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

const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const run = await client.actor('spookyweb/uk-landlord-register').call({
    postcodes: ['EH6 6QH', 'CF24 4AA'],
    includeUnregistered: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

const selfManaging = items.filter((row) => row.isRegistered && !row.isAgentManaged);
console.log(`${selfManaging.length} registered landlords managing their own properties`);
```

With the Python client:

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_TOKEN")
run = client.actor("spookyweb/uk-landlord-register").call(
    run_input={"postcodes": ["EH6 6QH"], "includeUnregistered": True}
)
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(row["propertyAddress"], row["registrationStatus"], row["landlordName"])
```

### ❓ FAQ

#### Do I need an account or an API key for the registers?

No. Both registers are public and open, and this Actor uses no key, no login and no proxy.

#### Does it cover England?

Not yet, because England has no public landlord register to read. The Private Rented Sector Database under the Renters' Rights Act starts rolling out later in 2026 and becomes mandatory nationally after that. An English postcode is returned today with `registrationStatus: no-register` so you can see exactly which of your list is not yet covered.

#### Why does a property show as not registered when I know it is let?

That is the finding, not a fault. A let property with no register entry is an offence in both nations. It can also mean the address is let by a landlord who registered a differently worded version of the same address, so check the neighbouring rows before acting on a single one.

#### What is the difference between not-registered and details-withheld?

`not-registered` means the register holds no entry. `details-withheld` means it holds one but declines to publish it and refers you to the council. Only the first is a compliance finding.

#### Can I search by landlord name in Scotland?

No. The Scottish register offers postcode and registration number only. Wales offers landlord and agent name as well, and both are supported here.

#### Can I get every property a landlord or agent holds?

Not from a name search, because neither register publishes that link. A name search returns the landlord's or agent's own record. To build a portfolio, search a list of postcodes and group the results by `landlordName` or `agentName`. Grouping 646 rows sampled across twelve Scottish postcodes that way surfaced one landlord holding 250 of them and another holding 43.

#### Why did my Scottish postcode return no addresses?

The Scottish register keeps its own address list, and a postcode outside it returns nothing. Commercial-only postcodes and some new-build postcodes are the usual cause. It is reported as no addresses rather than as an error.

#### How current is the data?

It is read live from the registers at the moment the run happens, which is why every row carries `retrievedAt`. Nothing is cached and nothing is stored between runs.

#### How many results can a Welsh search return?

Rent Smart Wales caps a single search at 300 results over 15 pages. Split a large area into individual postcodes to get past it.

#### Can I run this on a schedule?

Yes. Schedule it in the Apify Console to recheck a watchlist of postcodes as often as you like, and use a webhook to push changes wherever you need them.

### ⚖️ Is it legal to search the landlord register?

Both registers are **public registers, published deliberately** so that tenants, councils and the public can check them. The Scottish register states that all of its content is available under the [Open Government Licence v3.0](https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/), and Rent Smart Wales invites public checking by anyone.

This Actor reads the same public pages a person reads, at a deliberately modest rate, with no login and no attempt to reach anything the registers do not publish. It adds no data of its own and infers nothing.

The records contain **personal data**, because a landlord is often a private individual. That means the UK GDPR applies to what you do with the results even though the source is public. Have a lawful basis, use it for the purpose the register exists for, keep it no longer than you need it, and take your own advice on your particular use. Nothing here is legal advice.

### 👍 Your feedback

Found a register page this reads wrongly, or need a field that is published and not extracted? Open an issue on the **Issues** tab and it gets looked at. If you need a variation, a different cut of the same registers or a bulk job run for you, say so there too.

### 🔎 You might also like

- [UK Land Registry Sold Prices](https://apify.com/spookyweb/uk-land-registry-sold-prices) for what a property last sold for
- [UK Disqualified Directors](https://apify.com/spookyweb/uk-disqualified-directors) for checking the people behind a corporate landlord
- [UK Planning Applications](https://apify.com/spookyweb/uk-planning-applications) for what is being built or converted nearby
- [UK Business Rates](https://apify.com/spookyweb/uk-business-rates) for the commercial side of the same streets
- [Company Enrichment](https://apify.com/spookyweb/company-enrichment) for turning a corporate landlord name into a full company profile

# Actor input Schema

## `postcodes` (type: `array`):

Full UK postcodes to check, one per line, such as EH6 6QH or CF24 4AA. Every rental property registered at that postcode is returned with its landlord, and properties with no register entry are returned too. Scottish postcodes go to the Scottish landlord register and Welsh postcodes go to Rent Smart Wales. A partial postcode such as EH6 will not work because neither register accepts one.

## `registrationNumbers` (type: `array`):

Scottish landlord registration numbers to look up, such as 201203/230/14591. Each returns the landlord that number belongs to, their local authority and whether the registration is valid. Use this to check a number printed on a tenancy agreement or a letting advert.

## `landlordNames` (type: `array`):

Landlord names to look up in Rent Smart Wales, one per line. The Welsh register matches a landlord on the full name, so Daniel Bultitude-Froud finds the record and Bultitude on its own finds nothing. This field does nothing for Scotland, whose register cannot be searched by name.

## `agentNames` (type: `array`):

Letting or managing agent names to look up in Rent Smart Wales, one per line. The Welsh register matches part of an agent name, so Countrywide finds every branch. Use this to pull an agent's whole managed portfolio. This field does nothing for Scotland, whose register cannot be searched by agent.

## `nations` (type: `array`):

Which of the two live UK landlord registers to query. Leave both selected to let the postcode decide, which is almost always what you want. England has no public landlord register yet, so an English postcode is returned with a status saying so rather than being dropped.

## `includeUnregistered` (type: `boolean`):

Keep properties the register holds no entry for. Letting out an unregistered property is an offence in both Scotland and Wales, so these rows are usually the point of the search rather than noise. Turn this off to get registered properties only.

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

Stop after this many properties have been saved. A busy city postcode can hold sixty or more addresses, so a long postcode list adds up quickly. Raise it for a whole council area and lower it to sample a list before committing to the full run.

## `concurrency` (type: `integer`):

How many property lookups to run at once. Both registers are small public services, so five is the deliberate default and is plenty for most runs. Raise it to ten only when you are pulling a large list and are happy to work the register harder.

## Actor input object example

```json
{
  "postcodes": [
    "EH6 6QH"
  ],
  "nations": [
    "Scotland",
    "Wales"
  ],
  "includeUnregistered": true,
  "maxResults": 1000,
  "concurrency": 5
}
```

# Actor output Schema

## `properties` (type: `string`):

One row per property checked, with the registered landlord, the letting agent and the register's answer.

## `summary` (type: `string`):

Counts of what the run checked and how each property came back, written once the run has finished.

# 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 = {
    "postcodes": [
        "EH6 6QH"
    ],
    "nations": [
        "Scotland",
        "Wales"
    ],
    "includeUnregistered": true,
    "maxResults": 1000,
    "concurrency": 5
};

// Run the Actor and wait for it to finish
const run = await client.actor("spookyweb/uk-landlord-register").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 = {
    "postcodes": ["EH6 6QH"],
    "nations": [
        "Scotland",
        "Wales",
    ],
    "includeUnregistered": True,
    "maxResults": 1000,
    "concurrency": 5,
}

# Run the Actor and wait for it to finish
run = client.actor("spookyweb/uk-landlord-register").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 '{
  "postcodes": [
    "EH6 6QH"
  ],
  "nations": [
    "Scotland",
    "Wales"
  ],
  "includeUnregistered": true,
  "maxResults": 1000,
  "concurrency": 5
}' |
apify call spookyweb/uk-landlord-register --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,spookyweb/uk-landlord-register"
        }
    }
}

```

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/c2nX92G95P2SzC3Mq/builds/ZIQggiksoa9pjQ9Vp/openapi.json
