Habitaclia.com Scraper - Spain Property Data avatar

Habitaclia.com Scraper - Spain Property Data

Pricing

from $1.50 / 1,000 property listings

Go to Apify Store
Habitaclia.com Scraper - Spain Property Data

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

ParseBird

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

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?

FieldDescription
title / descriptionListing title and full description
price / pricePerSqmPrice in EUR and price per square meter
areaSqm / rooms / bathroomsSurface area, room count, and bathrooms
energyClass / energyConsumption / energyEmissionsEnergy certificate rating and figures
province / city / neighborhood / fullAddressParsed location hierarchy
latitude / longitudeCoordinates read from the listing's map
mainImageUrl / imageUrls / imageCountFull-size image gallery
advertiserName / advertiserUrl / advertiserTypeAgency or private seller details
hasElevator, hasParking, hasTerrace, hasPool, …Amenity flags parsed from the listing's feature list

How to scrape Habitaclia.com property listings

  1. Open Habitaclia Scraper on Apify.
  2. Choose transactionType (sale or rent) and propertyType.
  3. Set location to 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).
  4. Optionally add minPrice/maxPrice, minArea/maxArea, minRooms/maxRooms, advertiserType, or keyword to narrow results.
  5. Set maxListings and maxPages to control how much of the search to crawl.
  6. Run the actor, open the dataset, and export results as JSON, CSV, Excel, or through the Apify API.

Input parameters

ParameterTypeRequiredDefaultDescription
transactionTypestringNosalesale (Comprar) or rent (Alquiler).
propertyTypestringNoapartmentapartment, housing, house, attic, duplex, office, commercial, industrial, land, or parking.
locationstringNobarcelonaHabitaclia location slug, lowercase ASCII with underscores for spaces.
minPrice / maxPriceintegerNo-Price range filter in EUR (client-side).
minArea / maxAreaintegerNo-Surface area filter in m² (client-side).
minRooms / maxRoomsintegerNo-Room-count filter, 0–20 (client-side).
advertiserTypestringNoallall, agency, or private (client-side).
keywordstringNo-Substring filter on title and description (client-side).
maxListingsintegerNo200Hard cap on the number of listings saved.
maxPagesintegerNo20Maximum search pages to crawl (~25 listings per page).
proxyConfigurationobjectNoResidential + ESApify 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 ApifyClient
client = 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?

PlanPrice per eventPrice 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

  1. The actor validates transactionType, propertyType, location, and the filter and limit options.
  2. It builds a Habitaclia search URL from the transaction type, property type, and location, and pages through search results up to maxPages or maxListings.
  3. Each search-result page is parsed for core fields: price, area, rooms, bathrooms, advertiser type, and a short description.
  4. Listings are filtered by minPrice/maxPrice, minArea/maxArea, minRooms/maxRooms, advertiserType, and keyword before any detail page is fetched, to avoid wasted requests.
  5. 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.
  6. 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; street and fullAddress reflect what the listing itself publishes.
  • Fields like floor, orientation, usableAreaSqm, and terrainAreaSqm depend 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 fill maxListings.
  • Detail-page requests require Apify Residential proxies with Spain targeting for reliable access.

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?.

ActorBest for
Habitaclia.com ScraperSpanish property listings and market data
Fotocasa ScraperAnother major Spanish real estate portal
Otodom.pl ScraperPolish 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.