Habitaclia.com Scraper - Spain Property Data
Pricing
from $1.50 / 1,000 property listings
Habitaclia.com Scraper - Spain Property Data
Scrape Habitaclia.com Spanish real estate listings: price, area, rooms, address, coordinates, energy rating, amenities, and advertiser details. Filter by price, area, rooms. Export JSON, CSV, Excel.
Pricing
from $1.50 / 1,000 property listings
Rating
0.0
(0)
Developer
ParseBird
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Habitaclia.com Scraper - Spain Property Data
Habitaclia Scraper extracts Spanish property listings from Habitaclia.com by transaction type, property category, and location, including price, area, rooms, address, coordinates, energy rating, amenities, and advertiser details.
| Search any Spanish province or town for sale or rental listings, filter by price, area, and rooms, and get 30+ fields per property — including full image galleries, energy certificates, and coordinates pulled from each listing's detail page. |
Copy to your AI assistant
Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.
Use Apify Actor parsebird/habitaclia-scraper to scrape Habitaclia.com Spanish property listings. Example with ApifyClient: client.actor("parsebird/habitaclia-scraper").call(run_input={"transactionType":"sale","propertyType":"apartment","location":"barcelona","minPrice":200000,"maxPrice":600000,"maxListings":200,"maxPages":20}). Inputs: transactionType string enum sale/rent default sale; propertyType string enum apartment/housing/house/attic/duplex/office/commercial/industrial/land/parking default apartment; location string Habitaclia location slug default barcelona (e.g. madrid, valencia, palma_de_mallorca); minPrice/maxPrice integer EUR; minArea/maxArea integer m2; minRooms/maxRooms integer; advertiserType string enum all/agency/private default all; keyword string substring filter on title and description; maxListings integer default 200; maxPages integer default 20; proxyConfiguration object defaults to Residential proxies with country ES. Output fields: adId, detailUrl, title, shortDescription, description, transactionType, propertyType, price, priceCurrency, pricePerSqm, areaSqm, rooms, bathrooms, floor, energyClass, energyConsumption, energyEmissions, country, province, city, neighborhood, street, fullAddress, latitude, longitude, mainImageUrl, imageUrls, imageCount, advertiserId, advertiserName, advertiserUrl, advertiserType, hasElevator, hasParking, hasTerrace, hasPool, isFurnished, datePosted, labels, scrapedAt. API docs: https://docs.apify.com/api/client/python/ and https://docs.apify.com/api/client/js/. Token: https://console.apify.com/account/integrations.
What is Habitaclia Scraper?
Habitaclia Scraper is a Habitaclia.com scraper and Spanish property data API alternative for real estate research, investment analysis, and market monitoring. Choose a transaction type, property category, and a Habitaclia location — a province for a region-wide search or a town for one municipality — and the actor returns one structured row per listing.
Use it to build property datasets, track a market segment over time, or feed listings into analysis tools through Apify, without manually paging through Habitaclia's search results.
What can Habitaclia Scraper do?
- 🏠 Search any of 10 property categories — apartments, houses, attics, duplexes, offices, commercial premises, industrial units, land, and parking — for sale or rent.
- 📍 Target a whole Spanish province or one specific town using Habitaclia's own location slugs.
- 💶 Filter results by price, surface area, and room count.
- 🏢 Filter by advertiser type: agency or private seller.
- 🔎 Filter by a keyword matched against the title and description.
- 📸 Pull each listing's full image gallery, not just the thumbnail shown in search results.
- ⚡ Extract energy certificate ratings, coordinates, amenities, and advertiser contact details from every listing's detail page.
- ⏰ Run on demand or with Apify schedules for recurring market monitoring.
- 🔌 Access results through the Apify API, webhooks, and integrations.
- 💾 Download datasets as JSON, CSV, Excel, XML, or HTML from Apify storage.
What data can you extract from Habitaclia.com?
| Field | Description |
|---|---|
title / description | Listing title and full description |
price / pricePerSqm | Price in EUR and price per square meter |
areaSqm / rooms / bathrooms | Surface area, room count, and bathrooms |
energyClass / energyConsumption / energyEmissions | Energy certificate rating and figures |
province / city / neighborhood / fullAddress | Parsed location hierarchy |
latitude / longitude | Coordinates read from the listing's map |
mainImageUrl / imageUrls / imageCount | Full-size image gallery |
advertiserName / advertiserUrl / advertiserType | Agency or private seller details |
hasElevator, hasParking, hasTerrace, hasPool, … | Amenity flags parsed from the listing's feature list |
How to scrape Habitaclia.com property listings
- Open Habitaclia Scraper on Apify.
- Choose
transactionType(sale or rent) andpropertyType. - Set
locationto a Habitaclia slug — a province for a region-wide search (e.g.barcelona) or a town for one municipality (e.g.sant_cugat_del_valles). - Optionally add
minPrice/maxPrice,minArea/maxArea,minRooms/maxRooms,advertiserType, orkeywordto narrow results. - Set
maxListingsandmaxPagesto control how much of the search to crawl. - Run the actor, open the dataset, and export results as JSON, CSV, Excel, or through the Apify API.
Input parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
transactionType | string | No | sale | sale (Comprar) or rent (Alquiler). |
propertyType | string | No | apartment | apartment, housing, house, attic, duplex, office, commercial, industrial, land, or parking. |
location | string | No | barcelona | Habitaclia location slug, lowercase ASCII with underscores for spaces. |
minPrice / maxPrice | integer | No | - | Price range filter in EUR (client-side). |
minArea / maxArea | integer | No | - | Surface area filter in m² (client-side). |
minRooms / maxRooms | integer | No | - | Room-count filter, 0–20 (client-side). |
advertiserType | string | No | all | all, agency, or private (client-side). |
keyword | string | No | - | Substring filter on title and description (client-side). |
maxListings | integer | No | 200 | Hard cap on the number of listings saved. |
maxPages | integer | No | 20 | Maximum search pages to crawl (~25 listings per page). |
proxyConfiguration | object | No | Residential + ES | Apify Proxy settings. Residential with country ES is recommended and set by default. |
Example — Barcelona apartments for sale, €200k–€600k, 3+ rooms, agencies only:
{"transactionType": "sale","propertyType": "apartment","location": "barcelona","minPrice": 200000,"maxPrice": 600000,"minRooms": 3,"advertiserType": "agency","maxListings": 500,"maxPages": 35}
Example — Madrid rentals between €1,000 and €1,800:
{"transactionType": "rent","propertyType": "apartment","location": "madrid","minPrice": 1000,"maxPrice": 1800,"maxListings": 200,"maxPages": 20}
Output example
One JSON record per listing, written to the default Apify dataset. The full record includes 30+ fields, including all amenity booleans:
{"adId": "21311004317263","detailUrl": "https://www.habitaclia.com/comprar-piso-...-i21311004317263.htm","title": "Piso Carrer del rosselló. Junto al passeig sant joan, finca regia de 105 m2, 3 habitacione","transactionType": "sale","propertyType": "apartment","price": 575000,"priceCurrency": "EUR","pricePerSqm": 5476,"areaSqm": 105,"rooms": 3,"bathrooms": 1,"energyClass": "E","country": "ES","province": "Barcelona","city": "Barcelona","neighborhood": "Dreta de l´Eixample","street": "Carrer del Rosselló","fullAddress": "Carrer del Rosselló, Dreta de l´Eixample, Barcelona","latitude": 41.4023078,"longitude": 2.1695036,"mainImageUrl": "https://images.habimg.com/imgh/21311-4317263/...XL.jpg","imageCount": 30,"advertiserName": "AgenciaBCN Real Estate","advertiserType": "agency","hasElevator": true,"hasHeating": true,"scrapedAt": "2026-08-21T12:54:52.280847+00:00"}
Some fields, like floor, orientation, and datePosted, only appear when the source listing itself includes that structured detail — they come back null rather than a guessed value when Habitaclia doesn't publish them. Download results in JSON, CSV, Excel, XML, or HTML from the Apify dataset.
Python API example
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("parsebird/habitaclia-scraper").call(run_input={"transactionType": "sale","propertyType": "apartment","location": "barcelona","minPrice": 200000,"maxPrice": 600000,"maxListings": 200,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
JavaScript API example
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('parsebird/habitaclia-scraper').call({transactionType: 'sale',propertyType: 'apartment',location: 'barcelona',minPrice: 200000,maxPrice: 600000,maxListings: 200,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
See Apify's official Python client and JavaScript client documentation for more options.
How much does it cost to scrape Habitaclia.com?
What is the price per listing?
| Plan | Price per event | Price per 1,000 |
|---|---|---|
| Free | $0.003 | $3.00 |
| Bronze | $0.0025 | $2.50 |
| Silver | $0.002 | $2.00 |
| Gold | $0.0015 | $1.50 |
Each listing-scraped event means one property listing was extracted and pushed to the dataset. A run collecting 1,000 listings costs $3.00 on the Free plan or $1.50 on Gold. Apify's free trial credits cover test runs.
Use cases
- Build a dataset of Spanish for-sale or rental listings for a specific city or province.
- Track price and inventory trends in a market segment over time with scheduled runs.
- Feed listing data, coordinates, and images into a property search tool or map.
- Compare agency vs. private-seller pricing and inventory in a given area.
- Screen properties by energy rating alongside price and size.
How it works
- The actor validates
transactionType,propertyType,location, and the filter and limit options. - It builds a Habitaclia search URL from the transaction type, property type, and location, and pages through search results up to
maxPagesormaxListings. - Each search-result page is parsed for core fields: price, area, rooms, bathrooms, advertiser type, and a short description.
- Listings are filtered by
minPrice/maxPrice,minArea/maxArea,minRooms/maxRooms,advertiserType, andkeywordbefore any detail page is fetched, to avoid wasted requests. - For each listing that passes the filters, the actor opens the listing's detail page to add coordinates, energy rating, amenities, advertiser contact details, and the full image gallery.
- It pushes one row per listing to the default Apify dataset and charges one PPE event per pushed listing on the Apify platform.
What are the limitations of Habitaclia.com scraping?
- Habitaclia does not expose exact street numbers on most listings;
streetandfullAddressreflect what the listing itself publishes. - Fields like
floor,orientation,usableAreaSqm, andterrainAreaSqmdepend on whether the individual listing includes that structured detail — many listings omit them. - Client-side filters (
minPrice,maxArea, etc.) are applied after each search page is fetched, so very narrow filters on a broad search may require crawling many pages to fillmaxListings. - Detail-page requests require Apify Residential proxies with Spain targeting for reliable access.
Is it legal to scrape Habitaclia.com?
Is scraping Habitaclia.com legal?
Habitaclia Scraper reads publicly available property listing pages that Habitaclia itself serves to any visitor. Scraping publicly available data is generally allowed in many jurisdictions, but you should review Habitaclia's terms and make sure your use case complies with applicable laws. For background, read Apify's guide: Is web scraping legal?.
Other Spain and European property scrapers / Related Actors
| Actor | Best for |
|---|---|
| Habitaclia.com Scraper | Spanish property listings and market data |
| Fotocasa Scraper | Another major Spanish real estate portal |
| Otodom.pl Scraper | Polish property listings |
FAQ
Does Habitaclia Scraper require a Habitaclia.com account?
No login is required. The actor reads Habitaclia's public search and listing detail pages.
How do I find a location slug?
Search a city or province on habitaclia.com and look at the resulting URL — the slug is the lowercase, underscore-separated segment before .htm, for example sant_cugat_del_valles or palma_de_mallorca.
Why do the price/area/rooms filters need a detail-page fetch?
They don't — minPrice, maxPrice, minArea, maxArea, minRooms, maxRooms, advertiserType, and keyword are all applied using data already present on the search-results page, before any detail page is opened. Only enrichment fields like energy rating, coordinates, and the full image gallery require the extra detail-page request.
Can I search a whole province instead of one town?
Yes. Province-level Habitaclia slugs (like barcelona or madrid) return listings across the whole province; town-level slugs (like sant_cugat_del_valles) target just that municipality.
Can I schedule recurring runs to track new listings?
Yes. Use Apify schedules to run the actor daily, weekly, or at any interval.
Where can I report issues or request fields?
Open the Issues tab on the actor page and include your input example, run ID, and the fields you expected.