Fotocasa Scraper avatar

Fotocasa Scraper

Pricing

from $13.00 / 1,000 results

Go to Apify Store
Fotocasa Scraper

Fotocasa Scraper

Scrape Fotocasa Spain homes for sale, rent and room shares: price, price drops, €/m², rooms, m², floor, condition, 60+ features, GPS, photos, agency and phone. Multiple locations, gets past the 10,000 cap. Optional details: energy rating, street, agency ref.

Pricing

from $13.00 / 1,000 results

Rating

0.0

(0)

Developer

Norm Data

Norm Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

15 days ago

Last modified

Share

Norm Data

🏠 Fotocasa Scraper

Extract property listings from Fotocasa, one of Spain's biggest property portals. It covers homes for sale, to rent, rooms to share, business transfers (traspasos) and rent to own, plus garages, land, commercial premises, offices, storage rooms and whole buildings. Search any city, district, neighbourhood or province, or paste any Fotocasa link.

Each listing comes with:

  • Price, price drop and previous price, and € per m².
  • Bedrooms, bathrooms, m², floor, condition, building age and orientation.
  • 60+ features in plain English, plus ready-made yes/no columns.
  • Full description, address, GPS, photos, videos and virtual tour.
  • The agency or private seller, with phone number.

Turn on Full details to add the energy rating and consumption, emissions rating, street, agency reference, heating fuel, plot size, agency website and, for new builds, the agency email.

🎯 Who uses it?

🏘️ Property investors

Pull every flat in your target neighbourhoods with €/m², price drops and condition, and spot undervalued listings. You can also filter for occupied, tenanted, auction and bare-ownership deals.

📞 Lead generation and proptech sales

Get every agency active in a city with its phone number, website and listings. Or keep only private sellers to reach owners directly.

📊 Analysts, valuers and researchers

Track asking prices, rents, €/m² and price cuts across Spanish cities over time.

🔔 Buyers, renters and relocation agents

Schedule a search and receive only the listings added since the last run.

✨ What it does

  • Any place by name. A city ("Valencia"), a district or neighbourhood ("Chamberí, Madrid", "Russafa, Valencia"), an area ("Costa del Sol Occidental - Zona de Marbella") or a whole province ("provincia de Málaga"). Several in one run.
  • Any link. Paste Fotocasa search pages with all their filters, or single listings (new builds too).
  • Every operation: for sale, to rent, room to share, business transfer, rent to own.
  • Every property type: homes, garages, land, commercial premises, offices, storage rooms, buildings.
  • Fotocasa filters:
    • Price, bedrooms, bathrooms and size (min and max).
    • Home and land types (flat, penthouse, duplex, studio, house, buildable land...).
    • Condition, and up to 25 must-have features combined.
    • Highlights (luxury, beach views, seafront, fireplace, villa...).
    • Occupancy (vacant, occupied, rented, auction, bare ownership).
    • Published in the last 24h / 48h / week / month, keyword search and 7 sort orders.
  • Extra filters Fotocasa doesn't have: price drops only, private sellers only.
  • New listings only. For scheduled runs: saves only what was added since the last run of the same search.
  • Full details (optional): energy rating and kWh/m², emissions rating and kg CO2/m², street and number, agency reference, heating fuel, plot size, agency email (new builds), website and logo, tourist licence.

🏆 Why this scraper

  • Fast. About 1,000 listings in 15 to 20 seconds. With full details, 1,000 listings in about 5 minutes.
  • Complete. Fotocasa stops paging after about 10,000 results per search. This Actor splits big searches into price bands, so a whole city comes back in full: 11,941 of Madrid's 12,076 homes for sale in about 6 minutes.
  • Ready to analyse.
    • Prices are numbers, €/m² and the previous price are already worked out, and dates are in ISO format.
    • Fotocasa's codes are translated into plain English: floors, condition, building age, orientation and features.
    • Each feature also has its own true/false column (lift, parking, pool, terrace...).
  • Phone on almost every row. No extra step or add-on needed.
  • No proxy needed. Nothing extra to set up or pay for.

⚖️ How it compares

Based on each Actor's public input options (October 2026).

CapabilityThis actorigolaizolamemo23azzouzana
Search by place nameyesyesyesno (link only)
Several places by name in one runyesnonono
Search links with their filtersyesnoyesyes
Single listing linksyesnonono
Bedrooms filteryesnoyesno
Bathrooms filteryesnonono
Several home types at once (flat, penthouse, duplex...)yesnoone at a timeno
Several must-have features at onceyesnoone at a timeno
Condition filteryesnopartlyno
Occupancy (occupied, rented, auction, bare ownership)yesnonono
Keyword searchyesnonono
Price drops onlyyesnonono
Private sellers onlyyesnonono
Radius around a pointnoyesyesno
New listings only (monitoring)yesnoyesno
Full listing detailsyesnoyesyes

📦 What data you get

FieldDescription
id, urlFotocasa ID and listing page.
operationsale, rent, share, transfer or rent-to-own.
propertyType, propertySubtype"Home", "Garage", "Land", "Office"...; "Flat", "Penthouse", "Duplex", "Buildable land"...
price, currency, pricePeriodPrice in € (EUR); month for rentals and room shares.
previousPrice, priceDropPrice before the last cut and the cut in €, when the price was dropped.
pricePerM2€ per m² when the size is known.
rooms, bathrooms, sizeM2Bedrooms, bathrooms and built size.
floor, floorNumber"3rd floor", "Ground floor", "Penthouse"... and the floor as a number.
condition, buildingAge, orientation, hotWater"Very good", "Needs renovation"...; "20 to 30 years"...; "South"...; "Natural gas"...
isExterior, hasLift, hasParking, hasPool, hasGarden, hasTerrace, hasBalcony, hasAirConditioning, hasHeating, hasStorageRoom, isFurnishedReady-made yes/no columns.
features, tagsEvery feature in English ("Lift", "Fitted kitchen", "Sea views"...) and Fotocasa highlights ("Luxury", "Exterior"...).
descriptionFull listing text.
address, neighborhood, district, city, county, province, region, zipCodeLocation.
latitude, longitude, exactLocationGPS, and whether it's the exact address or an approximate point.
searchedLocationWhich of your places or links found it.
image, images, imageCountMain photo and every photo in full size.
videoUrls, virtualTourUrl, floorPlanUrlsVideos, 3D tour and floor plans.
advertiserType, agencyName, agencyId, agencyUrl, phoneagency or private, the agency and its Fotocasa page, and the phone number.
isNewConstruction, developmentName, developmentUrlNew builds and their development.
isOccupied, isRentedWithTenants, isAuction, isBareOwnership, isTemporaryRental, isFeaturedListing flags.
listedAtWhen it was published.
scrapedAtWhen the row was collected (UTC).

With Full details on, each row also has: agencyReference, street, streetNumber, energyRating, energyConsumptionKwhM2, emissionsRating, emissionsKgCo2M2, heatingFuel, plotSizeM2, rentReferenceIndex, agencyEmail, agencyWebsite, agencyLogo, touristLicence.

An error field appears only when a listing's details didn't load. The rest of that row is complete.

Example row (trimmed, with Full details)

{
"id": 190374775,
"url": "https://www.fotocasa.es/es/comprar/vivienda/valencia-capital/aire-acondicionado-calefaccion-ascensor-no-amueblado/190374775/d",
"operation": "sale",
"propertyType": "Home",
"propertySubtype": "Flat",
"price": 475000,
"currency": "EUR",
"previousPrice": 495000,
"priceDrop": 20000,
"pricePerM2": 4896.91,
"rooms": 2,
"bathrooms": 2,
"sizeM2": 97,
"floor": "3rd floor",
"floorNumber": 3,
"condition": "Very good",
"buildingAge": "Over 100 years",
"orientation": "South",
"hasLift": true,
"hasAirConditioning": true,
"features": ["Air conditioning", "Balcony", "En-suite bathroom", "Heating", "Lift", "Unfurnished"],
"tags": ["Exterior", "Modern"],
"address": "Carrer de Buenos Aires, Russafa",
"neighborhood": "Russafa",
"district": "L'Eixample",
"city": "Valencia",
"province": "Valencia",
"zipCode": "46006",
"latitude": 39.46144802481423,
"longitude": -0.377551565598776,
"imageCount": 37,
"virtualTourUrl": "https://floorfy.com/tour/2681905",
"advertiserType": "agency",
"agencyName": "Engel & Völkers València",
"phone": "+34963517897",
"listedAt": "2026-07-31T13:50:56.107Z",
"agencyReference": "I-04ARLH-W-04ARLH",
"street": "Carrer de Buenos Aires",
"energyRating": "D",
"energyConsumptionKwhM2": 73,
"emissionsRating": "D",
"emissionsKgCo2M2": 15,
"heatingFuel": "Natural gas",
"scrapedAt": "2026-10-04T16:51:35.554Z"
}

💡 Use cases

🏚️ Every price-cut flat in Madrid that needs renovation

{ "locations": ["Madrid"], "subtypes": ["flat"], "condition": ["needs_renovation"], "priceDropOnly": true, "maxItems": null }

💼 Investor deals: tenanted and auction properties in Barcelona province

{ "locations": ["provincia de Barcelona"], "occupancy": ["rented", "auction"], "maxItems": null }

📞 Private landlords renting in Valencia, with phones

{ "locations": ["Valencia"], "operation": "rent", "privateOnly": true, "maxItems": null }

🔔 New 2-bedroom rentals with lift in three neighbourhoods, daily

{ "locations": ["Chamberí, Madrid", "Salamanca, Madrid", "Retiro, Madrid"], "operation": "rent", "minRooms": 2, "features": ["lift"], "onlyNew": true, "maxItems": null }

Schedule it every morning: each run saves only the listings added since the day before.

🌊 Luxury homes with beach views on the Costa del Sol, with energy ratings

{ "locations": ["Marbella", "Estepona"], "tags": ["luxury", "sea_views"], "includeDetails": true, "maxItems": 200 }

🔗 Your own Fotocasa search, as it is

{ "urls": ["https://www.fotocasa.es/es/alquiler/viviendas/barcelona-capital/todas-las-zonas/l?minRooms=2&maxPrice=1500"], "maxItems": null }

⚙️ How the input is organised

SectionWhat it's for
Maximum propertiesAlways first: caps the whole run. Empty means no limit.
WherePlaces, Fotocasa links, operation and property type.
FiltersPrice, rooms, bathrooms, size, types, condition, must have, highlights, occupancy, published, keywords, price drops, private sellers, sort, new listings only.
What to includeFull details (paid add-on).

For rentals, prices are per month. Links keep their own filters; the form filters apply to the places you type.

💰 Pricing

Pay-per-event: a one-time $0.003 when the run starts, plus a price per property saved to your dataset. The price depends on your Apify plan tier:

Your Apify planPrice per property
Free$0.019
Bronze$0.017
Silver$0.015
Gold / Platinum / Diamond$0.013

Approximate total cost:

Properties collectedFreeBronzeSilverGold+
100$1.30$1.20$1.10$1.00
1,000$19.00$17.00$15.00$13.00
10,000$130.00$120.00$110.00$100.00

Full details add-on. You pay this only when Full details is on, once for each property saved with its details:

Your Apify planAdd-on per property
Free$0.005
Bronze$0.004
Silver$0.0035
Gold / Platinum / Diamond$0.003

Leave it off and you pay only the base price. There are no proxy costs. New Apify accounts start with $5 in free credit. On the Free plan a run saves up to 10 properties.

Speed:

  • About 1,000 listings in 15 to 20 seconds.
  • A whole city of about 12,000 in about 6 minutes.
  • With full details, about 1,000 listings in 5 minutes.

🚀 Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the Fotocasa Scraper.
  3. Type a place (or keep the prefilled one), or paste Fotocasa links, add filters, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

You can also:

  • Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.
  • Schedule it with Apify's built-in Scheduler, with New listings only on, to catch new listings every day.

🤖 Use with AI agents (MCP)

Give an AI agent live access to Fotocasa listings through the Model Context Protocol:

claude mcp add --transport http apify "https://mcp.apify.com?tools=normdata/fotocasa-scraper"

Then prompt it in plain language to run the scraper and read back the results.

🔧 Troubleshooting

A place was skipped. Type it the way Fotocasa's search box shows it: "Gràcia, Barcelona", "Playa de Gandia, Gandia". Or paste the search link instead. Whole regions such as "Andalucía" aren't in Fotocasa's location box: list the provinces instead ("provincia de Málaga", "provincia de Sevilla").

"Madrid" gave me only the city. That's how Fotocasa reads it too. Type "provincia de Madrid" for the whole province.

The log says Fotocasa asked to slow down. On very big runs Fotocasa limits how fast pages load. The Actor pauses for a minute and carries on by itself.

Some listings have no energy rating. Many advertisers don't publish the certificate. It's filled in when they do.

A scheduled "New listings only" run saved nothing. Nothing new was listed since the last run of the same search. Changing the places, links or filters starts a fresh memory; set a Monitor name to keep it.

❓ FAQ

QuestionAnswer
Do I need a Fotocasa account?No. Only public listings are read.
Does it need a proxy?No.
Can I get more than 10,000 results?Yes. Leave the maximum empty: big searches are split into price bands automatically.
Can I get the phone number?Yes, phone on almost every listing.
Can I get rentals, room shares and commercial property?Yes. Pick them in Operation and Property type.
Can I track new listings?Yes. Turn on New listings only and schedule the run.
Does it do holiday rentals or radius searches?Not yet. Write to us if you need them.

🛡️ Limits & responsible use

This Actor reads only public listings from Fotocasa. It never signs in and never contacts advertisers. Private sellers' phone numbers are personal data: handle them in line with the GDPR and Spain's LOPDGDD, and use the data in line with Fotocasa's terms.

📧 Contact

Need a scraper for a different site, or found something wrong with this one? norm.data.scrapers@gmail.com

🧪 Local development

bun install
bun run typecheck
bun test/qa.mjs
apify run

Local results are stored in storage/datasets/default.