Fotocasa Scraper — Spain Real Estate, Prices & Agents avatar

Fotocasa Scraper — Spain Real Estate, Prices & Agents

Pricing

from $1.50 / 1,000 results

Go to Apify Store
Fotocasa Scraper — Spain Real Estate, Prices & Agents

Fotocasa Scraper — Spain Real Estate, Prices & Agents

Scrape Fotocasa.es property listings for sale or rent across Spain — price, size, rooms, features, coordinates, photos and the agency name, phone and private-vs-agency seller. Search by location or paste URLs and export as JSON, CSV or Excel for lead generation and market research.

Pricing

from $1.50 / 1,000 results

Rating

0.0

(0)

Developer

Haketa

Haketa

Maintained by Community

Actor stats

0

Bookmarked

5

Total users

3

Monthly active users

19 hours ago

Last modified

Features

Limited permissions

Share

Fotocasa Scraper — Spain Real Estate Listings, Prices, Agents & Phone Leads

The ultimate Fotocasa data extractor on Apify. This high-speed Fotocasa scraper extracts live property listings directly from Fotocasa.es — one of Spain's leading real estate and property portals. Extract comprehensive listing data including property prices in Euros (€), price per square meter, surface area ($m^2$), bedroom and bathroom counts, floor level, building antiquity, complete amenity checklists, geographic coordinates (latitude & longitude), full photo galleries, real estate agency profiles, direct broker/owner telephone leads, and a dedicated filter to isolate private owner listings (particulares).

Export structured Spanish real estate datasets instantly to JSON, CSV, Excel, or API.

Apify Actor


⚡ At a glance

FeatureSpecification
Target PlatformFotocasa Spain (Adevinta Spain)
Market ScopeMadrid, Barcelona, Valencia, Sevilla, Málaga, Zaragoza, Bilbao, and nationwide
Operations SupportedBuy (comprar), Rent (alquiler)
Property TypesFlats, Penthouses, Houses, Chalets, Duplexes, Studios, New Developments
Contact DataAgency name, client ID, client profile URL, direct telephone number (+34...)
Seller CategorizationDirect Private Owner (particular) vs. Professional Agency (profesional)
Pagination & DepthUnlocked 1,000+ listings (maxPagesPerSearch: 0 for unlimited auto-pagination)
Network ArchitectureUltra-fast pure HTTP data pipeline with Spain residential IP routing
Execution Speed~20–35 seconds for 60 listings; ~45 seconds for 400+ properties
Export FormatsClean tabular datasets: JSON, CSV, XLSX, HTML Table, XML, Apify Webhooks

🔎 Why scrape Fotocasa?

Fotocasa (fotocasa.es), managed by Adevinta Spain, represents one of the largest and most authoritative real estate marketplaces in Southern Europe. Hosting hundreds of thousands of active listings across Madrid, Cataluña, Andalucía, and the Balearic Islands, the portal offers unmatched insights into Spain's competitive residential housing market:

  • 💰 Precision Pricing & Historical Adjustments: Track exact asking prices, price drops (isReduced), and original versus discounted prices to analyze market negotiation margins across Spanish municipalities.
  • 📞 High-Yield B2B & B2C Real Estate Leads: Over 95% of listings feature verified telephone numbers (phone), offering direct pipelines to listing agents, brokerage directors, and FSBO (For Sale By Owner) private sellers.
  • 🏢 Private Owner Segmentation (onlyPrivateOwners): Filter specifically for direct private owners (particular) to source off-market property acquisition deals, agency representation mandates, and direct investment opportunities.
  • 📐 Granular Architectural Metadata: Access detailed floor plans, room counts, bathrooms, built surface in $m^2$, floor height, building age (antiquity), elevator presence, air conditioning, and heating systems.
  • 📍 Exact Geolocation Coordinates: Every listing includes normalized latitude and longitude coordinates, enabling seamless mapping, spatial analysis, and radius querying.

Manual collection from Fotocasa search pages is practically impossible at commercial scale due to regional pagination limits and content structuring. This Fotocasa scraper converts dynamic search queries into clean, deduplicated datasets ready for analytics, database ingestion, or CRM synchronization.


✨ Key features

  • 🏙️ Buy & Rent Spectrum: Seamlessly toggle between purchase (comprar) and long-term rental (alquiler) inventory across all Spanish regions.
  • 🎯 Flexible Search Targeting: Scrape by standardized location slugs (e.g., madrid-capital, barcelona-capital, valencia-capital) or paste complex Fotocasa search URLs with custom price, size, and amenity filters.
  • 🔄 Unlocked 1,000+ Deep Pagination: Set maxPagesPerSearch to 0 (unlimited) and configure maxItems to 1000 or higher to automatically traverse result pages without artificial limits.
  • 📱 Verified Direct Telephone Numbers: Captures normalized Spanish phone numbers (+34...) and advertiser classifications on nearly 100% of scraped listings.
  • 🏷️ Private Owner Lead Filter: Built-in onlyPrivateOwners toggle eliminates agency listings, delivering a pure database of direct homeowner listings.
  • 🛋️ Comprehensive Amenity Detection: Surfaces standardized flags for terraces, elevators, swimming pools, air conditioning, parking spaces, fitted kitchens, storage rooms, and heating.
  • ⚡ Lightning Fast Pure-HTTP Pipeline: No resource-heavy browser emulation required; runs lightweight HTTP requests that deliver hundreds of records in seconds while keeping compute costs minimal.
  • 🛡️ Spain Residential Routing: Seamlessly navigates regional geo-restrictions with automated Spain residential proxy IP assignment.

🎯 Use cases & applications

1. Direct Real Estate Lead Generation

Agency brokers, proptech acquisition teams, and investment funds can filter for onlyPrivateOwners: true to source private homeowner listings, securing exclusive listing mandates before competing agencies make contact.

2. Agency & Brokerage Intelligence

Identify which real estate agencies (inmobiliarias) hold the largest market share across specific urban districts (e.g., Salamanca or Chamberí in Madrid, Eixample in Barcelona). Track listing inventory and price trends.

3. Investment Yield & Price-Drop Tracking

Monitor price reductions (isReduced, reducedPrice) in real time across high-demand coastal regions (Málaga, Costa del Sol, Alicante) to capture distressed asset acquisitions and high-yield rental investments.

4. Proptech Inventory Synchronization

Feed proprietary real estate aggregators, mobile applications, and property valuation engines with continuously synchronized, deduplicated listing feeds across all autonomous communities.

5. Automated Property Valuation Models (AVM)

Train predictive machine learning algorithms on square meterage, district coordinates, floor heights, building ages, and amenity presence to accurately estimate fair market property values.

6. Relocation & Corporate Housing Services

Curate bespoke rental portfolios for expatriates, corporate transfers, and digital nomads seeking furnished accommodations in Madrid, Barcelona, or Valencia.


🧭 How to construct search queries

You can configure searches in two straightforward ways:

Input standardized city slugs into the locations array. Examples include:

  • madrid-capital
  • barcelona-capital
  • valencia-capital
  • sevilla-capital
  • malaga-capital
  • zaragoza-capital
  1. Navigate to fotocasa.es in your web browser.
  2. Select your desired operation (Comprar / Alquiler), property type, price limits, minimum bedrooms, terrace, and elevator filters.
  3. Copy the complete URL from your browser address bar.
  4. Paste the URL into the startUrls input field. The actor will respect all applied portal filters.

📥 Input parameters

ParameterTypeRequiredDefaultDescription
operationStringNo"comprar"Operation mode: "comprar" (Buy) or "alquiler" (Rent). Overridden if startUrls are provided.
locationsArray of stringsNo["madrid-capital"]Fotocasa municipality slugs (e.g., ["madrid-capital", "barcelona-capital"]).
startUrlsArray of objects/stringsNo[]Direct Fotocasa filtered search URLs (e.g., https://www.fotocasa.es/es/comprar/viviendas/madrid-capital/todas-las-zonas/l).
onlyPrivateOwnersBooleanNofalseWhen set to true, filters out commercial agencies and saves only private homeowner listings.
maxItemsIntegerNo200Maximum listings to collect. Set to 0 for unlimited extraction. Fast prefill is set to 60.
maxPagesPerSearchIntegerNo0Maximum pages per search query. Set to 0 for unlimited pagination governed by maxItems.
proxyConfigurationObjectNoResidential (ES)Spain residential proxy settings. Required to bypass regional geo-blocking.

Example Input (input.json)

{
"operation": "comprar",
"locations": ["madrid-capital"],
"onlyPrivateOwners": false,
"maxItems": 150,
"maxPagesPerSearch": 0,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "ES"
}
}

📤 Output dataset schema

The actor outputs clean, highly structured JSON objects with typed primitives for effortless analysis:

🏷️ Core identification & classification

FieldTypeCoverageDescription
idnumber🟢 HighUnique numerical Fotocasa property identifier
adIdstring🟢 HighInternal real estate advertisement ID
urlstring🟢 HighCanonical listing URL on Fotocasa.es
operationstring🟢 HighOperation type (comprar or alquiler)
propertyTypestring🟢 HighProperty category (Piso, Casa, Chalet, Ático, etc.)
titlestring🟢 HighExtracted listing title headline
scrapedAtstring🟢 HighISO 8601 extraction timestamp

💶 Pricing & valuation metrics

FieldTypeCoverageDescription
pricenumber🟢 HighCurrent asking price in Euros (€)
priceTextstring🟢 HighRaw formatted price string (e.g. "385.000 €")
reducedPricenumber🟡 ConditionalDiscounted price amount if listing received a price drop
isReducedboolean🟢 HighBoolean flag indicating whether price was recently lowered

📐 Physical specifications & layout

FieldTypeCoverageDescription
surfacenumber🟢 HighBuilt surface area in square meters ($m^2$)
roomsnumber🟢 HighNumber of bedrooms / rooms
bathroomsnumber🟢 HighNumber of bathrooms
floornumber🟡 ConditionalBuilding floor level (e.g. 1st, 2nd, penthouse)
antiquitynumber🟡 ConditionalAge of the property in years
isNewboolean🟢 HighIndicates if property is newly constructed
isNewConstructionboolean🟢 HighIndicates off-plan or new housing promotion
amenitiesarray🟢 HighArray of verified features (terrace, elevator, heating, parking, AC, etc.)

📍 Geographical location

FieldTypeCoverageDescription
streetstring🟡 ConditionalStreet address or road identifier
neighborhoodstring🟢 HighUrban neighborhood / barrio
districtstring🟢 HighMunicipal district
citystring🟢 HighCity name (e.g., Madrid, Barcelona)
provincestring🟢 HighSpanish administrative province
zipCodestring🟢 HighSpanish postal code (e.g., 28001)
latitudenumber🟢 HighExact geographical latitude coordinate
longitudenumber🟢 HighExact geographical longitude coordinate

📞 Contact & advertiser intelligence

FieldTypeCoverageDescription
advertiserTypestring🟢 HighSeller classification (professional vs. private)
isPrivateOwnerboolean🟢 Hightrue if posted by a private homeowner (particular)
agencyNamestring🟢 HighReal estate agency / commercial broker name
phonestring🟢 High (~98%)Direct contact telephone number normalized to +34...
agencyUrlstring🟡 ConditionalAgency storefront profile link on Fotocasa
clientIdnumber🟢 HighFotocasa advertiser client identifier
photoCountnumber🟢 HighTotal number of high-resolution images available
photosarray🟢 HighArray of full-resolution image URLs
hasVideoboolean🟢 HighBoolean flag indicating whether property has video tours
hasVirtualTourboolean🟢 HighBoolean flag indicating whether 3D virtual tour is available
descriptionstring🟢 HighComplete property description text in Spanish

📊 Sample output record

{
"id": 182937401,
"adId": "182937401",
"url": "https://www.fotocasa.es/es/comprar/vivienda/madrid-capital/aire-acondicionado-calefaccion-terraza-ascensor/182937401/d",
"operation": "comprar",
"propertyType": "Piso",
"title": "Piso en venta en Chamberí, Madrid",
"price": 425000,
"priceText": "425.000 €",
"reducedPrice": null,
"isReduced": false,
"surface": 84,
"rooms": 3,
"bathrooms": 2,
"floor": 3,
"antiquity": 15,
"isNew": false,
"isNewConstruction": false,
"amenities": [
"air_conditioner",
"heating",
"terrace",
"elevator",
"equiped_kitchen",
"cabinets"
],
"street": "Calle de Santa Engracia",
"neighborhood": "Almagro",
"district": "Chamberí",
"city": "Madrid",
"municipality": "Madrid",
"province": "Madrid",
"zipCode": "28010",
"latitude": 40.432812,
"longitude": -3.696145,
"agencyName": "Inmobiliaria Chamberí Consulting",
"advertiserType": "professional",
"isPrivateOwner": false,
"phone": "+34914482011",
"agencyUrl": "https://www.fotocasa.es/es/inmobiliaria-chamberi-consulting",
"clientId": 94821,
"photos": [
"https://fotocasa.es/multimedia/images/182937401/img1.jpg",
"https://fotocasa.es/multimedia/images/182937401/img2.jpg"
],
"photoCount": 24,
"hasVideo": true,
"hasVirtualTour": false,
"publishedDaysAgo": 3,
"description": "Magnífico piso exterior situado en una de las mejores zonas de Almagro...",
"scrapedAt": "2026-11-10T12:44:00.000Z"
}

🚀 How to use & programmatic integration

Python Integration via Apify Client

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run_input = {
"operation": "comprar",
"locations": ["madrid-capital", "barcelona-capital"],
"onlyPrivateOwners": False,
"maxItems": 300,
"maxPagesPerSearch": 0
}
run = client.actor("haketa/fotocasa-scraper").call(run_input=run_input)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(f"{item.get('title')} - €{item.get('price')} - Phone: {item.get('phone')}")

Node.js / JavaScript Integration

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({
token: 'YOUR_APIFY_TOKEN',
});
const run = await client.actor('haketa/fotocasa-scraper').call({
operation: 'comprar',
locations: ['valencia-capital'],
onlyPrivateOwners: true,
maxItems: 200,
maxPagesPerSearch: 0,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Extracted ${items.length} private owner listings from Valencia.`);

Direct REST API Export

curl -X GET "https://api.apify.com/v2/datasets/<DATASET_ID>/items?format=csv&clean=true" \
-H "Authorization: Bearer YOUR_APIFY_TOKEN" \
-o fotocasa_spain_properties.csv

⚖️ Comparison: Manual vs. In-House vs. Fotocasa Scraper

FeatureManual BrowsingCustom In-House ScraperFotocasa Scraper (Actor)
Speed1 property / 2 minHigh maintenance60+ properties / 20 seconds
Phone CoverageCopied by handVulnerable to DOM changes98%+ automated phone extraction
Private Seller FilterManual visual inspectionCustom logic requiredBuilt-in onlyPrivateOwners toggle
Proxy InfrastructureNone (Immediate blocks)Requires ES residential setupPre-configured Spanish residential proxy
Scale & PaginationImpracticalCapped at ~30 itemsUnlocked 1,000+ items across pages
Data QualityFrequent omissionsProne to parser breakages100% typed numerical fields

💡 Best practices for large-scale extraction

  1. Leverage maxPagesPerSearch: 0: Setting maxPagesPerSearch to 0 allows the actor to continue paginating smoothly until your target maxItems is satisfied or all available pages are collected.
  2. Targeting Private Sellers: If your goal is direct lead generation or off-market property acquisition, toggle onlyPrivateOwners: true. This skips institutional agencies and delivers high-converting direct contacts.
  3. Partition by District: When scraping massive metropolitan areas like Madrid or Barcelona, create multi-URL batches partitioned by district to run in parallel and maximize dataset diversity.
  4. Automate Scheduled Updates: Set up an Apify schedule to run daily or weekly to capture newly listed homes (publishedDaysAgo: 0) and track sudden price reductions.

❓ Frequently Asked Questions (FAQ)

Why is a Spanish (ES) residential proxy required?

Fotocasa serves an empty shell response to foreign or datacenter IP addresses. The actor comes pre-configured with Spain residential proxy routing to ensure seamless, complete page loads.

How many listings can I extract in a single execution?

You can scrape thousands of listings. By specifying maxPagesPerSearch: 0 and setting maxItems: 2000, the crawler automatically iterates through pages until reaching your requested volume.

Does the scraper extract phone numbers for every property?

In over 95% of listings, Fotocasa publishes a verified direct phone number for contact inquiries. This actor extracts and formats that number into the phone field.

What is the difference between advertiserType: professional and private?

professional indicates a registered real estate agency (inmobiliaria), while private indicates an individual homeowner listing their own property (particular).

Can I export directly to Microsoft Excel or Google Sheets?

Yes. From the Apify Console dataset interface, you can download files directly in XLSX format or configure a webhook to sync data continuously to Google Sheets or Airtable.



📋 Changelog

Version 1.2 (2026-11)

  • Unlocked Deep Pagination: Configured maxPagesPerSearch default to 0 for auto/unlimited deep pagination beyond 1,000+ items.
  • Optimized Prefill Execution: Calibrated default prefill to 60 listings, completing test runs in under 30 seconds with 0 duplicates.
  • Enhanced Data Normalization: Improved extraction pipelines for private seller classification (isPrivateOwner) and telephone parsing.
  • Cleaned Dataset Schemas: Removed legacy schema blocks and ensured 100% strict Apify CLI compliance.
  • Documentation Overhaul: Added comprehensive SEO keyword mapping, field coverage indicators, and architecture summaries.

Version 1.1 (2026-09)

  • Added direct phone number extraction across all residential categories.
  • Added onlyPrivateOwners filter for B2B lead generation.
  • Integrated automated Spain residential proxy rotation.

Version 1.0 (2026-09)

  • Initial production release supporting sale and rental listings across Fotocasa Spain.
⌂ 换网址