Immobiliare.it Scraper - Italy Listings, Price Drops & Agencies
Pricing
from $0.50 / 1,000 listings
Immobiliare.it Scraper - Italy Listings, Price Drops & Agencies
Scrape immobiliare.it listings for sale or rent by place, search URL, radius or polygon: price, price drops, m², rooms, floor, features, GPS, photos, agency, phones. Add-ons: listing details (energy class, dates, fees) and agency profiles. Monitor mode, past the 2,000 cap. $0.50 per 1,000 listings.
Pricing
from $0.50 / 1,000 listings
Rating
0.0
(0)
Developer
Top Api
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Security
Limited permissionsShare
What does Immobiliare.it Scraper do?
Immobiliare.it Scraper extracts property listings for sale and rent from immobiliare.it, Italy's largest property portal. Give it a place (comune, province, region or zone), immobiliare.it search URLs with your filters, a point and radius, a map polygon, or listing URLs, and get one row per listing: price and price drop, m², rooms, bedrooms, bathrooms, floor, condition, heating, features, address, zones, coordinates, photos, agency and phone numbers. Built for property investors, agencies, price trackers, relocation services and market researchers.
Immobiliare.it scraper · Immobiliare.it API alternative · Italy real estate data · Italian property listings export
- Every way to search: a place name, any immobiliare.it search URL (zones, map areas,
/search-list/links, any language version), a point + radius, a polygon, or listing URLs and ids - immobiliare.it's own filters: sale or rent, property type, price, m², rooms, bathrooms, condition, floor, garage, garden, terrace, balcony, lift, cellar, pool, furnished, heating, air conditioning, sea view, virtual tour, exclude auctions, and 10 sort orders
- Past the 2,000-listing cap: immobiliare.it shows at most 80 pages (2,000 listings) per search; larger searches are split into price bands so every listing is reachable (2,500 listings from an 8,754-listing search, measured)
- Price drops on every row: the former price, the drop in € and %, and the day of the drop, whenever immobiliare.it shows one
- Add-ons when you need them: listing details (full description, creation and update dates, ZIP code, energy class, year built, availability, condominium fees, every photo in HD, floor plans, videos) and agency profiles (website, office address, phones, opening hours, listings on sale and sold)
- Monitor mode: scheduled runs return only new listings (and price changes if you want)
- No login, cookies or API key. Pay only for delivered rows: no start fee
What data can you get from immobiliare.it?
| 🏷️ Title, URL, listing id | 💶 Price, formatted price, price bracket | 📉 Previous price, drop € / %, drop date |
| 📐 Size m², price per m² | 🛏️ Rooms, bedrooms, bathrooms | 🏢 Floor, lift |
| ✨ Condition, heating, garage | 🧾 Features (balcony, cellar, terrace…) | 🌊 Views (sea, panoramic) |
| 📍 Address, comune, province, region | 🗺️ Zone + sub-zone, latitude, longitude | 📷 Main photo, all photos, captions |
| 🏢 Agency name, page, logo, phones | 👤 Agent name and phones, private-seller flag | 🏗️ New-build projects with their units |
| 📅 Created / updated dates (details) | ⚡ Energy class + consumption (details) | 🧱 Year built, floors, kitchen, availability (details) |
| 💡 Condominium fees, costs (details) | 🖼️ HD photos by room, floor plans, videos (details) | 🌐 Agency website, address, hours, sold count (agency) |
How to scrape immobiliare.it
- Type a place in Location (for example
Milano,Provincia di BergamoorToscana), or paste immobiliare.it URLs. - Choose For sale or to rent and the Property type, and set any Filters.
- Set Max listings, switch on an add-on if you need it, and press Start.
- Download the dataset as JSON, CSV or Excel, or connect it to your tools.
⬇️ Input
| Input | What it does |
|---|---|
location / locations | A comune, province, region or zone, as you would type it on immobiliare.it. Matched with immobiliare.it's own place search; each place is one search. |
province, area | A province code (RM, MI…) to search a whole province or to pick the right town when a name exists twice; a zone inside the town (Navigli, Centro Storico). |
startUrls / urlsFromFile | immobiliare.it search URLs with their filters, zone and map URLs, /search-list/ URLs, and listing URLs (/annunci/<id>/), from any language version. |
listingIds | Listing ids: the full record of each listing. |
latitude, longitude, radiusKm | Search around a point. |
polygon | A map area as lat,lng points separated by ;. |
operation | sale, rent, or auction (sale listings that are court auctions). |
propertyType | homes, apartments, penthouses, villas, detachedHouses, lofts, newBuilds, rooms, offices, shops, warehouses, garages, land, buildings, sheds. |
minPrice, maxPrice, minSize, maxSize, minRooms, maxRooms, bathrooms | Applied by immobiliare.it before anything is read. |
condition, floor, garage, garden, terrace, balcony, lift, cellar, pool, furnished, autonomousHeating, airConditioning, seaView, virtualTour, excludeAuctions | immobiliare.it's own filters. |
sortBy | relevance, newest, oldest, priceLow, priceHigh, sizeLarge, sizeSmall, roomsMost, roomsLeast, privateFirst. |
sellerType | any, private (private sellers only) or agency. |
minBedrooms, maxBedrooms, requirePhone, onlyPriceDrops, minPriceDropPercent, includeKeywords, excludeKeywords, postedAfter | Row filters, run before anything is charged. |
maxItems, maxItemsPerSearch, maxPagesPerSearch | How many listings (0 = no limit). |
splitLargeSearches | Read past the 2,000-listing cap by splitting into price bands (on by default). |
includeDetails | ➕ Listing details add-on. |
includeAgencyDetails | ➕ Agency profiles add-on (once per agency per run). |
language | Titles and labels in it, en, de, es, fr, pt, el or ru. |
monitorMode, includePriceChanges, skipFirstRun, monitorStoreName, resetMonitor | Scheduled runs that return only new listings / price changes. |
maxConcurrency, proxyConfiguration | Workers (default 12) and proxy (Apify residential, Italy). |
Input JSON
{"location": "Milano","operation": "rent","propertyType": "apartments","minRooms": 2,"maxPrice": 2000,"lift": true,"sortBy": "newest","maxItems": 200,"includeDetails": true}
Paste an immobiliare.it link to reuse the filters you set on the site
Set the filters on immobiliare.it and paste the address, for example https://www.immobiliare.it/vendita-case/bologna/con-ascensore/?prezzoMassimo=300000&localiMinimo=3. The town, zone, contract, category, typology and every filter in the address are read with immobiliare.it's own URL resolver. Map searches (/search-list/?vrt=… or a radius) work too. If a URL carries a filter immobiliare.it's search data has no equivalent for (con-lusso, con-prezzo-basso), the URL is skipped and the status says so, so no unfiltered listings are sold as filtered.
Private sellers only
Set Seller to private: the search is read in immobiliare.it's "private sellers first" order and stops at the first page without one (measured: 10 private listings in Bologna from 1 page).
⬆️ Output
One row per listing. A real row from a run on 2026-10-28 (Milano, for sale):
{"id": 132096140,"url": "https://www.immobiliare.it/annunci/132096140/","title": "Monolocale via Privata Martiri Triestini 10, San Siro, Milano","contract": "sale","typology": "Monolocale","price": 200000,"previousPrice": 220000,"priceDropPercent": 9.1,"priceDropDate": "2026-10-21","pricePerM2": 4762,"size": 42,"rooms": "1","bathrooms": "1","floor": "7","condition": "Buono / Abitabile","heating": "Centralizzato","macrozone": "San Siro, Trenno","latitude": 45.474,"longitude": 9.1428,"agencyName": "Affiliato Tecnorete: SVILUPPO IMMOBILIARE ZAVATTARI SRL","agencyPhones": ["02 8126 9318"]}
With Listing details and Agency profiles on, a row also carries (Napoli, for rent):
{"creationDate": "2026-09-10T17:37:32.000Z","lastModified": "2026-10-26T09:48:11.000Z","zipcode": "80132","energyClass": "G","energyConsumption": "≥ 175 kWh/m² anno","yearBuilt": 1700,"availability": "libero","kitchen": "Cucina abitabile","condominiumFees": "€ 300/mese","reference": "VIA NICOTERA 38","agencyProfileName": "Fabrizio Berti Immobiliare","agencyWebsite": "https://www.fabriziobertiimmobiliare.it/","agencyListingsCount": 37}
Fields and how often they are filled
Measured on real runs of 2026-10-28: 2,200 search rows (Torino and Milano, for sale) and 100 rows with both add-ons (Napoli, for rent).
| Field | Filled |
|---|---|
| id, url, title, priceFormatted, size, address, city, macrozone, microzone, latitude, longitude, heating, mainPhoto, photos | 100% |
| price | 99.5% (the rest are "price on request") |
| rooms 99.8% · bedrooms 95.1% · bathrooms 94.9% · floor 93.9% · condition 95.8% · features 99.4% | as published |
| agencyName, agencyPhones | 100% / 99.8% of agency listings (private sellers show none) |
| hasLift 75% · garage 29.3% · views 19.5% | only when the advertiser states it |
| previousPrice, priceDropPercent, priceDropDate | 4.7% (listings with a price drop) |
| creationDate, lastModified, description, reference (details) | 100% |
| energyClass 88% · zipcode 85% · condominiumFees 88% · availability 89% · yearBuilt 68% · floorPlans 42% · videos 27% (details) | as published |
| agencyWebsite 75% · agencyListingsCount, agencySoldCount, agencyFullAddress 87% (agency profiles) | per listing; private sellers have no agency |
How much does it cost to scrape immobiliare.it?
Pay per event, no start fee:
| Event | Price | Charged when |
|---|---|---|
Listing (listing) | $0.0005 ($0.50 per 1,000) | a listing row is delivered |
Listing details (listing-details) | $0.00063 | Listing details is on and the listing's record was read |
Agency profile (agency-details) | $0.009 | Agency profiles is on: once per agency per run, never for a private seller |
Listings removed by a filter, duplicates and listings seen by earlier monitor runs are never charged. A listing URL / id row is read from its full record and costs one listing (the details come with it). Set a maximum charge on the run and the actor stops cleanly at it, delivering only what fits.
Measured runs (Apify platform, 256 MB):
| Run | Rows | Time |
|---|---|---|
| Roma, for sale, 20 listings (the prefill) | 20 | 3.4 s |
| Roma, for sale, 100 listings (empty input) | 100 | 4.5 s |
| Milano, to rent, 2+ rooms, max €2,000, lift | 100 | 30 s |
| Torino, for sale, 1,200 listings | 1,200 | 24 s |
| Torino, for sale, 2,500 listings (8,754 found: split into price bands) | 2,500 | 230-280 s |
| Bologna, for sale, 100 listings + Listing details | 100 + 100 details | 100 s |
| Napoli, to rent, 100 listings + Listing details + Agency profiles | 100 + 100 details + 57 agencies | 71 s |
| monitor poll with nothing new | 0 (nothing charged) | 3.2 s |
Run it on a schedule
- Turn on Monitor mode and give the schedule its own Monitor memory name.
- Optional: Skip first run remembers what is listed now without delivering it; Also deliver price changes adds listings seen before whose price changed (
changeType: "priceChange",monitorPreviousPrice,priceChange). - Create an Apify Schedule (for example every hour). Monitor mode reads newest first and stops at the first page with nothing new: a poll with nothing new reads one page and charges nothing.
Integrations, API & MCP
Run it from the Apify API, the JavaScript or Python client, Make, Zapier, n8n, Google Sheets, webhooks or the Apify MCP server for AI agents. Example API call:
curl -X POST "https://api.apify.com/v2/acts/TopApi~immobiliare-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"location":"Firenze","operation":"rent","maxItems":50}'
Limits & empty runs
- 2,000 listings per search is immobiliare.it's own cap (80 pages of 25);
splitLargeSearchesreads past it with price bands. Listings with the price on request (about 0.5%) belong to no price band, so a split search does not include them. - immobiliare.it's bot check: the actor reads immobiliare.it's own data through Italian residential connections. About 1 request in 25 meets the bot check (26 of 659 on the platform, 2026-10-28); that worker then moves to the Apify Unblocker for the rest of the run (no CAPTCHA is ever answered). Listing details read through the Unblocker cost more than they bill, so they have a small per-run share: on a very large details run, a few listings may come without details (never charged for details, and the status says how many). More workers (
maxConcurrency) keep more of a run on the cheaper route. - Auctions only has no immobiliare.it filter:
operation: auctionreads sale listings and keeps the court auctions. - Bedrooms and keywords have no immobiliare.it filter either; they run on the rows before the charge.
- Detail labels (energy, kitchen, availability) are in Italian, as immobiliare.it publishes them.
- If immobiliare.it refuses every route, the run ends with an error status and nothing is charged; a search that matches nothing ends with a status saying what to change.
FAQ
How many listings can Immobiliare.it Scraper collect in one run?
As many as you set in Max listings. One search returns up to 2,000 (immobiliare.it's limit); with splitting on, 2,500 listings were read from an 8,754-listing search in one run.
Can I search a whole province or region?
Yes. Type the province or region in Location (Provincia di Roma, Lombardia) or set the Province code.
Does Immobiliare.it Scraper show price drops?
Yes, on every row: previousPrice, priceDropValue, priceDropPercent, priceDropDate and priceDropDaysAgo whenever immobiliare.it shows a reduction. Set onlyPriceDrops to keep only those.
Can I get only new immobiliare.it listings?
Yes. Monitor mode remembers what earlier runs delivered and returns only new listings, optionally price changes.
Does it return the full description, energy class and dates?
Yes, with Listing details on (or for listing URLs / ids): full description, creation and update dates, ZIP code, energy class and consumption, year built, availability, condominium fees, every photo in HD, floor plans and videos.
Does it return agency contacts?
Every agency listing carries the agency name, page, logo and phone numbers. With Agency profiles on, it also carries the agency's website, office address and position, all phones, opening hours, listings on sale and sold.
Can I use English labels?
Set Language to en for English titles and labels on the search rows; listing-detail labels stay in Italian.
Do I need an immobiliare.it account, cookies or an API key?
No.
Can I use it with the Apify API or an MCP server?
Yes: start it from the API, a client library, a schedule, or through the Apify MCP server from an AI agent.
Why did my run return no listings?
Your filters matched nothing, every listing was removed by a row filter, the place or URL was not found, or (in monitor mode) nothing is new. The status message and the RUN_SUMMARY record say which.
Your feedback
Found a bug or need a field? Open an issue on the actor's Issues tab.