Spotahome Property Scraper - Deduplication Ability avatar

Spotahome Property Scraper - Deduplication Ability

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Spotahome Property Scraper - Deduplication Ability

Spotahome Property Scraper - Deduplication Ability

Scrape Spotahome rental property listings across Europe — price, currency, full address, coordinates, bedrooms, occupancy, amenities, rating and images. Automatic duplicate removal, exact per-URL item limits, JSON/CSV/Excel export and API access.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

ActorFlow

ActorFlow

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Spotahome Property Scraper

Scrape rental property listings from Spotahome (spotahome.com) — mid- and long-term rooms, studios and apartments across Europe. Each record carries the title, description, property type, monthly price and currency, full address with latitude/longitude, bedroom and occupancy counts, amenities, rating and image URLs. Paste a city URL, press Start, and export the results as JSON, CSV or Excel — or call the whole thing as an API from Python, JavaScript or cURL.

Target website: spotahome.com

✨ Features of this Spotahome property scraper

  • Property data extraction — title, description, type, price, currency, availability, full address, coordinates, bedrooms, max occupancy, pet and smoking rules, amenities, rating, images and listing date.
  • Automatic duplicate removal — the same property is never scraped or billed twice. Spotahome's paginated city pages repeat listings between pages, so every property URL is normalised (tracking parameters and fragments stripped) and checked against an in-run registry before it is queued. One property, one dataset record.
  • Exact item limitsmaxItems is enforced per start URL against deduplicated properties, so asking for 50 properties returns 50 distinct properties, not 50 queue entries that collapse into fewer rows.
  • Cross-run caching — set a cache project name and properties already scraped in an earlier run are skipped, so a daily run collects only what is new.
  • Pagination support — walks Spotahome's city listing pages automatically until the item limit for that start URL is reached, then stops instead of crawling the whole city.
  • Automatic URL detection — city listing URLs and direct property URLs are told apart automatically, so you can mix both in Start URLs without labelling them.
  • Whole-site mode — one toggle crawls Spotahome's main city listing pages instead of a hand-picked URL list.
  • Proxy support — optional Apify proxy configuration; datacenter and residential are both supported.
  • No browser required — runs on plain HTTP requests rather than a headless browser, which makes runs fast and cheap.

🚀 How to scrape Spotahome property listings in 5 steps

  1. Sign up for a free Apify account — includes $5 monthly credit.
  2. Open the actor page and click Try for free.
  3. Fill in the Input fields (at least one start URL is required).
  4. Click Start and wait for the run to complete.
  5. Download results from the Output tab in JSON, CSV, or Excel format.

You can also run this actor via the Apify API or integrate it directly into your workflows using Zapier, Make, or n8n.

💰 Pricing

Runs are billed through your Apify plan based on the compute units they consume; the actor page shows the current pricing.

  • New Apify accounts include $5 of free monthly credit.
  • Because it uses plain HTTP requests rather than a headless browser, it costs significantly less to run than browser-based property scrapers.
  • Proxies are disabled by default, and leaving them off keeps runs cheapest.
  • Duplicate listings are filtered before they are queued, so you are not billed for fetching the same property twice.

🔧 Input configuration

FieldTypeRequiredDefaultDescription
startUrlsarray[{"url": "https://www.spotahome.com/barcelona"}]Spotahome city listing URLs or direct property URLs. The type of each URL is detected automatically.
maxItemsinteger3Maximum number of distinct properties to scrape for each start URL.
scrapeWholeSitebooleanfalseIgnore Start URLs and crawl Spotahome's main city listing pages instead.
cacheProjectNamestringOptional. When set, properties already scraped under this project name in a previous run are skipped instead of being scraped again.
proxyConfigurationobject{"useApifyProxy": false}Spotahome responds fine without a proxy. Enable datacenter proxies first if you start seeing blocks, and residential only if datacenter still fails.

Supported URL types:

  • City listing pageshttps://www.spotahome.com/barcelona, and paginated search pages such as https://www.spotahome.com/s/barcelona/page:2.
  • Property pageshttps://www.spotahome.com/{city}/for-rent:{type}/{id}, e.g. https://www.spotahome.com/barcelona/for-rent:apartments/1180373.

📦 Spotahome scraper output data

Output is a structured JSON dataset (exportable to CSV, Excel, XML and RSS) with one record per distinct property, containing url, propertyId, title, description, propertyType, price, currency, availability, city, country, streetAddress, postalCode, latitude, longitude, numberOfRooms, numberOfBedrooms, maxOccupancy, petsAllowed, smokingAllowed, amenities, rating, reviewCount, images and datePosted.

The dataset has one view, Overview, a compact table of each property's title, city, type, price, currency, bedrooms, rating and URL.

Sample output:

{
"url": "https://www.spotahome.com/barcelona/for-rent:rooms/1694442",
"propertyId": "1694442",
"title": "Room in a shared 1-bedroom apartment for rent in el Raval, bills included",
"description": "Room for rent in a furnished apartment with balcony, equipped kitchen, near Sant Antoni metro station, el Raval, Barcelona. Spotahome verified. (ref: 1694442)",
"propertyType": "Room",
"price": 650,
"currency": "EUR",
"availability": "https://schema.org/InStock",
"city": "Barcelona",
"country": "ES",
"streetAddress": "Ronda de Sant Antoni",
"postalCode": "08001",
"latitude": 41.3796253,
"longitude": 2.16393598,
"numberOfRooms": null,
"numberOfBedrooms": 1,
"maxOccupancy": 1,
"petsAllowed": false,
"smokingAllowed": true,
"amenities": [
"Furnished",
"Elevator"
],
"rating": null,
"reviewCount": null,
"images": [
"https://photos.spotahome.com/fsobscale_1600_900_nonverified_ur_15_50/59d33abdf33745ff4280b54c1d4026f0102945bda1b62ee21acc2daa.webp",
"https://photos.spotahome.com/fsobscale_1600_900_nonverified_ur_15_50/c94cf34b68aa458f335a9eee4c9879f416519e15f247a7d89ebc1e6d.webp"
],
"datePosted": "2026-09-08T16:00:00+0000"
}

🐍 How to scrape Spotahome with Python, JavaScript or the API

Run the actor programmatically with the official Apify clients. Replace <YOUR_API_TOKEN> with the token from your Apify Console.

Python (pip install apify-client):

from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("<username>/spotahome-property-scraper").call(run_input={
"startUrls": [{"url": "https://www.spotahome.com/barcelona"}],
"maxItems": 50,
"proxyConfiguration": {"useApifyProxy": False},
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

JavaScript (npm install apify-client):

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });
const run = await client.actor('<username>/spotahome-property-scraper').call({
startUrls: [{ url: 'https://www.spotahome.com/barcelona' }],
maxItems: 50,
proxyConfiguration: { useApifyProxy: false },
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

cURL — start a run and wait for the dataset:

curl -X POST "https://api.apify.com/v2/acts/<username>~spotahome-property-scraper/run-sync-get-dataset-items?token=<YOUR_API_TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"startUrls": [{"url": "https://www.spotahome.com/barcelona"}],
"maxItems": 50,
"proxyConfiguration": {"useApifyProxy": false}
}'

💡 What you can use Spotahome property data for

  • Tracking rental prices across European cities over time
  • Benchmarking a property portfolio against comparable listings
  • Relocation, student-housing and corporate-housing research
  • Market supply analysis by city, property type or price band
  • Mapping listings by coordinates for neighbourhood-level pricing
  • Feeding property dashboards, alerting tools and internal search

Rental market analysts, relocation services, student-housing operators and property investors typically use this data, across the real estate, PropTech, travel and hospitality, and market research industries.

⚠️ Limitations & known issues

  • Live inventory changes constantly — running the same city URL twice may return a different set of properties as listings are booked and new ones are added.
  • Some fields are listing-dependentrating, reviewCount, numberOfRooms and datePosted are null when Spotahome does not publish them for that property.
  • Login-required content — the actor does not log in, so anything visible only to a signed-in user or after a booking request is out of scope.

❓ Frequently asked questions

Can I scrape Spotahome legally?

This actor only collects data that is already publicly visible on Spotahome listing pages — it does not log in, contact landlords, or access account-only areas. Scraping publicly available data is generally considered lawful (see hiQ Labs v. LinkedIn as precedent). You remain responsible for complying with Spotahome's Terms of Service and with applicable privacy law such as GDPR if listing data contains personal information.

Does this Spotahome scraper return duplicate listings?

No. Spotahome's paginated city pages repeat the same property across pages, so every property URL is normalised — tracking query parameters and fragments removed — and checked against an in-run registry before it is queued. Each property produces exactly one dataset record per run, and duplicates are filtered before they are fetched rather than after, so they cost nothing.

How many properties can I scrape from one URL?

maxItems sets the limit per start URL and counts distinct properties, so maxItems: 50 against a city URL returns 50 different properties. The actor follows pagination until that limit is reached and then stops, rather than crawling the entire city. Pass several city URLs in Start URLs and each gets its own independent budget.

Do I need a proxy to scrape spotahome.com?

No. Spotahome responds reliably to direct requests, so proxies are disabled by default and runs stay cheap. If you start seeing blocks, enable datacenter proxies first, and only fall back to residential if datacenter still fails.

How do I scrape Spotahome with Python?

Install the Apify client with pip install apify-client, then call the actor with your API token and read the dataset — the full Python example is in the section above. JavaScript and cURL examples are there too.

Can I run this Spotahome scraper on a schedule?

Yes. Use Apify Schedules to run it hourly, daily or weekly. Pair it with the Cache project name input and each scheduled run skips properties it already collected previously, so you only collect new listings.

What output formats are supported?

JSON, CSV, Excel, XML and RSS, either from the Output tab or through the Apify API.

🔗 Other actors you may find useful

  • 🏘️ Rightmove Scraper Updated — Scrapes property data from Rightmove, the UK's largest property portal.
  • Rightmove Listing Availability Checker — Takes a list of Rightmove listing URLs and verifies whether each one is still active or has been removed, returning the URL, availability status and relevant metadata.
  • 🎓 AmberStudent Accommodation Scraper — Scrapes AmberStudent student accommodation listings — pricing, availability, photos, amenities, location and reviews — from city, area or individual property pages. $1.5/1000 results.
  • Church Finder Scraper — Scrapes church listings and profiles from Church Finder, extracting name, denomination, address, phone number, service times, ratings and reviews from city search pages or individual church URLs. Free.
  • ⚖️ Austria Ediktsdatei Scraper — Scrapes Austrian judicial auction listings (Gerichtliche Versteigerungen) from edikte.justiz.gv.at, including property details, dates, valuations and PDF documents.

💬 Support & contact

If you encounter any issues or have questions, please open an issue.

You can also find more of our actors on the Apify Store.