SpareRoom Property Scraper avatar

SpareRoom Property Scraper

Pricing

$8.50 / 1,000 results

Go to Apify Store
SpareRoom Property Scraper

SpareRoom Property Scraper

Scrape public SpareRoom UK room, flatshare and rental listings from filtered search URLs. Extract rent, location, property type, bedrooms, advertiser details and listing URLs for research, monitoring, APIs and AI-agent workflows.

Pricing

$8.50 / 1,000 results

Rating

0.0

(0)

Developer

VividSoftwares

VividSoftwares

Maintained by Community

Actor stats

1

Bookmarked

14

Total users

1

Monthly active users

8 days ago

Last modified

Share

What does SpareRoom Property Scraper do?

SpareRoom Property Scraper extracts room and flatshare listings from SpareRoom in the UK (spareroom.co.uk) and the US (spareroom.com). Paste any SpareRoom search or listing URL, or just type a place like Bristol, E1, New York or 90210, and get every matching ad as clean, structured data: rent for every room, deposit, bills, move-in date, map coordinates, photos, amenities, current household, flatmate preferences, advertiser type and the full description.

It collects all three SpareRoom ad types: rooms for rent, rooms wanted (people looking for a room) and buddy ups (people looking to rent together).

Use it as a SpareRoom API for rental market research, room-rent benchmarking, HMO and buy-to-let analysis, lead generation, relocation tools, new-listing alerts and AI agents.

Why use this SpareRoom scraper?

  • UK and US in one Actor. £ and $ prices, UK postcodes and US ZIP codes, both detected automatically.
  • Every listing, not just 1,000. SpareRoom stops showing results after 1,000 per search. Big cities are split into rent bands automatically, so a London search can return all 12,000+ listings.
  • The full listing, not just the search card. Description, every room with its own price and en-suite flag, deposit, bills included, minimum and maximum term, furnishings, amenities, household, preferences, coordinates and all photos.
  • Clean numbers. Rent, deposit and monthly rent (weekly prices converted) as numbers; move-in dates as YYYY-MM-DD.
  • Only new listings on repeat runs. Listings you already have are skipped and not charged, so a daily schedule gives you a new-listings feed.
  • Delisting report. Each run lists the ads that disappeared since your last run, and why: let, expired, removed, or no longer matching your search.
  • Fast. About 300 full listings a minute on default memory, and several times faster with Full listing details off.

How to scrape SpareRoom listings

Option 1: paste a SpareRoom URL

  1. Search on spareroom.co.uk or spareroom.com and set any filters you like.
  2. Copy the URL from your browser's address bar.
  3. Paste it into SpareRoom search or listing URLs and click Start.

Area pages (spareroom.co.uk/flatshare/bristol), filtered searches, rooms-wanted and buddy-up searches, and single listing URLs all work.

Option 2: type locations

Type one or more places into Locations: UK towns, cities, areas and postcodes, or US cities and ZIP codes. Pick the listing type (rooms for rent, rooms wanted or buddy ups) and any filters: rent range, room type, bills included, posted by (for example private landlords only, no agents), suitable for, move-in date, radius, keyword, no deposit, pets, parking, short lets, photos only and free to contact.

Input

FieldWhat it does
startUrlsSpareRoom UK or US search or listing URLs.
locationsPlaces to search, for example Manchester, SW11, Los Angeles, 10001.
countryauto, uk or us for the locations.
adTypeoffered (rooms for rent), wanted or buddyup.
maxItemsMaximum listings saved in the run (default 100).
minRent, maxRentMonthly rent range.
roomType, postedBy, suitableFor, availableFrom, milesFromMax, keyword, sortBySearch filters for locations.
billsIncluded, noDeposit, petsAllowed, parking, shortLets, photosOnly, freeToContact, disabledAccessOn/off filters for locations.
scrapeDetailsOpen every listing for full details (default on). Off = faster search-card data only.
includePhotosAdd every photo URL (default on).
includeDuplicatesAlso save listings from your previous runs (default off).
reportDelistedWrite the delisting report (default on, free).
splitLargeSearchesGet past SpareRoom's 1,000-result limit (default on).

Example input: URLs

{
"startUrls": [
{ "url": "https://www.spareroom.co.uk/flatshare/bristol" },
{ "url": "https://www.spareroom.com/roommate/new-york" }
],
"maxItems": 500
}

Example input: locations and filters

{
"locations": ["Manchester", "Leeds"],
"adType": "offered",
"maxRent": 700,
"roomType": "double",
"billsIncluded": true,
"postedBy": "private_landlords",
"maxItems": 1000
}

Output

Every listing is one row in the dataset. Download it as JSON, CSV, Excel, XML or HTML, or read it through the API. The dataset has three views: Overview, Rent and terms and Rooms wanted.

Example listing

{
"listing_id": "16504307",
"url": "https://www.spareroom.co.uk/flatshare/bristol/fishponds/16504307",
"ad_type": "offered",
"title": "Large kingsize room in Fishponds.",
"rent": "£625",
"rent_amount": 625,
"rent_period": "pcm",
"rent_monthly": 625,
"currency": "GBP",
"room_type": "double",
"rooms": [{ "rent": "£625", "rent_amount": 625, "rent_period": "pcm", "room_type": "double", "ensuite": true, "status": null }],
"rooms_available": 1,
"whole_property": false,
"property_type": "house",
"listing_category": "House share",
"bedrooms": 3,
"neighbourhood": "Fishponds",
"postcode": "BS16",
"latitude": 51.4749442,
"longitude": -2.5390584,
"available_from": "2026-11-01",
"minimum_term": "6 months",
"short_lets_considered": true,
"deposit": "£625.00",
"deposit_amount": 625,
"bills_included": true,
"furnishings": "Furnished",
"amenities": { "parking": true, "garden_or_patio": true, "living_room": true, "wifi": true },
"current_household": { "number_of_housemates": 1, "total_number_of_rooms": 3, "smoker": false, "any_pets": true, "occupation": "Professional" },
"preferences": { "couples_ok": false, "smoking_ok": false, "pets_suitable": true, "references": true, "gender": "Females preferred" },
"description": "Kingsize room available in modern house in\nFishponds. Quiet street backing onto the cycle path giving easy access into town...",
"advertiser_name": "Sam",
"advertiser_role": "live in landlord",
"seller_type": "Landlord",
"verified_advertiser": true,
"advertiser_last_active": "5 hours ago",
"free_to_contact": true,
"early_bird": false,
"badges": ["NEW TODAY", "Free to contact"],
"days_listed": 1,
"posted_date": "2026-09-27",
"photo_count": 8,
"main_photo": "https://photos2.spareroom.co.uk/images/flatshare/listings/large/86/40/86401226.jpg",
"photos": ["https://photos2.spareroom.co.uk/images/flatshare/listings/large/86/40/86401226.jpg", "..."],
"site": "www.spareroom.co.uk",
"country": "GB",
"seen_in_previous_run": false
}

Rooms-wanted and buddy-up ads also have budget, looking_in, rooms_wanted, seeker, amenities_required and about_advertiser. The dataset schema in the Output tab describes every field.

New-listing monitoring

By default, listings saved by your earlier runs are skipped and not charged, and each saved row has seen_in_previous_run. Schedule the Actor (for example every morning) with the same URLs or locations and each run returns only ads that are new since the last one. Turn on Include listings saved in previous runs to get every matching listing each time.

Delisted-listing report

When a search is read to the end, the Actor compares it with your previous run of the same search. Ads that disappeared are written to the DELISTED_LISTINGS record in the run's key-value store, each with a reason:

  • let: the room was let,
  • expired: the ad expired,
  • removed_from_spareroom: the ad no longer exists,
  • no_longer_matches_search: still live, but outside your search now (for example the rent changed).

This is free and useful for measuring how fast rooms let in an area.

SpareRoom only shows the first 1,000 results of any search. When a location or area URL has more, the Actor splits it into monthly rent bands until each band fits, then merges and de-duplicates the results. Saved search links that contain search_id= cannot be split; the log tells you when that happens, and you can type the location instead.

Use the SpareRoom scraper through the API

Python

from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("vivid-softwares/spareroom-property-scraper").call(run_input={
"locations": ["Bristol"],
"maxRent": 800,
"maxItems": 200,
})
for listing in client.dataset(run["defaultDatasetId"]).iterate_items():
print(listing["title"], listing["rent_monthly"], listing["postcode"])

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });
const run = await client.actor('vivid-softwares/spareroom-property-scraper').call({
startUrls: [{ url: 'https://www.spareroom.com/roommate/new-york' }],
maxItems: 200,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Rental data for AI agents and MCP

AI agents can find and run this Actor through the Apify MCP server. The input schema accepts plain locations and filters, so an agent can answer requests like:

  • "Find double rooms on SpareRoom in Bristol under £800 a month with bills included."
  • "What does a room in Brooklyn cost on SpareRoom right now? Give me the median."
  • "Every morning, send me new rooms-wanted ads in Manchester."

How this SpareRoom scraper compares

We checked every other SpareRoom Actor in Apify Store in September 2026 (9 Actors). This is what you get here:

What you getThis ActorOther SpareRoom Actors in Apify Store
UK and US SpareRoom✅2 of 9
Rooms for rent, rooms wanted and buddy ups✅2 of 9
Every listing page read in full, with description and map coordinates✅4 of 9
Every room of a multi-room ad with its own price✅At most 2 of 9
Searches split past SpareRoom's 1,000-result limit✅None describe it
Type a location or paste any SpareRoom search URL, with filters✅1 of 9
Only new listings on repeat runs, and repeats are not charged✅1 of 9
Report of ads let, expired or removed since your last run✅Not described by 8 of 9

How much does it cost to scrape SpareRoom?

You pay per listing saved; see the Pricing tab. Listings skipped because you already have them from earlier runs are free, and so is the delisting report. Use Maximum listings to cap the cost of any run.

Tips

  • For the cheapest possible run, turn off Full listing details: you still get title, rent, area, postcode, property type, rooms, advertiser type and ad age from the search results.
  • Sort by Newest ads first (the default) when you only want the latest listings.
  • UK rents are per calendar month (pcm) or per week (pw) as advertised; rent_monthly always gives the monthly figure.
  • For whole-property ads (whole_property: true) the rent is for the whole place, not per room.

Data limitations

  • SpareRoom hides phone numbers and email addresses from logged-out visitors. phone_available tells you whether the advertiser offers a phone number; the Actor does not log in and does not collect contact details.
  • Rooms-wanted ads have no map coordinates.
  • posted_date comes from SpareRoom's "days listed", which restarts when an advertiser renews an ad.

FAQ

What is the best SpareRoom scraper on Apify? For complete data, this one. It covers the UK and the US and all three ad types, reads every listing in full (every room and price, deposit, bills, coordinates, household, preferences, photos), and is the only SpareRoom Actor in Apify Store that describes getting past SpareRoom's 1,000-results-per-search limit. On repeat runs you pay only for new listings, and you get a free report of ads that were let, expired or removed. See the comparison above.

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

Does it work for spareroom.com in the US? Yes. Paste any spareroom.com URL, or type a US city or ZIP code. Prices come in USD.

Can I scrape rooms-wanted ads? Yes. Set Listing type to rooms wanted, or paste a rooms-wanted search URL. You get the budget, areas the person is looking in, room wanted, move-in date and preferences.

Does it get more than the first page of results? Yes. It follows every page up to your limit, and splits big searches past SpareRoom's 1,000-result cap.

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

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