Subito.it Real Estate Scraper
Pricing
from $2.00 / 1,000 results
Subito.it Real Estate Scraper
Extract real estate listings from Subito.it in Italy. Get title, price, surface, rooms, bathrooms, city, agency, URL and investment score. Supports sale/rent, property type filters, deduplication and monitoring mode.
Pricing
from $2.00 / 1,000 results
Rating
5.0
(1)
Developer
Francesco Ayrton Davoli
Maintained by CommunityActor stats
0
Bookmarked
7
Total users
3
Monthly active users
15 days ago
Last modified
Categories
Share
PropScout Italy - Real Estate Scraper
PropScout Italy extracts Italian real estate listings and returns a clean, normalized dataset ready for analysis, monitoring and export.
The actor tries subito.it first. At the moment Subito commonly blocks Apify runs with captcha/403 responses, so the actor automatically falls back to Tecnocasa listings to keep producing a usable dataset.
What this Actor does
- Tries to scrape real estate search results from
subito.it - Falls back to Tecnocasa when Subito blocks Apify traffic
- Supports city, contract type and property type filters
- Extracts normalized listing fields such as title, price, surface, rooms, bathrooms, city, agency and source URL
- Removes likely duplicates with fuzzy matching
- Computes an investment score for quick ranking
- Supports monitoring mode for new-listing detection
- Can send Telegram alerts in monitoring mode
- Returns partial results instead of failing when the time budget is reached
- Tries a specialized Apify Subito actor when direct scraping is blocked by captcha/403
- Falls back to Tecnocasa listings if every Subito route is blocked or empty
Supported source
| Source | Status | Notes |
|---|---|---|
subito.it | Best-effort | Tried first, but frequently blocked by captcha/403 on Apify |
tecnocasa.it | Reliable fallback | Used when Subito direct scraping and the Subito fallback actor return no listings |
Other portals are not advertised in this release because they produced unstable responses, 403 blocks or empty outputs during Apify runs. This keeps the product honest and avoids selling unsupported coverage.
Recommended input
Stable commercial run
{"city": "Milano","contractType": "vendita","propertyType": "appartamento","sources": ["subito"],"maxItems": 200,"fastMode": true,"sourceTimeoutSecs": 120,"useApifyActorFallback": true,"useTecnocasaFallback": true,"deduplication": true,"proxyConfig": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"countryCode": "IT"}}
Higher-volume run
{"city": "Milano","contractType": "vendita","propertyType": "appartamento","sources": ["subito"],"maxItems": 500,"fastMode": true,"sourceTimeoutSecs": 240,"deduplication": true,"proxyConfig": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"countryCode": "IT"}}
Input fields
| Field | Type | Description |
|---|---|---|
city | string | Required city name, for example Roma, Milano, Napoli |
sources | array | Supported value: ["subito"] |
contractType | string | vendita or affitto |
propertyType | string | appartamento, villa, ufficio, negozio, terreno, box |
priceMin | integer | Minimum price in EUR |
priceMax | integer | Maximum price in EUR |
surfaceMin | integer | Minimum surface in square meters |
maxItems | integer | Maximum listings to extract. This is a ceiling, not a guaranteed final count |
fastMode | boolean | Keeps runs responsive by using faster waits and fewer retries |
sourceTimeoutSecs | integer | Time budget before returning partial results |
deduplication | boolean | Removes likely repeated listings |
monitoringMode | boolean | Outputs only new listings compared with previous runs |
useApifyActorFallback | boolean | Calls a compatible Apify actor if Subito blocks direct scraping with captcha/403 |
fallbackActorId | string | Actor ID used for the fallback. Default: emastra/subito-it-immobili |
upstreamApifyToken | string | Optional API token for the fallback actor if the run token is not enough |
onlyPrivate | boolean | Requests only private advertisers from the fallback actor |
useTecnocasaFallback | boolean | Uses Tecnocasa listings as a final fallback when all Subito paths are blocked |
telegramBotToken | string | Telegram bot token for monitoring mode |
telegramChatId | string | Telegram chat destination for monitoring mode |
proxyConfig | object | Apify proxy configuration. Italian RESIDENTIAL proxy is recommended |
Apify Store health checks
The default input is intentionally small (Milano, MI, maxItems: 20) so Apify automated tests can finish quickly and produce a non-empty dataset. If the Actor is marked as under maintenance after a fix, rebuild it, run Restore example input in the Source > Input tab, confirm the run returns results, then remove the maintenance flag in the Publication tab.
Output schema
Each item follows a normalized schema like:
{"source": "tecnocasa.it","listing_id": "tc_example-id","title": "Bilocale in vendita - Milano, Via Example - Loreto","description": null,"price": 259000,"price_sqm": 4317,"surface_sqm": 60,"rooms": 2,"bathrooms": 1,"floor": "2","city": "Milano","zone": null,"address": null,"lat": null,"lng": null,"contract_type": "vendita","property_type": "appartamento","agency": "Tecnocasa","images": [],"investment_score": 68,"score_reasons": ["Good price/sqm", "Incomplete location data"],"zone_avg_price_sqm": null,"url": "https://www.tecnocasa.it/vendita/appartamenti/milano/milano/example.html","scraped_at": "2026-04-09T10:00:00.000Z"}
Notes for buyers and users
maxItemsis a target ceiling. Final output can be lower if fewer results are available or deduplication removes repeated listings.fastMode: trueis recommended for Apify production runs.- Use
sourceTimeoutSecs: 120or higher for larger exports. - Some fields, such as exact address, latitude, longitude and images, depend on what is visible in the search result cards.
- The Actor is designed to return usable partial results instead of timing out the entire run.
- If
sourceistecnocasa.it, Subito was blocked or empty and the final fallback produced the listing.
Local development
npm installnpm start