Spain Property Tracker: Fotocasa, Habitaclia, pisos.com avatar

Spain Property Tracker: Fotocasa, Habitaclia, pisos.com

Pricing

from $1.50 / 1,000 listing scrapeds

Go to Apify Store
Spain Property Tracker: Fotocasa, Habitaclia, pisos.com

Spain Property Tracker: Fotocasa, Habitaclia, pisos.com

Get homes for sale or rent from Fotocasa, Habitaclia and pisos.com in one clean list. The same home on many portals is merged. Monitor mode tells you what is new, what dropped in price and what was removed.

Pricing

from $1.50 / 1,000 listing scrapeds

Rating

0.0

(0)

Developer

APIzilla

APIzilla

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

What does Spain Property Tracker do?

Spain Property Tracker gets homes for sale or rent from three big Spanish portals in one run:

You get one clean list with the same fields for every portal. When the same home is on more than one portal, you get it once. The cheapest copy is the main one, and the others are listed in alsoListedOn.

Turn on monitor mode and run it on a schedule. Each run tells you which homes are new, which dropped or rose in price, which were removed and which came back.

Why use it?

  • One list, not three. No need to check each portal by hand.
  • No duplicates. The same flat on Fotocasa and Habitaclia shows up once.
  • Price alerts. See price drops the day they happen.
  • Days on market. See how long a home has been listed. Old listings are often open to offers.
  • Price per m2. Compare homes and areas fast.

It is useful for buyers, renters, real estate agents, investors and market analysts.

What data do you get?

FieldExample
Price, price per m2595000, 10084.75
Size, rooms, bathrooms, floor59, 1, 1, "2"
Address, city, province, postcode"Carrer d'Exemple, 1", "Barcelona"
Latitude and longitude41.38, 2.17
Agency name, private seller or not"Agencia Ejemplo", false
Up to 5 photosimage URLs
Featureselevator, terrace, parking
Descriptiononly with "Include details"
First seen, last seen, days on marketdates and a number
Price historylist of date and price
Change typenew, price_drop, price_rise, removed, back, unchanged
Other portals with the same homeportal, URL, price

How to use it

  1. Open the Actor and go to the Input tab.
  2. Add one or more searches. You can type a city, or paste a search URL from a portal.
  3. Pick the portals.
  4. Click Start.
  5. Open the Output tab, or download the data as JSON, CSV or Excel.

To get alerts, turn on Monitor changes, then create a schedule (for example once a day) with the same input. Use the "Changes" view of the dataset, or connect the dataset to email, Slack or a webhook with Apify integrations.

How much does it cost?

This Actor uses pay per event pricing. You only pay for results. Failed pages cost nothing.

EventWhen you payPrice per 1,000
listing-scrapedOnce per unique home in the results$1.50
browser-listingOnce per saved home that comes from Idealista (on top of listing-scraped)$4.00
listing-detailsOnce per home, only when Include details is on$1.00
change-eventOnce per change (new, price drop, price rise, removed, back), only in monitor mode$0.50
apify-actor-startWhen a run starts, set by Apify. One event per GB of memory$1.25 (about $0.005 per run at the default 4 GB)

Why is Idealista more expensive? Idealista blocks simple scrapers. We need a real browser and a home proxy for it. That costs us more, so a home from Idealista has an extra browser-listing charge. A home that is also on Idealista but comes from a cheaper portal does not pay it.

A removed home only costs a change-event. Unchanged homes do not cost a change-event.

You can set a maximum cost per run. The Actor checks the total price of all events for a home before it saves it. If they do not all fit, it stops. You never pay for a home that was not saved.

To keep costs low, leave Include details off, keep Max listings per portal small, and turn off the beta portal if you do not need it.

The Pricing tab shows the exact prices.

Input

A search can be a city:

{
"searches": [
{ "location": "Barcelona", "operation": "sale", "propertyType": "homes", "maxPrice": 600000, "minRooms": 2, "minSize": 60 }
],
"portals": ["fotocasa", "habitaclia", "pisos"],
"maxListingsPerPortal": 200,
"includeDetails": false,
"monitor": true
}

Or a URL copied from a portal after you set your filters there:

{
"searches": ["https://www.pisos.com/venta/pisos-madrid_capital/"]
}

Main options:

  • searches: cities or portal URLs. operation is sale or rent. propertyType is homes (default), any, flat, house, penthouse, duplex, studio, room, office, commercial, garage or land.
  • portals: fotocasa, habitaclia, pisos, idealista (beta).
  • maxListingsPerPortal: stop after this many homes per portal. Default 200.
  • includeDetails: add full description and more features.
  • monitor: remember homes between runs and mark changes.
  • monitorId: optional name for the saved history. Keep it the same to keep the history after you edit the searches.
  • proxyConfiguration: Apify proxy settings.

Cities that work by name: Madrid, Barcelona, Valencia, Sevilla, Malaga, Zaragoza, Bilbao, Alicante, Palma, Marbella, Sitges. For other places, paste a search URL from the portal.

Output

One item per home. Example (shortened, made up data):

{
"id": "3f2a9c1b7d4e5f60",
"country": "ES",
"portal": "fotocasa",
"portalListingId": "100000001",
"url": "https://www.fotocasa.es/es/comprar/vivienda/barcelona-capital/100000001/d",
"alsoListedOn": [{ "portal": "habitaclia", "url": "https://www.habitaclia.com/...", "price": 599000 }],
"title": "Piso en Carrer d'Exemple",
"operation": "sale",
"propertyType": "flat",
"price": 595000,
"currency": "EUR",
"pricePerM2": 10084.75,
"sizeM2": 59,
"rooms": 1,
"bedrooms": 1,
"bathrooms": 1,
"floor": null,
"address": "Carrer d'Exemple, 1, Barri Gotic",
"city": "Barcelona",
"region": "Barcelona",
"postcode": "08002",
"lat": 41.38,
"lng": 2.17,
"agencyName": "Agencia Ejemplo",
"isPrivateSeller": false,
"images": ["https://..."],
"features": ["elevator", "air_conditioner"],
"firstSeenAt": "2026-10-01T08:00:00.000Z",
"lastSeenAt": "2026-10-22T08:00:00.000Z",
"daysOnMarket": 21,
"priceHistory": [{ "date": "2026-10-01", "price": 620000 }, { "date": "2026-10-15", "price": 595000 }],
"changeType": "price_drop",
"scrapedAt": "2026-10-22T08:00:00.000Z"
}

A short run summary is saved in the key-value store as OUTPUT. It shows pages, listings and blocks per portal.

Tips

  • Start small. Try maxListingsPerPortal: 20 first.
  • In monitor mode, a home is only marked removed when its portal was read fully in that run. If a portal hit the limit or a page failed, nothing is marked removed. So set the limit high enough for your search.
  • Narrow searches (city plus price and rooms) are faster and cheaper.
  • Fotocasa and Habitaclia often hide the exact location. Duplicates are then found by street and number. Homes without a street number are not merged.

Idealista (beta)

Idealista has strong bot protection. Plain requests are blocked, even with a residential proxy. So the Actor opens Idealista in a real browser (Firefox), with a residential proxy in Spain, one page at a time, like a normal visitor. Listing pages are read from the same browser, so they are fast and cheap. This is slower than the other portals and costs a bit more. The Actor does not solve captchas. If Idealista asks for one, Idealista is skipped and the run summary says so. Idealista often hides the exact map position, so many Idealista homes have no coordinates. Idealista is off by default. You can turn off the browser with "Use a real browser for the beta portal".

FAQ

Is it legal to scrape property portals? This Actor only collects public listing data that anyone can see without logging in. It does not collect phone numbers or emails. Listings can still contain personal data, for example a private seller's name. Personal data is protected by GDPR in the European Union and by other laws. Do not use personal data unless you have a legitimate reason. If you are not sure, ask a lawyer.

Why do I get fewer homes than the portal shows? The limit maxListingsPerPortal stops early. Some filters (rooms, size, type) are applied after reading the page, so portals may return homes that are then skipped.

Something does not work. Please open an issue on the Issues tab with your input. Portals change their pages often and we fix them fast.