Immobiliare.it Scraper avatar

Immobiliare.it Scraper

Pricing

from $0.79 / 1,000 property listings

Go to Apify Store
Immobiliare.it Scraper

Immobiliare.it Scraper

Scrape property listings from any Immobiliare.it search URL: price, surface, rooms, floor, features, location, coordinates, agency, and images. Export to JSON, CSV, or Excel.

Pricing

from $0.79 / 1,000 property listings

Rating

0.0

(0)

Developer

ParseBird

ParseBird

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Immobiliare.it Scraper

Immobiliare.it Scraper extracts structured property data from Immobiliare.it, Italy's largest real estate portal. Paste any search results URL — sale or rent, any city, any filter — and get clean listing records with price, surface, rooms, location, coordinates, agency contacts, and image galleries.

Copy any Immobiliare.it search URL and collect every listing it shows — 40+ fields per property including price, m², rooms, floor, condition, features, macrozone, latitude/longitude, agency phone numbers, and full-size photos — ready for JSON, CSV, or Excel.

Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

Actor: parsebird/immobiliare-it-scraper (Immobiliare.it Scraper on Apify).
Purpose: scrape property listings from an Immobiliare.it search results URL.
Call it with the Apify API / ApifyClient. Input JSON:
{
"startUrl": "https://www.immobiliare.it/en/vendita-case/roma/", // required: any public Immobiliare.it search URL (sale/rent, any city, any filter, any /en//de/ language prefix)
"results_wanted": 100, // max unique listings to save (0 = no limit); this is the billed row count
"max_pages": 10 // max search pages to read (~25 listings/page; site cap 80 pages)
}
Output: one dataset item per listing with listing_id, listing_uuid, title, url, contract, property_type,
price, price_value, surface, rooms, bedrooms, bathrooms, floor, condition, heating, features, feature_labels,
address, city, macrozone, province, region, latitude, longitude, agency_id, agency_name, agency_url,
agency_phones, agent_name, image_url_medium, image_url_large, image_urls_large, images, is_new, is_luxury,
page, position_on_page, source_search_url, scraped_at.
Pricing: pay-per-result, $0.99 per 1,000 listings. API docs: https://apify.com/parsebird/immobiliare-it-scraper/api

What does Immobiliare.it Scraper do?

The Immobiliare.it Scraper turns a normal Immobiliare.it search page into a dataset. Instead of maintaining region codes, contract types, and property-type IDs, you build the search visually on Immobiliare.it and hand the scraper the resulting URL.

  • 🔗 URL-driven — works with any immobiliare.it search: vendita (sale) or affitto (rent), houses, apartments, villas, garages, offices, land, new developments.
  • 🧭 Keeps every filter — price range, surface, rooms, bathrooms, floor, lift, garden, terrace, neighbourhood (macrozona/quartiere) and sort order are all preserved because they are already encoded in the URL.
  • 🌍 Any language/en/, /de/, /fr/, /es/, /it/ URLs all work; text fields come back in the language of the URL.
  • 📞 Agency contacts — agency name, profile URL, and phone numbers, plus the listing agent/supervisor name when published.
  • 🖼️ Full image galleries — medium and large (xxl) image URLs for every photo, plus an image count.
  • 📍 Geodata — latitude and longitude when Immobiliare.it publishes the map marker.
  • 📄 Export anywhere — download as JSON, CSV, Excel, or XML, or pull results straight from the Apify API. Schedule recurring runs and connect to Make, Zapier, Google Sheets, and more through Apify integrations.

This actor is a maintained alternative to the Immobiliare.it search API for anyone who needs bulk, structured listing data for market analysis, lead generation, price monitoring, or research.

What data can you extract from Immobiliare.it?

FieldDescription
listing_id / listing_uuidImmobiliare.it listing identifiers
title / urlListing headline and direct listing URL
contractsale or rent
property_type / property_type_idProperty typology (Apartment, Villa, ...)
category / category_idProperty category (Residential, New developments, ...)
price / price_valueFormatted asking price and numeric value
surfaceDisplayed surface area (m²)
rooms / bedrooms / bathroomsRoom counts
floor / floor_numberFloor label and numeric floor when available
condition / heatingProperty condition and heating type
features / feature_labelsRaw feature keys and human-readable amenity labels
address / city / macrozone / province / regionLocation breakdown
latitude / longitudeMap coordinates when published
agency_id / agency_name / agency_url / agency_phonesAgency details and phone numbers
agent_nameListing agent or supervisor name
image_url_medium / image_url_large / image_urls_large / imagesCover image and full gallery URLs
images_countNumber of listing photos
is_new / is_luxuryListing badges
page / position_on_page / source_search_url / scraped_atProvenance metadata

See the full output schema and API reference for every field.

How to scrape Immobiliare.it

  1. Open Immobiliare.it and search for a city, then apply any filters you need (sale/rent, price, size, rooms, property type, neighbourhood).
  2. Copy the full URL from your browser's address bar — for example https://www.immobiliare.it/en/vendita-case/roma/.
  3. Paste it into the Search URL field of this actor.
  4. Set Max listings (results_wanted) and Max pages (max_pages) to control how much data you collect.
  5. Click Start and download the results as JSON, CSV, or Excel when the run finishes.

Input example

{
"startUrl": "https://www.immobiliare.it/en/affitto-case/milano/",
"results_wanted": 75,
"max_pages": 8
}

Output example

{
"listing_id": 124223331,
"listing_uuid": "c9bd2859-5eda-5b4b-a3bf-023ddbd6776c",
"title": "3-room flat via San Michele 28, Centro Storico, Agrigento",
"url": "https://www.immobiliare.it/en/annunci/124223331/",
"contract": "sale",
"property_type": "Apartment",
"property_type_id": 14,
"category": "Residential",
"category_id": 1,
"price": "€ 21,000",
"price_value": 21000,
"surface": "70 m²",
"rooms": "3",
"bedrooms": "2",
"bathrooms": "2",
"floor": "1st floor",
"floor_number": 1,
"condition": "Good / Habitable",
"heating": "Independent",
"feature_labels": ["Balcony", "Air conditioning"],
"address": "Via San Michele 28",
"city": "Agrigento",
"macrozone": "Centro Storico",
"province": "Agrigento",
"region": "Sicilia",
"latitude": 37.311,
"longitude": 13.576,
"agency_name": "Affiliato Tecnocasa: AGRIGENTO MEDIAZIONI D.I.",
"agency_phones": ["+39 0922 000000"],
"images_count": 10,
"image_url_large": "https://pwm.im-cdn.it/image/1807380501/xxl.jpg",
"image_urls_large": [
"https://pwm.im-cdn.it/image/1807380501/xxl.jpg",
"https://pwm.im-cdn.it/image/1807381115/xxl.jpg"
],
"is_new": false,
"is_luxury": false,
"page": 1,
"position_on_page": 1,
"source_search_url": "https://www.immobiliare.it/en/vendita-case/agrigento/",
"scraped_at": "2026-08-13T08:12:00.000Z"
}

Download results in JSON, CSV, Excel, or XML from the Storage tab or the Apify API.

Use cases

  • Real estate market analysis — track asking prices, price per m², and inventory by city or neighbourhood.
  • Lead generation — build lists of agencies and their phone numbers for a target area.
  • Price monitoring — schedule daily or weekly runs and detect new listings and price changes.
  • Investment research — compare rental and sale markets across Italian cities.
  • Data enrichment — feed structured listing data into CRMs, dashboards, or valuation models.

How it works

  1. The actor loads the search results page for your startUrl and reads the embedded search state (the resolved location and filter parameters plus the first page of results).
  2. It paginates through Immobiliare.it's listing endpoint, page by page, until it reaches results_wanted, max_pages, or the last available page.
  3. Each listing is normalised into a flat record and pushed to the dataset. Duplicate listing IDs are skipped.
  4. Immobiliare.it is protected by anti-bot software, so requests are sent through Apify Proxy (Residential, country Italy is recommended) with automatic session rotation and retries.

Pricing

This actor uses the pay-per-result pricing model.

EventPrice per 1,000
Listing scraped$0.99

You are billed once per unique listing saved to the dataset. Scraping 1,000 listings costs about $0.99 plus Apify platform and proxy usage. Set results_wanted to cap your spend on any single run. New Apify accounts include monthly free platform credits you can use to try the actor.

FAQ

What URLs can I use? Any public Immobiliare.it search results page — for example https://www.immobiliare.it/en/vendita-case/roma/, https://www.immobiliare.it/affitto-case/milano/, or a filtered URL like https://www.immobiliare.it/vendita-case/torino/con-ascensore/. Individual listing pages and agency pages are not supported as input.

Do the filters in my URL still apply? Yes. City, contract type, property type, price, surface, rooms, floor, amenities, neighbourhood, and sort order are all encoded in the URL and are respected by the scraper.

How many listings can I get from one search? Immobiliare.it serves at most about 80 pages (~2,000 listings) per search. For larger coverage, split your search into narrower URLs (by neighbourhood, price band, or property type) and run the actor once per URL.

How fresh is the data? Every run fetches live data from Immobiliare.it. Use Apify Scheduler to run the actor on a recurring basis and monitor a market over time.

Why do I need Residential proxies? Immobiliare.it blocks datacenter traffic. Residential proxies with country set to Italy give the most reliable results. This is the default proxy configuration.

Can I call this actor from my own code? Yes. Use the Apify API or the official clients:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("parsebird/immobiliare-it-scraper").call(run_input={
"startUrl": "https://www.immobiliare.it/en/vendita-case/roma/",
"results_wanted": 100,
"max_pages": 10,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["title"], item["price"], item["url"])
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });
const run = await client.actor('parsebird/immobiliare-it-scraper').call({
startUrl: 'https://www.immobiliare.it/en/vendita-case/roma/',
results_wanted: 100,
max_pages: 10,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Something looks wrong — how do I report it? Open an issue on the actor's Issues tab. Feedback and feature requests are welcome.

Other real estate scrapers

Scraping publicly available data is legal in most jurisdictions, including the EU and the US, when it does not involve logging in, bypassing access controls, or collecting personal data without a lawful basis. This actor only accesses pages that any visitor can see without an account and does not collect private personal information. You are responsible for how you use the data, including compliance with the GDPR, Immobiliare.it's terms of service, and applicable local laws. When in doubt, consult a lawyer. See Apify's guide to the legality of web scraping for more context.