# OpenRent UK Listings Scraper (`parseforge/openrent-uk-listings-scraper`) Actor

Scrapes UK rental property listings from OpenRent by location or keyword. Returns rent, address, bedrooms, deposit, and landlord contact details for each property.

- **URL**: https://apify.com/parseforge/openrent-uk-listings-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Real estate
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.52 / 1,000 results

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

[![ParseForge](https://raw.githubusercontent.com/ParseForge/apify-assets/main/banner.jpg)](https://apify.com/parseforge?fpr=vmoqkp)

### OpenRent UK Listings Scraper

**Scrape UK rental listings from OpenRent by location or keyword, up to 1,000 properties per run.** Every listing includes the rent, address, bedrooms, deposit, and landlord contact details. No login or API key required. Export to CSV, JSON, Excel, or XML.

OpenRent is the UK's largest letting agent, but manually checking for new listings wastes hours. This Actor searches OpenRent directly for any location or keyword you provide, reads the public listing pages, and returns the results in a clean, flat dataset. It is built for renters, agents, and analysts who need fresh rental data without writing a single line of code.

| Who uses it | What they scrape OpenRent for |
|---|---|
| Tenants and renters | Monitor new rental listings in a specific area and be the first to contact the landlord. |
| Letting agents | Track competitor pricing and available stock across different postcodes. |
| Property investors | Analyze rental yields by collecting asking rents and deposit amounts for a target city. |
| Data analysts | Build a dataset of UK rental prices to feed into market reports or dashboards. |

### What it does

This Actor searches OpenRent for rental properties by location or keyword and returns each listing as a structured row with rent, address, bedrooms, deposit, and landlord contact details.

- 🔎 **Location search:** Enter a city, postcode, or neighbourhood and get every matching listing.
- 🏷️ **Keyword filtering:** Search for specific terms like 'garden', 'furnished', or 'parking' to narrow results.
- 📊 **Structured output:** Each row is a flat record with rent, address, bedrooms, deposit, and landlord contact details.
- ⚙️ **Configurable volume:** Set a maximum number of listings from 1 to 1,000 to control your run size.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

### What you can do with OpenRent data

**🏠 Find a place to rent faster.**

A tenant sets the Actor to run daily for their target postcode and gets an alert the moment a new flat appears with the landlord's phone number.

**📈 Track market rents by area.**

An analyst scrapes all listings for Manchester and Bristol weekly to plot average rent per bedroom and spot quarterly trends.

**📋 Build a lead list for tenant-find services.**

A letting agent scrapes listings where the landlord self-manages and contacts them to offer a fully managed service.

**💰 Compare deposit amounts.**

An investor collects deposit data across London zones to understand upfront cost expectations for different property types.

### Why choose this scraper

| | What you get |
|---|---|
| **Direct access** | Reads OpenRent's public listings without needing an API key or registration. |
| **Landlord contact info** | Returns the phone number and email where OpenRent displays them publicly. |
| **Fixed schema** | Every run returns the same fields, so your analysis or database import works first time. |
| **Fresh data** | Each run hits the live site, so you get listings that are available right now. |

### How it compares

This Actor focuses on a simple, fast search by location or keyword and returns a clean, flat dataset. Here is how it compares to other OpenRent scrapers on Apify.

| Feature | ParseForge | OpenRent Property Scraper 🏠 | OpenRent Property Scraper | 🏠 Rental Listings Scraper - Canada, UK & USA | Geo Enriched |
|---|---|---|---|---|
| Search by location or keyword | Yes | Yes | Yes | Yes |
| Landlord phone number | Yes, when publicly shown | Not listed | Not listed | Not listed |
| Landlord email | Yes, when publicly shown | Not listed | Not listed | Not listed |
| Configurable max items per run | Yes, 1 to 1,000 | Not listed | Not listed | Not listed |
| Deposit amount | Yes | Not listed | Not listed | Not listed |
| Normalized schema across multiple countries | No, UK only | No, UK only | No, UK only | Yes |

### Configure the run

Drive the Actor with a search term, a location, or a postcode, and set a maximum number of listings to scrape. The Input tab lists every parameter.

A first run with the defaults:

```json
{
 "searchTerm": "London"
}
```

A larger pull:

```json
{
 "searchTerm": "London",
 "maxItems": 200
}
```

### Free users

Free-plan runs return up to 10 results as a preview. [Upgrade your Apify plan](https://console.apify.com/sign-up?fpr=vmoqkp) to collect up to 1,000,000 results per run.

### Run it

1. [Create a free Apify account with $5 in credit](https://console.apify.com/sign-up?fpr=vmoqkp).
2. Open the [OpenRent UK Listings Scraper](https://apify.com/parseforge/openrent-uk-listings-scraper?fpr=vmoqkp).
3. Set your inputs and any filters, then click **Start**.
4. Export the results as CSV, Excel, JSON, or XML from the **Dataset** tab.

Run it programmatically through the [Apify API](https://docs.apify.com/api/v2) (`run-sync-get-dataset-items`) or the [ApifyClient](https://docs.apify.com/api/client/js) for JavaScript and Python.

### Use with AI agents (MCP)

Give an AI agent live access to OpenRent through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

```bash
claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/openrent-uk-listings-scraper"
```

Then prompt it in plain language to run the scraper and read back the results.

### Troubleshooting

**Why am I getting no results?**

Check your search term. A very narrow keyword or a misspelled location can return zero listings. Try a broader city name first, then narrow down.

**The run stopped before reaching my max items limit.**

The Actor stops when OpenRent has no more listings for your search term. Your limit is a ceiling, not a guarantee. Try a broader search term to get more results.

**Some listings are missing the landlord's phone number.**

OpenRent does not always show the phone number publicly. The Actor captures it only when it is visible on the page. The email field is more consistently available.

**The run timed out.**

Large searches can take time. Increase the run timeout in your Actor settings, or reduce the max items limit to keep the run shorter.

**The address field is incomplete.**

OpenRent sometimes shows only a partial address or the first part of the postcode on the listing card. The Actor returns exactly what is displayed publicly.

### FAQ

| Question | Answer |
|---|---|
| Do I need an OpenRent account to use this scraper? | No. The Actor reads the public listing pages that anyone can view in a browser. No login, API key, or account is required. |
| What information does it return for each listing? | It returns the monthly rent, full address, number of bedrooms and bathrooms, deposit amount, available date, furnishing status, and the landlord's contact details when they are shown publicly. |
| Can I search by postcode? | Yes. You can enter a full postcode like 'SW1A 1AA', a city name, a neighbourhood, or any keyword that OpenRent's search accepts. |
| How many listings can I scrape in one run? | You can set the maximum from 1 up to 1,000 listings per run. The Actor stops when it reaches your limit or when there are no more results. |
| Does it scrape listings from outside the UK? | No. OpenRent lists UK properties only. This Actor is built specifically for the UK rental market. |
| Can I filter by number of bedrooms or maximum rent? | The Actor uses OpenRent's own search, which returns results for your location or keyword. Use specific keywords like '2 bed' or set your maximum items to control volume. Post-run filtering by bedrooms or rent is easy in a spreadsheet. |
| How often should I run this Actor? | Rental listings change quickly. Running it daily or every few hours gives you the freshest data. You can schedule it on the Apify platform. |
| Is it legal to scrape OpenRent? | This Actor only reads publicly available pages. You are responsible for complying with OpenRent's terms of service and UK data protection laws in how you use the data. |
| What export formats are supported? | You can export your results to CSV, JSON, Excel, XML, or RSS, or push them directly to a webhook or cloud storage. |
| Does it return the landlord's phone number? | Yes, when OpenRent displays the landlord's phone number publicly on the listing page, the Actor captures it. |

### Related actors

Browse the full [ParseForge collection](https://apify.com/parseforge?fpr=vmoqkp) for more scrapers.

🆘 **Need help?** Email parseforge@protonmail.com with your run ID, your input, and what you expected.

⚠️ **Disclaimer.** This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by OpenRent. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

# Actor input Schema

## `searchTerm` (type: `string`):

Location or keyword to search for rental properties (e.g., London, Manchester, SW1A).

## `maxItems` (type: `integer`):

Maximum number of listings to scrape.

## Actor input object example

```json
{
  "searchTerm": "London",
  "maxItems": 100
}
```

# Actor output Schema

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

No description

# 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 = {
    "searchTerm": "London"
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/openrent-uk-listings-scraper").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 = { "searchTerm": "London" }

# Run the Actor and wait for it to finish
run = client.actor("parseforge/openrent-uk-listings-scraper").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 '{
  "searchTerm": "London"
}' |
apify call parseforge/openrent-uk-listings-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parseforge/openrent-uk-listings-scraper"
        }
    }
}

```

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/OqcakbEviQ6lMa1KC/builds/MnzXrPpAKRykT6VK3/openapi.json
