# Subito.it Scraper (`normdata/subito-scraper`) Actor

Scrape Subito.it ads: price, cars (brand, model, km, year, fuel, power), real estate (m², rooms, energy class), jobs, seller, location, photos. Every Subito filter, no 10,000 result cap. Seller ratings and dealer details as an add-on.

- **URL**: https://apify.com/normdata/subito-scraper.md
- **Developed by:** [Norm Data](https://apify.com/normdata) (community)
- **Categories:** E-commerce, Real estate, Lead generation
- **Stats:** 4 total users, 3 monthly users, 95.5% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $13.00 / 1,000 ad scrapeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

![Norm Data](https://raw.githubusercontent.com/FabriAV/normdata/refs/heads/main/assets/banner_norm2.png)

## 🇮🇹 Subito.it Scraper

Extract ads from **Subito.it**, Italy's biggest classifieds site, with about 12 million live ads: **cars and motorbikes**, **apartments for sale and rent**, **jobs**, phones, furniture, fashion and everything else. Search with every filter Subito has, get past its 10,000 result limit, and receive one clean table with typed fields.

Each ad comes with:

- Title, full description, **price**, ad type (for sale, for rent, wanted, free), category and item condition.
- **Seller**: private or company, company or dealer name, Subito seller and shop IDs, VAT number when shown.
- **Location**: region, province and code, town, ISTAT code, latitude and longitude.
- Posted and expiry dates, urgent flag, **shipping** (available, TuttoSubito or seller, cost).
- **Cars and motorbikes**: brand, model, version, year, registration date, **mileage**, fuel, gearbox, **power (kW and hp)**, Euro class, body type, colour, doors, seats, used/Km 0/new, VAT deductible, OK for new drivers, warranty.
- **Real estate**: **m²**, rooms, bathrooms, floor, condition, **energy class**, heating, parking, furnished, elevator, balcony, garden, air conditioning, top floor, available now, concierge, short-term rental, no agencies.
- **Jobs**: sector, contract, working hours, level, education.
- Every other attribute Subito shows, plus every photo in high resolution.
- Add-on: **phone numbers**, for every ad whose seller shows one on Subito.
- Add-on: **seller details**. Rating out of 5, reviews, reply time, reply rate and last activity. For dealers and agencies also the **address**, **opening hours**, active ads, **Google rating** and shop page.

### 🎯 Who uses it?

#### 🚗 Car dealers and traders

Pull every used Golf, Panda or Serie 3 in your price, year and mileage range across Italy. Price your stock against the market and spot underpriced private sales first.

#### 🏠 Real estate agencies and investors

Collect apartments for sale or rent by town, size, rooms and energy class. Track rent per m² by area and find private landlords (no agencies) to contact.

#### 📈 Market researchers and price trackers

Monitor what phones, consoles, bikes or furniture sell for second hand, by condition and region, week by week.

#### 🧲 Lead generation

List dealers, agencies and shops with their **phone number**, address, opening hours, VAT number, active ads and ratings.

### ✨ What it does

- **Search the way Subito does:**
  - Search terms ("iphone 15", "golf 7", "bilocale"), several per run, in titles only if you like.
  - All **45 categories**, or a whole group (Motori, Immobili, Lavoro...).
  - Ad type: for sale, for rent, holiday rental, wanted, free.
  - **Regions, provinces or towns** (any of Italy's ~7,900 comuni by name).
- **Or paste Subito links:** any search results page, every filter in the link is kept.
- **Every filter Subito has:**
  - Price range, private or company sellers, item condition, shipping available, urgent ads.
  - **Cars and motorbikes**: brands and models, used/Km 0/new, fuel, gearbox, year, mileage, power, body type, Euro class, colour, doors, seats, OK for new drivers, VAT deductible, motorbike type and cc, commercial vehicle and boat type.
  - **Real estate**: property condition, size, rooms, bathrooms, floor, furnished, elevator, balcony, top floor, available now, air conditioning, parking, heating, energy class, room type and tenants for rooms, commercial property type.
  - **Jobs**: sector, contract, working hours, level, education.
  - Clothing type and gender, phone type, bicycle type, animal.
  - 10 sort orders: newest, most relevant, lowest and highest price, newest and oldest year, lowest and highest mileage, most and least powerful.
- **Extra filters:** title words to include or exclude, posted in the last N days, with photos only.
- **New ads only.** For scheduled runs: saves only ads the same search has not saved before.

### 🏆 Why this scraper

- **No 10,000 result cap.** Subito stops every search at 10,000 ads. This scraper splits big searches by region, then province, then price band, so you get **every** ad: tested at 12,500 furniture ads in Lombardia from one search.
- **Fast.** About 1,000 ads in 10 seconds.
- **Typed, ready to analyse.** Price, mileage, year, power, m² and coordinates are numbers. Yes/no attributes are true/false. Dates are ISO.
- **Exact filters.** Subito filters mileage in 5,000 km steps; this scraper keeps exactly the range you ask for.
- **Phone numbers as an add-on**, charged only when a number is found.
- **Dealer and agency details as an add-on.** Address, opening hours, Google rating and active ads, gathered once per shop.
- **No proxy needed.** Nothing extra to set up or pay for.

### ⚖️ How it compares

Based on each Actor's public input options (October 2026).

| Capability | This actor | abotapi | epicscrapers | memo23 | emastra | azzouzana |
|---|:--:|:--:|:--:|:--:|:--:|:--:|
| Search terms | **yes** | yes | yes | yes | links only | links only |
| Subito search links | **yes** | yes | yes | yes | yes | yes |
| Categories | **all 45** | 4 | 46 | 23 | 1 per actor | links only |
| Several regions, provinces or towns per run | **yes** | 1 | 1 | 1 region | no | no |
| Towns by name | **yes** | yes | no | no | no | no |
| Price, seller type, ad type | **yes** | yes | price only | no | private only | no |
| Car filters (brand, model, year, km, fuel, gearbox, body) | **yes** | yes | no | no | no | no |
| Power, Euro class, colour, doors, seats, new drivers | **yes** | no | no | no | no | no |
| Several brands and models per run | **yes** | no | no | no | no | no |
| Real estate filters (m², rooms, bathrooms, condition) | **yes** | yes | no | no | no | no |
| Floor, energy class, elevator, furnished, parking, heating | **yes** | no | no | no | no | no |
| Job filters | **yes** | yes | no | no | no | no |
| Item condition, shipping | **yes** | yes | no | no | no | no |
| Title must / must not contain, posted in last N days | **yes** | no | no | no | no | no |
| Past 10,000 results per search | **yes** | no | no | no | no | no |
| Phone numbers | **add-on** | no | yes | yes | no | no |
| Seller rating, reply time | **add-on** | reviews | yes | yes | no | no |
| Dealer address, opening hours, Google rating | **add-on** | no | shop | no | no | no |
| New ads only (monitoring) | **yes** | yes | no | no | no | no |
| Sort orders | **10** | 12 | 4 | none | none | none |

### 📦 What data you get

| Field | Description |
| --- | --- |
| `id`, `url` | Subito ad ID and the ad page. |
| `title`, `description` | The ad as written by the seller. |
| `price` | Price in euros (monthly rent for rentals). Empty when the ad has no price. |
| `adType`, `category`, `categoryId`, `itemType`, `condition` | For sale / for rent / wanted / free, Subito category, sub type (e.g. "Cellulari e Smartphone") and item condition. |
| `sellerType`, `sellerName`, `sellerId`, `shopId`, `vatNumber` | Private or Company. Names are shown for companies (Subito hides private names). |
| `phone` | Phone add-on: the seller's number, when they show it on Subito. |
| `region`, `province`, `provinceCode`, `town`, `townIstat`, `latitude`, `longitude` | Where the ad is. |
| `postedAt`, `expiresAt`, `urgent` | When it was posted or last renewed, when it expires, urgent badge. |
| `shippingAvailable`, `shippingMethod`, `shippingCost` | Shipping for goods: TuttoSubito or the seller's own, and the cost. |
| `brand`, `model`, `version`, `year`, `registrationDate`, `mileageKm`, `fuel`, `gearbox`, `powerKw`, `powerHp`, `emissionClass`, `bodyType`, `color`, `doors`, `seats`, `vehicleCondition`, `vatDeductible`, `newDriversOk`, `warrantyMonths`, `boatLengthM` | Vehicles. `brand` also holds the brand for fashion. |
| `sizeSqm`, `rooms`, `bathrooms`, `floor`, `propertyCondition`, `energyClass`, `heating`, `parking`, `furnished`, `elevator`, `balcony`, `garden`, `airConditioning`, `topFloor`, `availableNow`, `concierge`, `multiLevel`, `shortTermRental`, `noAgencies`, `rentTo`, `smokersAllowed` | Real estate and rooms. |
| `jobSector`, `contractType`, `workHours`, `jobLevel`, `education` | Jobs. |
| `size`, `gender` | Clothing size and who it is for. |
| `attributes` | Every attribute Subito shows, as label: value (Italian labels). |
| `image`, `images`, `imageCount`, `has360Photos` | Main photo and every photo, high resolution. |
| `sellerRating`, `sellerReviews`, `sellerReplyTime`, `sellerReplyMinutes`, `sellerReplyRate`, `sellerLastActive` | Seller add-on: rating out of 5, reviews, usual reply time, reply rate, last activity. |
| `shopAddress`, `shopActiveAds`, `shopOpeningHours`, `shopGoogleRating`, `shopGoogleReviews`, `shopLogo`, `shopUrl` | Seller add-on, dealers and agencies: address, active ads, weekly hours, Google rating and reviews, logo, shop page. |
| `searchedFor` | Which of your searches or links found it. |
| `scrapedAt` | When the row was collected (UTC). |

#### Example row (trimmed)

```json
{
  "id": 656784035,
  "title": "Jeep Compass 1.6 Multijet II 2WD Limited",
  "price": 21900,
  "adType": "In vendita",
  "category": "Auto",
  "sellerType": "Company",
  "sellerName": "FG CAR SRL",
  "phone": "0811234567",
  "region": "Campania",
  "province": "Napoli",
  "provinceCode": "NA",
  "town": "Poggiomarino",
  "latitude": 40.798631,
  "longitude": 14.540829,
  "postedAt": "2026-10-06T01:35:09.306Z",
  "brand": "JEEP",
  "model": "Compass",
  "version": "1.6 Multijet II 2WD Limited",
  "year": 2022,
  "mileageKm": 28000,
  "fuel": "Diesel",
  "gearbox": "Manuale",
  "powerKw": 96,
  "powerHp": 130,
  "emissionClass": "Euro 6d",
  "vehicleCondition": "Usato",
  "imageCount": 18,
  "shopAddress": "Via Purgatorio, 104, 80047 San Giuseppe NA, Italia",
  "shopActiveAds": 39,
  "shopOpeningHours": "Mon 09:00-13:00, 16:00-20:00; ... Sun 08:00-13:00",
  "url": "https://www.subito.it/auto/jeep-compass-1-6-multijet-ii-2wd-limited-napoli-656784035.htm",
  "searchedFor": "Auto · JEEP · Italy",
  "scrapedAt": "2026-10-06T02:10:00.000Z"
}
```

### 💡 Use cases

#### 🚗 Diesel Golf and Panda under 100,000 km, 2017 or newer

```json
{ "brands": ["Volkswagen", "Fiat"], "models": ["Golf", "Panda"], "fuel": ["2"], "minYear": 2017, "maxMileage": 100000, "maxItems": null }
```

#### 🏠 Furnished 2+ room rentals in Milano under €1,500 with elevator

```json
{ "categories": ["7"], "adType": "u", "towns": ["Milano"], "minRooms": "2", "maxPrice": 1500, "furnished": true, "elevator": true, "maxItems": null }
```

#### 📱 Every iPhone for sale in Lombardia, like new, with shipping

```json
{ "searchTerms": ["iphone"], "categories": ["12"], "regions": ["4"], "itemCondition": ["10", "20"], "shippingOnly": true, "maxItems": null }
```

#### 🧲 Car dealers in Lazio with phone, address and opening hours

```json
{ "categories": ["2"], "regions": ["11"], "sellerType": "company", "includePhone": true, "includeSellerDetails": true, "maxItems": null }
```

#### 🔔 New private-seller apartments in Roma, every morning

```json
{ "categories": ["7"], "adType": "s", "towns": ["Roma"], "sellerType": "private", "onlyNew": true, "maxItems": null }
```

#### 🔗 A search you already made on Subito

```json
{ "urls": ["https://www.subito.it/annunci-lombardia/vendita/moto-e-scooter/bergamo/?q=ducati&ps=3000"], "maxItems": null }
```

### ⚙️ How the input is organised

| Section | What it's for |
| --- | --- |
| **Maximum ads** | Always first: caps the whole run, shared across your searches. Empty means no limit. |
| **What** | Search terms, links, categories, ad type, titles only. |
| **Where** | Regions, provinces or towns. |
| **Price and seller** | Price range, private or company, item condition, shipping, urgent, sort. |
| **Cars and motorbikes** | Brands, models and every vehicle filter. |
| **Real estate** | Size, rooms, floor, energy class and every property filter. |
| **Jobs** | Sector, contract, hours, level, education. |
| **Other categories** | Clothing, phones, bicycles, animals. |
| **Extra filters** | Title words, posted in the last N days, with photos only. |
| **Add-ons** | Phone numbers and seller details. |
| **Monitoring** | New ads only, with an optional monitor name. |

Search terms, categories, brands and places combine: each term is searched in each category, for each brand, in each province or town. Every other filter narrows every search. A filter a category doesn't have is skipped for that category and the log says so.

### 💰 Pricing

Pay-per-event: a one-time **$0.003** when the run starts, plus a price per ad saved to your dataset that drops with your Apify plan. Phone numbers and seller details are optional add-ons.

| Your Apify plan | Per ad | Phone number (per number found) | Seller details (per ad) | 1,000 ads |
| --- | --- | --- | --- | --- |
| Free | $0.019 | +$0.010 | +$0.006 | $19.00 |
| Bronze | $0.017 | +$0.009 | +$0.005 | $17.00 |
| Silver | $0.015 | +$0.008 | +$0.0045 | $15.00 |
| Gold / Platinum / Diamond | $0.013 | +$0.007 | +$0.004 | $13.00 |

The phone add-on is charged only for ads where a number is found. Ads dropped by your filters are not charged. There are no proxy costs. New Apify accounts start with $5 in free credit. On the Free plan a run saves up to 10 ads.

**Speed:** about 1,000 ads in 10 seconds.

### 🚀 Run it

1. Create a free Apify account with $5 in credit.
2. Open the Subito.it Scraper.
3. Type a search term (or keep the prefilled one), pick your categories, places and filters, then click **Start**.
4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

You can also:

- Run it programmatically through the Apify API (`run-sync-get-dataset-items`) or the ApifyClient for JavaScript and Python.
- Schedule it with Apify's built-in Scheduler, with **New ads only** on, to catch new ads every day.

### 🤖 Use with AI agents (MCP)

Give an AI agent live access to Subito ads through the Model Context Protocol:

```
claude mcp add --transport http apify "https://mcp.apify.com?tools=normdata/subito-scraper"
```

Then prompt it in plain language, for example "what do used Fiat Panda 2019 with under 80,000 km cost in Lombardia?".

### 🔧 Troubleshooting

**The log says a search was "split by region" or "by province".**
That's normal. Subito shows at most 10,000 ads per search, so bigger searches are collected piece by piece. Past the first 10,000, rows come region by region.

**"Subito does not support the ... filter here".**
That category doesn't have the filter (for example Elevator in Furniture), so it was skipped for that category only.

**A brand, model or town was ignored.**
Use the name as Subito writes it: "Volkswagen", "Serie 3", "Reggio nell'Emilia". The log lists the models Subito has for the brand.

**Seller names are empty.**
Subito hides private sellers' names. Company, dealer and agency names are always included.

**Many ads have no phone number.**
Only sellers who choose to show their number on Subito have one; the rest are contacted through Subito chat. Dealers and agencies show it most often. You pay only for numbers found.

**A scheduled "New ads only" run saved nothing.**
Nothing new matched since the last run. Changing terms, links or filters starts a fresh memory; set a **Monitor name** to keep it.

### ❓ FAQ

| Question | Answer |
| --- | --- |
| Do I need a Subito account? | No. Only public ad data is read. |
| Is there a result limit? | No. Leave the maximum empty to get the whole search, even past 10,000. |
| Are prices in euros? | Yes. For rentals the price is the monthly rent. |
| Do I get phone numbers? | Yes, with the phone add-on, for every seller who shows one on Subito. |
| Can I scrape a single ad page? | Paste search results links instead; single ad pages are not supported. |
| Does it need a proxy? | No. There is an optional proxy setting if you ever need one. |
| Can I track new ads? | Yes. Turn on **New ads only** and schedule the run. |

### 🛡️ Limits & responsible use

This Actor reads only public ad data shown on Subito.it. It never signs in and never contacts sellers. Phone numbers are only those sellers choose to show publicly. Personal data such as private sellers' phone numbers is protected by the GDPR: use it only with a lawful basis, and in line with Subito's terms.

### 📧 Contact

Need a scraper for a different site, or found something wrong with this one? norm.data.scrapers@gmail.com

### 🧪 Local development

```powershell
bun install
bun run typecheck
bun test/qa.mjs
apify run
```

Local results are stored in `storage/datasets/default`.

# Actor input Schema

## `maxItems` (type: `integer`):

Stop after this many ads in total. Leave empty for no limit (every matching ad, even past the 10,000 results Subito shows per search). The Apify Free plan is always capped at 10.

## `searchTerms` (type: `array`):

One search per line, e.g. "iphone 15", "golf 7", "bilocale". Leave empty to browse a whole category or all of Subito.

## `urls` (type: `array`):

Search results pages, e.g. https://www.subito.it/annunci-lombardia/vendita/auto/milano/?q=golf. Every filter in the link is kept. Ignored filters below do not change links.

## `categories` (type: `array`):

Pick one or more of the 45 Subito categories. Each one is searched separately. Car, real estate and job filters below need a matching category.

## `adType` (type: `string`):

For sale, for rent, wanted, free or holiday rental. Leave empty for every type.

## `titleOnly` (type: `boolean`):

Match the search terms in the ad title only, not the description. Fewer, more precise results.

## `regions` (type: `array`):

Keep only ads in ANY of these regions.

## `provinces` (type: `array`):

Keep only ads in these provinces. Each province is searched separately. Overrides Regions.

## `towns` (type: `array`):

Town (comune) names, e.g. "Bergamo", "Sesto San Giovanni" or "Reggio nell'Emilia". Add the province code to pick between towns with the same name, e.g. "Calliano (TN)". Each town is searched separately. Overrides Regions and Provinces.

## `sellerType` (type: `string`):

Private sellers, or verified companies (car dealers, real estate agencies, shops, employers).

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

Ads priced at least this much. Ads with no price are dropped.

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

Ads priced at most this much.

## `itemCondition` (type: `array`):

Keep only items in ANY of these conditions. For goods (electronics, home, fashion, sports and more).

## `shippingOnly` (type: `boolean`):

Keep only items the seller ships with TuttoSubito. Works for goods categories.

## `urgentOnly` (type: `boolean`):

Keep only ads marked urgent.

## `sortBy` (type: `string`):

Order of the results. Matters most when you set a Maximum. Year, mileage and power sorting only work for cars and motorbikes. Lowest price puts ads with no price first.

## `brands` (type: `array`):

Car or motorbike brands, e.g. "Volkswagen", "Fiat", "BMW", "Ducati". Each brand is searched separately.

## `models` (type: `array`):

Models of the brands above, e.g. "Golf", "Panda", "Serie 3". Needs a brand.

## `vehicleCondition` (type: `array`):

Used, Km 0 or new.

## `fuel` (type: `array`):

Keep only ANY of these.

## `gearbox` (type: `string`):

Manual, automatic or sequential.

## `minYear` (type: `integer`):

First registration year, e.g. 2018.

## `maxYear` (type: `integer`):

First registration year, e.g. 2022.

## `minMileage` (type: `integer`):

At least this many kilometres.

## `maxMileage` (type: `integer`):

At most this many kilometres, e.g. 100000.

## `minPowerHp` (type: `integer`):

Cars only.

## `maxPowerHp` (type: `integer`):

Cars only.

## `bodyType` (type: `array`):

Cars: keep only ANY of these.

## `emissionClass` (type: `array`):

Euro class: keep only ANY of these.

## `colors` (type: `array`):

Cars: keep only ANY of these.

## `doors` (type: `string`):

Cars only.

## `minSeats` (type: `string`):

Cars only.

## `maxSeats` (type: `string`):

Cars only.

## `newDriversOnly` (type: `boolean`):

Cars a new driver (neopatentato) may drive.

## `vatDeductibleOnly` (type: `boolean`):

Vehicles sold with VAT shown (IVA esposta), handy for companies.

## `motoType` (type: `string`):

Moto e Scooter only.

## `minCc` (type: `string`):

Moto e Scooter only.

## `maxCc` (type: `string`):

Moto e Scooter only.

## `commercialType` (type: `string`):

Veicoli commerciali only.

## `boatType` (type: `string`):

Nautica only.

## `propertyCondition` (type: `array`):

Keep only ANY of these.

## `minSize` (type: `integer`):

Floor area in square metres.

## `maxSize` (type: `integer`):

Floor area in square metres.

## `minRooms` (type: `string`):

Rooms (locali), kitchen and living room included.

## `maxRooms` (type: `string`):

Rooms (locali).

## `minBathrooms` (type: `string`):

At least this many bathrooms.

## `maxBathrooms` (type: `string`):

At most this many bathrooms.

## `minFloor` (type: `string`):

Lowest floor.

## `maxFloor` (type: `string`):

Highest floor.

## `furnished` (type: `boolean`):

Furnished properties only.

## `elevator` (type: `boolean`):

With an elevator only.

## `balcony` (type: `boolean`):

With a balcony only.

## `topFloor` (type: `boolean`):

Top floor only.

## `availableNow` (type: `boolean`):

Available immediately only.

## `airConditioning` (type: `boolean`):

With air conditioning only.

## `parking` (type: `array`):

Keep only ANY of these.

## `heating` (type: `string`):

Heating type.

## `minEnergyClass` (type: `string`):

Worst energy class to keep, e.g. G.

## `maxEnergyClass` (type: `string`):

Best energy class to keep, e.g. A4.

## `roomType` (type: `string`):

Camere/Posti letto only: single or double room.

## `rentTo` (type: `string`):

Camere/Posti letto only.

## `smokers` (type: `string`):

Camere/Posti letto only.

## `officeType` (type: `string`):

Uffici e Locali commerciali only.

## `jobSectors` (type: `array`):

Keep only ANY of these.

## `contractType` (type: `string`):

Contract type.

## `workHours` (type: `string`):

Full time, part time and so on.

## `jobLevel` (type: `string`):

Seniority level.

## `education` (type: `string`):

Required education.

## `fashionType` (type: `string`):

Abbigliamento e Accessori only.

## `fashionGender` (type: `string`):

Abbigliamento e Accessori only.

## `phoneType` (type: `string`):

Telefonia only.

## `bicycleType` (type: `string`):

Biciclette only.

## `animalType` (type: `string`):

Animali only.

## `titleIncludes` (type: `array`):

Keep only ads whose title contains ANY of these words, e.g. "128gb", "garanzia". Not case sensitive.

## `titleExcludes` (type: `array`):

Drop ads whose title contains any of these words, e.g. "rotto", "ricambi", "cover".

## `postedWithinDays` (type: `integer`):

Keep only ads posted or renewed in the last N days, e.g. 7.

## `withPhotosOnly` (type: `boolean`):

Drop ads without photos.

## `includeSellerDetails` (type: `boolean`):

Add the seller rating (stars out of 5), number of reviews, usual reply time, reply rate and last activity. For shops and dealers also the address, opening hours, number of active ads, Google rating and shop page. Charged as an add-on per ad that has them.

## `includePhone` (type: `boolean`):

Add the phone number for ads whose seller shows it on Subito (many dealers, agencies and some private sellers). Charged as an add-on only per ad where a number is found.

## `onlyNew` (type: `boolean`):

For scheduled runs: save only ads this same search has not saved before. The first run saves everything; later runs save just what is new. Kept per search (terms, links and filters).

## `monitorName` (type: `string`):

Optional. Give "New ads only" a fixed name to keep its memory even after you change the filters.

## `proxyConfiguration` (type: `object`):

Optional, off by default. Subito works fine without one. Turn it on only if your runs get blocked. Proxy traffic is billed to your Apify account.

## Actor input object example

```json
{
  "maxItems": 10,
  "searchTerms": [
    "iphone 15"
  ],
  "titleOnly": false,
  "sellerType": "all",
  "shippingOnly": false,
  "urgentOnly": false,
  "sortBy": "newest",
  "newDriversOnly": false,
  "vatDeductibleOnly": false,
  "furnished": false,
  "elevator": false,
  "balcony": false,
  "topFloor": false,
  "availableNow": false,
  "airConditioning": false,
  "withPhotosOnly": false,
  "includeSellerDetails": false,
  "includePhone": false,
  "onlyNew": false,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `ads` (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 = {
    "maxItems": 10,
    "searchTerms": [
        "iphone 15"
    ],
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("normdata/subito-scraper").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 = {
    "maxItems": 10,
    "searchTerms": ["iphone 15"],
    "proxyConfiguration": { "useApifyProxy": False },
}

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

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

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

```

## CLI example

```bash
echo '{
  "maxItems": 10,
  "searchTerms": [
    "iphone 15"
  ],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call normdata/subito-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,normdata/subito-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/lsguILLoOwiBcyHDl/builds/TYUPqtkbyaT39i1bQ/openapi.json
