# Subito.it Scraper \[Only $0.8/1K 💰] Cars · Real Estate · Jobs (`ahmed_jasarevic/subito-scraper`) Actor

Extract used car, real estate and job listings from Subito.it for price monitoring, market research and lead generation. Structured fields: prices, mileage, fuel, photos, geo and seller details.

- **URL**: https://apify.com/ahmed\_jasarevic/subito-scraper.md
- **Developed by:** [Ahmed Jasarevic](https://apify.com/ahmed_jasarevic) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.77 / 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.
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?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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 Scraper — Used Car, Real Estate & Job Listings Data (Italy)

Extract structured classified listings from [Subito.it](https://www.subito.it/), Italy's largest marketplace, for used car price monitoring, real estate market research, and job-market analysis. Get prices, vehicle specs, geo data, and seller info for every ad — directly from the page's embedded JSON payload, no headless browser required.

### Main Use Cases

- **Used car price monitoring** — track private and dealer asking prices for any make/model across all 20 Italian regions
- **Real estate market research** — collect asking prices for houses, apartments and offices by region and city
- **Job listings & labor-market analysis** — pull job ads with company, location and contract details
- **Second-hand electronics & goods data** — smartphones, laptops, home & garden items at marketplace scale
- **Dealer & seller lead lists** — structured seller names, shop IDs and seller types for B2B outreach
- **Price-drop and availability alerts** — schedule daily runs and diff datasets to catch repriced or new listings

### How It Works

The actor fetches Subito.it listing pages with lightweight HTTP requests and parses the `__NEXT_DATA__` JSON payload embedded in every page — the same structured data the site renders itself. Each search page contains up to **30 ads**, which the actor paginates automatically until `maxItems` or `maxPages` is reached. No Playwright, no browser overhead: runs are roughly **10x faster and far cheaper** than browser-based crawlers. Every ad is flattened into a clean JSON record and written to an Apify Dataset.

### Extract Used Car Listings with Full Vehicle Specs

Cars are the single largest category on Subito.it. This actor returns structured vehicle attributes per listing — make, model, version, year, mileage, fuel type, transmission, power, color and registration date — so you can build regional used-car price indexes without parsing HTML.

### Build Real Estate Databases Without an Official Subito API

Subito.it offers **no public API** for listing data. This actor reads the same data the website serves and exports it as clean JSON/CSV — an unofficial Subito.it API alternative for property investors, relocation services and market analysts.

### Monitor Job Listings Across Italy

Feed a query and region to pull job ads with structured fields (title, description, category, geo). Useful for HR-tech products, labor-market research and candidate sourcing workflows.

### Input

Configure the actor from the **Input** tab. All fields are optional — default behavior scrapes Italy-wide used-goods listings.

| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
| `startUrls` | `{url: string}[]` | No | `[]` | Listing/search page URLs to crawl. **Overrides** `query` and `category` when set. |
| `query` | `string` | No | `""` | Keyword filter (e.g. `mercedes`, `iphone`). Used when `startUrls` is empty. |
| `category` | `string` | No | `""` | Numeric category ID: `15` = Auto, `16` = Moto, `5` = Elettronica, `26` = Informatica, `21` = Casa e Giardino. Used when `startUrls` is empty. |
| `maxItems` | `integer` | No | `100` | Approximate maximum ads to scrape. |
| `maxPages` | `integer` | No | `10` | Maximum listing pages to crawl (1 page = 30 ads). `0` = no page limit (capped by `maxItems`). |
| `proxyConfiguration` | `object` | No | `{"useApifyProxy": false}` | Apify proxy settings. Enable for large crawls — Subito.it runs on Akamai CDN. |

### Output

Each dataset record is one listing, with up to 28 structured fields:

```json
{
  "urn": "id:ad:abc123:list:659602185",
  "title": "Mercedes-Benz A 200 d AMG Line",
  "description": "Excellent condition, one owner...",
  "adType": "In vendita",
  "category": "Auto",
  "categoryId": "2",
  "url": "https://www.subito.it/auto/mercedes-benz-a-200d-cosenza-659602185.htm",
  "date": "2026-09-11 15:16:56",
  "images": ["https://images.sbito.it/api/v1/sbt-ads-images-pro/images/98/983c640d-..."],
  "price": "47000",
  "condition": "Usato",
  "mileage": "400 Km",
  "fuel": "Diesel",
  "transmission": "Sequenziale",
  "year": "2026",
  "make": "MERCEDES",
  "model": "Classe A (W177)",
  "version": "A 200 d Automatic AMG Line Advanced Plus",
  "color": "Bianco",
  "power": "110 kW / 150 Cv",
  "registrationDate": "07/2026",
  "region": "Calabria",
  "city": "Cosenza",
  "town": "Rende",
  "sellerName": "SA.MY AUTO",
  "sellerType": "shop",
  "shopId": "45442",
  "userId": "114000336"
}
```

Field reference:

| Field | Description |
|---|---|
| `urn` | Unique ad identifier (use for de-duplication across runs) |
| `title`, `description` | Listing title and full text description |
| `adType` | Type of ad (e.g. "In vendita") |
| `category`, `categoryId` | Category name and numeric ID |
| `url` | Canonical listing URL |
| `date` | Publication date (`YYYY-MM-DD HH:MM:SS`) |
| `images` | Array of image URLs |
| `price` | Asking price as displayed (string) |
| `condition` | Item condition (`Usato`, `Nuovo`, etc.) |
| `mileage`, `fuel`, `transmission`, `year`, `make`, `model`, `version`, `color`, `power`, `registrationDate` | Vehicle-specific attributes (present on auto ads) |
| `region`, `city`, `town` | Geographic location |
| `sellerName`, `sellerType`, `shopId`, `userId` | Seller details (private vs shop) |

Download the dataset as JSON, CSV, Excel or HTML.

### Example Input

```json
{
  "startUrls": [
    { "url": "https://www.subito.it/annunci-italia/vendita/auto/?q=bmw" }
  ],
  "maxItems": 300,
  "maxPages": 10,
  "proxyConfiguration": { "useApifyProxy": false }
}
```

Or generate search URLs from a query and category:

```json
{
  "query": "volkswagen golf",
  "category": "15",
  "maxItems": 120,
  "maxPages": 5
}
```

### Cost Estimation

Results are billed at **$0.0008 per extracted ad**, plus a negligible per-GB start fee. A typical small crawl (100 ads / ~4 pages) costs well under $0.01. For large crawls, enabling residential proxy adds proxy usage per your Apify plan.

### Integrations & Automation

- **Apify API** — trigger runs programmatically from any stack
- **Webhooks** — push finished datasets into your pipeline
- **Zapier / Make** — connect Subito data to Sheets, Slack, CRM
- **Scheduling** — run daily for price-drop monitoring and weekly for market snapshots; recurring runs also improve Apify Store recommendation signals

### Related Actors

- [Subito.it Real Estate Scraper](https://apify.com/emastra/subito-it-immobili) — Subito property listings with private-seller filtering (most-used Subito real estate actor)
- [Subito.it Automotive Scraper](https://apify.com/emastra/subito-it-motori) — Subito cars, bikes and vans (most-used Subito automotive actor)
- [Subito.it Universal Scraper](https://apify.com/azzouzana/subito-scraper-pro-by-search-url) — universal Subito extraction by search URL
- [BMW Italy Listings Scraper (AutoScout24)](https://apify.com/ahmed_jasarevic/bmw-italy-market-data) — same Italian used-car market, dealer-centric inventory on AutoScout24.it

### FAQ

**Why use this actor instead of the official Subito.it API?**

Subito.it does not provide a public listings API — its endpoints are private and require internal access. This actor reads the structured `__NEXT_DATA__` payload served on every public page, so you get the same listing data without an API key, login or browser stack.

**How can I get Subito.it data programmatically (API alternative)?**

Run this actor from the Apify API (`POST /v2/acts/ahmed_jasarevic~subito-scraper/runs`) and pull results from the dataset — that is the working Subito.it API alternative used by price trackers, market researchers and AI agents.

**What are alternatives to this actor / where else can I find Italian used-car data?**

- AutoScout24.it — dealer-heavy inventory (see our [BMW Italy Scraper](https://apify.com/ahmed_jasarevic/bmw-italy-market-data))
- The [Subito.it Automotive](https://apify.com/emastra/subito-it-motori) and [Real Estate](https://apify.com/emastra/subito-it-immobili) actors by emastra
- Bright Data's managed Subito price tracker and internal `hades.subito.it` endpoint for advanced users

**Can I extract seller contact data (phone/email)?**

The actor returns seller name, seller type (private/shop), shop ID and user ID. Phone numbers and emails are **not** among the extracted fields.

**How fast and how much does a run cost?**

Each listing page = 30 ads. Scraping 100 ads across ~4 pages takes seconds and costs under $0.01 in total (results at $0.0008 each).

**How often should I run it?**

For price monitoring, run daily on a schedule. For market snapshots or dealer data, weekly is usually enough. Diff datasets across runs by the unique `urn` field.

### Competitive Positioning

Verified against competing Subito actors on the Apify Store (check their input schemas and pricing pages):

| Capability | Competitors | This actor |
|---|---|---|
| Price per result | $0.005 (emastra motori), $0.001 (azzouzana), $0.00199 (nogards95) | **$0.0008** — lowest in cluster |
| Vehicle specs (mileage, fuel, transmission, power, year) | Partial (emastra only) | ✅ Standard on all auto listings |
| Categories covered | Automotive-only or real-estate-only (emastra), universal but $1/1K (azzouzana) | ✅ Cars + real estate + jobs + marketplace in one actor |
| Browser-free extraction | Some use browsers (higher cost) | ✅ `__NEXT_DATA__` JSON, Cheerio only |

### For AI Agents & LLM Apps

**Purpose:** Returns one structured JSON record per Subito.it classified listing — title, price, vehicle specs, geo and seller data — for price monitoring, market research and lead generation.

**Minimal working input (listing crawl):**

```json
{
  "startUrls": [{ "url": "https://www.subito.it/annunci-italia/vendita/usato/" }],
  "maxItems": 30,
  "maxPages": 1
}
```

**Variant — query + category (search crawl):**

```json
{ "query": "bmw", "category": "15", "maxItems": 50, "maxPages": 2 }
```

**Output fields:** `urn, title, description, adType, category, categoryId, url, date, images, price, condition, mileage, fuel, transmission, year, make, model, version, color, power, registrationDate, region, city, town, sellerName, sellerType, shopId, userId`

**Behaviors an agent should know:**

- `startUrls` takes priority: when set, `query` and `category` are ignored
- Each listing page contains up to 30 ads; `maxPages: 0` means "no page limit" (still capped by `maxItems`)
- `maxItems` is approximate — actual output may slightly exceed it at page boundaries
- `price`, `year`, `mileage` etc. are returned as **strings** (e.g. `"47000"`, `"400 Km"`), not numbers
- Enable `proxyConfiguration.useApifyProxy: true` for crawls above a few hundred ads (Akamai CDN blocks datacenter IPs at volume)

**Billing:** pay-per-result — $0.0008 per dataset record, plus a small per-GB start fee.

### Legal & Compliance Disclaimer

This actor is an independent tool and is **not affiliated with, endorsed by, or sponsored by Subito.it** (Eprice S.p.A.). It accesses only publicly available listing pages — no login bypass, no CAPTCHA solving, no access to non-public data. Users are responsible for their own compliance with Subito.it's Terms of Service, robots.txt and applicable law, including the Italian GDPR regime for any personal data. Use reasonable request rates and proxy rotation for large crawls.

### SEO Keywords

subito scraper, subito.it scraper, subito api alternative, subito data extraction, subito classifieds data, subito annunci, italian classifieds data, italy marketplace scraper, used car data italy, auto usate prezzi, monitoraggio prezzi auto usate, used car price tracking italy, subito real estate data, case in vendita, italy property listings data, subito jobs data, offerte di lavoro, second hand marketplace data, subito seller data, dealership leads italy, scrape subito without api, subito csv export, subito json export, subito.it api, italia annunci scraper

# Actor input Schema

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

Listing pages to scrape. Leave empty to auto-generate from query/category.

## `query` (type: `string`):

Optional keyword filter. Only used when startUrls is empty.

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

Optional numeric category ID (e.g. 5 = Elettronica, 15 = Auto). Only used when startUrls is empty.

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

Approximate maximum number of ads to scrape. Each listing page contains up to 30 ads.

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

Maximum number of listing pages to crawl. 0 = no page limit (capped by maxItems).

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

Apify proxy settings. Recommended for large crawls or when blocked by Akamai.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.subito.it/annunci-italia/vendita/usato/"
    }
  ],
  "query": "",
  "category": "",
  "maxItems": 100,
  "maxPages": 10,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# 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 = {
    "startUrls": [
        {
            "url": "https://www.subito.it/annunci-italia/vendita/usato/"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("ahmed_jasarevic/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 = { "startUrls": [{ "url": "https://www.subito.it/annunci-italia/vendita/usato/" }] }

# Run the Actor and wait for it to finish
run = client.actor("ahmed_jasarevic/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 '{
  "startUrls": [
    {
      "url": "https://www.subito.it/annunci-italia/vendita/usato/"
    }
  ]
}' |
apify call ahmed_jasarevic/subito-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,ahmed_jasarevic/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/NFLs5n1R9lKM1b8IV/builds/WLZmm96NgoZojw21o/openapi.json
