Servihabitat Scraper: Spain Bank-Owned Properties (REO)
Pricing
from $20.00 / 1,000 property listings
Servihabitat Scraper: Spain Bank-Owned Properties (REO)
Scrape Servihabitat.com bank-owned properties in Spain: homes, commercial, land, garages and new developments with price, price history, address, coordinates, areas, energy certificate and owning company. Sale and rent, all 51 provinces, only-new monitor. Export CSV, Excel, JSON, XML.
Pricing
from $20.00 / 1,000 property listings
Rating
0.0
(0)
Developer
RecordsData
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
9 days ago
Last modified
Categories
Share

Servihabitat Spain Bank-Owned Properties Scraper
Servihabitat Scraper exports bank-owned properties from servihabitat.com as structured data: price and price history, address, coordinates, built and plot area, rooms, energy certificate, owning company, days on the market and town profile for homes, garages, land, commercial premises, buildings and new developments in all 51 Spanish provinces. Export to CSV, Excel, JSON or XML, or call it through the Apify API.
The Servihabitat Scraper turns the public catalog of Servihabitat, the Spanish real estate servicer that markets properties owned by banks and asset funds (REO, "inmuebles de banca"), into a dataset you can filter, sort and join. It needs no login, no API key and no proxy. On the 2026-10-11 sitemap snapshot the site listed 11,440 offers (11,395 for sale and 45 for rent) behind 11,402 distinct ids: 9,940 single properties and 1,462 new developments ("promociones") that group several units.
What does the Servihabitat scraper do?
- Scrapes Servihabitat bank-owned properties in Spain for sale and for rent: homes, garages, storage rooms, commercial premises, offices, industrial buildings, whole buildings, unfinished works, land and other assets.
- Returns price, previous price, price change and discount, price per square meter, the estimated monthly mortgage payment and a flag when the price is "on request".
- Reads address, postal code, province, comarca, latitude and longitude, built area, plot area, bedrooms, bathrooms, year built, condition, elevator and amenities.
- Gets the energy certificate and, for land and commercial assets, the cadastral reference, land classification and buildable area.
- Shows the sales status: occupied properties sold without possession, keys not available, joint ownership (proindiviso), new on the site.
- Names the owning company (legal name, tax id, registry data) so you can group the portfolio of each bank or fund.
- Adds market signals: days on the market, publication and update dates, monthly views and the average price of similar properties in the town and the area.
- Filters by province, area or town, property type, price, area, bedrooms, bathrooms, possession, price reductions, days since publication, feature and free text.
- Starts from search pages, property pages, promotion pages, listing ids or the whole sitemap.
- Has an only-new mode for scheduled runs: you get just the properties not seen in your previous run of the same search, and optionally the properties whose price changed.
Servihabitat data: which fields do you get?
Every row is one record with recordType set to listing, changed-listing, promotion, town or owner. A property row carries around 60 of the 125 columns, depending on what the property page states. Keys without a value are left out, never written as null.
| Field | Type | Example |
|---|---|---|
listingId | string | 60580004 |
operation | string | sale |
propertyType | string | apartment |
price, previousPrice, priceChange, discountPercent | number | 185250, 195000, -9750, 5 |
pricePerM2, mortgageMonthlyFrom | number | 3087.5, 476.67 |
latitude, longitude | number | 40.623639, -4.00851 |
areaBuilt, areaLand, bedrooms, bathrooms, yearBuilt | number | 60, 1, 1974 |
energyCertificate, energyConsumption, energyEmissions | string, number | F, 322, 55 |
withoutPossession, keysUnavailable, isProindiviso | boolean | false |
ownerName, ownerTaxId, ownerRegistry | string | Gramina Homes, S.L, B88367727 |
daysOnMarket, publishedAt, updatedAt | number, date | 85, 2026-07-18 |
townAvgPrice, areaAvgPrice | number | 185250, 169125 |
amenities, images, description | array, text | ["Terraza","Ascensor"] |
Other groups (filled when the page states them; on 46 rows read in full, coordinates 78 percent, owner 87 percent, energy certificate 60 percent on homes): land and commercial detail (cadastralReference, landClassification, buildableAreaTotal, uses), promotion link (promotionId, promotionUnits, unitsAvailable), town rows (townPopulation, townHouseholds, townPrimarySchools, townTrainStations) and roll-ups (listingsInRun, avgPrice, totalValue).
Servihabitat property example: what does a real result look like?
A real property row (2026-10-11, photo list and description shortened):
{"recordType": "listing","listingId": "60580004","url": "https://www.servihabitat.com/es/venta/vivienda-piso/madrid-cuencadelguadarrama-estacionlacolladovillalba/60580004","title": "Piso en venta en C. Playa De Louro, 1, Estacion, La (collado Villalba), Madrid","operation": "sale","propertyType": "apartment","address": "C. Playa De Louro, 1","region": "Madrid","postalCode": "28400","latitude": 40.623639,"longitude": -4.00851,"price": 185250,"currency": "EUR","pricePerM2": 3087.5,"previousPrice": 195000,"priceChange": -9750,"discountPercent": 5,"mortgageMonthlyFrom": 476.67,"areaBuilt": 60,"bathrooms": 1,"yearBuilt": 1974,"condition": "A actualizar","hasElevator": true,"amenities": ["Terraza", "Ascensor", "Calefacción", "Cocina equipada"],"energyCertificate": "F","energyConsumption": 322,"ownerName": "Gramina Homes, S.L","ownerTaxId": "B88367727","daysOnMarket": 85,"publishedAt": "2026-07-18","updatedAt": "2026-09-08","townAvgPrice": 185250,"areaAvgPrice": 169125,"description": "Piso situado en finca que dispone de ascensor. Cuenta con terraza ...","sourceSite": "servihabitat.com","scrapedAt": "2026-10-11T08:22:22.345Z"}
Prices are in euros as plain numbers (rent is the monthly price). Dates are ISO 8601. Texts keep the Spanish wording of the site.
How to scrape Servihabitat properties in 4 steps
- Create a free account at console.apify.com and open this Actor.
- Pick provinces, property types and the filters you need, or leave them empty to read the whole catalog. Choose sale, rent or both.
- Set Max Items and press Start. A 3-property run with full details finishes in about 10 seconds.
- Download the dataset as CSV, Excel, JSON or XML, or read it through the Apify API.
To read one property, paste its servihabitat.com URL in Start URLs or its 8-digit id in Listing IDs.
Input: the main settings
| Input | Type | What it does |
|---|---|---|
mode | select | search (default), startUrls, listingIds or sitemap |
maxItems | integer | Rows to return. Free accounts: 10 per run |
recordTypes | array | listings, promotions, towns, owners |
operation | select | sale (default), rent or both |
provinces, locations, propertyTypes | array | Where and what to read, applied by the site |
minPrice, maxPrice, minArea, maxArea | integer | Applied by the Actor on each property |
occupancy | select | any, vacant or occupied |
onlyReduced, listedWithinDays | boolean, integer | Price cuts and recent listings |
fetchDetails | boolean | Read the property page (default on) |
onlyNew, trackPriceChanges, stateKey | boolean, string | Monitor mode for scheduled runs |
maxRunSeconds | integer | Stop after N seconds (default 1800) |
Example input, 50 vacant homes for sale in Madrid:
{"mode": "search","provinces": ["madrid"],"propertyTypes": ["vivienda"],"operation": "sale","occupancy": "vacant","maxItems": 50}
Servihabitat scraper pricing: how much does a run cost?
The Actor is pay-per-event. Apify platform usage is included in the event price, you pay only for the rows you receive. Live prices on 2026-10-11:
| Event | Price per row | Per 1,000 rows |
|---|---|---|
| Property listing (search data) | $0.02 | $20.00 |
| Property detail page (added when the page is read) | $0.03333 | $33.33 |
| New development row | $0.03333 | $33.33 |
| Town profile, owning company, price-changed property | $0.02 | $20.00 |
Worked examples:
- 1,000 properties, search data only (Fetch full listing details off): 1,000 x $0.02 = $20.00.
- 1,000 properties with full details (default): 1,000 x ($0.02 + $0.03333) = $53.33.
- One province, 500 vacant homes with details: 500 x $0.05333 = $26.67.
- Daily monitor with 20 new properties a day with details: 20 x $0.05333 = $1.07 per run. A run with nothing new charges nothing.
Rows rejected by your price, area or room filters are not charged. Invalid input and zero-hit searches end with 0 rows charged.
Servihabitat scraper vs alternatives
Compared on 2026-10-11 against the only Apify Actor found that includes Servihabitat, read on its Store page that day.
| Feature | This Actor | sn41lz/spain-bank-properties | Browsing the site by hand |
|---|---|---|---|
| Portals | Servihabitat only, all 51 provinces | Servihabitat, Solvia and Aliseda | Servihabitat, one page at a time |
| Rent offers | Yes | Sale only (page lists no rent) | Yes |
| Owner company and tax id | Yes | Not in its field list | Hidden on each page |
| Development, town and owner rows | Yes | Not listed | No |
| New-listing alerts with price changes | Yes | Yes (only-changes mode) | No |
| Price per 1,000 rows | $20.00 search data, $53.33 with details | $3.00 | Free, your time |
Pick the other Actor if you want Solvia and Aliseda stock in one table at a flat $3.00 per 1,000. Pick this one if you need only Servihabitat with the owning company, rent offers, developments and town context. It costs more per row than the other Actor, both for search data ($20.00 against $3.00) and with full details ($53.33), so choose it for the extra fields and rows, not for price. The other Actor had 2 total users and 0 monthly users when read, so test either on a small run first.
Servihabitat scraper use cases
- Real estate investors and funds: shortlist discounted properties (
discountPercent,onlyReduced), comparepricePerM2withtownAvgPriceand export vacant properties by province. - Agents and brokers: watch new bank-owned stock in your town with the only-new mode and send it to your CRM.
- Land and development promoters: find plots with land classification, buildable area and cadastral reference.
- Lenders, appraisers and consultants: follow how bank portfolios are priced by owner, province and type, with days on market and price cuts.
- Researchers and data teams: build a time series of bank-owned stock in Spain from scheduled runs.
Servihabitat scraper API, MCP and integrations
Run it from any language through the Apify API:
curl -X POST "https://api.apify.com/v2/acts/RecordsData~servihabitat-scraper/runs?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"provinces":["madrid"],"propertyTypes":["vivienda"],"operation":"sale","maxItems":50}'
Connect it to Make, Zapier, n8n, Google Sheets or Slack with the standard Apify integrations, or use the Apify client for Python and JavaScript.
Use it from an AI agent (MCP)
Add the Actor to any MCP client (Claude, Cursor, VS Code) through the Apify MCP server: https://mcp.apify.com?tools=RecordsData/servihabitat-scraper. The agent sees one tool, RecordsData/servihabitat-scraper, described as: "Scrape Servihabitat bank-owned properties in Spain: price, price cuts, coordinates, energy rating, owner and days on market." Its arguments are the input fields above.
Example agent prompt:
Find up to 30 vacant bank-owned flats for sale in Valencia on Servihabitat under 120,000 EUR. Return price, area, price per m2, discount and the owning company, sorted by discount.
The agent maps this to provinces: ["valencia"], occupancy: "vacant", maxPrice: 120000, maxItems: 30, runs the Actor and reads the dataset. That run costs at most 30 x $0.05333 = $1.60.
Is it legal to scrape Servihabitat?
The Actor reads the public catalog that servihabitat.com serves to every visitor, without logging in and without bypassing any protection. It requests only pages that the site's robots.txt allows, at about three requests per second. It outputs published listing data, including the legal name, tax id and registry data of the owning company (a bank, fund or company, not a private person). It never reads contact forms, favorites or any account area. The site asks visitors to confirm prices by phone: treat the data as published information and check it before you make an offer.
FAQ: Servihabitat scraper questions and answers
Does the Servihabitat scraper need a proxy or a Servihabitat account? No. The site sits behind Cloudflare but serves plain HTML to normal requests. The Actor reads it with three parallel requests and a short pause between them, with no login, no key and no proxy. Cloud runs of the same code finished without a single blocked request, including a burst of 60 requests that all returned HTTP 200.
How many properties does Servihabitat list? On the 2026-10-11 sitemap the site listed 11,440 offers behind 11,402 distinct ids across 51 provinces: about 4,400 garage pages, 2,400 land pages, 1,900 home pages, 1,360 unfinished works and 950 commercial premises, plus storage rooms, offices and buildings. Barcelona is the biggest province with 1,369 pages. The stock changes daily, so schedule the Actor to follow it.
What is a promotion and why do I get several rows for it?
A promotion is a development: one page that groups several units (garages, flats, plots) sold by the same owner. With Expand promotions into units on, which is the default, every unit becomes its own property row with isPromotionUnit, promotionId and promotionUrl. Choose the promotions record type instead to get one row per development, with its units and price range.
Can I get rental properties from Servihabitat?
Yes, set Operation to rent or both. Servihabitat is mainly a sales site: only about 45 offers were for rent on 2026-10-11, and 38 of them were also for sale. A property offered both ways returns two rows with the same listingId and a different operation, because each offer has its own price.
Why does the search return fewer properties than the sitemap lists? The site's search index does not show every page that exists. Searching Barcelona garages plus the units of its developments returned 502 distinct properties on 2026-10-11, while the sitemap listed 535 garage pages. If you need the complete list, use the Sitemap source: it reads every page the official sitemap names for your provinces and types.
How do the price, area and bedroom filters work? Servihabitat blocks its own filter parameters for robots, so the Actor reads the clean search pages and applies your price, area, bedroom, bathroom, possession, reduction and age filters to the data of each property. You are charged only for the properties that pass the filters. Province, area, town, type and feature filters are applied by the site itself.
Why are some fields empty on a property? Because the page does not state them. Coordinates are missing on some pages and on most land plots, garages have no bedrooms and many old properties have no energy certificate. Keep Fetch full listing details on, which is the default: the search list alone has no description, coordinates, energy certificate, owner or photo gallery.
How do I get only the new properties every day?
Turn on Only new rows and schedule the Actor. It remembers what it already returned for the same search in a store of your own account and skips it, so each run returns just the new properties. Add Also report price changes to receive a changed-listing row, with the previous price and the percentage, when a property you already had changes price.
How many results do free users get? Free Apify accounts get a preview of up to 10 results per run. Paid accounts can set Max Items up to 1,000,000. Whole-Spain runs stop at Max run time, 30 minutes by default, with whatever they collected, so for regular full copies run province by province on a schedule.
What happens if the site changes?
When a run delivers no data the Actor ends with a clear failure message and charges nothing. Write to contact.punkrecordsdata@gmail.com with the run link and we fix it. Fields the page stops publishing are simply left out of the row, never filled with null or invented values.
Want more real estate and market data?
Browse the complete RecordsData collection for more scrapers.
Support
Questions, a missing field or a feature request: contact.punkrecordsdata@gmail.com
Last updated: 2026-10-11
Disclaimer: independent tool, not affiliated with Servihabitat or its owners. It collects only publicly available data.