CasaDaPrivato Scraper - Italy Private-Seller Homes
Pricing
from $1.32 / 1,000 property searches
CasaDaPrivato Scraper - Italy Private-Seller Homes
Scrape CasaDaPrivato.it, the Italian site where owners sell and let their homes without an agency. Homes for sale, rentals, holiday homes and rooms in 107 provinces, with price, m², rooms, street, GPS and photos.
Pricing
from $1.32 / 1,000 property searches
Rating
0.0
(0)
Developer
SIÁN OÜ
Maintained by CommunityActor stats
1
Bookmarked
1
Total users
1
Monthly active users
11 days ago
Last modified
Categories
Share
CasaDaPrivato Scraper: Italian Homes from Private Sellers 🚀
🎉 Case da privati in all 107 Italian provinces: about 39,700 homes for sale and 23,000 rentals, each one posted by its owner
For agencies, investors, analysts and house hunters who want Italy's private-seller listings in a spreadsheet
🔎 What is the CasaDaPrivato Scraper — and when should you use it?
The CasaDaPrivato Scraper turns public CasaDaPrivato.it listings of homes that Italian owners sell or let themselves, from all 107 provinces, into clean, structured rows you can filter, export and feed straight into a spreadsheet, database or AI agent. No account, no portal API key, no browser automation to maintain.
Use it when you need: Italian homes for sale, homes for rent, holiday homes and rooms posted by private owners rather than agencies, as rows. Every search row carries the asking price in euros, floor area, rooms, bathrooms, property type, town, area, street and the main photo. Open each listing in full and you also get the owner's full text, every photo, GPS where the owner set it, energy class, floor, heating, parking, lease type, condo fees and the listing date.
Use something else when: you want agency listings from the big Italian portals rather than owner-only listings. Use Immobiliare.it Scraper for Immobiliare.it, mostly agency listings, with full detail. Use Bakeca Scraper for Bakeca.it classifieds: rooms, rentals and homes from owners and agencies. This actor reads live CasaDaPrivato listings only. It returns no phone numbers or owner names, offers no price or size filter on the site's side, and does not return sold prices.
🤖 Use with AI agents
Already connected to the Apify MCP server? Just ask for this Actor by name: sian.agency/casadaprivato-property-scraper
Your agent can pay for its own runs. This Actor is eligible for agentic payments, so an agent can discover it, run it and settle the bill over x402 (USDC on Base) or Skyfire — without an Apify account or API token of its own. Billing is the same either way: per successful row, never for errors.
Otherwise copy this prompt into Claude, ChatGPT, Cursor or any MCP-enabled assistant:
I want homes for sale and rent from private owners on CasaDaPrivato.it in Italy using the Apify Actor `sian.agency/casadaprivato-property-scraper`.Use it when I need: Italian homes for sale, homes for rent, holiday homes and rooms posted by private owners rather than agencies, as rows. Every search row carries the asking price in euros, floor area, rooms, bathrooms, property type, town, area, street and the main photo. Open each listing in full and you also get the owner's full text, every photo, GPS where the owner set it, energy class, floor, heating, parking, lease type, condo fees and the listing date.Don't use it when: you want agency listings from the big Italian portals rather than owner-only listings — use immobiliare-property-scraper or bakeca-property-scraper instead.How to call it: set `province` to a province slug such as `milano`, `roma`, `torino` or `bologna`, optionally `town` (a town inside it, for example `Milano`), `category` to `sale`, `rent`, `holiday` or `rooms`, and optionally `propertyType` (for example `appartamenti`) and `sortBy` (`relevance`, `recent`, `priceLow`, `priceHigh`). `maxResults` sets how many listings come back. `includeDetails` opens each listing for the full text, every photo and GPS, for an extra charge per listing. `searchUrls` takes CasaDaPrivato results pages as [{"url": ...}] objects, which is how to search one area (zona) of a city. To expand listings you already have, set `operation` to `detail` and pass `listingUrls`.Start with this input:{"operation": "search","province": "roma","town": "Roma","category": "sale","propertyType": "appartamenti","maxResults": 50,"includeDetails": false}Ask me which province or town to cover, and whether I want homes for sale, homes for rent, holiday homes or rooms, then run the Actor and summarise the results as a table.
Things you can ask your agent for:
- List flats for sale by private owners in Torino with price per m².
- Find homes for rent from private landlords in Milano listed most recently.
- Export holiday homes let by their owners in the province of Sassari.
Machine-readable API, MCP config and OpenAPI definition for this Actor are published at apify.com/sian.agency/casadaprivato-property-scraper.md.
📋 Overview
CasaDaPrivato.it is where Italian owners sell and let their homes without an agency. This actor turns the site into rows: homes for sale, homes for rent, holiday homes and rooms, from all 107 Italian provinces.
What you get:
- ✅ Private sellers: the site is built for owners selling or letting their own home, and agencies cannot charge commission through it
- 🧭 Homes the big portals mostly don't have: matching photos, we found 8% of Bergamo and 10-12% of Padova sale listings on Subito's private section, and 0 of 38 in a 550-listing Immobiliare sample
- ⚡ 15 listings per results page: price, floor area, rooms, bathrooms, town, area, street, highlights and the main photo on every search row
- 💰 Pay per listing: $1.50 per 1,000 listings on the Starter plan, and a listing is billed once per run
- 💎 Full listing on demand: one switch adds the description, every original photo, GPS, energy class, floor, heating, kitchen, parking, condo fees and dates
- ✨ NEW: search one district (zona) of a big city by pasting its results page
✨ Features
- 🏡 Four sections: homes for sale, homes for rent, holiday homes, and rooms and beds
- 📍 107 provinces or one town: read a whole province such as Milano or Roma, or narrow it to one comune
- 🏢 12 property types: flats, penthouses, detached houses, villas, farmhouses, lofts, buildings, new builds, garages, shops and offices, land and other residential
- ↕️ Four sort orders: most relevant, most recent first, cheapest first or most expensive first
- 📐 Price per m²: worked out on every sale listing that has both a price and a floor area
- 🖼️ Original photos: full-size images rather than the site's cropped thumbnails, when you open the full listing
- 🔗 Paste any results page: districts and other CasaDaPrivato searches work as input
- 🔁 Fair billing: each listing is charged once per run, and "similar listings nearby" filler cards are never returned or billed
🎬 Quick Start
Pick a province and a section, press Start, and the listings land in your dataset. A run with no input returns 50 homes for sale in the Milano province. Turn on the full listing when you need the description, every photo and GPS.
curl -X POST "https://api.apify.com/v2/acts/sian.agency~casadaprivato-property-scraper/runs?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"province": "roma", "category": "sale", "propertyType": "appartamenti", "maxResults": 50}'
🚀 Getting Started (3 Simple Steps)
Step 1: Pick where
Choose a province from the list. Type a town if you only want one, or paste a district's results page.
Step 2: Pick what
Choose the section (for sale, for rent, holiday homes or rooms), a property type if you like, and the order.
Step 3: Run and export
Set how many listings you want and press Start. Download the result as JSON, CSV or Excel.
That's it! A few minutes at most, and you'll have:
- Owner asking prices in euros, with floor area and price per m²
- Town, area and street for every listing
- A link to each listing, so you can contact the owner through CasaDaPrivato
📥 Input Configuration
| Field | Type | Required | Description |
|---|---|---|---|
operation | string | No | search (default) reads results pages, detail opens listings you paste |
province | string | No | Province slug, such as milano (default), roma, torino, la_spezia or monza_brianza |
town | string | No | One town (comune) inside the province. Leave empty for the whole province |
category | string | No | sale (default), rent, holiday or rooms. rent covers every rental, holiday homes and rooms included |
propertyType | string | No | all (default) or one of 12 types, such as appartamenti, case-indipendenti or terreni. Ignored for holiday homes and rooms |
sortBy | string | No | relevance (default), recent, priceLow or priceHigh |
maxResults | integer | No | How many listings to return (default 50, up to 10,000). One results page holds 15 |
includeDetails | boolean | No | Open each listing for the full record (billed per listing) |
searchUrls | array | No | CasaDaPrivato results pages to read instead of the fields above |
listingUrls | array | No | CasaDaPrivato listing pages for the detail operation |
Example: flats for sale in Roma, newest first, with the full listing
{"province": "roma","town": "Roma","category": "sale","propertyType": "appartamenti","sortBy": "recent","maxResults": 100,"includeDetails": true}
Example: rooms from private landlords in the Bologna province
{"province": "bologna","category": "rooms","maxResults": 200}
Example: paste a district's results page
{"searchUrls": [{ "url": "https://www.casadaprivato.it/annunci-vendita/appartamenti/roma-zona-bravetta" }],"maxResults": 100}
Example: open listings you already have
{"operation": "detail","listingUrls": [{ "url": "https://www.casadaprivato.it/appartamenti/grazioso-bilocale-in-corte-privata-bergamo-423133" }]}
CasaDaPrivato's price, size and room filters are not offered here. Collect the town or province, then filter the dataset by price, sizeSqm or rooms.
📤 Output
Results are saved to the Apify dataset with 53 fields, including:
| Field | Type | Description |
|---|---|---|
listingId | string | CasaDaPrivato's listing ID, stable across runs |
listingUrl | string | Link to the listing |
propertyTitle / headline | string | The listing title, and the owner's own headline |
contract | string | sale or rent |
propertyType | string | Trilocale, Bilocale, Box/Garage/Posto auto and so on |
price | number | Asking price in euros for sales, monthly rent for rentals. Empty for private-negotiation listings |
priceLabel | string | The price exactly as the site shows it, such as "Trattativa Riservata" |
sizeSqm / pricePerSqm | number | Floor area in m², and price divided by area |
rooms / bedrooms / bathrooms | integer | Room counts as the owner listed them |
town / zone / address / province | string | Town, area, street and province |
latitude / longitude | number | GPS from the full listing, where the owner set it |
energyClass / heating / floor / parking / condition | string | From the full listing |
leaseType / availableFrom / condoFees | string | Rental terms and condo fees, from the full listing |
imageUrls / photoCount | array / integer | Original photo links and how many there are |
descriptionText | string | The owner's full description |
publishedDate / updatedDate | string | Listed and updated dates (YYYY-MM-DD) |
Example: a Roma flat for sale with the full listing opened (long fields shortened)
{"listingId": "423375","listingUrl": "https://www.casadaprivato.it/appartamenti/trilocale-luminoso-con-2-balconi-e-veranda-roma-423375","propertyTitle": "Trilocale in vendita a Roma, Zona Romanina, Via Paolo Ferrari 66","headline": "Trilocale luminoso con 2 balconi e veranda","contract": "sale","section": "appartamenti","propertyType": "Trilocale","price": 175000,"currency": "EUR","priceLabel": "€ 175.000,00","sizeSqm": 90,"pricePerSqm": 1944,"rooms": 3,"bedrooms": 2,"bathrooms": 1,"town": "Roma","zone": "Romanina","address": "Via Paolo Ferrari 66","province": "roma","latitude": 42.01289,"longitude": 12.36803,"highlights": ["Climatizzazione", "Secondo piano", "Balcone", "Box"],"features": ["Balcone", "Semi-arredato"],"floor": "2 °","totalFloors": "3","kitchen": "Abitabile","parking": "No","condition": "Abitabile","heating": "Autonomo","airConditioning": "Si","energyClass": "F","thumbnail": "https://static.casadaprivato.it/images/properties/423375/2d3f7d97ad7c425b8fd8e31b3e3bfe46.jpg","imageUrls": ["https://static.casadaprivato.it/images/properties/423375/2d3f7d97ad7c425b8fd8e31b3e3bfe46.jpg","https://static.casadaprivato.it/images/properties/423375/42cde92a072246799b916c397c16f080.jpg"],"photoCount": 8,"descriptionText": "Appartamento molto luminoso, situato in una zona tranquilla di Roma, con una piacevole vista e ambienti ben distribuiti. …","updatedDate": "2026-10-04","searchUrl": "https://www.casadaprivato.it/annunci-vendita/immobili/roma-roma","searchPage": 1,"hasDetail": true,"status": "success"}
Example: a private-negotiation listing (no price, the label is kept)
{"listingId": "423311","propertyTitle": "Appartamento in vendita a Roma, Zona Portuense, Via Torrita di Siena 26","contract": "sale","propertyType": "Appartamento","currency": "EUR","priceLabel": "Trattativa Riservata","sizeSqm": 80,"rooms": 5,"bathrooms": 2,"town": "Roma","zone": "Portuense","yearBuilt": 1978,"energyClass": "A3","publishedDate": "2026-10-01","hasDetail": true,"status": "success"}
Each run also writes a report.html summary to the run's key-value store, with your rows, anything that needs a fix and what you were charged.
💼 Use Cases & Examples
1. Private-seller lead lists for agencies
Estate agents find owners who are selling on their own.
Input: province and town, category sale
Output: Homes for sale with street, price, floor area and a link to each listing
Use: A list of owners to approach through CasaDaPrivato's message form, town by town
2. Homes the big portals mostly don't have
Investors and analysts add a pool of homes they can't see on Immobiliare.
Input: The same town you already track on Immobiliare or Subito Output: Private listings that rarely show up there (8-12% overlap with Subito's private section in Bergamo and Padova, none found in an Immobiliare sample) Use: Count the owner-listed homes your usual portal data misses
3. Price checks without agency mark-ups
Valuers and buyers compare owner asking prices across a city.
Input: A province, or a district pasted into searchUrls
Output: Asking price, floor area and pricePerSqm on every row
Use: Price per m² before any commission, town by town or area by area inside big cities
4. New listing alerts
House hunters and investors catch new listings early.
Input: One town with sortBy recent, on an Apify schedule
Output: Stable listing IDs with price and dates
Use: New listings and price changes show up as a daily diff
5. Rentals and rooms from private landlords
Students, relocation services and housing offices look for rentals without agency fees.
Input: category rent or rooms in Roma, Milano, Bologna or Padova
Output: Monthly rent, floor area, town and area, plus lease type and availability with the full listing
Use: A shortlist of rooms and flats let directly by their owners
6. Holiday homes let by owners
Holiday-rental analysts look at owner-let homes in Sardinia, Puglia or Sicily.
Input: category holiday in provinces such as sassari, lecce or palermo
Output: Beds, floor area, town and the price as posted
Use: A map of owner-let holiday homes by town, with beds and floor area. CasaDaPrivato shows no prices for holiday homes, so price stays empty there
🔗 Integration Examples
JavaScript/Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_TOKEN' });const run = await client.actor('sian.agency/casadaprivato-property-scraper').call({province: 'bergamo',town: 'Bergamo',category: 'sale',sortBy: 'recent',maxResults: 100,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items[0]);
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_TOKEN')run = client.actor('sian.agency/casadaprivato-property-scraper').call(run_input={'province': 'padova','category': 'rooms','maxResults': 100,'includeDetails': True,})for item in client.dataset(run['defaultDatasetId']).iterate_items():print(item.get('price'), item.get('zone'), item['listingUrl'])
cURL
curl -X POST 'https://api.apify.com/v2/acts/sian.agency~casadaprivato-property-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN' \-H 'Content-Type: application/json' \-d '{"operation": "detail", "listingUrls": [{"url": "https://www.casadaprivato.it/appartamenti/grazioso-bilocale-in-corte-privata-bergamo-423133"}]}'
Automation Workflows (n8n / Zapier / Make)
- Trigger: a daily schedule, or a webhook from your CRM
- HTTP Request: call the actor's run endpoint with your province, town and section
- Process: read the dataset items as JSON
- Action: add new listings to Google Sheets, Airtable or your CRM, or send an alert when a price drops
📊 Performance & Pricing
FREE Tier (Try It Now)
- 25 listings per run, every field included
- No credit card required
- Good for checking a town or section before a bigger run
PAID Tier (Production Ready)
- Up to 10,000 listings per run (the "Properties to collect" limit)
- Pay per listing returned: $1.50 per 1,000 listings on the Starter plan, less on higher Apify plans
- The full listing is an optional extra at $3 per 1,000, charged only when you switch it on or use Property Detail
- A start fee of $0.005 per run on the Starter plan
💰 Only listings you receive are charged. A search that matches nothing costs nothing beyond the start fee, and so do "similar listings nearby" filler cards and listing pages that no longer exist. A listing is billed once per run.
❓ Frequently Asked Questions
Q: Are these really private sellers? A: Almost always. CasaDaPrivato is built for owners, and its terms forbid anyone from asking for commission on a deal made through the site. Now and then an agent posts anyway; the listing text usually gives it away.
Q: Do I get the owner's phone number or name? A: No. Owners are contacted through CasaDaPrivato's message form, and the actor does not collect personal details. For room ads that includes the advertiser's gender, age and job. Each row links to the listing so you can contact the owner there.
Q: How many listings are there? A: On 2026-10-04 the site held about 39,700 homes for sale and 23,000 rentals, holiday homes and rooms included. That is fewer than the big agency portals, so a small town may have only a handful.
Q: Can I search one district of a big city? A: Yes. Open the area (zona) on casadaprivato.it, for example Bravetta in Roma, and paste the results address into Search page URLs.
Q: Can I filter by price, size or rooms?
A: Not on the site's side. Collect the town or province and filter the dataset by price, sizeSqm or rooms afterwards.
Q: Why is a price missing?
A: Owners can choose a private-negotiation price (Trattativa Riservata). Those rows keep price empty and show the label in priceLabel. Holiday homes carry no price on CasaDaPrivato at all; owners quote by period on request.
Q: How fresh is the data? A: Every run reads the live site. Nothing is cached between runs.
Q: What output formats are available? A: JSON, CSV, Excel, XML and HTML, straight from the Apify dataset.
🐛 Troubleshooting
A town search returns nothing
- Check the town is inside the province you picked, for example Sesto San Giovanni in
milano - Small towns may have no listings in that section. Try the whole province, or the For rent section, which covers every rental
A pasted URL is skipped
- Paste a results page, such as https://www.casadaprivato.it/annunci-vendita/appartamenti/roma-zona-bravetta , into Search page URLs
- Listing pages go into Listing URLs with the Property Detail mode, not into Search page URLs
Fewer rows than "Properties to collect"
- The search ran out of listings, or the FREE tier stopped at 25
- "Similar listings nearby" cards at the end of a short result are left out on purpose
A listing has no GPS or photos
- GPS appears only when the owner set a location, and only with the full listing switched on
- Some owners post no photos.
photoCountis 0 on those rows
A page failed to load
- This is nearly always temporary. Run the same input again a few minutes later. You pay only for listings that reach your dataset
⚖️ Is it legal to scrape data?
Our actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.
However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.
You can also read Apify's blog post on the legality of web scraping.
CasaDaPrivato is a trademark of its owner. This actor is not affiliated with, endorsed by, or sponsored by CasaDaPrivato or LaboWeb.
🤝 Support
Join our active support community
- For issues or questions, open an issue on the actor's Issues tab
- Check the SIÁN Agency Store for more automation tools
- 📧 apify@sian-agency.online
Built by SIÁN Agency | More Tools