S1Homes Scotland Property Scraper avatar

S1Homes Scotland Property Scraper

Pricing

$14.00 / 1,000 property listings

Go to Apify Store
S1Homes Scotland Property Scraper

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

VividSoftwares

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

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

  1. 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.
  2. 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.
  3. 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.

FieldDescription
startUrlsMain input. Any S1Homes search, area, type, land, new-build, agent, developer or property page. Every matching listing is collected.
searchTypeforSale, toRent or newHomes
locations1,900+ S1Homes locations: towns, neighbourhoods, council areas and postcode districts such as edinburgh, st-andrews, eh4, g42
radiusThis area only, or ¼ mile to 40 miles
propertyTypeDetached, Semi-Detached, Terraced, Flat, Apartment, Bungalow, Land, Farm, Park Home, House, Maisonette, Cottage, Studio, Other
minBedrooms, maxBedroomsStudio (0) to 20
minBathrooms, maxBathrooms1 to 20
minPrice, maxPriceSale price steps from £50,000 to £5,000,000
minRent, maxRentMonthly rent steps from £100 to £25,000 PCM
addedToSiteLast 24 hours, 3 days, 7 days, 14 days or last month
includeSoldSTC, excludeUnderOfferSale searches
furnishedType, petsAllowedRental searches
sortByHighest price, lowest price, newest listed, oldest listed
maxItemsMaximum number of saved listings (default 50)
scrapeDetailsRead every listing in full for all floor plans, videos, 3D tours, documents and the agent profile link (default on)
includeImagesInclude photo URLs (default on)
includeDuplicatesInclude listings from previous runs (default off)
proxyConfigurationApify 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

GroupFields
Listinglisting_id, url, search_type, title, summary, listing_status, status_text, is_new_home, date_added, date_updated, view_count
Priceprice_text, price, price_qualifier, price_frequency, currency
Addressaddress, street_address, locality, city, region, postcode, outcode, country, latitude, longitude, google_maps_url, street_view_url
Propertyproperty_type, bedrooms, bathrooms, reception_rooms, floor_area, floor_area_max, floor_area_unit, tenure, council_tax_band
Rentalsfurnishing, let_type, deposit, date_available, landlord_registration, letting_agent_registration
Descriptiondescription, key_features, rooms (name, size and description)
Featuresparking, outside_space, heating, accessibility, electricity, broadband, year_built, floors
Ownership and rental termsservice_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
Agentadvertiser_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
Mediamain_image_url, images, image_count, floorplans, floorplan_url, floorplan_count, video_urls, video_url, video_count, tour_3d_urls
Documentsdocuments, home_report_url, epc_document_url, brochure_url
Areanearby_schools, nearby_train_stations (name, address, distance in miles, coordinates)
Runseen_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_run tells you which ones you had before. The history is kept in a dataset named s1homes-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 ApifyClient
client = 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_count shows S1Homes' count and video_urls the 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.