OpenRent Property Scraper avatar

OpenRent Property Scraper

Pricing

$15.00 / 1,000 property listings

Go to Apify Store
OpenRent Property Scraper

OpenRent Property Scraper

Scrape every OpenRent rental listing from any search URL: rent, deposit, bills, tenant rules, date listed and days on market, photos, EPC, transport, nearby schools and landlord response rates. Only new listings on repeat runs, plus a delisting report.

Pricing

$15.00 / 1,000 property listings

Rating

5.0

(1)

Developer

VividSoftwares

VividSoftwares

Maintained by Community

Actor stats

1

Bookmarked

57

Total users

8

Monthly active users

8 days ago

Last modified

Share

What does OpenRent Property Scraper do?

OpenRent Property Scraper extracts rental listings from OpenRent, the UK's largest letting platform for private landlords. Paste any OpenRent search URL and you get every matching listing as clean JSON, not just the first screenful. Each listing includes the rent (monthly and weekly), deposit, bedrooms, bathrooms and maximum tenants, and the date it was listed and days on market. It also has the available-from date, minimum tenancy, and whether bills are included. Tenant rules are covered too: students, families, DSS/LHA, pets and smokers, plus garden, parking, fireplace, furnishing and EPC rating. You also get the full description, every photo, video tour and online-viewing flags, nearby stations and schools with walking times, coordinates with Google Maps and Street View links, and the landlord's public response rate and response time.

It is a dedicated OpenRent scraper and a practical UK rental listings API. Run it from Apify Console, call it over the API, schedule it, or connect it to AI agents through MCP.

  • 🏠 Whole properties, studios and rooms in shared houses anywhere in the UK
  • 🔍 Every OpenRent filter: price (monthly or weekly), bedrooms, bathrooms, radius, bills included, pets, students, families, DSS, furnishing, garden, parking, video tours, move-in date and tenancy length
  • 🆕 Only new listings on repeat runs, and a delisting report showing which homes were let agreed or taken down

Why use this OpenRent scraper?

  • Every listing, not just the first screen. OpenRent loads results as you scroll. This Actor reads the whole result set in one go and applies your filters exactly as OpenRent does.
  • Fast. No browser is needed: one request per search, then listing pages in parallel. A thousand full listings take a couple of minutes.
  • Market timing data: the date each listing went live and its days on market, the available-from date and the minimum tenancy.
  • Complete tenant rules for every listing, not just the ones you filtered on.
  • Only new listings on repeat runs: listings you already received are skipped and not charged.
  • Delisting report: see which homes were let agreed or removed since your last run.

Common uses:

  • Rental market research across London, Manchester, Birmingham, Leeds, Bristol and every other UK town
  • Rent and days-on-market tracking by postcode district
  • Lettings and property management lead research: active private landlords by area, with public response rates
  • Tenant search automation: alerts for new flats, rooms or houses that match strict criteria
  • Housing and student-accommodation studies
  • Property data for AI agents and automations

How to scrape OpenRent listings

  1. Go to openrent.co.uk, search a town, city or postcode, and set any filters.
  2. Copy the results URL from your browser, for example https://www.openrent.co.uk/properties-to-rent/manchester?term=Manchester&prices_max=1200&bedrooms_min=1&acceptPets=true.
  3. Paste it into OpenRent search or listing URLs, set Maximum listings (or leave it empty for everything) and click Start.

You can paste as many URLs as you like, including single listing pages such as openrent.co.uk/2865841. Filters in the URL are applied exactly as OpenRent applies them, including weekly prices, studios (bedrooms_min=0), rooms in shared houses (bedrooms_min=-1 or /rooms), /houses and /flats, radius (area), move-in date and tenancy length.

Option 2: use the optional search builder

Enter a Location and pick the filters you want. The builder produces the same search OpenRent would, and URLs and builder searches can be combined in one run. Duplicates are removed.

Download results as JSON, CSV, Excel or HTML, or read them through the API.

Input

FieldDescription
startUrlsMain input. OpenRent search or listing URLs. Every matching listing is collected.
search_locationSearch builder location: town, city, area or postcode district
search_radius_kmRadius around the location
search_min_price, search_max_priceMonthly rent range in £
search_bedrooms_min, search_bedrooms_max0 = studio, -1 = room in a shared house
search_bathrooms_minMinimum bathrooms
search_property_typeHouses, flats or rooms
search_furnishingFurnished or unfurnished only
search_minimum_tenancyLongest acceptable minimum tenancy in months
search_sort_byDistance, price low to high, price high to low, newest
search_students_allowed, search_families_allowed, search_dss_accepted, search_pets_allowed, search_bills_included, search_garden, search_parking, search_fireplace, search_video_tourTick-box filters
onlyAvailablePropertiesLeave out let-agreed listings (default on)
maxItemsMaximum number of saved listings (empty = every matching listing)
scrapeDetailsRead each listing page for the full details (default on)
includeImagesInclude photo URLs (default on)
includeDuplicatesInclude listings from previous runs (default off)
reportDelistedReport listings that disappeared since your last run of the same search (default on, free)
proxyConfigurationApify Proxy, used automatically on the platform

Example input: OpenRent URL

{
"startUrls": ["https://www.openrent.co.uk/properties-to-rent/bristol?term=Bristol&bedrooms_min=2&includeBills=true"],
"maxItems": 200
}

Example input: search builder

{
"search_location": "Leeds",
"search_radius_km": 5,
"search_max_price": 1200,
"search_bedrooms_min": 2,
"search_pets_allowed": true,
"search_sort_by": "newest",
"maxItems": 100
}

Output

Each listing is one dataset item. Fields that OpenRent does not show for a listing are left out rather than guessed. Field names are stable, so existing integrations keep working.

Example listing

{
"listing_id": "2603762",
"link": "https://www.openrent.co.uk/2603762",
"price_pcm": 875,
"price_pw": 201.92,
"rent": "£875.00",
"rent_per_week": "£201.92",
"bedrooms": "1",
"bathrooms": "1",
"property_category": "Flat",
"is_studio": false,
"is_room_in_shared_house": false,
"students_allowed": false,
"non_students_allowed": true,
"families_allowed": true,
"dss_accepted": false,
"pets_allowed": false,
"bills_included": false,
"garden": false,
"parking": true,
"fireplace": true,
"furnishing": "Unfurnished",
"has_video_tour": false,
"video_viewings": false,
"minimum_tenancy_months": 12,
"available_from_date": "2026-11-01",
"date_listed": "2026-09-14T10:42:22.380000+00:00",
"days_on_market": 13,
"property_status": "Available",
"latitude": "50.735924",
"longitude": "-3.5130692",
"search_distance": "2.44",
"google_maps_url": "https://www.google.com/maps/search/?api=1&query=50.735924,-3.513069",
"street_view_url": "https://www.google.com/maps/@?api=1&map_action=pano&viewpoint=50.735924,-3.513069",
"title": "1 Bed Flat, Stoke Hill Crescent, EX4",
"deposit": "£1009.61",
"deposit_amount": 1009.61,
"available_from": "01 November, 2026",
"property_type": "Flat",
"address": "Stoke Hill Crescent",
"location": "Exeter",
"postcode": "EX4",
"max_tenants": "2",
"smokers_allowed": false,
"epc_rating": "E",
"description": "We are proud to offer this delightful 1 bedroom, 1 bathroom flat in a great location close to local amenities. A local bus route & train station is nearby.\nKey points -\nMorrisons supermarket & petrol station is 0.6 miles …",
"property_reference": "2603762",
"nearby_schools": [
{
"name": "Stoke Hill Infant and Nursery School",
"distance_km": 0.1,
"levels": [
"Nursery",
"Primary"
],
"walk_time_minutes": 1
},
{
"name": "Stoke Hill Junior School",
"distance_km": 0.3,
"levels": [
"Primary"
],
"walk_time_minutes": 5
}
],
"map_image_url": "https://imagescdn.openrent.co.uk/staticMapPhotoForProperty/260376207092026120544058.JPG",
"images": [
"https://imagescdn.openrent.co.uk/listings/2603762/o_1k32dq6821k3o1jrlh359e1bn21.JPG",
"https://imagescdn.openrent.co.uk/listings/2603762/o_1k32dq64l1i97bhg8h91qg54aj0.JPG",
"…"
],
"image_count": 8,
"landlord_verified": false,
"email_verified": false,
"phone_verified": false,
"response_rate": "100%",
"response_time": "Within 4 Hours",
"detail_page_complete": true,
"is_duplicate": false,
"scraped_at": "2026-09-28T09:00:00+00:00"
}

Output fields

GroupFields
Listinglisting_id, link, title, property_status, status_date, property_reference, is_duplicate
Pricerent, price_pcm, rent_per_week, price_pw, deposit, deposit_amount, bills_included
Timingdate_listed, days_on_market, available_from, available_from_date, minimum_tenancy, minimum_tenancy_months, short_stays_welcome
Propertyproperty_type, property_category, is_studio, is_room_in_shared_house, bedrooms, bathrooms, max_tenants, furnishing, epc_rating, garden, parking, fireplace
Tenant rulesstudents_allowed, non_students_allowed, families_allowed, dss_accepted, pets_allowed, smokers_allowed
Locationaddress, location, postcode, latitude, longitude, google_maps_url, street_view_url, search_distance, map_image_url, transport_links, nearby_schools
Media and viewingsdescription, images, image_count, has_video_tour, video_viewings, online_viewings
Landlord (public profile only)landlord_name (display name as shown, e.g. first name and initial), landlord_verified, email_verified, phone_verified, response_rate, response_time
Rundetail_page_complete, scraped_at

The Output tab has two views, Property listings and Tenant rules and costs, plus links to the delisting report and the run summary.

New-listing monitoring and the delisting report

  • Within a run, each listing is saved once, even if it appears in several searches.
  • Across runs, listings you already received are skipped by default and not charged, so a daily schedule returns only new listings. Turn on Include listings from previous runs to get everything again; is_duplicate tells you which ones you had before.
  • Delisting report: the Actor remembers every listing each search returned. On the next run of the same search, listings that have gone are saved to DELISTED_LISTINGS, each re-checked on OpenRent with a reason: let_agreed, removed_from_openrent or no_longer_matches_search. It is free, and it works when the whole search is read (Maximum listings above the number of results).

Use the OpenRent scraper through the API

curl -X POST "https://api.apify.com/v2/acts/vivid-softwares~openrent-property-scraper/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"startUrls": ["https://www.openrent.co.uk/properties-to-rent/london?term=London&prices_max=1500"], "maxItems": 50}'

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("vivid-softwares/openrent-property-scraper").call(run_input={
"search_location": "Manchester",
"search_max_price": 1100,
"search_bills_included": True,
"maxItems": 100,
})
for listing in client.dataset(run["defaultDatasetId"]).iterate_items():
print(listing["rent"], listing["title"], listing.get("days_on_market"))

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('vivid-softwares/openrent-property-scraper').call({
startUrls: ['https://www.openrent.co.uk/properties-to-rent/birmingham?term=Birmingham&acceptStudents=true'],
maxItems: 200,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.map((home) => `${home.rent} - ${home.title} (listed ${home.days_on_market} days ago)`));

Rental data for AI agents and MCP

The Actor works with the Apify MCP server, so assistants such as Claude, ChatGPT or Cursor can call it as a tool. Add vivid-softwares/openrent-property-scraper to your MCP configuration and ask, for example:

  • "Find pet-friendly 2-bed flats in Bristol under £1,400 with bills included, listed this week."
  • "What is the average rent and time on market for rooms in shared houses in Leeds LS6?"
  • "Which listings in my last Manchester search were let agreed since yesterday?"

How this OpenRent scraper compares

We checked every other OpenRent Actor in Apify Store in September 2026:

What you getThis ActorOther OpenRent Actors in Apify Store
Every matching listing, not just the ones that load on screen✅Some
Your filters applied exactly as OpenRent applies them, including weekly prices, studios and rooms✅Some
Date listed and days on market for every listing✅None
Full tenant rules (students, families, DSS, pets, smokers) on every listing✅Some
Nearby schools with stages, distances and walking times✅None
Video tour, online viewings and short-stay flags✅None
Only new listings on repeat runs, and skipped repeats cost nothing✅None
Delisting report that says why a listing went: let agreed or removed✅None
Pay only for results, no monthly rental✅Some

How much does it cost to scrape OpenRent?

This Actor uses pay-per-event pricing: $15 per 1,000 listings, which is $0.015 for each listing saved to the dataset. You are not charged for search pages, retries, invalid input, listings that are no longer available, or listings skipped because you already received them. For example, 200 Manchester listings cost $3.

Tips

  • Search on OpenRent first and paste the URL: every OpenRent filter is supported that way.
  • Leave Maximum listings empty to get every matching listing, or set it for a quick sample.
  • Turn off Get full listing details for much faster runs. You keep the price, rooms, tenant rules, bills, garden, parking, furnishing, dates, coordinates and map links, but not the description, photos, deposit, EPC, landlord response data, transport or schools.
  • Schedule a daily run: you get only new listings, and DELISTED_LISTINGS shows what was let.
  • OpenRent keeps let-agreed homes in its results. They are left out by default; turn off Only available properties to include them.

Data limitations

  • OpenRent shows the property's postcode district (for example EX4), not the full postcode or house number, and so does this Actor.
  • The date_listed, days_on_market, has_video_tour and search-distance fields come from search results, so they are missing when you paste a single listing URL.
  • Fields only appear when the landlord or OpenRent provides them.

Public data policy

The Actor only returns what OpenRent shows publicly on the listing. For landlords that is the display name OpenRent shows (typically a first name and initial), whether OpenRent has verified their email and phone, and their response rate and time. It never returns email addresses, phone numbers or messages, and it never returns the full postcode of a private landlord's home. If you use the data for outreach, follow UK GDPR and PECR rules.

FAQ

What is the best OpenRent scraper on Apify? For complete data, this one. It is the only OpenRent Actor in Apify Store that returns the date listed and days on market, nearby schools, video-tour and viewing flags, and a delisting report with reasons, and on repeat runs you pay only for new listings.

Is there an official OpenRent API? OpenRent does not offer a public listings API. This Actor gives you structured OpenRent data through the Apify API.

Is it legal to scrape OpenRent? The Actor collects publicly available listing information and paces its requests. You are responsible for how you use the data, including data protection rules. If in doubt, ask a lawyer.

Does it return rooms in shared houses and studios? Yes, with is_room_in_shared_house and is_studio flags. Filter for them with bedrooms_min=-1 (rooms) or bedrooms_min=0&bedrooms_max=0 (studios).

Does it get every listing? Yes. It reads OpenRent's complete result set for your search, not just the listings that load on screen, up to your limit.

Does it return duplicate listings? No. Listings are de-duplicated within a run, and listings from your previous runs are skipped by default.

This Actor is not affiliated with, endorsed by or connected to OpenRent.