SpotAHome Scraper | Fast & Reliable
Pricing
from $0.70 / 1,000 property listings
SpotAHome Scraper | Fast & Reliable
Extract Spotahome rental listings at scale with rich property detail, availability data, landlord signals, media, booking context, and flexible market filters. Built for enterprise-grade rental intelligence, market monitoring, and automated analytics pipelines.
Pricing
from $0.70 / 1,000 property listings
Rating
0.0
(0)
Developer
Fatih Tahta
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Spotahome Scraper
Slug: fatihtahta/spotahome-scraper
Overview
Spotahome Scraper collects structured rental listing data from Spotahome, including listing identity, title, description, price, availability, location, property details, booking signals, media references, landlord metadata, and source context. Spotahome is a furnished rental marketplace where public listing data is useful for understanding rental supply, pricing, availability, and market composition across supported cities. The actor turns rental search results into repeatable JSON records that can be used in analytics, enrichment, monitoring, and operational reporting workflows. It is designed for automated, recurring data acquisition where consistent inputs and normalized outputs are important. Results reflect the publicly available data returned for the selected search scope at run time.
Why Use This Actor
- Market research and analytics teams: collect normalized rental listing data for market intelligence, price analysis, availability tracking, and location-level reporting.
- Product and content teams: enrich internal rental catalogs, city pages, comparison experiences, or content workflows with current public listing attributes.
- Developers and data engineering teams: feed structured extraction output into downstream systems, warehouses, search indexes, and scheduled data acquisition pipelines.
- Lead generation and enrichment teams: identify relevant rental properties, landlords, property formats, and public listing attributes for enrichment pipelines.
- Monitoring and competitive tracking teams: track supply, pricing, listing quality signals, and availability changes across target rental markets.
Common Use Cases
- Market intelligence: monitor rental supply, monthly pricing, availability dates, location coverage, property mix, and listing quality indicators.
- Lead generation: build targeted lists of public rental listings and associated landlord identifiers for follow-up workflows.
- Competitive monitoring: compare listing volume, pricing, amenities, property types, and trust signals across cities or rental segments.
- Catalog and directory building: populate internal real estate databases with structured public listing records.
- Data enrichment: add current public rental attributes to CRM, BI, analytics, or inventory datasets.
- Recurring reporting: schedule periodic runs for dashboards, alerts, trend analysis, and operational reporting.
Quick Start
- Enter the
locationyou want to search, such as a city, neighborhood, or rental market supported by Spotahome. - Optionally add filters such as
min_price,max_price,property_type,amenities,suitability, included bills, dates, or listing quality signals. - Set a small
limitfor the first validation run, such as 25 or 50 records. - Run the actor in Apify Console.
- Inspect the first dataset records to confirm that the fields, identifiers, and nested objects match your use case.
- Increase the
limit, adjust filters, or schedule recurring runs once the output is verified.
Input Parameters
The actor requires one search location; all other fields are optional filters, sorting controls, or collection limits.
| Parameter | Type | Description | Default |
|---|---|---|---|
location | string | Required search location, such as a city, neighborhood, or supported rental market. Example: Barcelona. | – |
min_price | integer | Minimum monthly rental price to save. Use EUR as the practical pricing unit for Spotahome listings. | – |
max_price | integer | Maximum monthly rental price to save. Use EUR as the practical pricing unit for Spotahome listings. | – |
bed_type | array of strings | Bed arrangements to include. Allowed values: single_bed, double_bed, twin_beds. Leave empty to include all bed setups. | – |
property_type | array of strings | Rental formats to include. Allowed values: apartments, studios, rooms_shared, student_residences. Leave empty to include all supported property types. | – |
amenities | array of strings | Amenities that matching listings should include. Allowed values: air_conditioning, heating, washing_machine, oven, dishwasher, with_desk, balcony, elevator. | – |
suitability | array of strings | Renter profile or household suitability signals. Allowed values: couples, pets, students, professionals. | – |
included_bills | array of strings | Bills or services that should be included in the rental cost. Allowed values: wifi, electricity, water, gas. | – |
checkin_date_day | string | Desired move-in date. Accepted formats: YYYY-MM-DD or DD/MM/YYYY. Used with checkout_date_day. | – |
checkout_date_day | string | Desired move-out date. Applies when checkin_date_day is also set. Accepted formats follow the same date style as check-in. | – |
availability_variance | string | Optional date flexibility around both check-in and check-out dates. Allowed values: 1_week, 2_week, 3_week. Ignored unless both dates are set. | – |
sort_by | string | Result ordering before records are saved. Allowed values: best_match, lowest_price, newest. | best_match |
private_bathroom | boolean | Only save listings that indicate a private bathroom. | false |
spotahome_checked | boolean | Only save listings marked as checked by Spotahome. | false |
no_deposit | boolean | Only save listings that do not require a security deposit. | false |
limit | integer | Maximum number of listings to save for the run. Leave empty to collect as many matching listings as available within the run scope. | – |
Choosing Inputs
Start with a clear location, because it defines the rental market and the overall result scope. Use price, property type, bed type, amenity, suitability, included bill, bathroom, deposit, and Spotahome-checked filters when you need a targeted dataset; leave optional filters empty when the goal is broader discovery. Availability dates should be supplied as a pair: set both checkin_date_day and checkout_date_day, then add availability_variance only when date flexibility matters. Use sort_by to align collection with your workflow, such as best-match discovery, lowest-price review, or recently listed monitoring. Begin with a small limit to validate the output shape, then increase it once the dataset matches your expectations.
Example Inputs
Broad Discovery In Barcelona
{"location": "Barcelona","property_type": ["rooms_shared"],"sort_by": "best_match","limit": 50}
Budget-Conscious Apartment Search
{"location": "Madrid","min_price": 700,"max_price": 1400,"property_type": ["apartments", "studios"],"amenities": ["washing_machine", "heating"],"sort_by": "lowest_price","limit": 75}
Student-Friendly Availability Search
{"location": "Valencia","property_type": ["rooms_shared", "student_residences"],"suitability": ["students"],"included_bills": ["wifi", "water"],"checkin_date_day": "2026-09-01","checkout_date_day": "2027-01-31","availability_variance": "2_week","limit": 100}
Output
Output Destination
The actor writes results to an Apify dataset as JSON records. The dataset is designed for direct consumption by analytics tools, ETL pipelines, and downstream APIs with minimal post-processing.
When multiple entity types or record shapes exist, this README documents each shape separately based on the provided Example Output. The provided output contains one primary record shape: a Spotahome rental listing.
Record Envelope And Stable Identifiers
Each record represents one public Spotahome rental listing with top-level listing identity and nested objects for pricing, availability, location, property details, booking signals, media, landlord information, attributes, and source context. The recommended idempotency key is listing_id; if your system requires a URL-backed key, use url as a secondary stable identifier. For repeated runs, use listing_id to deduplicate records, upsert existing listings, and preserve historical changes in pricing, availability, and listing metadata. Stable identifiers make records easier to merge, deduplicate, and sync across warehouses, CRMs, search indexes, and monitoring systems. source_context.fingerprint is also included as a run-level record fingerprint that can help compare saved records across repeated collections.
Examples
Example: Spotahome Rental Listing
{"listing_id": "1289069","url": "https://www.spotahome.com/barcelona/for-rent:rooms/1289069","title": "Rooms for rent in 7-bedroom apartment in Barcelona","description": "Looking for the ideal place to stay in the vibrant El Gotic area of Barcelona? Discover this fully furnished room in a shared seven-bedroom apartment, equipped with essential features such as an equipped kitchen, balcony, washing machine, and oven. The property has been personally checked by Spotahome, ensuring quality and trust for your next residence. All utilities including electricity, water, gas, and WiFi are covered for convenience. Unfortunately, pets and overnight guests are not allowed, and smoking is prohibited. Situated in El Gotic, one of Barcelona's most historically rich neighborhoods, you'll enjoy proximity to various landmarks and attractions. The apartment is located within walking distance from numerous points of interest, such as the famous Barshelona and Plaça de La Mercè. Additional nearby attractions include La Gamba and Barcelona Segway Glides, among others, making this property ideal for immersing yourself in the city's lively cultural scene.","property_type": "room_shared","pricing": {"display_price": 675,"minimum_price": 675,"currency": "EUR","bills_included": "all","offers": [{"discount_type": "percentage","discount_value": 3},{"discount_type": "percentage","discount_value": 7}]},"availability": {"first_available_date": "2026-08-31T00:00:00+00:00"},"location": {"street": "Carrer Ample","postal_code": "08002","city": "Barcelona","market_city": "barcelona","coordinates": {"longitude": 2.180184226738277,"latitude": 41.37974249565961},"address_coordinates": {"longitude": 2.18039,"latitude": 41.37978}},"property": {"area_sqm": 95,"room_area_sqm": 0,"bathrooms": 2,"bedrooms": 7},"booking": {"spotahome_checked": true,"instant_booking": false,"no_security_deposit": false,"deposit_protection": false,"permanent_contract_allowed": false,"best_choice": false,"favorite": false},"media": {"main_photo_url": "https://photos.spotahome.com/smw_768/d506ca2e374b6572ae27031745e5bbdb430ed1738015e1dee1963a1e.jpg","photo_ids": ["d506ca2e374b6572ae27031745e5bbdb430ed1738015e1dee1963a1e","a0d323c7ee2baf3105fe740287e6b0337de05cbdf09cf0010a99d04e","3b911d027ecefbebfcf455334ffc6fb989261e51c3deba8d66ac55f9","61e8304816f16180265c8e026b1a3c62c0c4ad09fd6b424d4291fb2b","2e5f4b9ccfd8d8bd4ffcb406c638dc861aec5586ac88b0b82bd3549c"],"other_property_photo_ids": ["608eb3bb7062da02b9459dddb046536ea4add2bc0ea536ad36962033","b62d1eb6a1019d7b95d575b778499586b2906a6d271fee928609dd40","5fc3f5633388a443d081ed56b34f9cfd0d181ddd3e5a51302844381d","a06f05552140f0cbf185d5bb681aadc7839d14e66df4c611a543a4d9","a7e434dbbdbf3e26a7bcb0ce8131d96a92fef630443a61bd7a0f7474","6968106c3fdf78ee5844d3086107471d235b41f63e5b366d01f1fc89","bb0fe0f3e0670b20fd1292435d25365671a4f8d44c8994b142c1028e","38a386f620f5006a5f33d0bdbbd9b79aaafa92f5d8f4378f66b199d5","a1a86a91bdb9d0244a9aa421edfd70274d64fe7422becfa92a716327","46103ed8165c11e27fd1ce1cff1d01c059a095b7784111de44f6800a","28f7f14746bbcd22ef39e4a21e69f1d18ebd2a698c3d8f6618295111","3bac35b4b0114bb63e9e8f68b575cf618a1fdce60894ea0830d039f4","bd6760923c3ee7a63d7589638c1e762a4f385a66eb56fa4cdf1afc95","68650a0fca8c7c83dbc4837697b052e2c25b2bf97b75fe33e8e4e56a","89ea46245dd105723bcc77b1e115538ec43e3f8f16ac33fba88a7d48","7bebf702d727815fb6ceeb9124df53f33a2dfc94e077fa493b6099ff","f9e7d4a3a5e608fed2000cc31b02fa04ba98aafaec9e87894b08f12f","2a4a4e5b2466f83614424ebe8b2a7a978d51dd4fecf6deb2864da9de","b0fbcecfd6c54972ce405bca6bccc01806e9b677bc2cf68bc69b2e81","4b8ed4e2ccbf0845f0171989f9b7bad973a721dab8d22b72497a160c","c01353c7b448e5f66fe5212e1b131a236d2196db18d949aa4cbb6247","306555fd98369eb5ec29553997f5c77d94d04bee0799aebc71ad4277","a7d9cf59fdb6b260e640080161b2ef24c5a7328bc0fb7fdca089e933","50e36716d1cbe48a9bb6782ffc673bd5f4568b386839fd0ac06a78df","48f35ee28e042475aa5ed916a8b42a37f41dff870578c0f6cc7859b6","1855c7677e6ee4f8f8e19f8c9769aaf3fededb57f399e44abccbc698","cce68e9aec424266aeed2b4c5be35638849f24c120386c69dd4d17ac","e2c913dac361ba3530f5d911672e1c7061488ad7c04d30dd975677c8","9c0dbc9becd2371f6007e9095c3f60b707b74e9a70ee93db8074bf66","fef384959fd23dac794058ef4be0b98660f25652f8e7be33d79111dc","7441cf8d47c1132233675c672542e6d0fd8899a44964f611ab569159","312453c408677d7c30e249d974a9324e00ba360560f9df609b8ecb74","f4b5a61f3a001456f5352849a11deb630bf1fd6f40e754567033a24b","6031efb62f69d2bb1f48b8dbd5edc8cf399b0f5719096d98deca660d","827b9cba387765cef470c46edde02cecc1f8beb7cd972bb3e5214fdb","dd6cadace6079e8348a11ef237a577e74c0821b59f5c0cdf36695775","dd9956c35a8d8f6976b6fda993eef292351b0ee1a6996697fd33f300","377fe7c74afda3bf61d4d8f7cd2f08c0915874b7c8ba7f2d473b7fde","0c4d4d89a403a99102bdc20103882052adbc2910868cdbdcca678a6f","549bbd58f4685c81a1a7c82694b707553b1cbccb26ed73015baeb3b3","6b4ca4c8b81a0c1e70ebd0853d0a778d46782ef19827b25224dded10"]},"landlord": {"landlord_id": "70d4b9c8-7cfe-4c95-9ab8-534ff393b5f2","scoring": {"score": 380,"total_bookings_closed": 665}},"attributes": {"feature_flags": ["Any","Professionals","Students","Furnished","Exterior","Equipped kitchen","Balcony or terrace","Oven","Desk","Chest of drawers","Shelving","Independent key","Built-in wardrobe","Window","Electricity","Water","Gas","Wifi","Double Bed"],"unmapped_feature_flags": {"3024": true},"search_marker": {"instant_booking": false,"minimum_price": 675}},"source_context": {"total_markers": 4608,"source_url": "https://www.spotahome.com/s/barcelona--spain/for-rent:rooms","seed_id": "8307012beefb3073198e","seed_type": "search","seed_value": "Barcelona","page_index": 1,"fingerprint": "e37d0fc261d810d66c12"}}
Field Reference
Spotahome Rental Listing
listing_id (string, required): Stable Spotahome listing identifier.
url (string, required): Public Spotahome listing URL.
title (string, optional): Listing title.
description (string, optional): Public listing description.
property_type (string, optional): Rental format, such as room_shared.
pricing.display_price (number, optional): Displayed monthly rental price.
pricing.minimum_price (number, optional): Minimum monthly rental price.
pricing.currency (string, optional): Price currency, such as EUR.
pricing.bills_included (string, optional): Included-bills indicator, such as all.
pricing.offers (array, optional): Available discount or promotional offers.
pricing.offers[].discount_type (string, optional): Offer type, such as percentage.
pricing.offers[].discount_value (number, optional): Offer value.
availability.first_available_date (string, optional): First available rental date in ISO 8601 format.
location.street (string, optional): Public street-level location.
location.postal_code (string, optional): Postal code.
location.city (string, optional): City name.
location.market_city (string, optional): Normalized market city value.
location.coordinates.longitude (number, optional): Listing longitude.
location.coordinates.latitude (number, optional): Listing latitude.
location.address_coordinates.longitude (number, optional): Address-level longitude when available.
location.address_coordinates.latitude (number, optional): Address-level latitude when available.
property.area_sqm (number, optional): Total property area in square meters.
property.room_area_sqm (number, optional): Room area in square meters when provided.
property.bathrooms (number, optional): Number of bathrooms.
property.bedrooms (number, optional): Number of bedrooms.
booking.spotahome_checked (boolean, optional): Whether the listing is marked as checked by Spotahome.
booking.instant_booking (boolean, optional): Whether instant booking is indicated.
booking.no_security_deposit (boolean, optional): Whether no security deposit is indicated.
booking.deposit_protection (boolean, optional): Whether deposit protection is indicated.
booking.permanent_contract_allowed (boolean, optional): Whether a permanent contract is indicated as allowed.
booking.best_choice (boolean, optional): Whether the listing is marked as a best choice.
booking.favorite (boolean, optional): Whether the listing is marked as a favorite in the source context.
media.main_photo_url (string, optional): Main public photo URL.
media.photo_ids (array, optional): Photo identifiers associated with the listing.
media.other_property_photo_ids (array, optional): Additional property-level photo identifiers.
landlord.landlord_id (string, optional): Public landlord identifier when available.
landlord.scoring.score (number, optional): Landlord score value when available.
landlord.scoring.total_bookings_closed (number, optional): Total closed bookings associated with the landlord score.
attributes.feature_flags (array, optional): Public listing features, amenities, suitability signals, and bill indicators.
attributes.unmapped_feature_flags (object, optional): Additional feature flags not mapped to a descriptive label.
attributes.search_marker.instant_booking (boolean, optional): Instant-booking signal from the search record.
attributes.search_marker.minimum_price (number, optional): Minimum price from the search record.
source_context.total_markers (number, optional): Total matching markers reported for the source search context.
source_context.source_url (string, optional): Public source search URL associated with the record.
source_context.seed_id (string, optional): Stable identifier for the input seed used in the run.
source_context.seed_type (string, optional): Seed type, such as search.
source_context.seed_value (string, optional): Seed value supplied for collection, such as the input location.
source_context.page_index (number, optional): Result page index associated with the saved record.
source_context.fingerprint (string, optional): Record fingerprint useful for repeated-run comparison and secondary deduplication.
Data Quality, Guarantees, And Handling
- Structured records: results are normalized into predictable JSON objects for downstream use.
- Best-effort extraction: fields may vary by region, session, availability, listing type, or source-side presentation changes.
- Optional fields: null-check optional values in downstream code, especially media, landlord, availability, and detailed property attributes.
- Deduplication: use
listing_idas the primary stable key;urlandsource_context.fingerprintcan support validation or secondary matching. - Freshness: results reflect the publicly available data at run time.
- Repeated runs: use the recommended idempotency key when syncing data into warehouses, CRMs, search indexes, or monitoring systems.
Tips For Best Results
- Start with a small
limitto validate the output shape before scaling up. - Use one location or rental segment per run when you need cleaner reporting and easier comparison.
- Leave optional filters empty when the goal is broad discovery.
- Add filters gradually to understand how each field changes coverage.
- Set both availability dates together when move-in and move-out timing matters.
- Use
sort_by: "newest"for recently listed monitoring andsort_by: "lowest_price"for budget analysis. - Store results using
listing_idto deduplicate repeated runs over time.
How To Run On Apify
- Open the actor in Apify Console.
- Configure the available input fields for the target location and rental scope.
- Set the maximum number of outputs to collect with
limit. - Click Start and wait for the run to finish.
- Open the dataset preview and inspect the first records.
- Download results in JSON, CSV, Excel, or other supported formats.
Scheduling & Automation
Scheduling
Automated Data Collection
Use Apify schedules to run the actor periodically and keep rental datasets fresh for monitoring, reporting, and enrichment workflows.
- Navigate to Schedules in Apify Console
- Create a new schedule, such as daily, weekly, or custom cron
- Configure input parameters
- Enable notifications for run completion
- Add webhooks for automated processing
Integration Options
- BI dashboards: monitor rental pricing, availability, property mix, and location coverage over time.
- Data warehouses: load normalized listing records into historical tables for trend analysis and reporting.
- Webhooks: trigger validation, notification, or ingestion workflows after each completed run.
- CRM enrichment: sync public listing, landlord, location, and property attributes into account or lead records.
- Google Sheets or Airtable: review smaller rental datasets, validate segments, and share operational extracts with non-technical teams.
- ETL and data enrichment pipelines: combine Spotahome listing data with internal market, geography, or inventory datasets.
Export Formats And Downstream Use
Apify datasets can be exported from the platform or consumed by downstream systems for reporting, analysis, and operational workflows.
- JSON: for APIs, applications, and data pipelines
- CSV or Excel: for spreadsheet workflows and manual review
- API access: for automated ingestion into internal systems
- BI and warehouses: for reporting, dashboards, and historical analysis
Performance
Estimated run times:
- Small runs (< 1,000 outputs): ~3–5 minutes
- Medium runs (1,000–5,000 outputs): ~5–15 minutes
- Large runs (5,000+ outputs): ~15–30 minutes
Execution time varies based on filters, result volume, and how much information is returned per record. Highly filtered runs can finish faster, while broad discovery or detail-rich records may take longer.
Limitations
- Availability depends on what Spotahome publicly exposes at run time.
- Some optional fields may be missing on sparse listings or in specific markets.
- Very broad searches may take longer or require higher
limitvalues. - Source-side changes can affect field availability, naming, or completeness.
- Regional, account, or availability differences may change visible results.
- Date and price filters depend on matching public listings being available for the selected location.
Troubleshooting
- No results returned: check filter combinations, location spelling, date range, and whether Spotahome has matching public listings for the selected market.
- Fewer results than expected: broaden filters, raise
limit, or verify that the target location contains enough matching public records. - Some fields are empty: optional fields depend on what each listing publicly provides.
- Run takes longer than expected: reduce scope, lower
limitfor validation, or split broad collection into smaller location or property-type segments. - Output changed: compare the current output with the field reference and include a small sample if support is needed.
FAQ
What data does this actor collect?
It collects public Spotahome rental listing records, including listing identity, URL, title, description, property type, pricing, availability, location, property details, booking signals, media references, landlord metadata, attributes, and source context.
Can I filter by location, category, date, price, or other criteria?
Yes. The actor requires location and supports filters for monthly price, bed type, property type, amenities, suitability, included bills, availability dates, bathroom requirements, Spotahome-checked status, deposit requirements, sorting, and result limit.
Why did I receive fewer results than my limit?
The limit is a maximum, not a guarantee. You may receive fewer records when the selected location and filters return fewer matching public listings at run time.
Can I schedule recurring runs?
Yes. Use Apify schedules to run the actor daily, weekly, or on a custom cadence for monitoring, reporting, and enrichment workflows.
How do I avoid duplicates across runs?
Use listing_id as the primary idempotency key when storing or syncing records. url and source_context.fingerprint can help with secondary validation.
Can I export the data to CSV, Excel, or JSON?
Yes. Apify datasets support exports in JSON, CSV, Excel, and other platform-supported formats.
Does this actor collect private data?
No. The actor is intended to collect publicly available Spotahome listing information. Users are responsible for using the data lawfully and in accordance with applicable requirements.
What should I include when reporting an issue?
Include the input used, the run ID, expected versus actual behavior, and a small output sample if it helps illustrate the issue. Redact any sensitive internal notes before sharing.
Compliance & Ethics
Responsible Data Collection
This actor collects publicly available rental listing information from Spotahome for legitimate business purposes, including:
- Real estate research and market analysis
- Rental pricing and availability monitoring
- Data enrichment for operational reporting and analytics
This section is informational and not legal advice. Users are responsible for ensuring that their use of collected data complies with applicable laws, regulations, and platform terms.
Best Practices
- Use collected data in accordance with applicable laws, regulations, and the target site's terms
- Respect individual privacy and personal information
- Use data responsibly and avoid disruptive or excessive collection
- Do not use this actor for spamming, harassment, or other harmful purposes
- Follow relevant data protection requirements where applicable, such as GDPR and CCPA
Support
For help, use the actor page or Issues section. Include the input used, with sensitive values redacted; the run ID; expected versus actual behavior; and a small output sample when useful. Avoid sharing private credentials, personal notes, or unrelated internal data.