Casa.it Scraper — Italy Real Estate Listings avatar

Casa.it Scraper — Italy Real Estate Listings

Pricing

from $1.16 / 1,000 casa.it scraper — italy real estate listings

Go to Apify Store
Casa.it Scraper — Italy Real Estate Listings

Casa.it Scraper — Italy Real Estate Listings

Collect Casa.it property listings from search-result URLs. Get price, surface, rooms, energy class, geography, publisher, and media. Run with your Apify account; no Casa.it login or buyer API key. Free pricing: $0.0012 per dataset item.

Pricing

from $1.16 / 1,000 casa.it scraper — italy real estate listings

Rating

0.0

(0)

Developer

Vitalii Bondarev

Vitalii Bondarev

Maintained by Community

Actor stats

0

Bookmarked

8

Total users

5

Monthly active users

2 days ago

Last modified

Categories

Features

Limited permissions

Share

Casa.it Real Estate Properties Scraper

Scrape Casa.it search-result URLs for Italian real-estate listings and return structured property, price, geo, publisher, and media data; each URL is limited to 50 pages. Run with your Apify account; no Casa.it login, API key, or cookies are required.

  • Extract sale or rent listings with price, surface, rooms, energy class, availability, and property type.
  • Compare inventory by district, block, city, province, region, and coordinates.
  • Research listings and agencies using publisher, contact, title, description, and media fields.
  • Export structured results for property-market analysis, monitoring, or downstream processing.

What you get

Each result is a Casa.it listing. Missing scalar values are null; list fields can be empty.

Field familyFieldsTypeDescription
Identityid, partner_id, ref_publisher, uri, from_urlinteger; stringListing IDs, publisher reference, path, and source URL.
Classificationchannel, category, property_type_group, property_type, idl_property_type, depth, is_project_profile, is_auctionstring; integer; booleanChannel, category, property classification, tier, project, and auction flags.
Listing content and statedescription, highlight, labels, show_mortgage, propose_generic, show_mq_price, project_data, recent_ads_title, unitsstring; boolean; array of strings; nested objectText, labels, display flags, and project or unit data.
Featuresfeatures.mq, features.rooms, features.bathrooms, features.parkings, features.parking_offer, features.price, features.energy_class, features.availability, features.level, features.rent_pricenested objectSize, rooms, bathrooms, parking, price, energy, availability, level, and rent price.
Geographygeo_infos.show_address, geo_infos.has_street, geo_infos.street, geo_infos.district_name, geo_infos.block_name, geo_infos.city, geo_infos.province, geo_infos.region, geo_infos.lat, geo_infos.lon, geo_infos.geo_visibility_levelnested objectAddress, district/block rollup, hierarchy, coordinates, and visibility.
Titletitle.main, title.additionalnested objectMain and additional title values.
Mediamedia.floorplan, media.has_video, media.has360, media.has3dtour, media.photosnested objectFloorplan, video/tour flags, and photos.
Publisherpublisher.publisher_id, publisher.publisher_type, publisher.publisher_name, publisher.publisher_logo, publisher.publisher_address, publisher.publisher_phone, publisher.publisher_website, publisher.subscription_codenested objectAgency or publisher identity and contact data.
Leadsleads_data.listing_id, leads_data.partner_id, leads_data.channel, leads_data.categorynested objectListing and partner data used for leads.
Run metadatascraped_at, parse_confidence, warningsISO 8601 string; number; array of stringsUTC scrape time, parser confidence, and warnings.

Sample output

Shortened sample: one record is shown, and the media.photos array contains one complete item.

[
{
"id": 54845714, "partner_id": 36975504, "ref_publisher": "6/206", "channel": "vendita", "category": "casa", "property_type_group": "case", "property_type": "appartamento", "idl_property_type": 1, "is_project_profile": false, "project_data": null, "uri": "/immobili/54845714/", "depth": "platinum", "highlight": null, "labels": [], "is_auction": false,
"description": "VISTA MARE E FASCINO D’EPOCA NEL CUORE DI STELLA POLARE Ci sono immobili che non si distinguono soltanto per ciò che offrono, ma soprattutto per il contesto in cui si trovano e per l’atmosfera che riescono a trasmettere. Questa elegante residenza in Via delle Isole Sanguinarie, nel cuore della ricercatissima Stella Polare, rappresenta perfettamente questo concetto: una casa...",
"show_mortgage": true, "propose_generic": true, "show_mq_price": false, "recent_ads_title": null, "from_url": "https://www.casa.it/vendita/residenziale/roma",
"features": {"mq": 92, "rooms": 3, "bathrooms": 2, "parkings": null, "parking_offer": {"available": false}, "price": {"value": "359.000", "min": "359.000", "max": "359.000", "show": true, "marker": {"price": "359", "unit": "k", "originalPrice": 359000, "hasPriceRange": false}, "mortgage": "1.039"}, "energy_class": null, "availability": "libero", "level": null, "rent_price": null},
"geo_infos": {"show_address": true, "has_street": true, "street": "Via Isole Sanguinarie", "district_name": "Lido di Ostia, Ostia Antica, Castel Fusano", "block_name": "Ostia Levante", "city": "Roma", "province": "RM", "region": "Lazio", "lat": 41.726667, "lon": 12.289488, "geo_visibility_level": 2},
"title": {"main": "Trilocale in Via Isole Sanguinarie", "additional": ["Ostia Levante"]},
"media": {"floorplan": 30, "has_video": true, "has360": true, "has3dtour": false, "photos": [{"uri": "/listing/0/8e/39/f0/842503515.jpg", "alt": "Piscina", "hasFotoplano": false}]},
"publisher": {"publisher_id": 478744, "publisher_type": "Agency", "publisher_name": "MARCO ROCCHI RES IMMOBILIARE", "publisher_logo": "logo/3658a3c341a5ebb6fd92e1b502d116d2", "publisher_address": {"street": "Via Diego Simonetti 78", "town": "Roma", "province": "RM", "state": "Lazio", "country": "IT", "postcode": "00122", "display": "Roma, Via Diego Simonetti 78"}, "publisher_phone": "0685870914", "publisher_website": "https://www.resimmobiliare.com/", "subscription_code": "AR-4_PK-529"},
"units": null, "leads_data": {"listing_id": 54845714, "partner_id": 36975504, "channel": "buy", "category": "casa"}, "scraped_at": "2026-10-29T04:30:28Z", "parse_confidence": 1, "warnings": []
}
]

Pricing

You pay for one Actor Start event per run and one dataset-item event per result.

PlanActor Start (per event)Dataset item (per event)
Free$0.00005$0.0012

On the Free plan, 1,000 results cost $1.20 plus one Actor Start event ($0.00005), or $1.20005 total. 10,000 results cost $12.00 plus one Actor Start event ($0.00005), or $12.00005 total on the Free plan. The Actor Start event is charged once per GB of run memory, with a minimum of one event; this example uses one event. Check your run memory in its options.

The Apify Free plan includes $5 of monthly platform usage credit; that credit covers 4,166 results with one Actor Start event. Compute, proxy traffic, and storage are not billed separately to you for this Actor.

How to use

  1. Add one or more full Casa.it search-result URLs for sale or rent listings.
  2. Set max_items_per_url to a maximum, or use 0 for no per-URL result limit; collection still stops at page 50.
  3. Choose failure handling with ignore_url_failures; the default skips failed URLs and continues.
  4. Configure proxyConfiguration when needed; if absent, the Actor uses Apify RESIDENTIAL proxy in Italy.
  5. Run the Actor and inspect the dataset. If the first attempt shows no listings, it retries with browser-based fetching.
  6. Repeat runs through Apify Schedules; daily is a reasonable starting point for listing collection.
{
"urls": ["https://www.casa.it/vendita/residenziale/roma"],
"ignore_url_failures": true,
"max_items_per_url": 50,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "IT"
}
}

Export the dataset as JSON or CSV, or read it through the Apify dataset API.

Input parameters

ParameterWhat it doesDefault
urlsRequired array of full Casa.it search-result URLs; each is one listing search page.No default; required
ignore_url_failuresIf true, a failed URL is skipped and the run continues. If false, processing stops at the first failed URL.true
max_items_per_urlMaximum listings per URL. 0 means no per-URL listing limit; collection still stops at page 50.50
proxyConfigurationApify proxy configuration for the fetch pipeline. If absent, the Actor uses an Apify RESIDENTIAL proxy in Italy.If absent, an Apify RESIDENTIAL proxy configuration for Italy
disableUsageStatsSet to true to turn off the run summary described in Usage statistics.false

Limits and edge cases

ConditionWhat the buyer seesWhat to do
max_items_per_url is a positive integerCollection stops at the requested listing count or page 50, whichever comes first.Increase the value or use 0.
max_items_per_url is 0Collection stops at page 50, with no per-URL listing limit before then.Use narrower Casa.it filters or a positive limit.
A URL returns 404The Actor logs that the page is gone, returns no listings, continues, and does not list it in failedUrls, even when ignore_url_failures is false.Correct the URL.
A page is blocked or cannot be fetched after all fetch modesIf it has no records, it is added to failedUrls. With true, it is skipped; with false, processing stops. The run ends as Succeeded, and earlier URL rows remain. OUTPUT contains totalItems, failedUrls, urls, and scrapedAt.Correct the URL or enable failure ignoring for multi-URL runs.
A later page fails after earlier pages produced recordsEarlier records remain; the failed page contributes none. The URL is not marked failed and OUTPUT does not flag the shortfall.Retry or use a narrower search URL.
A search page returns no rows in any fetch modeOn page 1, the URL is counted as failed. On a later page, collected rows are kept and the URL ends.Check the URL path, city, and filters, then try again.
Rows are collected for an input URLRows are pushed after the URL finishes, in batches of 100. A failure, timeout, or abort before then leaves no rows from that URL; earlier URLs remain.Use a positive limit or several narrower URLs.
The same listing ID appears more than once during paginationDuplicate IDs are skipped within one input URL. A listing found through different input URLs appears twice.No action is required unless different filters are needed.
A source field is absent from a listingThe record uses null or an empty list where appropriate, with parse_confidence and warnings.Check the nested field and warning metadata.
urls is empty or missingThe Actor writes {"error":"urls_required"} to OUTPUT and the run ends as Succeeded.Supply at least one non-empty Casa.it search-result URL.

FAQ

How much does it cost to scrape Casa.it?

On the Free plan, an Actor Start event costs $0.00005 and each dataset item costs $0.0012. 1,000 results plus one Actor Start event cost $1.20005 on the Free plan.

Why did my run return no listings?

The URL may return 404, be blocked, or show no rows in all fetch modes. Check OUTPUT in the default key-value store for totalItems and failedUrls; an empty urls input writes {"error":"urls_required"}.

The Actor collects public listing data from Casa.it search-result URLs. Casa.it’s source terms and applicable law depend on your use case, so review the relevant ToS and legal requirements before using the data; this Actor does not provide a legal determination.

  • Immoweb Scraper — related Belgium real-estate listings scraper, including prices and EPC.
  • OnTheMarket Scraper — related UK property listings scraper with prices and days-listed data.
  • Zoopla Scraper — related UK property listings scraper with prices and agent data.

Usage statistics

This Actor creates a small, content-free summary at the end of each run, used only to monitor reliability and improve this Actor. No input values, credentials or scraped data are sent.

A copy of the exact record for your run is saved as USAGE_STATS in your own Apify key-value store.

To opt out, set disableUsageStats to true in the input. Nothing is sent then.

Full list of collected fields