Subito Real Estate Scraper — Sale, Rent & Private Sellers avatar

Subito Real Estate Scraper — Sale, Rent & Private Sellers

Pricing

from $1.99 / 1,000 property listings

Go to Apify Store
Subito Real Estate Scraper — Sale, Rent & Private Sellers

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

Andrej Kiva

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

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.

ActorRole
Subito Real Estate Scraper ◄── you are hereItaly property: sale, rent, private vs agency
Immobiliare.it ScraperItaly portal: sale, rent, auctions
SeLoger ScraperFrance sale and rent
ImmobilienScout24 ScraperGermany rent and buy
Rightmove ScraperUK sale and rent
Realtor.com ScraperUS sold comps
realestate.com.au ScraperAustralia sold comps and listing monitor
Yad2 ScraperIsrael listings
Leboncoin ScraperFrench 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 — isPrivate on 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

FieldWhat it does
Start URLsSearch pages or a single listing URL. When set, the builder fields are ignored.
Sale or rent / Property typeBuilder used when Start URLs is empty.
Region / province / townSlugs such as lazio, roma, pomezia. Empty region means all of Italy.
Keyword / min / max priceExtra search filters, euros.
Maximum listingsCap on dataset rows. Default 30.
Private sellers onlySkip agencies.
Include phone numberOff by default. One extra request per saved row.
Monitor modeSave only ads newer than the stored cursor.
Monitor state storeNamed store so scheduled runs share the cursor.
ProxyOff 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

FieldMeaning
title, url, descriptionHeadline, link, full text
transaction, categorysale, rent, or wanted, plus the property type
price, surfaceSqm, pricePerSqmEuros, square meters, euros per m²
rooms, bathrooms, floor, energyClassLocali, bagni, piano, classe energetica
region, province, town, addressLocation. latitude / longitude when the ad has a map point
advertiserType, isPrivate, advertiserName, shopNamePrivate person or agency
phoneNull unless phone lookup is on and a number came back
publishedAt, imageUrlsDisplay 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 os
from apify_client import ApifyClient
client = 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().items
print(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.