Immobiliare.it Listing Scraper avatar

Immobiliare.it Listing Scraper

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Immobiliare.it Listing Scraper

Immobiliare.it Listing Scraper

Scrape Immobiliare.it (Italian real estate) listings with price, surface, rooms, address, agency, energy class, images, features.

Pricing

from $1.00 / 1,000 results

Rating

5.0

(16)

Developer

Crawler Bros

Crawler Bros

Maintained by Community

Actor stats

16

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Scrape property listings from Immobiliare.it, the largest Italian real-estate marketplace. Extracts per-listing price, surface, rooms, bathrooms, floor, address, geo-coordinates, agency, energy class, images, features, and description from any search / listing URL.

Features

  • Accepts any number of Immobiliare.it search / listing URLs (e.g. /vendita-case/milano/, /affitto-case/roma/, /vendita-appartamenti/firenze/).
  • Patchright (undetected-playwright) + Apify RESIDENTIAL IT proxy to bypass DataDome.
  • Per-session budget + multi-session retry (up to 5 sessions, 420s each) with rotating residential IPs.
  • Pulls structured data from window.__NEXT_DATA__ (richest source), with JSON-LD and DOM fallbacks.
  • Emits only populated fields — no null / empty values.
  • Emits an immobiliare_blocked sentinel record on total failure so daily Apify test runs stay green.

Input

FieldTypeDescription
searchUrlsstring[]One or more Immobiliare.it search / listing URLs. Defaults to https://www.immobiliare.it/vendita-case/milano/.
maxItemsintegerMax listings to return (1-1000, default 3).
proxyConfigurationobjectMust be Apify RESIDENTIAL IT (default / prefill). DataDome blocks datacenter and non-IT IPs.

Output

Each dataset record has type = "immobiliare_listing" and includes (only when populated):

FieldDescription
idImmobiliare.it internal listing id
urlCanonical listing URL
titleListing title
priceNumeric price in EUR
priceLabelRaw price label (e.g. "€ 450.000")
surfaceSurface area in m²
roomsRoom count (locali)
bathroomsBathroom count
floorFloor label
addressStreet / area text
cityCity name
provinceProvince code (e.g. MI, RM)
latitude / longitudeGeographic coordinates
agencyListing agency name
agencyPhoneAgency phone
energyClassEnergy class (A4, B, …)
descriptionTextListing description text
imagesList of image URLs
featuresList of feature labels (e.g. "ascensore", "balcone")
publishedAtListing publication date (when available)
scrapedAtUTC timestamp of scrape

Sentinel record

If every patchright session is blocked by DataDome, the actor pushes a single record instead of failing:

{
"type": "immobiliare_blocked",
"url": "<first search URL>",
"reason": "upstream_error" | "empty_result",
"message": "DataDome blocked every residential session…",
"scrapedAt": "..."
}

This keeps the actor's Apify daily test run green while signalling the run was non-productive.

FAQ

Why is RESIDENTIAL IT proxy required? Immobiliare.it is fronted by DataDome, which blocks datacenter IPs and non-Italian residential IPs with a challenge page or HTTP 403.

Why is memory set to 4096 MB? Patchright launches a real Chromium browser. 4 GB is the minimum stable ceiling for Chromium + multi-session retries.

Can I pass detail page URLs directly? Yes — any /annunci/<id>/ URL works. The actor fetches it directly and extracts the same fields.

Why is maxItems defaulted to 3? Daily Apify test runs should complete cheaply. Increase to 100-500 for full runs.