SpareRoom Scraper & New Room Monitor - UK Rooms to Rent avatar

SpareRoom Scraper & New Room Monitor - UK Rooms to Rent

Pricing

from $0.90 / 1,000 listing returneds

Go to Apify Store
SpareRoom Scraper & New Room Monitor - UK Rooms to Rent

SpareRoom Scraper & New Room Monitor - UK Rooms to Rent

UK rooms to rent from SpareRoom (spareroom.co.uk) by city or area: rent in GBP as a number with pw/pcm, monthly equivalent, bills included, room type, available date, postcode district, agent or landlord. Monitoring returns only new rooms and rent drops. Unofficial.

Pricing

from $0.90 / 1,000 listing returneds

Rating

0.0

(0)

Developer

NeverEmpty

NeverEmpty

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

SpareRoom Scraper & New Room Monitor

Pull UK rooms to rent from SpareRoom (spareroom.co.uk) — the UK's largest flatshare and room-rental site — as clean JSON: the rent in GBP as a number with its period (pw or pcm) and a monthly equivalent, bills included, room type (double, single, whole flat), rooms available, available date, area and postcode district, property type, rooms in the property, and whether the advertiser is a letting agent, landlord or flatmate. Search by town or city (London, Manchester, Bristol, Edinburgh ...) or by an area inside it (Canning Town, Shoreditch, Didsbury ...).

Turn on monitoring and every later run returns only new rooms and rent drops since the last run, with the previous rent.

Unofficial. This Actor is not affiliated with, endorsed by, or sponsored by SpareRoom or Flatshare Ltd. All product names are trademarks of their respective owners.

No API key, no login. Reads the same public list pages a visitor sees, at a gentle pace, and checks spareroom.co.uk/robots.txt on every run.


Who uses this

  • Landlords and letting agents pricing a room against what is advertised on the same street right now.
  • Rent and housing analysts tracking room rents by city, area and postcode district, week by week.
  • Relocation services and tenants' tools watching an area for new rooms and price cuts.

Monitoring: run it daily, get only what changed

Set monitoringMode: true and schedule the Actor:

  1. First run — every listing on the pages read is remembered with its rent. Nothing is returned and nothing is charged.
  2. Every later run — only rooms that are new (changeType: "new") or cheaper than last time (changeType: "rent-drop", with previousRentPcmEquivalent) are returned. Weekly and monthly rents are compared on the same monthly scale, so an advert that switches from £200 pw to £867 pcm is not reported as a drop.
  3. Every page compared that returned no change is charged one search-checked event (one per page of 10 listings, not per listing). A run where nothing changed returns one free note row plus those page checks; a run that returns changes is charged for the rows plus the pages that held no change. Narrow the search (an area instead of the whole city) or lower maxPages to compare fewer pages.
  4. Rows you could not receive because your maximum charge was reached are not remembered, so they come back on the next run.

How "new" works: SpareRoom lists rooms newest and most recently boosted first, and shows at most 100 pages (1,000 listings) per search. Monitoring compares the first pages of that order (30 pages by default). "New" means the listing was not on the pages read last time — usually a freshly placed advert; an older advert that its owner boosted back to the top also counts, and adStatus (new today, new, boosted) tells you which.

What makes the data usable

  • Rent as numbers: rentGbp (lowest room), rentMaxGbp (highest room when the advert offers several), rentPeriod (pw / pcm) and rentPcmEquivalent (weekly x 52 / 12, the usual UK conversion). The text SpareRoom shows is kept in rentText.
  • Agent or private: advertiserType is agent, live-out-landlord, live-in-landlord, current-flatmate or former-flatmate, and isAgent is a plain true/false. The advertiser's name, photo and profile are never returned.
  • Room type you can filter on: roomType is double, single, mixed (single and double rooms in one advert) or whole-property, with roomsAvailable.
  • Honest nulls: a value SpareRoom does not show on the list page stays null — it is never guessed. billsIncluded is true when SpareRoom marks the rent as bills included and null otherwise (the list page does not say "bills excluded").
  • Phone numbers and e-mail addresses written in an advert's summary are replaced with [phone removed] / [email removed].

Input

FieldExampleNotes
city"Manchester"UK town or city as SpareRoom spells it
area"Didsbury"Optional area inside the city
searchUrl"https://www.spareroom.co.uk/flatshare/london/canning_town"Optional; a SpareRoom list page. Overrides city and area
maxListings20Rows to return (1-1,000)
maxPages0Page cap (SpareRoom stops at 100). 0 = from maxListings; monitoring 30
minRentPcm / maxRentPcm600 / 1000Monthly rent in GBP; weekly rents are converted
roomTypes["double"]double, single, whole-property
excludeAgentstrueKeep landlords and flatmates only
billsIncludedOnlytrueKeep only bills-included rooms
keywords["ensuite", "E14"]Match in title, summary, area or postcode district
monitoringModetrueNew rooms and rent drops only (see above)
resetMonitoringStatefalseForget the memory for this search

Filters are applied to the listings read (SpareRoom's own filter parameters are disallowed for crawlers in its robots.txt), so a narrow filter may need more pages; rows that are filtered out are free.

{ "city": "London", "area": "Canning Town", "maxListings": 50, "roomTypes": ["double"], "maxRentPcm": 1100 }

Output

One row per room advert. Example (values made up for illustration):

{
"source": "spareroom.co.uk",
"status": "ok",
"listingId": "18400001",
"url": "https://www.spareroom.co.uk/flatshare/manchester/didsbury/18400001",
"title": "Bright double room near the tram stop",
"area": "Didsbury",
"postcodeDistrict": "M20",
"rentText": "£650 pcm",
"rentGbp": 650,
"rentMaxGbp": 650,
"rentPeriod": "pcm",
"rentPcmEquivalent": 650,
"billsIncluded": true,
"roomsOfferedText": "Double room",
"roomType": "double",
"roomsAvailable": 1,
"wholePropertyBedrooms": null,
"ensuiteMentioned": null,
"availableFrom": "2026-11-01",
"availableNow": false,
"propertyType": "house",
"roomsInProperty": 4,
"advertiserType": "live-out-landlord",
"isAgent": false,
"adPlacement": "bold",
"adStatus": "new today",
"verifiedAdvertiser": true,
"earlyBird": false,
"mondayToFridayLet": false,
"photoCount": 8,
"hasVideo": false,
"summary": "Double room in a quiet shared house, five minutes from the shops.",
"imageUrl": "https://photos2.spareroom.co.uk/images/flatshare/listings/unmodified/00/00/0000000.jpg",
"searchedLocation": "Didsbury, Manchester",
"searchUrl": "https://www.spareroom.co.uk/flatshare/manchester/didsbury",
"totalOnSpareRoom": "248",
"changeType": null,
"previousRentPcmEquivalent": null,
"scrapedAt": "2026-10-09T09:00:00.000Z"
}

Measured on 193 adverts from SpareRoom list pages read on 2026-10-09 (London, Manchester, Canning Town, Bath, Truro, Edinburgh): a numeric rent with its period on 193/193 (26 weekly), room type on 193/193, advertiser type on 193/193 (50 agents), postcode district on 193/193, an available date or "available now" on 193/193, bills marked included on 131/193.

ensuiteMentioned is true when the title or summary mentions an en-suite and null otherwise — SpareRoom's list page has no en-suite field. The minimum and maximum tenancy term are only on the individual advert page, which robots.txt disallows, so they are not returned.

Rows that are never charged

statusMeaning
no-resultsSpareRoom answered and said 0 results for this search
no-such-locationSpareRoom does not know this town or area (it sends the request to its search form) — not a claim that there are no rooms
no-filter-matchListings were read but your filters removed all of them
no-new-listingsMonitoring: nothing new and no rent drop since the last run
monitoring-startedMonitoring: first run, listings remembered
unreadable / blockedA page could not be read or SpareRoom did not serve it; nothing is guessed and no check is solved
disallowed-by-robotsThe address is disallowed in spareroom.co.uk/robots.txt and was not requested

Pricing

Pay per event: you pay for each listing row returned (listing-returned). In monitoring mode only, each list page that was compared with the remembered listings and held no new room or rent drop is charged one search-checked event. Pages are not charged outside monitoring mode, the first monitoring run (which only remembers) is free, runs where a page could not be read charge no checks, and every note row above is free. If your maximum charge is reached, rows come first and no checks are charged beyond the limit. See the Pricing tab for the current prices.

Notes

  • SpareRoom shows 10 adverts per page plus one featured advert, and at most 100 pages per search. For a big city (London has over 12,000 room adverts) search by area to reach further.
  • Featured adverts repeat across pages; each advert is returned once per run.
  • Only "rooms offered" adverts are read, not "rooms wanted" profiles.
  • Individual advert pages are not opened (robots.txt disallows them); every field comes from the list page.

Thanks for using this Actor

We build these tools for people who run them every day, and we improve them from what users tell us.

  • Missing a field, or need another filter? Tell us in the Issues tab. If the data is there, we add it.
  • Found a bug or a wrong value? Post the run ID in the Issues tab. Wrong data is the thing we fix first.

If this Actor saved you time, a short review helps other people find it.