Habitaclia.com Spain Scraper
Pricing
from $2.00 / 1,000 results
Habitaclia.com Spain Scraper
Scrape real estate listings from Habitaclia.com — leading Spanish property portal owned by Adevinta, with deep coverage in Catalonia and major cities. Extract apartments, houses, attics, duplexes, offices, land and parking by region or city, with price (EUR), area (m²), rooms, location and images.
Pricing
from $2.00 / 1,000 results
Rating
0.0
(0)
Developer
Logiover
Maintained by CommunityActor stats
0
Bookmarked
12
Total users
4
Monthly active users
3 days ago
Last modified
Categories
Share
Habitaclia.com Spain Property Scraper — Spanish Real Estate Listings to JSON/CSV/Excel

Scrape real estate listings from Habitaclia.com — one of Spain's leading property portals, part of the Adevinta network (the group behind Fotocasa). This Habitaclia scraper extracts apartments, houses, attics, duplexes, offices, commercial premises, land and parking spaces from any Spanish province or city, returning clean structured data ready to export to JSON, CSV or Excel.
Search by Spanish location slug and filter by price (EUR), surface area, room count and advertiser type. Every listing card returns 30+ fields — address, neighborhood, price per m², specs, energy class, image URLs and amenity flags — making it ideal for property analysts, investors, market researchers and proptech teams who want reliable Spain real estate data without managing browsers, captchas or proxy rotation.
✨ What this Actor does / Key features
- Scrapes Habitaclia.com — Spain's major property portal, with especially deep coverage in Catalonia (Barcelona, Girona, Tarragona, Lleida) and strong nationwide inventory.
- All 10 property types — apartments, all-residential housing, houses, attics/penthouses, duplexes, offices, commercial premises, industrial, land and parking.
- Sale and rent — scrape
comprar(sale) oralquiler(rent) listings. - Rich data per listing — 30+ fields: price, price per m², area, rooms, bathrooms, floor, year built, energy class, full parsed address, coordinates, images and advertiser details.
- Amenity flags — booleans for elevator, parking, terrace, pool, sea view, furnished, luxury and more.
- Client-side filters — narrow by price (EUR), area (m²), room count, advertiser type (agency / private) and keyword.
- Robust crawling — HTTP-only fetching with Apify RESIDENTIAL ES proxy, exponential backoff retries, pagination-loop and thin-page detection.
- Structured, export-ready output — flat JSON, perfect for dashboards, data warehouses and ML pipelines.
🔍 Input
| Field | Type | Description |
|---|---|---|
transactionType | string (enum) | sale (Comprar) or rent (Alquiler). Default sale. |
propertyType | string (enum) | Property category: apartment, housing (all residential), house, attic, duplex, office, commercial, industrial, land, parking. Default apartment. |
location | string | Habitaclia location slug, lowercase ASCII with underscores for spaces (e.g. barcelona, madrid, valencia, palma_de_mallorca, sant_cugat_del_valles). Province slugs do province-wide searches; town slugs target one municipality. Default barcelona. |
minPrice / maxPrice | integer | Price range filter in EUR (client-side). |
minArea / maxArea | integer | Surface area filter in m² (client-side). |
minRooms / maxRooms | integer | Room-count filter (client-side), 0–20. |
advertiserType | string (enum) | all, agency or private (client-side). Default all. |
keyword | string | Optional substring filter on title and description. |
maxListings | integer | Hard cap on number of listings saved. Default 200. |
maxPages | integer | Maximum search pages to crawl (Habitaclia shows ~25 listings per page). Default 20. |
proxyConfiguration | object | Apify proxy settings. RESIDENTIAL group with country ES is recommended and set by default. |
🚀 Example input
{"transactionType": "sale","propertyType": "apartment","location": "barcelona","minPrice": 200000,"maxPrice": 600000,"minRooms": 3,"advertiserType": "agency","maxListings": 500,"maxPages": 35,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "ES"}}
Madrid rentals between €1,000 and €1,800:
{"transactionType": "rent","propertyType": "apartment","location": "madrid","minPrice": 1000,"maxPrice": 1800,"maxListings": 200,"maxPages": 20,"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "ES" }}
📦 Output
One JSON record per listing, written to the default Apify dataset. Below are the main fields (the full record includes 30+ fields, including all amenity booleans).
| Field | Description |
|---|---|
adId | Habitaclia listing identifier. |
detailUrl | URL of the full listing detail page. |
title / shortDescription | Listing title and short description. |
transactionType / propertyType / advertType | Sale or rent, property category, advert type. |
price / priceCurrency / pricePerSqm | Price, currency (EUR) and price per m². |
priceDropValue / hasPriceDrop | Price-drop amount and whether a price drop occurred. |
areaSqm / usableAreaSqm / terrainAreaSqm | Built, usable and terrain surface areas in m². |
rooms / roomsLabel / bathrooms / floor | Room count, room label, bathrooms and floor. |
buildingCondition / yearBuilt | Building condition and year built. |
energyClass / energyConsumption / energyEmissions / orientation | Energy certificate data and orientation. |
country / province / city / district / neighborhood / street | Parsed location hierarchy. |
fullAddress / latitude / longitude | Full address string and coordinates. |
mainImageUrl / imageUrls / imageCount | Main image, all image URLs and image count. |
advertiserId / advertiserName / advertiserUrl / advertiserType | Advertiser details (agency or private). |
hasElevator, hasParking, hasTerrace, hasPool, hasSeaView, isFurnished, isLuxury, … | Amenity and property boolean flags. |
datePosted / labels | Posting date and listing labels. |
searchTransaction / searchPropertyType / searchLocation / searchKeyword / searchUrl | Provenance of the search that produced the record. |
scrapedAt | ISO timestamp of when the record was scraped. |
Example output record
{"adId": "10899004377662","detailUrl": "https://www.habitaclia.com/comprar-piso-...-i10899004377662.htm","title": "Piso en Calle aragó 79","transactionType": "sale","propertyType": "apartment","price": 599000,"priceCurrency": "EUR","pricePerSqm": 4792,"areaSqm": 125,"rooms": 4,"bathrooms": 2,"country": "ES","province": "Barcelona","city": "Barcelona","neighborhood": "La Nova Esquerra de l'Eixample","fullAddress": "Calle aragó 79, La Nova Esquerra de l'Eixample, Barcelona","mainImageUrl": "https://images.habimg.com/imgh/10899-4377662/...jpg","scrapedAt": "2026-05-15T11:46:40.892Z"}
💡 Use cases
- Market research & price benchmarking — track median €/m² across neighborhoods and compare districts over time.
- Investment due diligence — surface new listings matching specific yield, area, room or location criteria.
- Lead generation for real estate agencies — feed CRM systems with curated, region-specific inventory.
- Academic & journalistic research — quantify Spanish housing-market dynamics, supply and pricing trends.
- Real estate ML training data — collect labeled property records for valuation and recommendation models.
- Proptech supply mapping — populate map-based apps with current Spanish listings, complementing Idealista and Fotocasa data.
❓ Frequently Asked Questions
Do I need a proxy or login?
No login is required. Habitaclia tolerates clean datacenter traffic for small runs, but the Apify RESIDENTIAL proxy pinned to country ES is strongly recommended for runs above ~100 listings — and the input is pre-configured this way by default.
Is it legal to scrape Habitaclia?
Use the Actor only for publicly accessible data you have a lawful basis to collect under GDPR and Spanish data-protection law. Respect Habitaclia's Terms of Service and robots.txt, and handle any personal data (advertiser names) accordingly. This Actor is independent and not affiliated with Habitaclia or Adevinta.
How much data can I get and how fast?
Set maxListings and maxPages to control volume. Typical throughput is around 200 listings in roughly 90 seconds on a 1 GB instance, with each record carrying 30+ fields.
How do I find the right location slug?
Use lowercase ASCII with underscores for spaces — e.g. barcelona, madrid, palma_de_mallorca, sant_cugat_del_valles. Province slugs run province-wide searches; specific town slugs target a single municipality.
Can I filter by price, area or rooms?
Yes. minPrice/maxPrice (EUR), minArea/maxArea (m²), minRooms/maxRooms, advertiserType and keyword are all applied as client-side filters.
How fresh is the data? Real-time. Each run fetches live listing pages directly — no caching and no third-party feed.
Does it scrape full detail pages? The Actor is optimized for card-level extraction, which already returns 30+ fields per listing. Detail-page enrichment (full description, all photos, agency contact) is a planned extension.
What does the housing property type mean?
Habitaclia's viviendas bucket combines apartments, houses, attics and duplexes — use it when you want all residential inventory regardless of subtype.
⏰ Scheduling & integration
Schedule this Actor on Apify to run daily or weekly for a continuously updated Spanish real estate dataset. Export results to JSON, CSV, Excel or XML, pull them via the Apify API, or stream the dataset into Google Sheets, BigQuery, Snowflake, Postgres or webhooks for automated market monitoring.
Changelog
- 2026-05-25 — Maintenance & reliability pass: pulled the latest source and rebuilt the Actor on the current base image; build verified.
Last reviewed: 2026-05-25.