Subito Real Estate Scraper
Italian property listings from Subito.it as clean JSON: surface, rooms, bathrooms, condition, energy class and computed price per square meter as...
Italian property listings from Subito.it as clean JSON: surface, rooms, bathrooms, condition, energy class and computed price per square meter as first-class columns. Agency-free flag included - advertiser identity never collected. Pay per result.
$3.00 / 1,000 · 100.0% success over 26 public runs in the last 30 days.
Run it on Apify → Free to try - runs bill per result on your own account.
What you give it
Every field is optional unless marked; sensible defaults do the rest.
| Field | Type | What it does | Default |
|---|---|---|---|
searchQuery |
string | Optional keyword, e.g. "trilocale" or "attico terrazzo". Leave empty to browse the whole category, newest first. Leave it out when you only re-check listings through listingIds. | trilocale |
listingIds |
array | Re-check listings you already know instead of searching: one listing ID per line (the number before .htm at the end of every Subito address, and the listingId of every dataset item), or the listing's full address. Each one comes back in exactly the shape a search result has - same fields, same values. A listing that is gone from the site (sold, expired, removed) is skipped, named in the log and not billed. When given, the search fields of this form are ignored and the run status says which. Up to 50. |
[] |
categoryId |
integer | Subito real-estate category. 7 = Appartamenti (default). Other Subito category ids work too - the id is in the category page URL. | 7 |
priceMinEur |
integer | Only properties costing at least this much. | - |
priceMaxEur |
integer | Only properties costing at most this much. | - |
sortBy |
string | date (newest first, best for monitoring) or relevance. | date |
postedAfter |
string | Only listings posted on or after this date. With newest-first sorting the run stops early once it reaches older listings. Format: YYYY-MM-DD (for example 2026-09-08) or a full ISO timestamp such as 2026-09-08T14:30:00Z. Slash dates like 08/09/2026 are refused on purpose: they are read as September in Europe and August in the United States, and this actor will not guess which you meant. |
- |
postedBefore |
string | Only listings posted on or before this date. Format: YYYY-MM-DD (for example 2026-09-08) or a full ISO timestamp such as 2026-09-08T14:30:00Z. Slash dates like 08/09/2026 are refused on purpose: they are read as September in Europe and August in the United States, and this actor will not guess which you meant. |
- |
maxItems |
integer | Stop after this many properties. Free-plan runs are capped at 5 items. The form starts at 25 for a cheap first run - that is the form's prefill, not a cap on your plan; clear it to use the default of 500. | 500 |
reportFailures |
boolean | When a run fails, send the developer the actor name and build, an error category, the error message (truncated) and a one-way hash of your input - so a bug can be fixed without anyone asking you to reproduce it. Your input itself, your results and your identity are never sent, and successful runs send nothing at all. Switch this off and the actor behaves exactly the same. | True |
What you get back
One JSON object per result, with exactly these fields - no seller identities, no contact data, ever.
A real result row from a recent run:
{
"agencyFree": false,
"airConditioning": false,
"balcony": true,
"bathrooms": 1,
"buildingCondition": "Ottimo - ristrutturato",
"category": "Appartamenti",
"currency": "EUR",
"description": "Scopri la tua nuova casa nel cuore di Montesilvano, nella rinomata zona Pineta! Ti proponiamo in vendita un affascinante appartamento biloca...",
"elevator": true,
"energyClass": "In attesa di certificazione",
"floor": "Oltre il 7°",
"furnished": true,
"garden": false,
"heating": "Autonomo",
"imageUrls": [
"https://images.sbito.it/api/v1/sbt-ads-images-pro/images/a2/a2b2dafc-cda2-434b-8baa-39acd50ac45c",
"https://images.sbito.it/api/v1/sbt-ads-images-pro/images/12/12639430-64b5-4522-b801-5e1a90b3520a",
"https://images.sbito.it/api/v1/sbt-ads-images-pro/images/97/97df9bf6-efa3-4ab6-9dff-9ce1867bc932",
"https://images.sbito.it/api/v1/sbt-ads-images-pro/images/7c/7c650e7c-b51c-4298-841c-1e63d582557f",
"https://images.sbito.it/api/v1/sbt-ads-images-pro/images/44/44750ed5-57e9-4f2b-9488-e2adca0f8dc7",
"https://images.sbito.it/api/v1/sbt-ads-images-pro/images/09/093164c5-09a0-478d-85e3-dc36247025ac",
"https://images.sbito.it/api/v1/sbt-ads-images-pro/images/89/8933b06a-41b1-4b2e-aafc-3377db4b793a"
],
"listingId": "661954238",
"parking": null,
"postedAt": "2026-10-17 15:54:41",
"priceEur": 110000,
"pricePerM2Eur": 2200,
"province": "Pescara",
"region": "Abruzzo",
"rooms": 2,
"sellerType": "business",
"sizeM2": 50,
"title": "Bilocale ristrutturato",
"town": "Montesilvano",
"url": "https://www.subito.it/appartamenti/bilocale-ristrutturato-pescara-661954238.htm"
}
| Field | Type | Meaning |
|---|---|---|
listingId |
string | Subito listing ID. |
url |
string | Direct link to the listing. |
title |
string | Listing title as posted. |
description |
['string', 'null'] | Seller's listing text. The site masks contact data with placeholders; they are stripped. |
priceEur |
['integer', 'null'] | Asking price in whole euros. Missing on permuta/on-request listings. |
currency |
string | Always EUR. |
category |
['string', 'null'] | Subito category label. |
sizeM2 |
['integer', 'null'] | Surface in square meters. |
pricePerM2Eur |
['integer', 'null'] | Computed price per square meter (price / size, rounded). |
rooms |
['integer', 'null'] | Number of rooms (locali) when stated. |
bathrooms |
['integer', 'null'] | Number of bathrooms when stated. |
floor |
['string', 'null'] | Floor as displayed by the site. |
buildingCondition |
['string', 'null'] | Condition as displayed, e.g. "Ottimo - ristrutturato", "Da ristrutturare". |
energyClass |
['string', 'null'] | Energy class A-G when stated. |
heating |
['string', 'null'] | Heating type, e.g. Autonomo, Centralizzato. |
parking |
['string', 'null'] | Parking situation, e.g. "Box privato". |
furnished |
['boolean', 'null'] | True when listed as furnished. |
balcony |
['boolean', 'null'] | True when a balcony is stated. |
garden |
['boolean', 'null'] | True when a garden is stated. |
elevator |
['boolean', 'null'] | True when the building has an elevator. |
airConditioning |
['boolean', 'null'] | True when air conditioning is stated. |
agencyFree |
['boolean', 'null'] | True when listed without an agency ("no agente"). Advertiser identity is never collected. |
town |
['string', 'null'] | Municipality. Exact addresses are never collected. |
province |
['string', 'null'] | Province. |
region |
['string', 'null'] | Italian region. |
sellerType |
string | business or private. Advertiser identity is never collected. |
postedAt |
['string', 'null'] | Posting timestamp as reported by the site. |
imageUrls |
array | Photo URLs (up to 8). |
Health
100.0% success over 26 public runs in the last 30 days. Live record, failures included: status page.
Full documentation, examples and the AI-assistant prompt live on the store page.