# Subito.it – Italy Listings, Cars, Property & Jobs (`abotapi/subito-it-scraper`) Actor

Scrape Subito.it listings across cars, real estate, marketplace, jobs, and more. Search by keyword and filters or use Subito URLs. Returns prices, descriptions, photos, specs, seller details, location, 60+ fields, and optional seller reputation.

- **URL**: https://apify.com/abotapi/subito-it-scraper.md
- **Developed by:** [AbotAPI](https://apify.com/abotapi) (community)
- **Categories:** Real estate, E-commerce, Jobs
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.50 / 1,000 listing results

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/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 Listings Scraper

Extract classified listings from subito.it, Italy's biggest classifieds marketplace, across **cars & motors, real estate, marketplace goods, and jobs** — all from one actor. Search by keyword with vertical-specific filters, or paste any subito.it search or listing URL, and get clean structured records: prices, full Italian descriptions, every photo, vehicle and property specs, job details, seller contact and shop info, precise location, and optional seller reputation. Quick to run and dependable at any volume.

### Why this scraper

- **One actor, four verticals.** Cars & motors, real estate, marketplace goods, and jobs — each with its own filter set, sharing one consistent output shape.
- **60+ fields per listing**, with the full description, every photo, condition, seller details and location on every record.
- **Vertical-specific specs.** Make / model / year / mileage / fuel / gearbox for cars, surface / rooms / bathrooms / floor / energy class for property, sector / contract / hours / education for jobs, condition / shipping for marketplace goods.
- **Seller reputation, on demand.** Optionally attach each seller's public reputation — overall score, feedback counts, reply rate, member-since and verification — fetched once per unique seller.
- **Two ways in.** Search by keyword + filters, or paste subito.it search and listing URLs and let it walk forward.
- **Rich by default, deeper on demand.** Search results are already complete; turn on full details to also pull each vehicle's technical specs (engine size, kW/HP, cylinders, gears, drive, dimensions, weight) and full equipment/optionals list.
- Italian residential connection support with automatic rotation for reliable, large runs.

### Data you get

> Sample shape, values are illustrative placeholders, not from a live listing.

| Field | Example |
| --- | --- |
| id | 000000000 |
| url | https://www.subito.it/auto/sample-listing-000000000.htm |
| title | Sample listing title |
| description | Full listing description text appears here. |
| price | 12500 |
| currency | EUR |
| adType | Vendita |
| category | Auto |
| condition | Ottimo |
| region | Lombardia |
| city | Milano |
| town | Milano |
| imageCount | 8 |
| images | ["https://images.example-cdn/000000000/0.jpg"] |
| sellerName | Sample Seller |
| sellerType | private |
| isCompany | false |
| sellerPhone | +390000000000 |
| shopName | Sample Shop |
| postedAt | 2026-01-01T10:00:00+01:00 |
| maker | Volkswagen |
| model | Golf |
| yearOfRegistration | 2019 |
| mileage | 65000 |
| fuelType | Diesel |
| transmission | Manuale |
| size | 90 |
| rooms | 3 |
| energyClass | C |
| jobCategory | Amministrazione |
| contractType | Tempo indeterminato |

### How to use

Search marketplace goods by keyword:

```json
{
  "category": "marketplace",
  "searchQuery": "iphone 15",
  "condition": ["10", "20"],
  "priceMin": 200,
  "priceMax": 600,
  "maxItems": 100
}
````

Search cars with vehicle filters:

```json
{
  "category": "auto",
  "searchQuery": "golf",
  "yearMin": 2017,
  "mileageMax": 100000,
  "fuelType": ["2"],
  "gearbox": "1",
  "sort": "priceasc",
  "maxItems": 200
}
```

Search real estate to rent, in one province:

```json
{
  "category": "realestate",
  "adType": "u",
  "city": "Roma",
  "sizeMin": 60,
  "roomsMin": 2,
  "priceMax": 1500,
  "maxItems": 150
}
```

Search jobs, with seller reputation attached:

```json
{
  "category": "jobs",
  "searchQuery": "magazziniere",
  "workHours": "fulltime",
  "scrapeReviews": true,
  "maxItems": 100
}
```

Paste search and listing URLs (filters are read from each URL):

```json
{
  "category": "marketplace",
  "startUrls": [
    "https://www.subito.it/annunci-italia/vendita/usato/?q=bici",
    "https://www.subito.it/auto/sample-listing-000000000.htm"
  ],
  "maxItems": 200
}
```

### Input parameters

| Parameter | Type | Default | Description |
| --- | --- | --- | --- |
| category | string | marketplace | Vertical to scrape: auto, realestate, marketplace, jobs |
| searchQuery | string | empty | Free-text keyword (empty browses all listings in the vertical) |
| subjectOnly | boolean | false | Match the keyword against the title only |
| region / city / town | string | none | Narrow by region, province, or town |
| priceMin / priceMax | integer | none | Price range in euro |
| sellerType | string | any | any, private, or company |
| sort | string | newest | Newest, relevance, price, plus year / mileage / power / length for cars |
| adType | string | offer | Offer, wanted, rent, holiday rental, or free (by vertical) |
| condition / shippableOnly | array / boolean | none | Marketplace: item condition and shipping filter |
| brand / model / yearMin / yearMax / mileageMin / mileageMax / fuelType / gearbox / bodyType / vehicleStatus | mixed | none | Cars: vehicle filters |
| sizeMin / sizeMax / roomsMin / roomsMax / bathroomsMin / buildingCondition | mixed | none | Real estate: property filters |
| jobCategory / contractType / workHours / educationDegree | mixed | none | Jobs: sector, contract, hours, education filters |
| startUrls | array | empty | Search or listing URLs (take precedence per entry) |
| scrapeDetail | boolean | false | Vehicles only — fetch full vehicle specs, dimensions and equipment list |
| scrapeReviews | boolean | false | Attach each unique seller's public reputation |
| maxItems | integer | 100 | Total cap across all searches and URLs |
| maxItemsPerQuery | integer | none | Per-search / per-URL cap for multi-search runs |
| proxy | object | IT residential | Connection configuration |
| mcpConnectors | array | empty | Pipe results into your apps via MCP connectors (see below) |

### Send results into your apps (MCP connectors)

Optionally pipe the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. This is an extra delivery step **after** the scrape — the Apify dataset is never changed.

**What gets written to the connector:** a condensed, human-readable **summary** of each record — not the full JSON. Each item becomes one entry with a **title** and its key fields flattened to plain text. The **complete record always stays in the Apify dataset**.

1. Authorize a connector once under **Apify → Settings → Integrations**.
2. Select it in the **"Pipe results into your apps"** input field. (If the picker is empty, you haven't authorized a connector yet.)

The connection is mediated by Apify's MCP proxy, so this actor never sees your third-party credentials. Leave the field empty to skip.

### Output example

> Sample shape, values are illustrative placeholders, not from a live listing.

```json
{
  "id": "000000000",
  "url": "https://www.subito.it/auto/sample-listing-000000000.htm",
  "title": "Sample listing title",
  "description": "Full listing description text appears here.",
  "price": 12500,
  "priceRaw": "12.500 €",
  "currency": "EUR",
  "adType": "Vendita",
  "category": "Auto",
  "categorySlug": "auto",
  "reference": "ABC12345",
  "postedAt": "2026-01-01T10:00:00+01:00",
  "expiresAt": "2026-03-01T10:00:00+01:00",
  "region": "Lombardia",
  "city": "Milano",
  "town": "Milano",
  "imageCount": 8,
  "images": ["https://images.example-cdn/000000000/0.jpg"],
  "sellerId": "00000000",
  "sellerName": "Sample Seller",
  "sellerType": "private",
  "isCompany": false,
  "sellerPhone": "+390000000000",
  "sellerVat": null,
  "shopId": null,
  "shopName": null,
  "condition": "Ottimo",
  "shippingAvailable": false,
  "maker": "Volkswagen",
  "model": "Golf",
  "version": "1.6 TDI",
  "yearOfRegistration": "2019",
  "mileage": 65000,
  "power": "85 kW",
  "fuelType": "Diesel",
  "transmission": "Manuale",
  "bodyType": "Berlina",
  "size": null,
  "rooms": null,
  "bathrooms": null,
  "energyClass": null,
  "jobCategory": null,
  "contractType": null,
  "features": [],
  "sellerReputation": {
    "overallScore": 4.9,
    "receivedCount": 120,
    "sellerFeedbackCount": 95,
    "buyerFeedbackCount": 25,
    "verified": true,
    "memberSince": "2018",
    "replyRateText": "Risponde quasi sempre",
    "replyTimeText": "Risponde in poche ore",
    "profileUrl": "https://www.subito.it/utente/00000000"
  }
}
```

Fields outside the active vertical come back empty — a car listing leaves the property and job specs `null`, and vice versa — so every record keeps the same predictable shape. `sellerReputation` is present only when **Fetch seller reputation** is on. Individual written review texts are not publicly available on subito.it; only the aggregate reputation is returned.

### Seller reputation

Turn on **Fetch seller reputation** to attach a `sellerReputation` block to every listing. Each unique seller is fetched once and cached, so multiple listings from the same seller share one lookup. The block carries the overall score, total and seller/buyer feedback counts, member-since year, verification status, and reply-rate and reply-time indicators.

### Pricing

This actor is billed **pay per result**: **$0.80 per 1,000 listings**, plus a small **per-run start fee** ($0.02 on the Free tier, less on higher plans). The total cap (`maxItems`) lets you size every run precisely. Full vehicle-detail lookups (vehicles only) and seller-reputation lookups are each billed separately — per vehicle and per unique seller respectively — only when those options are enabled.

### Plan requirement

An Apify plan that includes Residential proxy (Starter or higher) is recommended, with the country set to IT for the most reliable results. A free plan without Residential proxy may return few or no results.

# Actor input Schema

## `category` (type: `string`):

Which Subito.it vertical to scrape. This drives the default landing section and decides which vertical-specific filters below apply. Cars, real estate and jobs each expose their own filter set; marketplace covers all the consumer-goods categories.

## `searchQuery` (type: `string`):

Free-text keyword. Leave empty to browse all listings in the chosen vertical. Used together with the filters below. If a Start URL is also given, the URL takes precedence for that entry.

## `subjectOnly` (type: `boolean`):

Match the keyword only against the ad title (not the description).

## `region` (type: `string`):

Region name or region id. Leave empty for all of Italy.

## `city` (type: `string`):

Province (provincia) name or id to narrow results.

## `town` (type: `string`):

Town (comune) name or id to narrow results further.

## `priceMin` (type: `integer`):

Minimum price in euro. For jobs this maps to the advertised salary when present.

## `priceMax` (type: `integer`):

Maximum price in euro.

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

Filter by advertiser. Any = both, Private = individuals, Company = businesses/dealers.

## `sort` (type: `string`):

Result ordering. Relevance / newest / price options work for every vertical; the year, mileage, power and length options only apply to cars & motors.

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

Transaction type. Offer (vendita) and Wanted (cercasi) apply broadly; Rent and Holiday rental apply to real estate; Free (in regalo) applies to marketplace. Cars and jobs only support Offer.

## `condition` (type: `array`):

Marketplace only. Filter by item condition. Choose one or more.

## `shippableOnly` (type: `boolean`):

Marketplace only. Show only ads that offer shipping.

## `brand` (type: `string`):

Cars only. Brand id (e.g. 000101 = Volkswagen).

## `model` (type: `string`):

Cars only. Model id (depends on the chosen brand).

## `yearMin` (type: `integer`):

Cars only. Earliest registration year.

## `yearMax` (type: `integer`):

Cars only. Latest registration year.

## `mileageMin` (type: `integer`):

Cars only. Minimum kilometres.

## `mileageMax` (type: `integer`):

Cars only. Maximum kilometres.

## `fuelType` (type: `array`):

Cars only. Filter by fuel. Choose one or more.

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

Cars only. Transmission type.

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

Cars only. Filter by body style. Choose one or more.

## `vehicleStatus` (type: `array`):

Cars only. Used, zero-km or new. Choose one or more.

## `sizeMin` (type: `integer`):

Real estate only. Minimum surface in square metres.

## `sizeMax` (type: `integer`):

Real estate only. Maximum surface in square metres.

## `roomsMin` (type: `integer`):

Real estate only. Minimum number of rooms.

## `roomsMax` (type: `integer`):

Real estate only. Maximum number of rooms.

## `bathroomsMin` (type: `integer`):

Real estate only. Minimum number of bathrooms.

## `buildingCondition` (type: `array`):

Real estate only. Filter by property condition. Choose one or more.

## `jobCategory` (type: `array`):

Jobs only. Filter by job sector. Choose one or more.

## `contractType` (type: `array`):

Jobs only. Filter by contract type. Choose one or more.

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

Jobs only. Filter by working hours.

## `educationDegree` (type: `string`):

Jobs only. Filter by required education level.

## `startUrls` (type: `array`):

Paste subito.it search URLs (/annunci-italia/...) or listing detail URLs (ending in .htm). Search URLs are parsed into search parameters; a detail URL enriches that single ad. Can be combined with a keyword search — the URL wins for each entry it covers.

## `scrapeDetail` (type: `boolean`):

Vehicles only (category Cars & motors). When on, opens each vehicle's page to add full technical specs (engine size, kW/HP, cylinders, gears, drive, dimensions, weight) and the complete equipment/optionals list. Adds one request per vehicle. Other categories already return their full data from search and are unaffected.

## `scrapeReviews` (type: `boolean`):

When on, fetch each unique seller's public reputation once and attach it to their listings. Adds one request per unique seller. Individual written review texts are not publicly available; only the aggregate reputation is returned.

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

Hard cap on the total number of listings across all searches and URLs.

## `maxItemsPerQuery` (type: `integer`):

Per-search / per-URL cap for multi-search runs. Leave empty for no per-search limit (still bounded by Max items).

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

Residential proxy is required for reliable access; the actor defaults the country to Italy.

## `mcpConnectors` (type: `array`):

Optionally send the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize a connector once under Apify → Settings → Integrations, then select it here. The connector receives a condensed, human-readable summary per item (title + key fields), not the full JSON — the complete record stays in the dataset. Leave empty to skip. Supported: Apify (https://mcp.apify.com).

## Actor input object example

```json
{
  "category": "marketplace",
  "subjectOnly": false,
  "sellerType": "any",
  "sort": "datedesc",
  "adType": "s",
  "shippableOnly": false,
  "startUrls": [],
  "scrapeDetail": false,
  "scrapeReviews": false,
  "maxItems": 100,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "IT"
  }
}
```

# Actor output Schema

## `overview` (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 = {
    "category": "marketplace",
    "searchQuery": "",
    "region": "",
    "city": "",
    "town": "",
    "brand": "",
    "model": "",
    "startUrls": [],
    "maxItems": 100,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "IT"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("abotapi/subito-it-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 = {
    "category": "marketplace",
    "searchQuery": "",
    "region": "",
    "city": "",
    "town": "",
    "brand": "",
    "model": "",
    "startUrls": [],
    "maxItems": 100,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "IT",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("abotapi/subito-it-scraper").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 '{
  "category": "marketplace",
  "searchQuery": "",
  "region": "",
  "city": "",
  "town": "",
  "brand": "",
  "model": "",
  "startUrls": [],
  "maxItems": 100,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "IT"
  }
}' |
apify call abotapi/subito-it-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Subito.it – Italy Listings, Cars, Property & Jobs",
        "description": "Scrape Subito.it listings across cars, real estate, marketplace, jobs, and more. Search by keyword and filters or use Subito URLs. Returns prices, descriptions, photos, specs, seller details, location, 60+ fields, and optional seller reputation.",
        "version": "1.0",
        "x-build-id": "oMDfPNU3SU0NHVP3l"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/abotapi~subito-it-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-abotapi-subito-it-scraper",
                "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/abotapi~subito-it-scraper/runs": {
            "post": {
                "operationId": "runs-sync-abotapi-subito-it-scraper",
                "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/abotapi~subito-it-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-abotapi-subito-it-scraper",
                "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",
                "required": [
                    "category",
                    "proxyConfiguration"
                ],
                "properties": {
                    "category": {
                        "title": "Vertical",
                        "enum": [
                            "auto",
                            "realestate",
                            "marketplace",
                            "jobs"
                        ],
                        "type": "string",
                        "description": "Which Subito.it vertical to scrape. This drives the default landing section and decides which vertical-specific filters below apply. Cars, real estate and jobs each expose their own filter set; marketplace covers all the consumer-goods categories.",
                        "default": "marketplace"
                    },
                    "searchQuery": {
                        "title": "Search query",
                        "type": "string",
                        "description": "Free-text keyword. Leave empty to browse all listings in the chosen vertical. Used together with the filters below. If a Start URL is also given, the URL takes precedence for that entry."
                    },
                    "subjectOnly": {
                        "title": "Search title only",
                        "type": "boolean",
                        "description": "Match the keyword only against the ad title (not the description).",
                        "default": false
                    },
                    "region": {
                        "title": "Region",
                        "type": "string",
                        "description": "Region name or region id. Leave empty for all of Italy."
                    },
                    "city": {
                        "title": "Province / city",
                        "type": "string",
                        "description": "Province (provincia) name or id to narrow results."
                    },
                    "town": {
                        "title": "Town (comune)",
                        "type": "string",
                        "description": "Town (comune) name or id to narrow results further."
                    },
                    "priceMin": {
                        "title": "Min price (EUR)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Minimum price in euro. For jobs this maps to the advertised salary when present."
                    },
                    "priceMax": {
                        "title": "Max price (EUR)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum price in euro."
                    },
                    "sellerType": {
                        "title": "Advertiser type",
                        "enum": [
                            "any",
                            "private",
                            "company"
                        ],
                        "type": "string",
                        "description": "Filter by advertiser. Any = both, Private = individuals, Company = businesses/dealers.",
                        "default": "any"
                    },
                    "sort": {
                        "title": "Sort order",
                        "enum": [
                            "datedesc",
                            "relevance",
                            "priceasc",
                            "pricedesc",
                            "yearasc",
                            "yeardesc",
                            "mileageasc",
                            "mileagedesc",
                            "hpasc",
                            "hpdesc",
                            "vlenasc",
                            "vlendesc"
                        ],
                        "type": "string",
                        "description": "Result ordering. Relevance / newest / price options work for every vertical; the year, mileage, power and length options only apply to cars & motors.",
                        "default": "datedesc"
                    },
                    "adType": {
                        "title": "Ad type",
                        "enum": [
                            "s",
                            "k",
                            "u",
                            "h",
                            "g"
                        ],
                        "type": "string",
                        "description": "Transaction type. Offer (vendita) and Wanted (cercasi) apply broadly; Rent and Holiday rental apply to real estate; Free (in regalo) applies to marketplace. Cars and jobs only support Offer.",
                        "default": "s"
                    },
                    "condition": {
                        "title": "Item condition",
                        "type": "array",
                        "description": "Marketplace only. Filter by item condition. Choose one or more.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "10",
                                "20",
                                "30",
                                "40",
                                "50"
                            ],
                            "enumTitles": [
                                "New",
                                "Like new",
                                "Excellent",
                                "Good",
                                "Damaged"
                            ]
                        }
                    },
                    "shippableOnly": {
                        "title": "Shippable only",
                        "type": "boolean",
                        "description": "Marketplace only. Show only ads that offer shipping.",
                        "default": false
                    },
                    "brand": {
                        "title": "Brand id",
                        "type": "string",
                        "description": "Cars only. Brand id (e.g. 000101 = Volkswagen)."
                    },
                    "model": {
                        "title": "Model id",
                        "type": "string",
                        "description": "Cars only. Model id (depends on the chosen brand)."
                    },
                    "yearMin": {
                        "title": "Min registration year",
                        "type": "integer",
                        "description": "Cars only. Earliest registration year."
                    },
                    "yearMax": {
                        "title": "Max registration year",
                        "type": "integer",
                        "description": "Cars only. Latest registration year."
                    },
                    "mileageMin": {
                        "title": "Min mileage (km)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Cars only. Minimum kilometres."
                    },
                    "mileageMax": {
                        "title": "Max mileage (km)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Cars only. Maximum kilometres."
                    },
                    "fuelType": {
                        "title": "Fuel type",
                        "type": "array",
                        "description": "Cars only. Filter by fuel. Choose one or more.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "1",
                                "2",
                                "3",
                                "4",
                                "5",
                                "6",
                                "7"
                            ],
                            "enumTitles": [
                                "Petrol",
                                "Diesel",
                                "LPG",
                                "Electric",
                                "Other",
                                "Hybrid",
                                "Methane"
                            ]
                        }
                    },
                    "gearbox": {
                        "title": "Gearbox",
                        "enum": [
                            "1",
                            "2",
                            "3",
                            "4"
                        ],
                        "type": "string",
                        "description": "Cars only. Transmission type."
                    },
                    "bodyType": {
                        "title": "Body type",
                        "type": "array",
                        "description": "Cars only. Filter by body style. Choose one or more.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "1",
                                "2",
                                "3",
                                "4",
                                "5",
                                "6",
                                "7",
                                "8",
                                "10"
                            ],
                            "enumTitles": [
                                "City / small",
                                "Saloon",
                                "Estate / wagon",
                                "MPV / minivan",
                                "SUV / off-road",
                                "Convertible",
                                "Coupe",
                                "City car",
                                "Other"
                            ]
                        }
                    },
                    "vehicleStatus": {
                        "title": "Vehicle condition",
                        "type": "array",
                        "description": "Cars only. Used, zero-km or new. Choose one or more.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "1",
                                "2",
                                "3"
                            ],
                            "enumTitles": [
                                "Used",
                                "Zero km",
                                "New"
                            ]
                        }
                    },
                    "sizeMin": {
                        "title": "Min surface (m²)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Real estate only. Minimum surface in square metres."
                    },
                    "sizeMax": {
                        "title": "Max surface (m²)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Real estate only. Maximum surface in square metres."
                    },
                    "roomsMin": {
                        "title": "Min rooms",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Real estate only. Minimum number of rooms."
                    },
                    "roomsMax": {
                        "title": "Max rooms",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Real estate only. Maximum number of rooms."
                    },
                    "bathroomsMin": {
                        "title": "Min bathrooms",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Real estate only. Minimum number of bathrooms."
                    },
                    "buildingCondition": {
                        "title": "Building condition",
                        "type": "array",
                        "description": "Real estate only. Filter by property condition. Choose one or more.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "10",
                                "20",
                                "30",
                                "40"
                            ],
                            "enumTitles": [
                                "New build",
                                "Excellent",
                                "Good",
                                "To renovate"
                            ]
                        }
                    },
                    "jobCategory": {
                        "title": "Job sector",
                        "type": "array",
                        "description": "Jobs only. Filter by job sector. Choose one or more.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "100",
                                "101",
                                "102",
                                "103",
                                "104",
                                "105",
                                "106",
                                "107",
                                "108",
                                "109",
                                "110",
                                "111",
                                "112",
                                "113",
                                "114",
                                "115",
                                "116",
                                "117",
                                "118",
                                "119",
                                "120",
                                "121",
                                "122",
                                "123",
                                "124"
                            ]
                        }
                    },
                    "contractType": {
                        "title": "Contract type",
                        "type": "array",
                        "description": "Jobs only. Filter by contract type. Choose one or more.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "agent",
                                "apprentice",
                                "ind",
                                "project",
                                "stage",
                                "tdet",
                                "zzzzzother"
                            ],
                            "enumTitles": [
                                "Agent / representative",
                                "Apprenticeship",
                                "Permanent",
                                "Project / freelance",
                                "Internship",
                                "Fixed-term",
                                "Other"
                            ]
                        }
                    },
                    "workHours": {
                        "title": "Working hours",
                        "enum": [
                            "fulltime",
                            "parttime",
                            "shift",
                            "zzzzzother"
                        ],
                        "type": "string",
                        "description": "Jobs only. Filter by working hours."
                    },
                    "educationDegree": {
                        "title": "Education level",
                        "enum": [
                            "1",
                            "2",
                            "3",
                            "4"
                        ],
                        "type": "string",
                        "description": "Jobs only. Filter by required education level."
                    },
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "Paste subito.it search URLs (/annunci-italia/...) or listing detail URLs (ending in .htm). Search URLs are parsed into search parameters; a detail URL enriches that single ad. Can be combined with a keyword search — the URL wins for each entry it covers.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "scrapeDetail": {
                        "title": "Fetch full vehicle details",
                        "type": "boolean",
                        "description": "Vehicles only (category Cars & motors). When on, opens each vehicle's page to add full technical specs (engine size, kW/HP, cylinders, gears, drive, dimensions, weight) and the complete equipment/optionals list. Adds one request per vehicle. Other categories already return their full data from search and are unaffected.",
                        "default": false
                    },
                    "scrapeReviews": {
                        "title": "Fetch seller reputation",
                        "type": "boolean",
                        "description": "When on, fetch each unique seller's public reputation once and attach it to their listings. Adds one request per unique seller. Individual written review texts are not publicly available; only the aggregate reputation is returned.",
                        "default": false
                    },
                    "maxItems": {
                        "title": "Max items (total)",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Hard cap on the total number of listings across all searches and URLs."
                    },
                    "maxItemsPerQuery": {
                        "title": "Max items per search",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Per-search / per-URL cap for multi-search runs. Leave empty for no per-search limit (still bounded by Max items)."
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Residential proxy is required for reliable access; the actor defaults the country to Italy.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ],
                            "apifyProxyCountry": "IT"
                        }
                    },
                    "mcpConnectors": {
                        "title": "Pipe results into your apps (optional)",
                        "type": "array",
                        "description": "Optionally send the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize a connector once under Apify → Settings → Integrations, then select it here. The connector receives a condensed, human-readable summary per item (title + key fields), not the full JSON — the complete record stays in the dataset. Leave empty to skip. Supported: Apify (https://mcp.apify.com)."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
