Idealista Scraper - Spain, Portugal & Italy Real Estate
Pricing
from $2.00 / 1,000 result scrapeds
Idealista Scraper - Spain, Portugal & Italy Real Estate
Scrape real estate listings from Idealista.com (Spain), Idealista.pt (Portugal), and Idealista.it (Italy). Get prices, addresses, property details, photos, energy certificates, and agent contacts for properties for sale or rent. No login or cookies required.
Pricing
from $2.00 / 1,000 result scrapeds
Rating
0.0
(0)
Developer
Studio Amba
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share
Idealista Scraper
Scrape real estate listings (pisos y casas) from Idealista — the dominant property portal in Spain, Portugal, and Italy with over 1.5 million active listings. No login or cookies required.
Verified completeness, not just a promise. On 2026-07-16 we ran this actor against Vallehermoso (Chamberí, Madrid) — a zone Idealista itself lists as "100 casas y pisos" — and it returned all 100, zero duplicates, zero missed. Every one of the 100 also came back with advertiserType resolved (11 private owners, 89 agencies) — that filter isn't a checkbox that silently does nothing, it's proven on a live run. We re-run this check as part of our own monitoring, so if it breaks we know before you do.
How to scrape Idealista data
- Go to Idealista Scraper on the Apify Store.
- Select the country (Spain, Portugal, or Italy).
- Choose a listing type (buy or rent).
- Enter a location (city, region, or neighborhood).
- Optionally filter by property type, price range, size, bedrooms, bathrooms, or advertiser type (private owner vs. agency).
- Set the maximum number of results you want.
- Click Start and wait for the data to be collected.
- Download your results as JSON, CSV, Excel, or connect via API.
Why use this actor?
Real estate investors, analysts, relocation agencies, and proptech companies need reliable property data from Southern Europe's largest markets. This actor extracts structured listing data from Idealista including prices, addresses, property specs, photos, energy certificates, agent contacts, and whether the seller is a private owner or an agency — ready for market analysis, price comparison, portfolio monitoring, or lead generation.
Idealista is protected by DataDome and Akamai — most scrapers either get blocked outright or silently return zero-result pages that still show as "succeeded." This actor connects through a dedicated anti-bot bypass (Bright Data Scraping Browser over CDP) instead of a plain residential-proxy browser, which is why the completeness check above actually completed instead of timing out.
Idealista covers three major markets from a single portal:
- Spain (idealista.com) — 800K+ listings, the #1 real estate site
- Portugal (idealista.pt) — the leading property portal
- Italy (idealista.it) — major market with growing share
Find private sellers (FSBO), not just agencies
Every listing on Idealista is tagged internally as either particular (a private owner selling or renting directly) or profesional (an agency). We resolve that tag from each listing's detail page and expose it two ways:
- As an output field,
advertiserType("private"or"professional"), on every row. - As an input filter,
advertiserType, so you can pull only private-owner listings — the ones agencies pay outreach tools like Betipo or Hostreach to hunt down manually.
In our Vallehermoso benchmark, 11 of 100 listings were private owners. That's 11 direct leads with no agency in the way — useful for agents doing captación de particulares (private-listing acquisition), for buyers who want to negotiate without a broker's commission on top, or for anyone building a feed of fresh FSBO ads instead of the same agency inventory every portal already carries.
Cada anuncio de Idealista está marcado como particular o profesional. Este actor extrae ese dato y te deja filtrar solo particulares — justo el tipo de contacto que agencias y captadores buscan a mano para captación de particulares. Si lo que necesitas son testigos (comparables de la zona) o vigilar precios para no perder una alerta, esta salida de datos —dirección, precio, m², planta, certificado energético— es la base para montarlo tú mismo con Schedule + tu propio aviso.
Input
| Field | Type | Required | Description |
|---|---|---|---|
country | String | No | ES (Spain, default), PT (Portugal), or IT (Italy) |
listingType | String | No | sale (default) or rent |
searchQuery | String | No | City, region, or neighborhood (e.g. Madrid, Barcelona, Lisboa, Roma, Vallehermoso) |
propertyType | String | No | flat, house, penthouse, studio, duplex, loft, country-house, land, or garage |
minPrice | Integer | No | Minimum price in EUR |
maxPrice | Integer | No | Maximum price in EUR |
minSize | Integer | No | Minimum constructed area in m2 |
maxSize | Integer | No | Maximum constructed area in m2 |
bedrooms | Integer | No | Minimum number of bedrooms |
bathrooms | Integer | No | Minimum number of bathrooms |
advertiserType | String | No | private (particulares/FSBO only), professional (agencies only), or leave blank for both. Resolved from each listing's detail page — see note below on how maxResults interacts with this filter. |
maxResults | Integer | No | Maximum results to return (default: 100) |
proxyConfiguration | Object | No | Kept for input-schema compatibility; transport is handled by the actor's own anti-bot bypass regardless of this setting |
Note on advertiserType + maxResults: maxResults caps how many search-result candidates get fetched and enriched before the filter is applied, not the final filtered count. If you set advertiserType: "private" with maxResults: 20 and only 4 of those 20 candidates turn out to be private owners, you'll get 4 rows back. Raise maxResults if you need a guaranteed minimum of filtered results.
Output
Each result contains:
| Field | Type | Example |
|---|---|---|
title | String | "Piso en calle de Alcala" |
price | Number | 385000 |
currency | String | "EUR" |
pricePerM2 | Number | 4812 |
originalPrice | Number | 395000 |
priceDropPercent | Number | 2.5 |
listingType | String | "sale" or "rent" |
propertyType | String | "flat" |
address | String | "Calle de Alcala, Salamanca, Madrid" |
city | String | "Madrid" |
province | String | "Madrid" |
district | String | "Salamanca" |
postalCode | String | "28009" |
latitude | Number | 40.4233 |
longitude | Number | -3.6783 |
bedrooms | Number | 3 |
bathrooms | Number | 2 |
rooms | Number | 5 |
surface | Number | 80 |
usableSurface | Number | 72 |
landSurface | Number | null |
floor | String | "3" |
hasLift | Boolean | true |
isExterior | Boolean | true |
hasAirConditioning | Boolean | true |
hasSwimmingPool | Boolean | false |
hasGarden | Boolean | false |
hasTerrace | Boolean | true |
hasParking | Boolean | true |
parkingPrice | Number | 25000 |
condition | String | "good" |
energyCertification | String | "D" |
description | String | Full property description text |
imageUrl | String | Primary listing photo URL |
imageUrls | Array | All listing photo URLs |
imageCount | Number | 24 |
has3DTour | Boolean | true |
hasVideo | Boolean | false |
agencyName | String | "Engel & Volkers" (or the owner's first name for private listings) |
agencyPhone | String | "+34 91 123 4567" |
agencyUrl | String | Agency logo URL (null for private listings) |
advertiserType | String | "private" or "professional" |
propertyCode | String | "12345678" |
country | String | "ES" |
url | String | Full listing URL on Idealista |
scrapedAt | String | "2026-06-07T12:00:00.000Z" |
Example output
{"title": "Piso en calle de Alcala","price": 385000,"currency": "EUR","pricePerM2": 4812,"originalPrice": null,"priceDropPercent": null,"listingType": "sale","propertyType": "flat","address": "Calle de Alcala, Salamanca, Madrid","city": "Madrid","province": "Madrid","district": "Salamanca","postalCode": "28009","latitude": 40.4233,"longitude": -3.6783,"bedrooms": 3,"bathrooms": 2,"rooms": 5,"surface": 80,"usableSurface": 72,"landSurface": null,"floor": "3","hasLift": true,"isExterior": true,"hasAirConditioning": true,"hasSwimmingPool": false,"hasGarden": false,"hasTerrace": true,"hasParking": true,"parkingPrice": 25000,"condition": "good","energyCertification": "D","description": "Luminoso piso exterior en el barrio de Salamanca...","imageUrl": "https://img3.idealista.com/blur/...","imageUrls": ["https://img3.idealista.com/blur/...","https://img3.idealista.com/blur/..."],"imageCount": 24,"has3DTour": true,"hasVideo": false,"agencyName": "Engel & Volkers","agencyPhone": "+34 91 123 4567","agencyUrl": null,"advertiserType": "professional","propertyCode": "12345678","country": "ES","url": "https://www.idealista.com/inmueble/12345678/","scrapedAt": "2026-06-07T12:00:00.000Z"}
Cost estimate
This actor connects through Bright Data's Scraping Browser (a managed anti-bot bypass) rather than a plain proxy, because Idealista's DataDome + Akamai stack blocks datacenter and residential proxies alike. It visits both search pages and individual detail pages for full data enrichment, including the advertiserType lookup. Expect a similar cost profile to other Playwright-based real estate scrapers — test with 10-20 results first to confirm the exact usage for your search before scaling up.
Tips for best results
- Start small — test with 10-20 results first, then scale up.
- Be specific with location — use city, district, or neighborhood names as they appear on Idealista (e.g. "Madrid", "Chamberí", "Vallehermoso").
- Filtering by
advertiserType? RaisemaxResultsso the pre-filter candidate pool is large enough to contain your target count — see the note under Input above. - Combine filters — narrow results with price range, property type, and advertiser type together to get exactly the leads you want.
Supported countries and cities
Spain (idealista.com)
Madrid, Barcelona, Valencia, Sevilla, Malaga, Bilbao, Alicante, Palma de Mallorca, Las Palmas, Zaragoza, and all provinces — down to district and neighborhood level (e.g. Chamberí, Vallehermoso).
Portugal (idealista.pt)
Lisboa, Porto, Faro, Braga, Coimbra, Setúbal, Funchal, and all districts.
Italy (idealista.it)
Roma, Milano, Napoli, Torino, Firenze, Bologna, Palermo, Genova, and all provinces.
Limitations
- Idealista has aggressive anti-bot protection (DataDome + Akamai); this actor routes around it via a managed Scraping Browser, but individual pages can still occasionally be blocked — the actor falls back gracefully rather than crashing
advertiserTyperequires a successful detail-page fetch to resolve; if that page is blocked, the field isnulland the listing is excluded when theadvertiserTypefilter is active (see Input notes)- Maximum ~60 pages per search (Idealista platform limit), which is approximately 1,800 listings per search query without splitting by price band
- GPS coordinates are only available when the listing includes a map
- Data is scraped from the public website and may change without notice
- Respect the website's terms of service and use responsibly
Use cases
- FSBO lead generation — filter to
advertiserType: privatefor fresh owner-direct listings, the same segment tools like Betipo and Hostreach charge €20-35/month to hand-hunt. - Market analysis — track asking prices, price-per-m2, and inventory across Spanish, Portuguese, and Italian cities.
- Investment research — compare rental yields and property values across Southern European markets.
- Relocation intelligence — aggregate listings by neighborhood, price, and features for expat relocation services.
- Competitor monitoring — track how agencies price and position their listings vs. private sellers.
- Academic research — study housing market trends, gentrification patterns, and price dynamics.
Related Spanish & Italian property scrapers
We publish scrapers for every major Spanish and Italian real estate portal, so you can cross-check the same address across all of them or dedupe listings that get syndicated to multiple sites:
- Fotocasa Scraper — Spain's #2 portal
- Habitaclia Scraper — Catalonia-strong Spanish portal
- Pisos.com Scraper — another major Spanish portal
- Immobiliare.it Scraper — Italy's #1 real estate portal
Support
Hit a bug or a missing field? Open an issue on the Actor page — we respond fast and ship fixes within 24 hours. Every published scraper in the Studio Amba catalog is monitored daily; broken runs trigger an automatic heal cycle.