# Subito.it 🧡 🏡 Real Estate Scraper (`nogards95/subito-scraper-real-estate`) Actor

Extract property listings from Subito.it, Italy's largest classifieds platform. Scrape apartments, houses and commercial properties for sale or rent. Get price, size, number of rooms, location, seller type and publication date. Built for real estate analysts, investors and lead generation.

- **URL**: https://apify.com/nogards95/subito-scraper-real-estate.md
- **Developed by:** [Nogards](https://apify.com/nogards95) (community)
- **Categories:** Real estate, Lead generation
- **Stats:** 3 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $2.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Subito.it Real Estate Scraper

Extract property listings from **Subito.it**, Italy's largest classifieds site. Search apartments, houses, and offices for sale or rent — filter by city, price, and keywords.

---

### 🎯 Who is this for?

- **Buyers and renters** monitoring the market in a specific city
- **Real estate agencies** tracking competitor listings and pricing
- **Investors** analyzing property prices across Italian cities
- **Developers** building real estate dashboards or alert tools

---

### ⚡ Why this scraper?

- Dedicated to the **Real Estate** category — no noise from general search
- Supports both **for sale** and **for rent** listings
- Extracts **size (m²)**, **rooms**, **seller type** (agency vs private) and **publication date**
- Filter by **city** (e.g. `milano`, `roma`, `napoli`)
- Export in JSON, CSV, Excel, XML

---

### 📥 Input

```json
{
  "tipo": "vendita",
  "location": "milano",
  "keyword": "bilocale",
  "minPrice": 100000,
  "maxPrice": 300000,
  "maxPages": 5
}
````

| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| `tipo` | enum | ❌ | `vendita` | `vendita` (for sale) or `affitto` (for rent) |
| `province` | select | ❌ | Italy-wide | Italian province (e.g. `catania`, `milano`, `roma`) — region resolved automatically |
| `keyword` | string | ❌ | — | Optional search term (e.g. `bilocale`, `villa con giardino`, `attico`) |
| `minPrice` | integer | ❌ | — | Minimum price in EUR |
| `maxPrice` | integer | ❌ | — | Maximum price in EUR |
| `maxPages` | integer | ❌ | 3 | Pages to scrape — each page has ~30 listings (max 50) |

***

### 📦 Output

```json
{
  "titolo": "Bilocale ristrutturato zona Navigli",
  "prezzo": 220000,
  "prezzoRaw": "220.000 €",
  "valuta": "EUR",
  "citta": "Milano (MI)",
  "mq": 55,
  "locali": 2,
  "tipoVenditore": "privato",
  "nomeVenditore": null,
  "dataPubblicazione": "2026-05-20",
  "link": "https://www.subito.it/...",
  "immagini": ["https://..."]
}
```

| Field | Description |
|---|---|
| `mq` | Surface area in square meters (when listed) |
| `locali` | Number of rooms (when listed) |
| `tipoVenditore` | `privato` or `agenzia` |
| `dataPubblicazione` | When the listing was published |

***

### 💡 Example use cases

**Find 2-room apartments for sale in Milan under €250k**

```json
{ "tipo": "vendita", "province": "milano", "keyword": "bilocale", "maxPrice": 250000 }
```

**Monitor rental market in Rome**

```json
{ "tipo": "affitto", "province": "roma", "maxPages": 10 }
```

**Track villas for sale in Naples**

```json
{ "tipo": "vendita", "province": "napoli", "keyword": "villa" }
```

***

### 🔄 Schedule market monitoring

Run on a weekly schedule to track how prices evolve in your target city over time.

***

### 💬 Support

Found a bug or need a feature? Open an issue and I'll get back to you quickly.

# Actor input Schema

## `tipo` (type: `string`):

Search for listings for sale or for rent

## `province` (type: `string`):

Filter by Italian province. The region is resolved automatically. Leave empty to search all Italy.

## `keyword` (type: `string`):

Optional free-text search (e.g., 'bilocale', 'villa con giardino', 'attico'). Leave empty to get all listings.

## `minPrice` (type: `integer`):

Minimum price in euros (optional)

## `maxPrice` (type: `integer`):

Maximum price in euros (optional)

## `maxPages` (type: `integer`):

How many pages to scrape (each page contains ~30 listings)

## Actor input object example

```json
{
  "tipo": "vendita",
  "province": "",
  "keyword": "bilocale",
  "minPrice": 50000,
  "maxPrice": 300000,
  "maxPages": 5
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("nogards95/subito-scraper-real-estate").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("nogards95/subito-scraper-real-estate").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call nogards95/subito-scraper-real-estate --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=nogards95/subito-scraper-real-estate",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Subito.it 🧡 🏡 Real Estate Scraper",
        "description": "Extract property listings from Subito.it, Italy's largest classifieds platform. Scrape apartments, houses and commercial properties for sale or rent. Get price, size, number of rooms, location, seller type and publication date. Built for real estate analysts, investors and lead generation.",
        "version": "1.0",
        "x-build-id": "wDZ4AG3H6sQO9x6BP"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/nogards95~subito-scraper-real-estate/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-nogards95-subito-scraper-real-estate",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/nogards95~subito-scraper-real-estate/runs": {
            "post": {
                "operationId": "runs-sync-nogards95-subito-scraper-real-estate",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/nogards95~subito-scraper-real-estate/run-sync": {
            "post": {
                "operationId": "run-sync-nogards95-subito-scraper-real-estate",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "tipo": {
                        "title": "Listing Type",
                        "enum": [
                            "vendita",
                            "affitto"
                        ],
                        "type": "string",
                        "description": "Search for listings for sale or for rent",
                        "default": "vendita"
                    },
                    "province": {
                        "title": "Province",
                        "enum": [
                            "",
                            "agrigento",
                            "alessandria",
                            "ancona",
                            "aosta",
                            "arezzo",
                            "ascoli-piceno",
                            "asti",
                            "avellino",
                            "bari",
                            "barletta-andria-trani",
                            "belluno",
                            "benevento",
                            "bergamo",
                            "biella",
                            "bologna",
                            "bolzano",
                            "brescia",
                            "brindisi",
                            "cagliari",
                            "caltanissetta",
                            "campobasso",
                            "caserta",
                            "catania",
                            "catanzaro",
                            "chieti",
                            "como",
                            "cosenza",
                            "cremona",
                            "crotone",
                            "cuneo",
                            "enna",
                            "fermo",
                            "ferrara",
                            "firenze",
                            "foggia",
                            "forli-cesena",
                            "frosinone",
                            "genova",
                            "gorizia",
                            "grosseto",
                            "imperia",
                            "isernia",
                            "la-spezia",
                            "l-aquila",
                            "latina",
                            "lecce",
                            "lecco",
                            "livorno",
                            "lodi",
                            "lucca",
                            "macerata",
                            "mantova",
                            "massa-carrara",
                            "matera",
                            "messina",
                            "milano",
                            "modena",
                            "monza-brianza",
                            "napoli",
                            "novara",
                            "nuoro",
                            "oristano",
                            "padova",
                            "palermo",
                            "parma",
                            "pavia",
                            "perugia",
                            "pesaro-urbino",
                            "pescara",
                            "piacenza",
                            "pisa",
                            "pistoia",
                            "pordenone",
                            "potenza",
                            "prato",
                            "ragusa",
                            "ravenna",
                            "reggio-calabria",
                            "reggio-emilia",
                            "rieti",
                            "rimini",
                            "roma",
                            "rovigo",
                            "salerno",
                            "sassari",
                            "savona",
                            "siena",
                            "siracusa",
                            "sondrio",
                            "sud-sardegna",
                            "taranto",
                            "teramo",
                            "terni",
                            "torino",
                            "trapani",
                            "trento",
                            "treviso",
                            "trieste",
                            "udine",
                            "varese",
                            "venezia",
                            "verbano-cusio-ossola",
                            "vercelli",
                            "verona",
                            "vibo-valentia",
                            "vicenza",
                            "viterbo"
                        ],
                        "type": "string",
                        "description": "Filter by Italian province. The region is resolved automatically. Leave empty to search all Italy.",
                        "default": ""
                    },
                    "keyword": {
                        "title": "Keyword (optional)",
                        "type": "string",
                        "description": "Optional free-text search (e.g., 'bilocale', 'villa con giardino', 'attico'). Leave empty to get all listings."
                    },
                    "minPrice": {
                        "title": "Minimum Price (€)",
                        "type": "integer",
                        "description": "Minimum price in euros (optional)"
                    },
                    "maxPrice": {
                        "title": "Maximum Price (€)",
                        "type": "integer",
                        "description": "Maximum price in euros (optional)"
                    },
                    "maxPages": {
                        "title": "Maximum Pages",
                        "minimum": 1,
                        "maximum": 50,
                        "type": "integer",
                        "description": "How many pages to scrape (each page contains ~30 listings)",
                        "default": 3
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
