Subito.it Scraper - Italy Real Estate Data
Pricing
from $1.49 / 1,000 listing scrapeds
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
Maintained by CommunityActor 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 provinceSlugtransaction: "sale" | "rent" | "vacation" (default "sale")propertyType: "apartment"|"villa"|"land"|"garage"|"loft"|"commercial"|"room"|"vacation_home" (default "apartment")keyword: string — optional free-text querypriceMin/priceMax: int (EUR, 0 = no bound) — applied after fetchingareaMin/areaMax: int (m², 0 = no bound) — applied after fetchingroomsMin/roomsMax: int (locali, 0 = no bound) — applied after fetching; a studio = 1advertiserType: "all" | "private" | "agency" (default "all")maxListings: int (default 200, 0 = unlimited) — number of billed rowsmaxPagesPerTask: int (default 10) — ~30 listings per pagerequestDelay: 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| regionSlug | string | No | italia | Italian region slug. italia = nationwide. |
| provinceSlug | string | No | — | Province slug after the region (roma, milano). |
| citySlug | string | No | — | City (comune) slug after the province. Requires provinceSlug. |
| transaction | string | No | sale | sale (vendita), rent (affitto), or vacation (affitto-vacanze). |
| propertyType | string | No | apartment | apartment, villa, land, garage, loft, commercial, room, vacation_home. |
| keyword | string | No | — | Optional free-text query. |
| priceMin / priceMax | integer | No | 0 | Price range in EUR (0 = no bound). Applied after fetching. |
| areaMin / areaMax | integer | No | 0 | Surface-area range in m² (0 = no bound). |
| roomsMin / roomsMax | integer | No | 0 | Room-count (locali) range (0 = no bound). |
| advertiserType | string | No | all | all, private, or agency. |
| maxListings | integer | No | 200 | Total cap on listings (0 = unlimited). Billed rows. |
| maxPagesPerTask | integer | No | 10 | Pagination depth (~30 listings per page). |
| requestDelay | integer | No | 1500 | Delay in ms between page requests. |
| maxRetries | integer | No | 3 | Retries per request on errors. |
| proxyConfiguration | object | No | Apify Proxy | Datacenter usually works; Residential country IT is a fallback. |
priceMin/Max,areaMin/Max,roomsMin/MaxandadvertiserTypeare applied after fetching, because Subito does not expose price or area as URL parameters. Rooms follow the Italian locali convention — a studio appears asrooms: 1.roomis available for rent only;vacationimpliesvacation_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?
| Field | Description |
|---|---|
| adId | Subito listing identifier |
| detailUrl | Direct link to the listing |
| title / shortDescription | Ad title and a trimmed description |
| transactionType / propertyType | Normalised transaction and property category |
| price / priceCurrency / pricePerSqm | Asking price, currency, and price per m² |
| areaSqm / rooms / bathrooms / floor | Size, locali, bathrooms, and floor |
| energyClass | Energy-efficiency class (APE) |
| region / province / provinceCode / city / microLocation / fullAddress | Location breakdown |
| advertType / advertiserType / advertiserId / advertiserName | Private vs. agency and advertiser details |
| mainImageUrl / imageCount | Primary image and image count |
| isFeatured / isUrgent / datePosted | Promotion flags and posting date |
| searchRegion / scrapedAt | Run 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
- URL — the scraper builds a Subito listing URL from your region, province, city, transaction, and property type.
- Listing — it reads each results page's server-side data (about 30 listings per page).
- Paginate — it walks through pages until
maxListings,maxPagesPerTask, or the end of the listing. - Filter — price, area, room, and advertiser filters run in memory over the fetched listings.
- 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.
| Plan | Price 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
- Click Try for free and sign in to Apify.
- Choose a region, and optionally paste a province and city slug from a Subito URL.
- Pick a transaction and property type.
- Add price, area, room, or advertiser filters if you need them.
- Set max listings (start low, e.g. 100) and max pages.
- Click Start, then watch rows appear in the Output tab.
- Export from Storage, or pull results via the API.
Run it via API
Python:
from apify_client import ApifyClientclient = 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.
Is it legal to scrape Subito.it?
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.
Related actors
- Daraz.pk Ecommerce Scraper — products from Daraz.pk.
- Jobbird Jobs Scraper — vacancies from Jobbird.com (Netherlands).
- Jobs.ie Scraper — job listings from Ireland's Jobs.ie.
- Trulia Property Scraper — US real-estate listings from Trulia.
Browse all ParseBird actors on Apify Store.