Fotocasa Scraper: Spain Property Listings API
Pricing
from $0.60 / 1,000 results
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
10 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
listingKeywith 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
namefield carries the advertiser shown on the listing, so you can see who is listing what, where, and at which price.
Quick start
- Open fotocasa.es, search for a place and set the filters you want (price, bedrooms, area, terrace, lift, property type, sort order…).
- Copy the address bar and paste it into Fotocasa search URLs.
- 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
| Name | Type | Default | What it does |
|---|---|---|---|
startUrls | array | empty | Optional. Up to 10 Fotocasa search URLs with any filters. When set, these searches run instead of location, zone, operation and sortType. |
location | string | madrid-provincia | Location 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). |
zone | string | todas-las-zonas | Zone within the location; the default covers the whole location. |
operation | string | sale | Homes for sale (sale) or for rent (rental). |
sortType | string | scoring | Order results by relevance (scoring), newest (publication), or price (price-asc, price-desc). |
maxPages | integer | 1 | Result pages to read, from 1 to 5 (about 30 homes per page). With startUrls, per URL. |
maxResults | integer | 50 | Maximum homes for the whole run, from 1 to 200. |
requestDelaySecs | number | 1.0 | Pause 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:
priceandcurrency: 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.roomsandbedrooms: the bedroom count (Fotocasa shows "hab."); both fields carry the same number.bathroomsis 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.operationandpropertyType:saleorrental, and the property type of the search (viviendasfor form searches; a pasted URL gives its own type, such aspisosorcasas).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.