Idealista Scraper - Spain, Portugal & Italy Real Estate avatar

Idealista Scraper - Spain, Portugal & Italy Real Estate

Pricing

from $2.00 / 1,000 result scrapeds

Go to Apify Store
Idealista Scraper - Spain, Portugal & Italy Real Estate

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

Studio Amba

Maintained by Community

Actor 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

  1. Go to Idealista Scraper on the Apify Store.
  2. Select the country (Spain, Portugal, or Italy).
  3. Choose a listing type (buy or rent).
  4. Enter a location (city, region, or neighborhood).
  5. Optionally filter by property type, price range, size, bedrooms, bathrooms, or advertiser type (private owner vs. agency).
  6. Set the maximum number of results you want.
  7. Click Start and wait for the data to be collected.
  8. 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

FieldTypeRequiredDescription
countryStringNoES (Spain, default), PT (Portugal), or IT (Italy)
listingTypeStringNosale (default) or rent
searchQueryStringNoCity, region, or neighborhood (e.g. Madrid, Barcelona, Lisboa, Roma, Vallehermoso)
propertyTypeStringNoflat, house, penthouse, studio, duplex, loft, country-house, land, or garage
minPriceIntegerNoMinimum price in EUR
maxPriceIntegerNoMaximum price in EUR
minSizeIntegerNoMinimum constructed area in m2
maxSizeIntegerNoMaximum constructed area in m2
bedroomsIntegerNoMinimum number of bedrooms
bathroomsIntegerNoMinimum number of bathrooms
advertiserTypeStringNoprivate (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.
maxResultsIntegerNoMaximum results to return (default: 100)
proxyConfigurationObjectNoKept 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:

FieldTypeExample
titleString"Piso en calle de Alcala"
priceNumber385000
currencyString"EUR"
pricePerM2Number4812
originalPriceNumber395000
priceDropPercentNumber2.5
listingTypeString"sale" or "rent"
propertyTypeString"flat"
addressString"Calle de Alcala, Salamanca, Madrid"
cityString"Madrid"
provinceString"Madrid"
districtString"Salamanca"
postalCodeString"28009"
latitudeNumber40.4233
longitudeNumber-3.6783
bedroomsNumber3
bathroomsNumber2
roomsNumber5
surfaceNumber80
usableSurfaceNumber72
landSurfaceNumbernull
floorString"3"
hasLiftBooleantrue
isExteriorBooleantrue
hasAirConditioningBooleantrue
hasSwimmingPoolBooleanfalse
hasGardenBooleanfalse
hasTerraceBooleantrue
hasParkingBooleantrue
parkingPriceNumber25000
conditionString"good"
energyCertificationString"D"
descriptionStringFull property description text
imageUrlStringPrimary listing photo URL
imageUrlsArrayAll listing photo URLs
imageCountNumber24
has3DTourBooleantrue
hasVideoBooleanfalse
agencyNameString"Engel & Volkers" (or the owner's first name for private listings)
agencyPhoneString"+34 91 123 4567"
agencyUrlStringAgency logo URL (null for private listings)
advertiserTypeString"private" or "professional"
propertyCodeString"12345678"
countryString"ES"
urlStringFull listing URL on Idealista
scrapedAtString"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? Raise maxResults so 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
  • advertiserType requires a successful detail-page fetch to resolve; if that page is blocked, the field is null and the listing is excluded when the advertiserType filter 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: private for 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.

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:

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.