Subito.it Scraper - Italy Real Estate Data avatar

Subito.it Scraper - Italy Real Estate Data

Pricing

from $1.49 / 1,000 listing scrapeds

Go to Apify Store
Subito.it Scraper - Italy Real Estate Data

Subito.it Scraper - Italy Real Estate Data

Scrape real-estate listings from Subito.it by region, province, city, transaction, and property type. Get price, area, rooms, energy class, location, advertiser, and images. Export as JSON, CSV, or Excel.

Pricing

from $1.49 / 1,000 listing scrapeds

Rating

0.0

(0)

Developer

ParseBird

ParseBird

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Subito.it Scraper - Italy Real Estate Data

Scrape real-estate listings from Subito.it — Italy's largest classifieds marketplace — into clean, structured JSON. The Subito.it Scraper pulls the price, price per m², area, rooms, bathrooms, floor, energy class, location, province code, advertiser, and images for any region, province, city, transaction type, and property type, with no login and no Subito API.

Pick a region (and optionally province and city), a transaction (sale, rent, or vacation) and a property type — then filter by price, area, rooms, and private vs. agency — and get a structured record per Subito property listing.

Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

Actor: parsebird/subito-it-scraper (Apify). Scrapes real-estate listings from subito.it (Italy). Call with ApifyClient.
Input JSON fields:
regionSlug: string — Italian region slug, "italia" = nationwide (default "italia")
provinceSlug: string — optional province slug, e.g. "roma", "milano"
citySlug: string — optional city (comune) slug; requires provinceSlug
transaction: "sale" | "rent" | "vacation" (default "sale")
propertyType: "apartment"|"villa"|"land"|"garage"|"loft"|"commercial"|"room"|"vacation_home" (default "apartment")
keyword: string — optional free-text query
priceMin/priceMax: int (EUR, 0 = no bound) — applied after fetching
areaMin/areaMax: int (, 0 = no bound) — applied after fetching
roomsMin/roomsMax: int (locali, 0 = no bound) — applied after fetching; a studio = 1
advertiserType: "all" | "private" | "agency" (default "all")
maxListings: int (default 200, 0 = unlimited)number of billed rows
maxPagesPerTask: int (default 10)~30 listings per page
requestDelay: int ms (default 1500) · maxRetries: int (default 3)
proxyConfiguration: { "useApifyProxy": true } (recommended)
Output: one dataset item per listing — adId, detailUrl, title, shortDescription, transactionType, propertyType,
advertType, price, priceCurrency, pricePerSqm, areaSqm, rooms, bathrooms, floor, energyClass, country, region,
province, provinceCode, city, microLocation, fullAddress, mainImageUrl, imageCount, advertiserId, advertiserName,
advertiserType, isFeatured, isUrgent, datePosted, searchRegion, scrapedAt.
Example: { "regionSlug": "lazio", "provinceSlug": "roma", "citySlug": "roma", "transaction": "sale", "priceMax": 400000, "maxListings": 300, "proxyConfiguration": { "useApifyProxy": true } }
API: https://api.apify.com/v2/acts/parsebird~subito-it-scraper · Token: https://console.apify.com/account/integrations

What does the Subito.it Scraper do?

Subito.it is Italy's biggest classifieds site, with hundreds of thousands of live property ads from both private sellers and agencies. There is no public Subito API — this Subito scraper reads the site's own listing data instead. For every property in a region, province, or city listing it extracts:

  • 🏷️ Identity — ad ID, title, short description, and the direct listing URL.
  • 💶 Pricing — asking price, currency, and price per m².
  • 📐 Size — surface area, room count (locali), bathrooms, and floor.
  • Energy — the energy-efficiency class (APE).
  • 📍 Location — region, province, province code, city, micro-location, and a formatted address.
  • 👤 Advertiser — private or agency, advertiser ID, and name.
  • 🖼️ Media — the primary image and the total image count.
  • 📅 Freshness — the posting date and featured / urgent flags.

Common uses: Italian real-estate market research, price monitoring, private-seller lead generation, and building a property dataset for a portal or valuation model.

Input parameters

ParameterTypeRequiredDefaultDescription
regionSlugstringNoitaliaItalian region slug. italia = nationwide.
provinceSlugstringNoProvince slug after the region (roma, milano).
citySlugstringNoCity (comune) slug after the province. Requires provinceSlug.
transactionstringNosalesale (vendita), rent (affitto), or vacation (affitto-vacanze).
propertyTypestringNoapartmentapartment, villa, land, garage, loft, commercial, room, vacation_home.
keywordstringNoOptional free-text query.
priceMin / priceMaxintegerNo0Price range in EUR (0 = no bound). Applied after fetching.
areaMin / areaMaxintegerNo0Surface-area range in m² (0 = no bound).
roomsMin / roomsMaxintegerNo0Room-count (locali) range (0 = no bound).
advertiserTypestringNoallall, private, or agency.
maxListingsintegerNo200Total cap on listings (0 = unlimited). Billed rows.
maxPagesPerTaskintegerNo10Pagination depth (~30 listings per page).
requestDelayintegerNo1500Delay in ms between page requests.
maxRetriesintegerNo3Retries per request on errors.
proxyConfigurationobjectNoApify ProxyDatacenter usually works; Residential country IT is a fallback.

priceMin/Max, areaMin/Max, roomsMin/Max and advertiserType are applied after fetching, because Subito does not expose price or area as URL parameters. Rooms follow the Italian locali convention — a studio appears as rooms: 1. room is available for rent only; vacation implies vacation_home.

Example inputs

Apartments for sale in Rome (filtered):

{
"regionSlug": "lazio",
"provinceSlug": "roma",
"citySlug": "roma",
"transaction": "sale",
"propertyType": "apartment",
"priceMin": 150000,
"priceMax": 400000,
"areaMin": 60,
"roomsMin": 2,
"maxListings": 300,
"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "IT" }
}

Private-seller rentals in Milan (lead generation):

{
"regionSlug": "lombardia",
"provinceSlug": "milano",
"citySlug": "milano",
"transaction": "rent",
"propertyType": "apartment",
"advertiserType": "private",
"maxListings": 500,
"proxyConfiguration": { "useApifyProxy": true }
}

Vacation homes in Sardinia:

{
"regionSlug": "sardegna",
"transaction": "vacation",
"propertyType": "vacation_home",
"maxListings": 300,
"proxyConfiguration": { "useApifyProxy": true }
}

What data can you extract from Subito.it?

FieldDescription
adIdSubito listing identifier
detailUrlDirect link to the listing
title / shortDescriptionAd title and a trimmed description
transactionType / propertyTypeNormalised transaction and property category
price / priceCurrency / pricePerSqmAsking price, currency, and price per m²
areaSqm / rooms / bathrooms / floorSize, locali, bathrooms, and floor
energyClassEnergy-efficiency class (APE)
region / province / provinceCode / city / microLocation / fullAddressLocation breakdown
advertType / advertiserType / advertiserId / advertiserNamePrivate vs. agency and advertiser details
mainImageUrl / imageCountPrimary image and image count
isFeatured / isUrgent / datePostedPromotion flags and posting date
searchRegion / scrapedAtRun context

Output example

{
"adId": "512345678",
"detailUrl": "https://www.subito.it/appartamenti/appartamento-roma-512345678.htm",
"title": "Trilocale ristrutturato zona Prati",
"shortDescription": "Appartamento luminoso di 85 m², 3 locali, 2° piano con ascensore…",
"transactionType": "sale",
"propertyType": "apartment",
"advertType": "agency",
"price": "320000",
"priceCurrency": "EUR",
"pricePerSqm": "3765",
"areaSqm": "85",
"rooms": "3",
"bathrooms": "1",
"floor": "2",
"energyClass": "D",
"country": "Italia",
"region": "Lazio",
"province": "Roma",
"provinceCode": "RM",
"city": "Roma",
"microLocation": null,
"fullAddress": "Roma (RM)",
"latitude": null,
"longitude": null,
"mainImageUrl": "https://images.sbito.it/api/v1/.../image?rule=gallery-desktop-2x-auto",
"imageCount": "12",
"advertiserId": "9981234",
"advertiserName": "Immobiliare Roma Centro",
"advertiserType": "agency",
"isFeatured": "true",
"isUrgent": "false",
"datePosted": "2026-07-02",
"searchRegion": "lazio",
"scrapedAt": "2026-07-06T12:00:00.000Z"
}

Download the dataset as JSON, CSV, Excel, HTML, or XML from the Storage tab or the Apify API.

Use cases

  • Market research — track asking prices and price per m² by city, zone, and property type.
  • Lead generation — collect private-seller listings for a buyer's agent or a home-flipping pipeline.
  • Portal seeding — feed a property portal or price-comparison site with Subito inventory.
  • Valuation models — build a training set of area, rooms, floor, energy class, and price.
  • Trend monitoring — schedule daily runs and watch supply and pricing move.

How it works

  1. URL — the scraper builds a Subito listing URL from your region, province, city, transaction, and property type.
  2. Listing — it reads each results page's server-side data (about 30 listings per page).
  3. Paginate — it walks through pages until maxListings, maxPagesPerTask, or the end of the listing.
  4. Filter — price, area, room, and advertiser filters run in memory over the fetched listings.
  5. Rows stream to the dataset.

How much does it cost to scrape Subito.it?

This actor is pay per result — charged once per listing saved to the dataset.

PlanPrice per 1,000 listings
Free$1.79
Bronze$1.69
Silver$1.59
Gold$1.49

A small platform Actor start fee also applies per run. maxListings is the exact number of billed rows. Scraping 1,000 listings on the Free plan costs about $1.79. Apify's monthly free platform usage covers small runs.

How to scrape Subito.it

  1. Click Try for free and sign in to Apify.
  2. Choose a region, and optionally paste a province and city slug from a Subito URL.
  3. Pick a transaction and property type.
  4. Add price, area, room, or advertiser filters if you need them.
  5. Set max listings (start low, e.g. 100) and max pages.
  6. Click Start, then watch rows appear in the Output tab.
  7. Export from Storage, or pull results via the API.

Run it via API

Python:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("parsebird/subito-it-scraper").call(run_input={
"regionSlug": "lazio",
"provinceSlug": "roma",
"citySlug": "roma",
"transaction": "sale",
"priceMax": 400000,
"maxListings": 300,
"proxyConfiguration": {"useApifyProxy": True},
})
for ad in client.dataset(run["defaultDatasetId"]).iterate_items():
print(ad["title"], "-", ad["price"], "-", ad["city"])

JavaScript:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('parsebird/subito-it-scraper').call({
regionSlug: 'lombardia',
provinceSlug: 'milano',
citySlug: 'milano',
transaction: 'rent',
advertiserType: 'private',
maxListings: 500,
proxyConfiguration: { useApifyProxy: true },
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Schedule recurring runs, add webhooks, or push results to Google Sheets, Slack, Zapier, and Make with Apify integrations.

FAQ

Do I need a Subito account or API key? No. The scraper reads public Subito listing pages only. Subito has no public API — this actor is the alternative.

How current is the data? Live. Each run reads Subito at that moment. Use Apify's scheduler to keep a dataset fresh.

Where do I find province and city slugs? Open the location on Subito and copy the slug from the URL — for example .../annunci-lazio/vendita/appartamenti/roma/roma/ gives provinceSlug: roma, citySlug: roma.

Why are latitude and longitude empty? Subito's listing pages do not expose coordinates; the scraper returns the region, province, and city instead.

Why did my filters return fewer results than the page count suggests? Price, area, and room filters run after fetching, so a listing that omits its price or area is dropped by a min/max bound. Widen the bounds or set them to 0.

Something's not working. Open an issue on the Issues tab with your input and the run link — we respond quickly.

Subito.it listing pages are public information that any visitor can see without logging in. Scraping publicly available pages is legal in most jurisdictions, and this actor does not access private data or bypass any login. You are responsible for how you use the data — follow Subito's Terms of Service and the GDPR when handling any personal data, and consult a lawyer if you are unsure. See Apify's guide on the legality of web scraping.

Browse all ParseBird actors on Apify Store.