
Global Sources Supplier Scraper
scrape.ly/store/cornerledger/globalsources-scraperLead generationE-commerce
2 monthly users

Scrape SpareRoom UK and US: rooms for rent, rooms wanted and buddy ups by location or URL. Rent, deposit, rooms, amenities, flatmates, advertiser, photos, coordinates and the full description. Filters, monitoring mode, no login.
Scrape SpareRoom UK (spareroom.co.uk) and SpareRoom US (spareroom.com): rooms for rent, rooms wanted and buddy-up ads, from a place name or any SpareRoom URL. Every ad comes back with rent, deposit, bills, all rooms, amenities, current flatmates, advertiser, photos, coordinates and the full description. No login, no browser, about 20 ads in under 15 seconds, and $0.70 per 1,000 listings.
London, SW1, Leeds, Brooklyn, Austin, TX), or paste SpareRoom URLs of search results or single ads.| Field | What it does |
|---|---|
locations | Places to search: UK towns, London areas, postcode districts; US cities, City, ST, ZIP codes |
startUrls | SpareRoom search result pages or single ads (spareroom.co.uk or spareroom.com) |
listingType | offered (rooms for rent), wanted (rooms wanted) or buddyup (buddy ups) |
maxItems | Listings per location or search URL (default 20; 0 = all) |
country | auto, UK or US for the locations |
minRent, maxRent | Monthly rent range in the site's currency (budget for rooms wanted) |
roomType, roomsFor, postedBy, furnishing, billsIncluded, photosOnly, availableFrom, minTermMonths, keyword, radiusMiles, sortBy | The site's own search filters |
includeDetails | Open every ad for the full record (default on); off = search-card fields only |
monitoringMode | Only ads not saved by earlier runs with the same inputs |
{
"locations": ["London", "Brooklyn"],
"startUrls": ["https://www.spareroom.co.uk/flatshare/london/"],
"listingType": "offered",
"maxItems": 100,
"minRent": 700,
"maxRent": 1200,
"billsIncluded": true
}
One row per ad. Rows keep SpareRoom's own field names, so every field the site has for an ad is there. The main ones:
| Field | Description |
|---|---|
advert_id, url | Ad id and ad page |
listingType, site, currency | offered / wanted / buddyup, UK or US, GBP or USD |
ad_title, ad_text | Title and full description |
price, min_rent, max_rent, per | Headline price and rent range per month or week |
rooms | Every room: price, period, size, deposit, en suite, furnishing, status |
security_deposit, bills_inc, min_term, max_term, available_from | Money and dates |
neighbourhood_name, postcode, latitude, longitude, nearest_station | Location |
property_type, rooms_in_property, occupants, genders, amenities | The property and who lives there |
couples, pets_req, smoking, min_age_req, max_age_req, gender_req | Who the advertiser is looking for |
advertiser_name, advertiser_type, company_name, advertiser_last_online_iso, enquiry_response | The advertiser |
combined_budget, number_of_seekers, areas_looking_in, room_size | Rooms wanted and buddy ups |
photos | Photos with captions in tiny, thumb, square, standard and large sizes |
basicInfo | The ad as shown on the search results card |
Example (trimmed, advertiser and text changed):
{
"advert_id": "16814541",
"listingType": "offered",
"url": "https://www.spareroom.co.uk/flatshare/flatshare_detail.pl?flatshare_id=16814541",
"site": "UK",
"currency": "GBP",
"ad_title": "Double Room in Tooting w/ Direct Garden Access!",
"ad_text": "Cosy double room with direct access to the garden, 10 minutes from Tooting station...",
"price": "£1,000 pcm",
"min_rent": "1000",
"per": "pcm",
"bills_inc": "Yes",
"available_from": "2026-10-26",
"neighbourhood_name": "Tooting",
"postcode": "SW17",
"latitude": "51.4221076",
"longitude": "-0.1546456",
"property_type": "House",
"rooms_in_property": "5",
"amenities": {"living_room": "shared", "furnishings": "furnished", "garden": "Y", "broadband": "Y"},
"rooms": [{"room_price": "1000", "room_per": "pcm", "room_type": "double", "security_deposit": "1000.00", "room_status": "available"}],
"advertiser_name": "Maple Lane Homes",
"advertiser_type": "agent",
"enquiry_response": {"response_rate": "100", "response_time_desc": "Within a day"},
"photos": [{"caption": "The Room", "large_url": "https://photos2.spareroom.co.uk/images/flatshare/listings/large/91/29/91298000.jpg"}],
"basicInfo": {"id": "16814541", "region": "UK", "brand": "featured", "type": "offered", "title": "Double Room in Tooting w/ Direct Garden Access!", "price": "£1,000 pcm"},
"detailsIncluded": true,
"searchInput": "London (UK, rooms for rent)",
"scrapedAt": "2026-10-21T18:08:49Z"
}
$0.70 per 1,000 listings ($0.0007 per saved listing), pay per result, with no start fee. Platform usage (compute and datacenter proxy) is billed on top and is small: about 12 KB of proxy traffic per listing, so 1,000 listings ≈ $0.72 in total. You only pay for listings that are saved; ads that were taken down while the run was going are not charged. Set a maximum total charge on the run and it stops cleanly when the limit is reached.
Is it legal to scrape SpareRoom? The actor only reads public ads that anyone can see without an account. Ads can contain personal data (names, photos); make sure your use complies with GDPR and similar laws in your country.
Do I need a SpareRoom account or a proxy? No login is needed. The run uses Scrapely datacenter proxies by default; if SpareRoom refuses them, it switches to residential proxies in the site's country by itself.
How many results can I get? SpareRoom shows at most 1,000 ads per search. If you ask for more (or set 0), the scraper splits the search into rent bands and reads each one, so you get close to every ad in the area. Pasted search URLs work the same way.
Why is a field empty? SpareRoom only returns what the advertiser filled in. Room-specific fields like nearest_station, max_term or interests are often missing, and rooms-wanted ads have budgets instead of rents.
Can I get only new ads? Turn on monitoring mode and schedule the run. Each run saves only ads that earlier runs with the same inputs have not saved.
Can I use it through the API or on a schedule? Yes: run it from the API, the CLI or a schedule, and send the results to webhooks or integrations.
Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
locationsarrayOptionalLocations
Places to search, one per line. UK: towns, cities, London areas and postcode districts (London, Manchester, Clapham, SW1, E14). US: cities, neighborhoods and ZIP codes (Brooklyn, Austin, TX, 90210). The country is detected per place; set Country below to force it.
startUrlsarrayOptionalSpareRoom URLs
Search result pages or single ads from spareroom.co.uk or spareroom.com, copied from your browser. Search URLs keep the filters you set on the site. Bare place names work here too.
listingTypeenumOptionaldefault "offered"Listing type
What to search for at the locations above. Pasted URLs keep their own type.
maxItemsintegerOptionaldefault 20Maximum listings per input
How many listings to save for each location or search URL. SpareRoom shows at most 1,000 ads per search; above that the scraper splits the search by rent so you can get more. 0 = everything.
countryenumOptionaldefault "auto"Country
Which SpareRoom site to search for the locations. Auto: UK postcodes go to spareroom.co.uk, US ZIP codes and 'City, ST' go to spareroom.com, other names are tried in the UK first and then in the US.
The site's own search filters. They apply to locations and are added to pasted search URLs.
minRentintegerOptionalMinimum rent per month
In the site's currency (GBP on spareroom.co.uk, USD on spareroom.com). Weekly rents are compared as monthly. For rooms wanted this is the budget.
maxRentintegerOptionalMaximum rent per month
In the site's currency. Leave empty for no maximum.
roomTypeenumOptionaldefault "any"Room type
roomsForenumOptionaldefault "any"Suitable for
postedByenumOptionaldefault "any"Posted by
furnishingenumOptionaldefault "any"Furnishing
billsIncludedbooleanOptionaldefault falseBills included only
Only ads whose rent includes bills.
photosOnlybooleanOptionaldefault falseAds with photos only
availableFromstringOptionalAvailable from
Only rooms available on or around this date.
minTermMonthsintegerOptionalMinimum term (months)
Only ads that accept a stay of at least this many months.
keywordstringOptionalKeyword
Only ads whose text mentions this word, e.g. garden or ensuite.
radiusMilesintegerOptionalRadius (miles, UK)
Also include ads this many miles around each UK location. Rounded to the site's options (1, 2, 3, 4, 5, 10, 15, 20, 30, 40).
sortByenumOptionaldefault "default"Sort by
includeDetailsbooleanOptionaldefault trueFull ad details
On: open every ad for the full record (description, all rooms and deposits, amenities, photos, advertiser, flatmate preferences, coordinates). Off: search-card fields only (title, price, area, postcode, property type), much faster.
monitoringModebooleanOptionaldefault falseOnly new listings (monitoring)
Skip ads already saved by earlier runs with the same inputs and filters. Schedule the run to get only new ads each time.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy
Datacenter proxies work well for SpareRoom. If the site refuses them, the run switches to residential proxies in the site's country by itself.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| advert_id | string | null | SpareRoom ad id |
| listingType | string | null | offered, wanted or buddyup |
| url | string | null | Ad page |
| site | string | null | UK (spareroom.co.uk) or US (spareroom.com) |
| currency | string | null | GBP or USD |
| ad_title | string | null | Ad title |
| ad_text | string | null | Full ad description |
| price | string | null | Headline price as shown |
| neighbourhood_name | string | null | Area |
| postcode | string | null | Postcode district or ZIP |
| property_type | string | null | Property type |
| advertiser_name | string | null | Advertiser first name |
| advertiser_type | string | null | Advertiser role |
| available_from | string | null | Available from (YYYY-MM-DD) |
| searchInput | string | null | Input that found this ad |
| scrapedAt | string | null | When the row was scraped (UTC) |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Listing | One SpareRoom ad saved to the dataset. | $0.0007 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('roamandroof/spareroom-scraper').call({
"locations": [
"London"
],
"maxItems": 20,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"DATACENTER"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run roamandroof/spareroom-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=roamandroof/spareroom-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Paste any spareroom.co.uk search page; its filters are kept.
Search spareroom.com by city, neighborhood or ZIP code.
People looking for a room: budget, areas, move-in date and profile.
Groups looking to rent a place together.
Rent range, room type, bills and price sort from the site's own filters.
Fast list of titles, prices, areas and ZIP codes without opening each ad.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.