- Clearer agencies mode. The checkbox is now called "Agencies only (no property
rows)". When it is on, the run log says that no property rows will be returned
and lists the options that have no effect in this mode (details, phones,
monitoring, price split). Before, those options were silently ignored.
- Fixed: monitoring mode never remembered anything. Seen property codes were
saved in the run's own key-value store, which every run creates from scratch,
so each run started with 0 known IDs and returned every listing again. They
are now kept in a named store on your account (
idealista-monitoring), one
entry per search. Checked on two runs in a row: the second one knew the first
run's 40 IDs and returned 40 new listings, with no overlap.
- No stray pages with a small maxItems. The parallel page walk stops queuing
results pages once the queued ones cover what is left of
maxItems, now also
when fetchDetails is on.
- Cleaner log. Removed the harmless
h2 connection driver error … close_notify
lines that the HTTP library printed when the site closed an idle connection.
scrapeAgencies now logs how many agencies it has found and scraped, so the
agency phase no longer looks stuck.
- The end of the results is detected from the page paginator when the page has
no tracking data.
Search runs are about 13× faster at the same proxy traffic. A 1,568-listing
Portugal search used to take 7.5 minutes; it now finishes in 35 seconds.
- Results pages load in parallel. Once page 1 reports how many pages there
are, the rest are fetched by 10 workers at once, each on its own sticky
residential IP. Rows are still written strictly in page order. Each page is
still fetched once, so proxy traffic stays the same: 2.3–2.6 MB per 1,500
listings, measured before and after.
- One dataset write per page instead of one per listing. Rows are pushed
and charged for a whole page in one call. Before, two platform round trips
per listing took about 6 seconds per page, which was most of a run's time.
- No more waiting on a stuck IP. If a page has not answered after 12
seconds and a worker is free, the same page is also requested on another IP,
and the first answer is used.
- Default memory is now 2 GB. Parsing ten pages at once needs the CPU that
comes with it. The run is so much shorter that its compute cost is still
lower than before: 0.020 CU instead of 0.032 CU for the run above.
maxConcurrency still controls how many detail pages are fetched at once.
Search pages always use at least 10 workers.
Twice the data per property — 43 → 88 documented output fields. A fully enriched
property row now carries around 65 fields instead of around 26.
- Coordinates on every listing.
latitude, longitude and showAddress now come back on
plain search runs too, not just on detail pages — and they are filled in even when the
advertiser hides the exact address (the point is then the area centre, flagged by
showAddress: false).
- Location hierarchy —
province, municipality, district, neighborhood, street and
the full locationPath, plus locationId down to the neighbourhood.
- Amenity flags —
hasLift, hasTerrace, hasBalcony, hasGarden, hasSwimmingPool,
hasAirConditioning, hasBoxRoom, hasFittedWardrobes, hasFittedKitchen, isFurnished,
isAccessible, exterior, and parkingSpace (including whether the garage is in the price).
- More measurements —
usableSize, plotSize, numFloors, orientation, heating.
- Energy certificate in full —
energyConsumption and energyEmissions with rating, value
and unit. energyCertificate is no longer filled in for ads that carry no rating at all.
- Media —
numPlans, numVideos, plans[], videos[] (with HD URL and thumbnail),
videoUrl, virtualTour3dUrl, virtualTour360Url, has360, hasStaging.
- Typology —
typology (the local word: piso, appartamento, moradia…) and detailedType
with a normalised token (flat, penthouse, duplex, studio, chalet, countryHouse…).
- Listing status —
lastUpdated (ISO date), lastUpdatedText, hasOnlineBooking,
externalReference, and priceInfo with the printed currency suffix (€ vs €/mes).
- Feature bullets grouped —
featureGroups keeps Idealista's own headings (basic features,
building, equipment, energy certificate).
- Advertiser —
contactInfo gains contactMethod, isOffice, isBank, isMicrosite,
needLoginForContact, micrositeCityName and avatar.
- Agencies —
address is now actually returned, plus agencyDescription and
agencyCoverImage.
- Italian and Portuguese listings now report
rooms, size and floor correctly (PT states
bedrooms as "T2", IT as "locali").
- Single-property and agency runs no longer come back empty when the first proxy IPs are
refused: a standalone deep page now gets a larger retry budget than a page fetched
inside a search (where the search row is emitted anyway).
- Two new dataset views: Location & features and Media.
- Initial release. Scrape Idealista in Spain (idealista.com), Italy (idealista.it) and Portugal (idealista.pt):
- Search results — from a pasted search URL or built from filters (operation, property type, location, price, size, bedrooms, condition, floor, amenities, sort).
- Property details — full description, features, energy certificate, photo gallery, coordinates, price/€ per m², price drops.
- Agencies — one row per advertiser/agency with profile, listing count and client-since year.
- Extras: enrich each result with its detail page, advertiser/agency details, phone-number reveal, only-new-listings monitoring mode, and a price-band split to go past the ~1,800-result limit.