Subito Real Estate Scraper — Sale, Rent & Private Sellers
Pricing
from $1.99 / 1,000 property listings
Subito Real Estate Scraper — Sale, Rent & Private Sellers
Extract Italian property listings for sale or rent: apartments, houses, and commercial space. Get price, size, rooms, energy class, address, and private versus agency. Optional phone lookup and a new-listing monitor.
Pricing
from $1.99 / 1,000 property listings
Rating
0.0
(0)
Developer
Andrej Kiva
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Disclaimer: Unofficial tool. Not affiliated with, sponsored by, or endorsed by the classifieds site or its affiliates. Listings are read from publicly available search results. No login. You are responsible for complying with applicable law (including GDPR where a phone number or a private name appears) and the site’s terms. No warranty on accuracy or availability.
Phone numbers stay empty unless you turn on Include phone number. Enable that only for numbers the listing already publishes and only when you have a lawful basis to store them.
Subito real estate scraper for Italian property: apartments, houses, offices, land, and rooms for sale or for rent. Each row has price, m², €/m², rooms, energy class, address, and private seller vs agency. Use it as a Subito API alternative from Python, Node.js, cURL, or Apify MCP.
Best for: Italy sale and rent comps, agency lead lists (private owners only), and a scheduled check that saves only new ads.
| Actor | Role |
|---|---|
| Subito Real Estate Scraper ◄── you are here | Italy property: sale, rent, private vs agency |
| Immobiliare.it Scraper | Italy portal: sale, rent, auctions |
| SeLoger Scraper | France sale and rent |
| ImmobilienScout24 Scraper | Germany rent and buy |
| Rightmove Scraper | UK sale and rent |
| Realtor.com Scraper | US sold comps |
| realestate.com.au Scraper | Australia sold comps and listing monitor |
| Yad2 Scraper | Israel listings |
| Leboncoin Scraper | French classifieds, including real estate |
When to use this Actor
- Search URL in, rows out — Paste a filtered sale or rent results page (region, province, town, price).
- One listing — Paste a single ad URL when you already have the page.
- Private sellers only — Drop agency inventory and keep
advertiserType: private. - New-listing monitor — Schedule the same search. The next run saves ads that appeared after the previous newest one. A quiet tick writes zero rows.
- Public phone, opt-in — Turn on phone lookup when you need the number the contact endpoint returns.
When not to use this Actor
- Cars, jobs, or general marketplace ads — Those categories are rejected. This Actor is property only.
- Hidden contacts — The phone field is filled only when you opt in and the endpoint returns a number. There is no login and no messaging.
- A full Italy dump in one run — Cap
maxItems. Page through with filters (city, price) instead of one unbounded crawl.
Key features
- Search JSON — One HTTP call per results page. No browser. Default 256 MB.
- Sale, rent, and wanted — Apartments, houses, offices, land, garages, rooms, holiday homes, lofts.
- Structured property fields — Price, surface, €/m², rooms, bathrooms, floor, energy class, coordinates.
- Private vs agency —
isPrivateon every row. Optional private-only filter before the row is saved. - Monitor cursor — A named key-value store remembers the newest ad. The next scheduled run checks for anything newer.
- Proxy off by default — Enable Apify Proxy only if a run is blocked. Try datacenter before residential.
Input
| Field | What it does |
|---|---|
| Start URLs | Search pages or a single listing URL. When set, the builder fields are ignored. |
| Sale or rent / Property type | Builder used when Start URLs is empty. |
| Region / province / town | Slugs such as lazio, roma, pomezia. Empty region means all of Italy. |
| Keyword / min / max price | Extra search filters, euros. |
| Maximum listings | Cap on dataset rows. Default 30. |
| Private sellers only | Skip agencies. |
| Include phone number | Off by default. One extra request per saved row. |
| Monitor mode | Save only ads newer than the stored cursor. |
| Monitor state store | Named store so scheduled runs share the cursor. |
| Proxy | Off unless you enable it. |
{"startUrls": [{ "url": "https://www.subito.it/annunci-italia/vendita/appartamenti/" }],"maxItems": 30,"onlyPrivate": false,"includePhone": false,"monitorMode": false,"proxyConfiguration": { "useApifyProxy": false }}
Rent in one province, private sellers only, no URL:
{"transaction": "rent","propertyType": "apartments","region": "lombardia","province": "milano","priceMax": 1500,"onlyPrivate": true,"maxItems": 40}
Output
| Field | Meaning |
|---|---|
title, url, description | Headline, link, full text |
transaction, category | sale, rent, or wanted, plus the property type |
price, surfaceSqm, pricePerSqm | Euros, square meters, euros per m² |
rooms, bathrooms, floor, energyClass | Locali, bagni, piano, classe energetica |
region, province, town, address | Location. latitude / longitude when the ad has a map point |
advertiserType, isPrivate, advertiserName, shopName | Private person or agency |
phone | Null unless phone lookup is on and a number came back |
publishedAt, imageUrls | Display time and photo URLs |
{"id": "661739933","title": "Bilocale con terrazzo","transaction": "sale","category": "Appartamenti","price": 250000,"currency": "EUR","surfaceSqm": 65,"pricePerSqm": 3846.15,"rooms": 2,"bathrooms": 1,"energyClass": "C","town": "Roma","province": "Roma","advertiserType": "private","isPrivate": true,"phone": null,"url": "https://www.subito.it/appartamenti/bilocale-con-terrazzo-roma-661739933.htm"}
Use cases
- Pull apartments for sale in one region and compare €/m² in a spreadsheet.
- Build a private-seller list for a city and a price band, then review names before any outreach.
- Schedule a morning run in monitor mode and export only the ads that were not in yesterday’s file.
- Feed price, size, and energy class into an internal comps sheet. Chain French inventory with Leboncoin Scraper when the brief is not Italy-only.
Integration examples
Replace APIFY_TOKEN and the actor id after you open the Actor in Apify Console. The slug below is the Store name once the Actor is public.
Node.js
import { ApifyClient } from "apify-client";const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor("crawloop/subito-real-estate-scraper").call({transaction: "sale",propertyType: "apartments",region: "lazio",maxItems: 20,includePhone: false,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ["APIFY_TOKEN"])run = client.actor("crawloop/subito-real-estate-scraper").call(run_input={"transaction": "rent","propertyType": "apartments","region": "lombardia","province": "milano","onlyPrivate": True,"maxItems": 20,})items = client.dataset(run["defaultDatasetId"]).list_items().itemsprint(len(items))
cURL
curl -X POST "https://api.apify.com/v2/acts/crawloop~subito-real-estate-scraper/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"propertyType":"apartments","transaction":"sale","region":"lazio","maxItems":10}'
MCP and AI assistants
Use this Actor from AI tools via Apify MCP. Connect your Apify account, then call this Actor by its Store name.
Example prompts:
- "Run Subito Real Estate Scraper for apartments for sale in Lazio, max 20 rows, and return price, m², town, and seller type as JSON."
- "Run Subito Real Estate Scraper in monitor mode for rentals in Milano under 1500 euros, private sellers only, and list any new ads."
- "After the Italy rows, run Leboncoin Scraper for Paris apartments so I can compare the two markets."
Suite next step
Italy classifieds stay in this Actor. For the other Italy portal (sale, rent, auctions), run Immobiliare.it Scraper. For France property, run SeLoger Scraper. For Germany, run ImmobilienScout24 Scraper. For Australia sold comps, run realestate.com.au Scraper.
FAQ
Does an empty monitor run still return rows? No. When nothing newer than the stored cursor is found, the dataset stays empty.
Why is phone null? Phone lookup is off by default. The search card does not include a usable number. Turn on Include phone number to request it.
What if the run is blocked? Enable Apify Proxy and try the datacenter pool before residential. The Actor does not launch a browser.
Can I scrape cars or jobs with this Actor? No. Non-property categories are rejected so the dataset stays real estate.