S1Homes Scotland Property Scraper
Pricing
$14.00 / 1,000 property listings
S1Homes Scotland Property Scraper
Scrape S1Homes, Scotland's property website. Paste any search URL to get every listing for sale or to rent with prices, dates added, photos, floor plans, videos, nearby schools and stations, and agent contacts.
Pricing
$14.00 / 1,000 property listings
Rating
0.0
(0)
Developer
VividSoftwares
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
What does S1Homes Scotland Property Scraper do?
S1Homes Scotland Property Scraper extracts property listings from S1Homes, one of Scotland's longest-running property websites. Paste any S1Homes search URL and get every matching listing, for sale or to rent, as clean JSON: prices and "offers over" terms, dates added, bedrooms and bathrooms, full descriptions, key features, every photo, floor plan, video and 3D tour, Home Report and EPC documents when supplied, nearby schools and train stations, coordinates, and the listing agent's public branch contact details.
It is a dedicated S1Homes scraper and a practical Scottish property listings API. Run it from Apify Console, call it over the API, schedule it, or connect it to AI agents through MCP.
- 🏠 Property for sale across Scotland
- 🔑 Property to rent, including furnishing, deposit, availability date, let type and pet-friendly lets
- 🏗️ New homes from Scottish developers and agents
- 📍 Towns, neighbourhoods, council areas and postcode districts, with S1Homes' radius search
Why use this S1Homes scraper?
- Every page, not just the first. Paste one search URL and the Actor collects every matching listing, up to your limit.
- Dates added and updated, so you can track new stock and time on market.
- Rich media: all photos, floor plans, videos, 3D tours and Home Report or EPC PDFs when the agent supplies them.
- Location context: nearby schools and train stations with distances, plus Google Maps and Street View links.
- Only new listings on repeat runs: listings you already received are skipped and not charged.
Common uses:
- Property market research across Glasgow, Edinburgh, Aberdeen, Dundee and the rest of Scotland
- UK property lead generation: build lists of active estate and letting agent branches with their public phone numbers and emails
- Rental market tracking: rents, furnishing, deposits and availability by postcode
- Investor deal sourcing: new listings, guide prices, auctions and new-build developments
- Property data for AI agents: structured Scottish listings for assistants and automations
How to scrape S1Homes property listings
Option 1: paste an S1Homes search URL (recommended)
- Go to s1homes.com and search with any filters you like: location, radius, price, bedrooms, bathrooms, property type, furnishing, pet-friendly, date added and so on.
- Copy the results URL from your browser, for example
https://www.s1homes.com/property-for-sale?keywords=Edinburgh&locationIdentifier=edinburgh%5E20676&locationText=Edinburgh&sortedBy=date&sort=DESC. - Paste it into S1Homes search or property URLs, set Maximum listings and click Start.
You can paste as many URLs as you like in one run. Every kind of S1Homes listing page works:
- Search results:
/property-for-sale?…,/property-to-rent?… - Area and neighbourhood pages:
/property-for-sale/glasgow,/property-for-sale/edinburgh/stockbridge,/property-to-let/aberdeen - Type, bedroom and filter pages:
/flats-to-rent/…,/3-bedroom-house-for-sale/…,/furnished-homes-to-let/…,/pet-friendly-flat-to-rent/…,/bungalows-for-sale/… - Land and new-build pages:
/find-land-for-sale/…,/plot-of-land-for-sale/…,/new-homes-for-sale/…,/new-build-homes - Agent pages:
/estate-agent/<agent>/<branch>,/letting-agent/<agent>/<branch>,/agent/<agent>/<branch>(all of that branch's listings) - Developer and development pages:
/developer/<developer>,/development/<developer>/<development> - Individual property pages
Filters you add to any of these URLs (for example ?minBedrooms=2&sortedBy=price&sort=ASC) are applied. Pages that are not property listings, such as news or guides, are skipped with a warning.
Option 2: use the optional search builder
Pick a Search type (for sale, to rent or new homes) and one or more Locations, then add filters. The builder uses the same values as S1Homes' own search form. URLs and builder searches can be combined in one run, and duplicates are removed.
Download results as JSON, CSV, Excel or HTML, or read them through the API.
Input
The main input is startUrls. Every other search field belongs to the optional search builder.
| Field | Description |
|---|---|
startUrls | Main input. Any S1Homes search, area, type, land, new-build, agent, developer or property page. Every matching listing is collected. |
searchType | forSale, toRent or newHomes |
locations | 1,900+ S1Homes locations: towns, neighbourhoods, council areas and postcode districts such as edinburgh, st-andrews, eh4, g42 |
radius | This area only, or ¼ mile to 40 miles |
propertyType | Detached, Semi-Detached, Terraced, Flat, Apartment, Bungalow, Land, Farm, Park Home, House, Maisonette, Cottage, Studio, Other |
minBedrooms, maxBedrooms | Studio (0) to 20 |
minBathrooms, maxBathrooms | 1 to 20 |
minPrice, maxPrice | Sale price steps from £50,000 to £5,000,000 |
minRent, maxRent | Monthly rent steps from £100 to £25,000 PCM |
addedToSite | Last 24 hours, 3 days, 7 days, 14 days or last month |
includeSoldSTC, excludeUnderOffer | Sale searches |
furnishedType, petsAllowed | Rental searches |
sortBy | Highest price, lowest price, newest listed, oldest listed |
maxItems | Maximum number of saved listings (default 50) |
scrapeDetails | Read every listing in full for all floor plans, videos, 3D tours, documents and the agent profile link (default on) |
includeImages | Include photo URLs (default on) |
includeDuplicates | Include listings from previous runs (default off) |
proxyConfiguration | Apify Proxy, on by default |
Example input: search URL
{"startUrls": [{ "url": "https://www.s1homes.com/property-to-rent?keywords=Glasgow&locationIdentifier=glasgow%5E70434&locationText=Glasgow&furnishedType=furnished" }],"maxItems": 100}
Example input: search builder
{"searchType": "forSale","locations": ["edinburgh", "eh4"],"radius": "1","minBedrooms": "2","maxPrice": "350000","propertyType": "flat","addedToSite": "7d","sortBy": "date-DESC","maxItems": 200}
Output
Each listing is one dataset item. Fields that S1Homes does not provide for a listing are left out rather than guessed.
Example listing
{"listing_id": "20260925132431160","url": "https://www.s1homes.com/property-for-sale/Flat/20260925132431160","search_type": "forSale","title": "2 Bed Flat for Sale","summary": "Situated on a quiet tree-lined street in the conservation area of one of Edinburgh's most sought after suburbs, this top floor flat retains many period features and offers leafy aspects to the front with views to Arthur's Seat. The property has been well-maintained by its current owner and offers flexible space with its own private garden area to the rear.","listing_status": "available","status_text": "Available","price_text": "Offers over £395,000","price": 395000,"price_qualifier": "Offers Over","currency": "GBP","address": "15 3f1, Gladstone Terrace, Edinburgh, EH9 1LS","street_address": "15 3f1","locality": "Gladstone Terrace","city": "Edinburgh","postcode": "EH9 1LS","outcode": "EH9","country": "Scotland","latitude": 55.9387439,"longitude": -3.1857299,"google_maps_url": "https://www.google.com/maps/search/?api=1&query=55.938744,-3.185730","street_view_url": "https://www.google.com/maps/@?api=1&map_action=pano&viewpoint=55.938744,-3.185730","property_type": "Flat","bedrooms": 2,"bathrooms": 1,"tenure": "Freehold","council_tax_band": "E","is_new_home": false,"description": "The property is accessed via a secure door entry system with stairs to all floors and a door on the ground level giving access to the garden.\nThe central hallway, with its ceiling rose and decorative …","key_features": ["Original period features and private garden"],"advertiser_type": "agent","agent_name": "Peterkin & Kidd","branch_name": "Linlithgow","agent_phone": "01506 840000","agent_email": "cmclaughlin@peterkinandkidd.co.uk","agent_profile_url": "https://www.s1homes.com/agent/peterkin-kidd/linlithgow","agent_logo_url": "https://cdn.s1homes.com/s1homes/uploads/2025/07/Peterkin-Kidd.png","agent_reference": "199_BRA_12975","main_image_url": "https://cdn.s1homes.com/s1homes/uploads/property_images/2026/09/01-2423674.jpg","images": ["https://cdn.s1homes.com/s1homes/uploads/property_images/2026/09/01-2423674.jpg","https://cdn.s1homes.com/s1homes/uploads/property_images/2026/09/04-2423675.jpg","…"],"image_count": 11,"floorplans": ["https://cdn.s1homes.com/s1homes/uploads/property_images/2026/09/15-Gladstone-Terrace_-3f1-DM.jpg"],"floorplan_url": "https://cdn.s1homes.com/s1homes/uploads/property_images/2026/09/15-Gladstone-Terrace_-3f1-DM.jpg","floorplan_count": 1,"nearby_schools": [{"name": "James Gillespie's High School","address": "120 Warrender Park Road, Edinburgh","distance_miles": 0.57,"latitude": 55.936757,"longitude": -3.2001215}],"nearby_train_stations": [{"name": "Edinburgh Waverley","address": "United Kingdom","distance_miles": 0.95,"latitude": 55.9524097,"longitude": -3.1883014}],"date_added": "2026-09-25T13:24:31.884Z","date_updated": "2026-09-25T13:24:32.611Z","view_count": 7,"detail_page_complete": true,"scraped_at": "2026-09-27T21:07:45.623162+00:00","seen_in_previous_run": false}
Output fields
| Group | Fields |
|---|---|
| Listing | listing_id, url, search_type, title, summary, listing_status, status_text, is_new_home, date_added, date_updated, view_count |
| Price | price_text, price, price_qualifier, price_frequency, currency |
| Address | address, street_address, locality, city, region, postcode, outcode, country, latitude, longitude, google_maps_url, street_view_url |
| Property | property_type, bedrooms, bathrooms, reception_rooms, floor_area, floor_area_max, floor_area_unit, tenure, council_tax_band |
| Rentals | furnishing, let_type, deposit, date_available, landlord_registration, letting_agent_registration |
| Description | description, key_features, rooms (name, size and description) |
| Features | parking, outside_space, heating, accessibility, electricity, broadband, year_built, floors |
| Ownership and rental terms | service_charge_per_year, ground_rent_per_year, tenure_unexpired_years, shared_ownership_percent, shared_ownership_rent, is_auction, pets_allowed, smokers_considered, sharers_considered, is_student_property, is_house_share, minimum_term_months, contract_months, bills_included, council_tax_exempt, furnished_extras |
| Agent | advertiser_type (agent, developer or private), developer_name, development_name, agent_name, branch_name, agent_phone, agent_email, agent_profile_url, agent_logo_url, agent_reference |
| Media | main_image_url, images, image_count, floorplans, floorplan_url, floorplan_count, video_urls, video_url, video_count, tour_3d_urls |
| Documents | documents, home_report_url, epc_document_url, brochure_url |
| Area | nearby_schools, nearby_train_stations (name, address, distance in miles, coordinates) |
| Run | seen_in_previous_run, detail_page_complete, scraped_at |
The Output tab has four views: Property listings, Photos, floor plans and media, Agent contacts and Rental details. A RUN_SUMMARY record in the key-value store lists property URLs that are no longer listed (unavailable_urls) and any that could not be loaded (failed_urls).
Pagination, duplicates and new-listing monitoring
- The Actor reads the whole result set of each search, 200 listings at a time, until it reaches the number S1Homes reports or your Maximum listings.
- Within a run, each listing is saved once, even if it appears in several searches.
- Across runs, the Actor remembers the listings it has already saved for your account and skips them by default, so scheduled runs only return and charge for new listings. Turn on Include listings from previous runs to get everything again;
seen_in_previous_runtells you which ones you had before. The history is kept in a dataset nameds1homes-history-<your user ID>in your own Apify account.
Use the S1Homes scraper through the API
curl -X POST "https://api.apify.com/v2/acts/vivid-softwares~s1homes-scotland-property-scraper/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"startUrls": [{"url": "https://www.s1homes.com/property-for-sale/glasgow"}], "maxItems": 20}'
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("vivid-softwares/s1homes-scotland-property-scraper").call(run_input={"searchType": "toRent","locations": ["glasgow", "g12"],"furnishedType": "furnished","maxItems": 100,})for listing in client.dataset(run["defaultDatasetId"]).iterate_items():print(listing["price_text"], listing["address"], listing.get("date_available"))
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('vivid-softwares/s1homes-scotland-property-scraper').call({startUrls: [{ url: 'https://www.s1homes.com/property-for-sale?keywords=Aberdeen&locationIdentifier=aberdeen%5E61759&locationText=Aberdeen&addedToSite=7d' }],maxItems: 200,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.map((home) => `${home.price_text} - ${home.address} (added ${home.date_added})`));
Property 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/s1homes-scotland-property-scraper to your MCP configuration and ask, for example:
- "List furnished 2-bed flats to rent in Glasgow West End under £1,500 a month."
- "Which agents added the most listings in Aberdeen this week?"
- "Find detached houses near a train station in West Lothian with a floor plan."
How much does it cost to scrape S1Homes?
This Actor uses pay-per-event pricing: $14 per 1,000 property listings, which is $0.014 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 Glasgow listings cost $2.80.
Tips
- Run your search on S1Homes first and paste the URL: every S1Homes filter is supported that way.
- Turn off Get every photo, floor plan and video for much faster runs. You still get every other field, all photos and nearby places, but not floor plans, videos, 3D tours, documents or the agent profile link.
- Schedule a daily run with Added to site: Last 24 hours (or sort by newest) to monitor new listings.
Data limitations
- S1Homes shows the agent's phone and email on the branch's public profile page, not on each listing. The Actor returns those public branch details.
- Private advertisers (people selling or letting without an agent) contact S1Homes users through a form. Their contact details are never returned; these listings have
advertiser_type: private. - Home Report, EPC and brochure PDFs are returned when the agent supplies them with the listing. S1Homes does not always link them on the listing page.
- Some listings report more videos than they include links for;
video_countshows S1Homes' count andvideo_urlsthe links available. - Council tax, bathrooms, floor area, tenure, parking, heating, rooms and the other detail fields are only present when the advertiser provides them. S1Homes shows the rest as "Ask agent", and the Actor leaves them out.
- Full-detail runs read several listings in parallel; turn details off for the fastest runs.
Public contact data policy
The Actor only returns contact details that S1Homes shows publicly: the listing agent's branch phone and email from the branch's public S1Homes profile. It never returns private advertisers' details, company staff emails that S1Homes does not display, or anything behind a contact form. If you use agent contact data for outreach, follow UK GDPR and PECR rules.
FAQ
Is there an official S1Homes API? No public API is offered. This Actor gives you structured S1Homes data through the Apify API.
Is it legal to scrape S1Homes? The Actor collects publicly available listing information and respects S1Homes' robots.txt crawl delay. You are responsible for how you use the data, including data protection rules. If in doubt, ask a lawyer.
Can I scrape properties by postcode? Yes. Pick postcode districts such as EH4 or G42 in the builder, or paste an S1Homes search URL for a postcode.
Does it get more than the first page of results? Yes. It collects every matching listing 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.
Can you add a field or a custom version? Open an issue on the Issues tab.
This Actor is not affiliated with, endorsed by or connected to S1Homes or Newsquest.