Immobiliare.it Scraper - Italy Property Listings, Sale & Rent avatar

Immobiliare.it Scraper - Italy Property Listings, Sale & Rent

Pricing

from $0.56 / 1,000 listings

Go to Apify Store
Immobiliare.it Scraper - Italy Property Listings, Sale & Rent

Immobiliare.it Scraper - Italy Property Listings, Sale & Rent

Scrape immobiliare.it (Italy) sale, rent and auction listings from any search URL (city, zone, province, region, map area). One record per listing: price, m², rooms, floor, address, coordinates, features, agency, photos. New-listings monitoring. $0.70 per 1,000 listings on Bronze.

Pricing

from $0.56 / 1,000 listings

Rating

0.0

(0)

Developer

Amit Aviv

Amit Aviv

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Immobiliare.it Scraper

Italian property listings for sale and for rent from immobiliare.it search URLs: price, size, rooms, bathrooms, floor, address, coordinates, features, agency and photos, one record per listing. Apart from the start fee, you pay only for delivered listings, and a run that delivers nothing because of an error ends as Failed, never as a green empty run.

What you get

  • Price (with the previous price, percentage and date when the advertiser lowered it), price per m², size, rooms, bedrooms, bathrooms (also as a number for "5+" and ranges), floor, elevator, condition, heating, parking, features (balcony, terrace, cellar, furnished, …), views
  • Address as published, city, province, region, zone (macrozone and microzone), latitude and longitude, and how exact the advertiser chose to show the location
  • Contract (sale, rent or auction), category, property type, whether it is a new development (isNewBuild: the site files it under "Nuove costruzioni"), whether the site marks it as recently published (isRecentlyPublished, the site's "new" badge), luxury, number of units for a building project
  • Advertiser type (agency, builder, private), agency name, id, page and business phone
  • Title, short text, description, photo URLs in full size, the site's ad tier
  • One record per listing, as JSON, CSV or Excel, or through the API.
  • A run summary (OUTPUT_SUMMARY in the run's key-value store): what was requested, delivered and charged, which search URLs failed or were ignored, and why the run stopped.

What it does not return: energy class and publication or update dates (immobiliare.it shows them only on listing pages, which it refuses to automated clients), the full description of listings outside the site's top ad tier, private advertisers' names and phones (unless you opt in, see "Legal and responsible use"), the agent's name and photo from the advertiser box, anything behind a login.

Also covering Spain, Portugal and Italy: our Idealista Scraper reads idealista.com, idealista.pt and idealista.it.

How to use

  1. Open immobiliare.it, search for a place (city, zone, province or region) and set your filters. Copy the URL from the browser.
  2. Paste it into Search URLs. Several URLs are fine.
  3. Set Max listings per search URL and press Start.
  4. Download the results from the Output tab, or read them from the API.

Supported:

  • Sale and rent of homes (also apartments, penthouses, villas, detached houses, lofts, farmhouses), rooms, offices, shops, garages, warehouses, sheds, land, buildings, new builds and auctions (/aste-immobiliari/milano/).
  • URLs of a city (/vendita-case/milano/), a zone (/vendita-case/milano/centro/), a province (/vendita-case/milano-provincia/) and a region (/vendita-case/lombardia/).
  • Private advertisers only (/vendita-case/roma/da-privati/).
  • The feature pages the site links under every search: con-ascensore, con-garage, con-cantina, con-terrazzo, con-giardino, con-piscina, con-piano-terra, con-piani-intermedi, con-ultimo-piano, con-riscaldamento-autonomo, con-aria-condizionata, con-lusso and da-ristrutturare, e.g. /vendita-case/milano/centro/con-garage/. On every run the actor compares the site's count for a feature page with the count of the same search without it; if the site did not narrow the search, that URL fails by name instead of delivering unfiltered listings (searches of 25 results or fewer are not compared). Example: /vendita-case/bologna/con-terrazzo/ 909 of 3,614 (run BubRYl9L5CacfjEqk).
  • Map and multi-zone searches (/search-list/?…), including an area you draw on the map. A /search-list/ URL that has neither a place nor a drawn area would search all of Italy, so it is refused.
  • Language versions of the same URLs (/en/vendita-case/torino/) are read like the Italian ones. Filters and sort order in the URL are applied.

Not supported, each with a message that names it: the feature pages con-vista-mare and con-prezzo-basso (we found no search filter behind them), microzone pages, single listing pages.

Input

FieldTypeDefaultWhat it does
startUrlslist of textnone (required)immobiliare.it search URLs. Duplicates are ignored; URLs the actor cannot use (other sites, listing pages, unsupported pages) are ignored and listed in the summary.
maxItemsPerQuerynumber100Stop after this many listings for each search URL (at most 2,000, the site's own limit).
onlyNewyes/nonoMonitoring: return and charge only listings that earlier runs have not delivered. See "Monitoring".
monitorKeytextemptyName of the monitor memory, to keep two schedules apart.
includePrivateSellerDatayes/nonoInclude the names and phone pictures that private advertisers publish. Only with a lawful basis under the GDPR.
{
"startUrls": [
"https://www.immobiliare.it/affitto-case/roma/",
"https://www.immobiliare.it/vendita-case/milano/centro/con-ascensore/",
"https://www.immobiliare.it/vendita-case/torino/da-privati/"
],
"maxItemsPerQuery": 50
}

Example result

Taken from run 3vramNkP5de0XZSsI (the input above) on 2026-10-14; only the photo list is shortened:

{
"id": "131343430",
"url": "https://www.immobiliare.it/annunci/131343430/",
"title": "Quadrilocale via Giuseppe Failla, Mostacciano, Roma",
"contract": "rent",
"category": "Residenziale",
"typology": "Quadrilocale",
"price": 2200,
"priceText": "€ 2.200/mese",
"currency": "EUR",
"pricePerSqm": 15,
"previousPrice": 2350,
"priceReducedPercent": 6.4,
"priceReducedDate": "2026-10-13",
"surfaceSqm": 144,
"rooms": 4,
"roomsMin": 4,
"roomsText": "4",
"bedrooms": 3,
"bathrooms": 3,
"bathroomsMin": 3,
"bathroomsText": "3",
"floor": "1",
"floorText": "1°, con ascensore",
"elevator": true,
"condition": "Ottimo / Ristrutturato",
"heating": "Centralizzato",
"garage": "1 posto auto",
"features": ["caminetto", "impianto di allarme", "porta blindata", "esposizione esterna", "balcone", "impianto tv centralizzato", "arredato"],
"views": [],
"isNewBuild": false,
"isRecentlyPublished": false,
"isLuxury": false,
"unitsInListing": 1,
"address": "Via Giuseppe Failla",
"city": "Roma",
"province": "Roma",
"region": "Lazio",
"macrozone": "Eur, Torrino, Tintoretto",
"microzone": "Mostacciano",
"latitude": 41.7984,
"longitude": 12.4518,
"locationPrecision": "exact",
"caption": "Mostacciano- elegante appartamento arredato con terrazzo",
"description": "Comfort abitativo e ambienti studiati in ogni dettaglio \n\nIn zona Mostacciano proponiamo in locazione un elegante e moderno appartamento residenziale, completamente arredato, pensato per chi desidera vivere in un ambiente raffinato, luminoso e perfettamente organizzato.\n\nL'abitazione si distingue per la distribuzione moderna e funzionale degli spazi, dove ogni ambiente è stato progettato per garantire comfort e vivibilità. L'ampia zona living con cucina open space rappresenta il cuore della casa: uno spazio accogliente e conviviale, ideale per la vita quotidiana e per i momenti da condividere.",
"imageUrl": "https://pwm.im-cdn.it/image/2028034590/xxl.jpg",
"images": ["https://pwm.im-cdn.it/image/2028034590/xxl.jpg", "https://pwm.im-cdn.it/image/1978600062/xxl.jpg", "https://pwm.im-cdn.it/image/1978600076/xxl.jpg", "…"],
"hasVirtualTour": false,
"isPrivate": false,
"advertiserType": "agency",
"advertiserLabel": "agenzia",
"advertiserName": "Engel & Völkers Roma",
"agencyId": "200835",
"agencyUrl": "https://www.immobiliare.it/agenzie-immobiliari/200835/engel-voelkers-roma/",
"advertiserPhones": ["06 9763 7235"],
"advertiserPhoneImageUrl": null,
"privateDataRedacted": false,
"adVisibility": "supervetrina",
"searchUrl": "https://www.immobiliare.it/affitto-case/roma/",
"scrapedAt": "2026-10-14T18:35:13.603Z"
}
FieldMeaning
idimmobiliare.it's own listing id; stable between runs.
contractsale, rent or auction. Sale searches include auctions, as on the site; /aste-…/ URLs return auctions only.
priceIn euros; per month for rentals; the base price for auctions. null when the price is "on request" (priceText then says so).
pricePerSqmprice / surfaceSqm, rounded to whole euros (per month for rentals). Only for single-unit listings with both values published, never for auctions.
previousPrice, priceReducedPercent, priceReducedDateSet when the advertiser lowered the price and the site shows it.
rooms, bathroomsExact numbers; null when the site writes "5+" (rooms), "3+" (bathrooms) or a range.
roomsMin, bathroomsMinAlways a number when the site gives one: the lower bound, so "5+" is 5 and "2 - 4" (a project's units) is 2. Filter and sort on these. The site's text stays in roomsText / bathroomsText.
isNewBuildtrue when the site files the listing under its new-developments category ("Nuove costruzioni", mostly builders' projects with several units; every listing of a /nuove-costruzioni/ search). An individual home in condition "Nuovo / In costruzione" is false here; see condition.
isRecentlyPublishedThe site's "new" badge: the listing was published recently (the site does not say how recently). Not a new build.
garageThe parking the search results describe; null when they say nothing, which happens also for listings a con-garage search returns.
featuresThe features the search results list. The list is shorter than on the listing page: a feature page filters by the site's own data, so its listings do not always name that feature here (in run VjJVsc602zT0X3WK1, none of 25 con-giardino listings listed a garden, while the site counted 9,397 of 25,732 Rome sale listings with one).
floorThe site's short form: a number, T ground floor, R raised ground floor, S basement and so on; floorText in words.
locationPrecisionexact (point on the map), area (the advertiser shows only the area) or none (no map shown; latitude and longitude are then null).
descriptionThe text as the search results carry it: the site shortens it, and gives it only for listings in its top ad tier. In our test runs 230 of 345 listings had one.
advertiserTypeagency, constructor (builder) or pro as the site classifies the business; private for every listing without an agency or builder.
adVisibilityThe site's paid ad tier (supervetrina, vetrina, top, premium, star, or null).
privateDataRedactedtrue when this is a private advertiser's listing and their name, phone and contact details in the text were left out.

Fields the site does not provide for a given listing are null (or an empty list), never missing.

Pricing

Pay per event. You pay for what is delivered, not for time or memory.

EventFreeBronzeSilverGold and above
Actor start (charged by Apify once per GB of memory; the default 1 GB run counts 1)$0.0042$0.0035$0.00315$0.0028
Listing delivered$0.00084$0.0007$0.00063$0.00056

Worked example on the Bronze plan: 3 search URLs, 50 listings each = 150 × $0.0007 + $0.0035 = $0.105 + $0.0035 = $0.1085. 1,000 listings cost $0.70 + $0.0035 = $0.7035. A scheduled monitoring run that finds 5 new listings costs 5 × $0.0007 + $0.0035 = $0.007; a run that finds nothing new costs $0.0035. The default 1 GB is enough: a 2,000-listing run peaked at 597 MB (run YzJpc9FfPQcPmezr5). Each extra GB of memory adds a start event.

  • Listings that could not be delivered are not charged. A listing returned by two of your searches in one run is delivered and charged once.
  • The maximum total charge you set for a run is respected: the actor stops before it would go over, keeps what was delivered, and says so in the status message (run gdbOppl3wSbcWlS3Y: limit $0.0245, delivered exactly 30 listings).

Reliability and failure behaviour

What happenedRun statusStatus message
Listings deliveredSucceededScraped 150 listings from 3 queries
A search URL the actor cannot use (other site, listing page, unsupported feature page, map URL without place or area)ignored and listed in the summary; when no URL is left, Failed within seconds and the status message names the first unusable oneNothing to do: none of the 2 entries in the input is usable (first: "…": …)
The site has no listings for your searchSucceeded0 results: immobiliare.it has no listings for this query
Some URLs worked, some failedSucceededScraped 75 listings from 5 queries — 2 of 5 queries failed ("…": …)
Nothing delivered because of errors or blockingFailedNo listings delivered: immobiliare.it blocked every attempt; try again later. No listings were charged (the start fee applies).
Input the actor cannot useFailed, within secondsNothing to do: … Add at least one entry to "startUrls", e.g. "https://www.immobiliare.it/vendita-case/milano/". …
A feature page the site did not apply (its count with the filter is about the same as without it)that URL fails, nothing charged for itimmobiliare.it did not apply the feature page "…" (… listings with it, … without), so this search would deliver listings without that feature: …
A place name the site does not knowthat URL failscould not match the place "…" to immobiliare.it's search: open the search on immobiliare.it, choose the place from its list and paste the address you get
The site answers with listings from all of Italy (its place filter not applied)that URL fails, nothing charged for itimmobiliare.it answered with listings from all of Italy, so the place of this search URL was not applied: …
Maximum charge reachedSucceeded… — stopped at the maximum charge set for this run
Run timeout closeSucceeded… — stopped just before the run timeout; raise the timeout to get the rest
  • immobiliare.it protects its search with an anti-bot service that turns away part of the browser sessions. The actor opens a new session (new Italian residential IP) whenever one is refused, up to 8 attempts per request; when two search URLs in a row are refused on every attempt, the remaining ones are not tried and the run ends as Failed. In our 25 test runs on 2026-10-14 with this session recipe, 20 of 46 browser sessions were refused and replaced, and no search failed because of blocking. An earlier build without pauses between requests had all 16 sessions of a run refused, so this can change if the site tightens its protection.
  • A passing server error (HTTP 500) is asked again twice before that search fails.
  • Each search URL is translated to the site's search and checked with the site's own resolver before any listing is read: a URL whose place, zone or page type the actor cannot map fails by name. The resolver does not prove that the listings search applies every filter, so feature pages are also checked by their count (see "How to use"); filters you set in the URL's query (price, size, rooms, …) are forwarded as they are.
  • Listings are saved page by page. A run that is aborted, times out or is resurrected keeps what was delivered and never delivers or charges the same listing twice.
  • Speed: 2,000 listings in 140 seconds (run YzJpc9FfPQcPmezr5).

Limits

  • immobiliare.it shows at most 2,000 listings (80 pages) per search. For a larger area, paste one URL per zone or per price range.
  • While the pages of a search are read, the site's order sometimes shifts a little: in our tests up to 2 listings in 75 came back on a later page (delivered and charged once, run 21mgneYKRx4iZJJNN) and as many may not be shown at all; a 2,000-listing run had none (run YzJpc9FfPQcPmezr5).
  • /da-privati/ URLs: the site lists private advertisers first and then everyone else; the actor keeps only the private advertisers and stops there.
  • Energy class and publication date are not available (see "What you get"). description is present only for listings in the site's top ad tier.
  • Feature pages con-vista-mare and con-prezzo-basso and microzone pages are not supported (see "How to use").
  • Italy only; field values are in Italian, as on the site.

Monitoring: only new listings

  1. Turn on Only new listings and save the input as a task.
  2. Schedule the task (for example hourly or daily).
  3. The first run delivers what it finds, newest first, up to the maximum. Every later run reads newest first and delivers and charges only listings it has not delivered before for the same search; it stops at the first page on which every listing is already known. A run with nothing new ends as Succeeded with 0 new listings… and charges only the start.

Verified: run 21mgneYKRx4iZJJNN delivered 50 new rentals in Milan, run Verw3yRTvOEsIvACC right after delivered 0 and charged no listing, and run eN3Sf3fucqDOdedQa 17 minutes later delivered and charged the 3 listings published in between.

  • Monitoring runs bypass the site's cache, which otherwise serves search pages 15 minutes old or older, so they read the site's current listings.
  • The first run's maximum per search marks the rest of the last page it read as seen (those listings are older than what was delivered). Listings left out because the maximum charge stopped a run are not marked as seen.
  • A later run reads only down to the first page it already knows. If a run's maximum per search or maximum charge stops it before that, it does not go back for the rest next time: set both high enough for the new listings between two runs (the status message warns you when this happens).

The memory is a key-value store named immobiliare-it-scraper-monitor in your own account (one record per search and monitor name, at most 10,000 ids each, oldest forgotten first). Delete the store or change Monitor name to start over. To be notified, add an integration to the task (email, Slack, webhook) on "run succeeded".

FAQ

Do I need a proxy? No. The actor uses Apify's Italian residential proxy itself; its cost is included in the price.

Why did I get fewer listings than the site shows? The site's 2,000 limit per search, your maximum per search, or listings moving between pages while they are read (see "Limits"). The run summary lists for every search how many listings the site reported.

Can I scrape single listing pages? No: immobiliare.it refuses listing pages (/annunci/…) to automated clients, so they are not supported.

Can I run it from code? Yes: the API, the Apify clients for JavaScript and Python, Make, Zapier, n8n. The Output tab shows the URLs.

What happens when the site changes? Runs fail loudly instead of returning empty data; report the run id under Issues.

This actor collects property listings that immobiliare.it shows publicly without a login. Most are published by agencies and builders; for those it returns the business name, page and the phone number they publish, but not the name or photo of the agent shown in the advertiser box. An agency's title and description are returned as the agency wrote them, and some agencies put an agent's business name, phone or e-mail in that text. Every listing without an agency or builder is treated as a private advertiser's ("privato", isPrivate: true): the advertiser's name and phone are null and phone numbers and e-mail addresses written into the texts are masked, unless you turn on Include private advertisers' names and phone pictures, which you may do only with a lawful basis under the GDPR. The property's address and coordinates are returned as the advertiser chose to show them on the site.

immobiliare.it's terms do not allow reproducing its content without permission. You are responsible for how you use the data: respect the site's terms, copyright and database rights, and data-protection law (GDPR and others). Do not use the output to contact private advertisers for unsolicited marketing. If you are unsure, ask a lawyer before you build on it.

Changelog

  • 2026-10-14 0.1: first version: search URLs incl. map areas and feature pages, auctions, monitoring, private-advertiser redaction.
  • 2026-10-14, fixes: isNewBuild now means a new development (category "Nuove costruzioni"); it used to copy the site's "new" badge, which is now isRecentlyPublished. con-terrazzo pages are filtered (they returned the whole search before), and every feature page is checked against the unfiltered count. When every input URL is refused, the summary lists them all.
  • Idealista Scraper: Italy's other large property portal (idealista.it, also Spain and Portugal); many listings are on only one of the two, so running both on the same city gives a fuller picture of the market.
  • Idealista Rental Yield Finder: gross rental yield, median price and rent per m² for an Italian city and each of its districts, as one report per area instead of raw listings.
  • Fotocasa Scraper: the same kind of listing data for Spain, if you follow more than one Southern European market.
  • ImmoScout24 Scraper: the same kind of listing data for Germany.

Support

Open an issue on the actor's Issues tab with the run id.