Fotocasa Scraper: Spain Property Listings API avatar

Fotocasa Scraper: Spain Property Listings API

Pricing

from $0.60 / 1,000 results

Go to Apify Store
Fotocasa Scraper: Spain Property Listings API

Fotocasa Scraper: Spain Property Listings API

Fotocasa API for Spanish real estate. Paste any fotocasa.es search URL or pick a location; get one clean record per home for sale or rent with price in EUR, m², bedrooms, bathrooms, address, photo and listing URL.

Pricing

from $0.60 / 1,000 results

Rating

0.0

(0)

Developer

Philip Kirkbride

Philip Kirkbride

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

14 hours ago

Last modified

Categories

Share

Turn any Fotocasa search into a clean dataset. Paste a search URL from fotocasa.es, with every filter you set in the browser, or simply type a location and choose sale or rental. Each home comes back as one record with price in euros, built area in m², bedrooms, bathrooms, address, photo and the listing URL.

Use it as a Fotocasa API for the Spanish property market: schedule it, call it from your code, or download the results as JSON, CSV or Excel.

What you can do with it

  • Track asking prices in a city or district. Re-run the same searches every day or week and follow asking prices, price per m² and the number of homes on the market in Madrid, Barcelona, Valencia, Málaga or any other Spanish location.
  • Find new listings before others do. Sort by newest, run on a schedule and compare the stable listingKey with the previous run to spot new, removed and repriced homes.
  • Compare rentals and sales. Run a sale search and a rental search for the same area and estimate gross rental yields per district.
  • Feed a valuation or investment model. Price, area, bedrooms and bathrooms are typed numbers, ready for a spreadsheet, BI tool or database without manual cleanup.
  • Watch the agencies and developers in your area. The name field carries the advertiser shown on the listing, so you can see who is listing what, where, and at which price.

Quick start

  1. Open fotocasa.es, search for a place and set the filters you want (price, bedrooms, area, terrace, lift, property type, sort order…).
  2. Copy the address bar and paste it into Fotocasa search URLs.
  3. Set Maximum results and run.
{
"startUrls": [
{"url": "https://www.fotocasa.es/es/alquiler/viviendas/barcelona-capital/todas-las-zonas/l"}
],
"maxPages": 2,
"maxResults": 60
}

Prefer not to paste URLs? The original input still works exactly as before:

{"location": "madrid-provincia", "operation": "sale", "maxResults": 50}

Input

NameTypeDefaultWhat it does
startUrlsarrayemptyOptional. Up to 10 Fotocasa search URLs with any filters. When set, these searches run instead of location, zone, operation and sortType.
locationstringmadrid-provinciaLocation to search, as used by Fotocasa (barcelona-capital, valencia-capital, malaga-capital…). Accents and spaces are converted for you ("Alcalá de Henares" becomes alcala-de-henares).
zonestringtodas-las-zonasZone within the location; the default covers the whole location.
operationstringsaleHomes for sale (sale) or for rent (rental).
sortTypestringscoringOrder results by relevance (scoring), newest (publication), or price (price-asc, price-desc).
maxPagesinteger1Result pages to read, from 1 to 5 (about 30 homes per page). With startUrls, per URL.
maxResultsinteger50Maximum homes for the whole run, from 1 to 200.
requestDelaySecsnumber1.0Pause between result pages, from 0.5 to 10 seconds.

With startUrls, each search starts at its first results page and keeps all of its filters, and a home that appears in two of your searches is returned once.

Input recipes

Two-bedroom homes for sale in Madrid (pasted URL). Fotocasa writes many filters into the address itself, so the URL you copy already holds them:

{
"startUrls": [
{"url": "https://www.fotocasa.es/es/comprar/viviendas/madrid-provincia/todas-las-zonas/2-habitaciones/l"}
],
"maxPages": 3,
"maxResults": 90
}

Several searches in one run. Homes with a terrace in Madrid, flats for sale in Valencia sorted from cheapest, and rentals in Málaga:

{
"startUrls": [
{"url": "https://www.fotocasa.es/es/comprar/viviendas/madrid-provincia/todas-las-zonas/terraza/l"},
{"url": "https://www.fotocasa.es/es/comprar/pisos/valencia-capital/todas-las-zonas/l?sortType=price&sortOrderDesc=false"},
{"url": "https://www.fotocasa.es/es/alquiler/viviendas/malaga-capital/todas-las-zonas/l"}
],
"maxPages": 2,
"maxResults": 150
}

Form fields: newest rentals in Barcelona.

{"location": "barcelona-capital", "operation": "rental", "sortType": "publication", "maxPages": 2, "maxResults": 60}

Form fields: cheapest homes for sale in a province.

{"location": "toledo-provincia", "operation": "sale", "sortType": "price-asc", "maxResults": 30}

Daily market monitor. Save one of the inputs above as a task and add a schedule (for example, every morning). Each run returns that day's listings with the same fields, so the datasets line up over time.

Output example

Each item includes id, listingKey, url, name, price, currency, areaM2, rooms, bedrooms, bathrooms, address, imageUrl, operation, propertyType, portal, country, source and scrapedAt.

Example record (from a Madrid province sale search):

{"id": "190289557", "listingKey": "fotocasa.es:190289557", "url": "https://www.fotocasa.es/es/comprar/vivienda/valdemoro/aire-acondicionado-calefaccion-parking-terraza-ascensor-no-amueblado/190289557/d", "name": "Hogares Valdemoro", "price": 249900.0, "currency": "EUR", "areaM2": 69.0, "rooms": 2, "bedrooms": 2, "bathrooms": 1, "address": "Estación, Valdemoro, Madrid", "imageUrl": "https://static.fotocasa.es/images/ads/4c1b51a3-a9c1-49f7-95f8-c3e97fb0394c", "operation": "sale", "propertyType": "viviendas", "portal": "fotocasa", "country": "ES", "source": "fotocasa.es", "scrapedAt": "2026-09-04T00:00:00+00:00"}

What the fields mean:

  • price and currency: the advertised price as a number, always in EUR. For rentals this is the monthly rent. Homes listed with "Precio a consultar" have an empty price and currency.
  • areaM2: the area in m² shown on the listing.
  • rooms and bedrooms: the bedroom count (Fotocasa shows "hab."); both fields carry the same number. bathrooms is the bathroom count.
  • address: neighborhood, district, town and province, as published. Many advertisers hide the exact street.
  • name: the advertiser or listing title shown on the card.
  • operation and propertyType: sale or rental, and the property type of the search (viviendas for form searches; a pasted URL gives its own type, such as pisos or casas).
  • listingKey: a stable unique key, ideal for de-duplication and for tracking a home across runs.
  • scrapedAt: when the run collected the record (UTC).

More of the Spanish market

Fotocasa is one of Spain's largest property portals. Every record names its source and portal, so you can merge this dataset with other portal datasets and still filter by origin.

FAQ

Can I use any Fotocasa search URL? Any search results page in Spanish on www.fotocasa.es (addresses that start with /es/comprar/ or /es/alquiler/ and end in /l). Location, zone, property type, bedrooms, features such as terrace or pool, price filters and sort order all carry over. Single listing pages, other languages and other sites are rejected with a clear message.

Do my saved inputs still work? Yes. The location, zone, operation and sort fields behave exactly as before. Search URLs are an optional extra.

How fresh are the results? Every run reads the live search pages, so you get the homes that are online at that moment.

Which locations are supported? All of Spain: any province, city, district or zone that Fotocasa covers.

Why did my run stop with a location error? The location must exist on Fotocasa exactly as written in its search addresses, for example valencia-capital or valencia-provincia rather than valencia. Unknown locations stop the run instead of returning unrelated homes. Copy the slug from the address bar, or paste the whole search URL.

Can I collect rentals? Yes. Set operation to rental, or paste an /es/alquiler/ search URL.

Why is a field empty? Some listings do not publish every detail (a plot has no bedrooms, some homes have no public price). The field is empty instead of guessed.

How many homes can I get? Up to 5 pages per search and 200 homes per run. Add more search URLs, for example one per district, to cover a larger area in one run.

Do you collect phone numbers or emails? No. The dataset holds the public listing details only.

For help, contact Apify Support and include the run URL.

Pricing

You pay per listing returned plus a small start event for each run. The start event is charged per GB of memory, so the default 512 MB run is one start event. See the Actor's Pricing tab on Apify for current rates. Total run cost depends on the selected limits and your Apify plan. Start with a small maxResults value and check the run cost before scheduling larger collections.