# Subito.it Scraper - Italian Classifieds & Seller Leads (`scrapesage/subito-scraper`) Actor

Scrape Subito.it, Italy's #1 classifieds. Cars, motorbikes, real estate, jobs, electronics & more — real prices, full geo (region/province/town), car & property specs, images, descriptions and the advertiser. Filter by category, location, price & ad type. Export JSON, CSV, Excel.

- **URL**: https://apify.com/scrapesage/subito-scraper.md
- **Developed by:** [Scrape Sage](https://apify.com/scrapesage) (community)
- **Categories:** E-commerce, Lead generation, Agents
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.20 / 1,000 classified 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?

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 — Italian Classifieds, Prices & Business Seller Leads

Extract **complete Subito.it classified-ad data** across every category — cars, motorbikes, real estate, jobs, electronics, home & furniture, fashion, hobbies — with the fields most scrapers miss: the **real price**, full **administrative geo** (region → province → town, with ISTAT codes), **structured per-category specs** (car make/model/year/mileage/fuel/gearbox; flat rooms/m²/floor/elevator; job contract & hours), all **images**, the **full description**, and whether the seller is a **private person or a business / pro shop**. Optionally roll every business advertiser up into a **ready-to-contact B2B lead**.

No login, no cookies, no browser — fast JSON extraction straight from Subito's own data API with 99%+ reliability.

### Why this Subito scraper?

Most Subito scrapers cover a single vertical (just cars, or just real estate) and return the price as a string with little else. This actor reads Subito's internal search API and ships the **richest, all-in-one dataset in the category**:

| Data | Typical scrapers | This actor |
|---|---|---|
| All categories in one actor (cars, property, jobs, electronics…) | ❌ one vertical | ✅ every category |
| Real numeric price + currency | partial | ✅ parsed number |
| Full geo: region, province, **town + ISTAT code** | ❌ city only | ✅ full hierarchy |
| Car specs: make, model, year, **mileage (km)**, fuel, gearbox, power, emissions | ❌ | ✅ |
| Property specs: rooms, **m²**, bathrooms, floor, elevator, balcony, condition | ❌ | ✅ |
| Every structured attribute kept (`attributes`) | ❌ | ✅ nothing dropped |
| All photos (full resolution) | thumbnail only | ✅ full gallery |
| Advertiser type — **private vs business/shop** | ❌ | ✅ |
| Business seller leads (shop name, location, listing count, lead score) | ❌ | ✅ opt-in |
| Monitoring mode — only **new** ads since last run | ❌ | ✅ |

### Use cases

- **Lead generation** — Subito is full of **professional sellers**: car dealers, real-estate agencies, electronics shops, retailers. Turn them into a B2B lead list (`mode: sellerLeads`) with shop name, location, active listing count, price range and a 0–100 lead score.
- **Price & market intelligence** — track asking prices and inventory for any product, car model or neighbourhood across Italy. Compare regions, watch how prices move, size up the used market.
- **Car & property research** — pull thousands of structured car listings (make/model/year/km/fuel) or flats (rooms/m²/floor) for valuation models, dealer feeds, or buy-side sourcing.
- **Deal sniping & monitoring** — schedule recurring runs in **monitoring mode** to capture only newly posted ads matching your saved search (a specific model under a price, in a region) — perfect for flippers and arbitrage.
- **Aggregators & marketplaces** — feed your own vertical site, comparison tool, or CRM with clean, structured Italian classifieds data.

### How to use

1. [Sign up for Apify](https://console.apify.com/sign-up) — the free plan is enough to try this actor.
2. Open the **Subito.it Scraper**, enter search queries and (optionally) a category, region and price range, then click **Start**.
3. Watch results stream into the dataset table.
4. **Export** as JSON, CSV, Excel, XML, or RSS — or pull results programmatically via the [Apify API](https://docs.apify.com/api/v2).

### Input

```json
{
    "mode": "listings",
    "searchQueries": ["bmw serie 3"],
    "category": "Auto",
    "region": "Lombardia",
    "priceMin": 5000,
    "priceMax": 20000,
    "adType": "sale",
    "sort": "newest",
    "emitSellerLeads": true,
    "maxResults": 500
}
```

- **mode** — `listings` (classified ads, default) or `sellerLeads` (deduplicated **business** advertisers as B2B leads).
- **searchQueries** — keywords, each combined with the filters. Leave empty to browse purely by category/location.
- **startUrls** — paste Subito search-page or ad-page URLs; their query parameters are honored.
- **category** — Italian name or id (`Auto`, `Appartamenti`, `Telefonia`, `Offerte di lavoro`, `Arredamento e Casalinghi`, or macros like `Motori`, `Immobili`, `Elettronica`).
- **region / city / town** — narrow by Italian region, then province, then comune (e.g. `Lombardia` → `Milano` → `Monza`).
- **adType** — `sale` (in vendita), `wanted` (cerco) or `any`.
- **priceMin / priceMax** — price band in euros.
- **advertiserType** — `any`, `private`, or `business` (pro sellers only).
- **onlyShippable / onlyUrgent / searchTitleOnly** — extra filters.
- **sort** — `newest`, `relevance`, `price_asc`, `price_desc`.
- **emitSellerLeads** *(default false)* — in Listings mode, also output one lead record per unique business advertiser.
- **businessSellersOnly** *(default false)* — restrict the ads to business/pro sellers.
- **maxResults / maxSellerLeads** — caps per run.
- **monitorMode** *(default false)* — only emit ads/sellers not seen in previous runs (see below).

### Output

One record per ad (`type: "listing"`), plus optional business lead records (`type: "sellerLead"`):

```json
{
    "type": "listing",
    "listingId": "648943616",
    "adId": "9579a6fb-31c5-4a46-8a43-201135bbd03b",
    "url": "https://www.subito.it/auto/audi-a3-sportback-viterbo-648943616.htm",
    "adType": "sale",
    "title": "AUDI A3 SPORTBACK",
    "description": "Vendo A3 in ottime condizioni, sempre tagliandata…",
    "category": "Auto",
    "categoryId": "2",
    "macroCategoryId": "1",
    "price": 6000,
    "currency": "EUR",
    "condition": "Usato",
    "region": "Lazio",
    "province": "Viterbo",
    "provinceShort": "VT",
    "town": "Nepi",
    "istat": "056039",
    "location": "Nepi, Viterbo, Lazio",
    "advertiserId": "134150283",
    "advertiserType": "private",
    "isCompany": false,
    "shopId": null,
    "shopName": null,
    "carBrand": "AUDI",
    "carModel": "A3 3ª serie",
    "carVersion": "A3 SPB 1.6 TDI clean diesel Attraction",
    "year": "2015",
    "mileageKm": 265000,
    "fuel": "Diesel",
    "gearbox": "Manuale",
    "power": "81 kW / 110 Cv",
    "bodyType": "Berlina",
    "emissionClass": "Euro 6b",
    "attributes": { "color": "Bianco", "doors": "4/5", "seats": "5", "month": "Ottobre" },
    "imageCount": 6,
    "image": "https://images.sbito.it/api/v1/sbt-ads-images-pro/images/7f/7f0e75a3-…?rule=fullscreen-1x-auto",
    "images": ["…"],
    "publishedAt": "2026-06-18T07:32:47+02:00",
    "expiresAt": "2027-05-30T11:50:58+02:00",
    "searchQuery": "audi a3",
    "scrapedAt": "2026-06-18T05:43:09.447Z"
}
```

Seller-lead record (`type: "sellerLead"`):

```json
{
    "type": "sellerLead",
    "sellerKey": "shop:4542",
    "shopId": "4542",
    "shopName": "Biauto Group Torino",
    "advertiserType": "business",
    "shopUrl": "https://www.subito.it/shops/4542/",
    "listingCount": 13,
    "categories": ["Auto"],
    "provinces": ["Torino", "Alessandria"],
    "primaryLocation": "Torino",
    "minPrice": 15000,
    "maxPrice": 48900,
    "currency": "EUR",
    "sampleListings": [{ "title": "BMW X1 xdrive20d", "price": 33900, "url": "https://www.subito.it/auto/…" }],
    "leadScore": 70,
    "scrapedAt": "2026-06-18T05:43:35.138Z"
}
```

Property and job ads come back with their own structured fields (`rooms`, `sizeSqm`, `bathrooms`, `floor`, `elevator`, `buildingCondition`; `jobCategory`, `contractType`, `workHours`) — and **every** raw attribute is preserved in `attributes`, so nothing is ever lost.

### Monitoring mode (only new ads)

Turn on **monitorMode** and the actor remembers which ads (or sellers) it has already emitted in a named key-value store, so each run returns **only what's new**. Combine it with [Apify Schedules](https://docs.apify.com/platform/schedules) to build deal alerts and price-watchers: the schedule triggers the run, monitoring mode dedupes against everything seen before. Use a distinct `monitorKey` per saved search so different watches keep separate memory.

### Automate & schedule

Run this actor on autopilot and pull results into your own stack:

- **[Apify API](https://docs.apify.com/api/v2)** — start runs, fetch datasets, and manage schedules over REST.
- **[apify-client for JavaScript](https://docs.apify.com/api/client/js/)** and **[apify-client for Python](https://docs.apify.com/api/client/python/)** — official SDKs.
- **[Schedules](https://docs.apify.com/platform/schedules)** — run it hourly/daily to monitor new ads in a category, region or for specific keywords; ideal for deal alerts and lead pipelines.
- **[Webhooks](https://docs.apify.com/platform/integrations/webhooks)** — trigger downstream actions (CRM import, Slack alert, email sequence) the moment a run finishes.

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

const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });

const run = await client.actor('scrapesage/subito-scraper').call({
    mode: 'sellerLeads',
    category: 'Auto',
    region: 'Lombardia',
    maxSellerLeads: 300,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Got ${items.length} Subito car-dealer leads`);
```

### Integrate with any app

Connect the dataset to 5,000+ apps — no code required:

- **[Make](https://docs.apify.com/platform/integrations/make)** — multi-step automation scenarios.
- **[Zapier](https://docs.apify.com/platform/integrations/zapier)** — push new seller leads straight into your CRM.
- **[Slack](https://docs.apify.com/platform/integrations/slack)** — get notified when a monitored search finds new ads.
- **[Google Drive / Sheets](https://docs.apify.com/platform/integrations/drive)** — auto-export every run to a spreadsheet.
- **[Airbyte](https://docs.apify.com/platform/integrations/airbyte)** — pipe results into your data warehouse.
- **[GitHub](https://docs.apify.com/platform/integrations/github)** — trigger runs from commits or releases.

### Use with AI assistants (MCP)

The output is clean, LLM-ready JSON. Call this actor from Claude, ChatGPT, or any agent framework through the **[Apify MCP server](https://docs.apify.com/platform/integrations/mcp)** — ask your assistant to "find used BMWs under €15,000 in Lombardia on Subito and list the dealers" and let it run this scraper for you.

### Agent-ready: autonomous payments (x402 & Skyfire)

This actor is **agent-ready** — AI agents can discover it, run it, and **pay for it autonomously**, with no Apify account and no human in the loop. It uses [pay-per-event](https://docs.apify.com/platform/actors/publishing/monetize/pay-per-event) pricing and [limited permissions](https://docs.apify.com/platform/actors/development/permissions), so it qualifies for Apify's agentic-payment standards:

- **[x402](https://docs.apify.com/platform/integrations/x402)** — an open, HTTP-native payment protocol. Agents pay per run in USDC on the Base network directly through the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp) — no account, no API key.
- **[Skyfire](https://docs.apify.com/platform/integrations/skyfire)** — agent-to-service payments for fully autonomous AI-agent workflows.

Building an AI agent, MCP tool, or autonomous data pipeline? This scraper is ready to plug in and pay as it goes.

### More scrapers from scrapesage

Build a complete marketplace, classifieds & lead-gen stack:

- **[SGCarMart Used Car Scraper](https://apify.com/scrapesage/sgcarmart-used-car-scraper)** — used cars, prices & dealer leads (Singapore).
- **[99.co Property Scraper](https://apify.com/scrapesage/99-co-property-scraper)** — property listings & agent leads.
- **[EdgeProp.sg Scraper](https://apify.com/scrapesage/edgeprop-singapore-scraper)** — property listings & agent leads.
- **[Airbnb Scraper & Market Monitor](https://apify.com/scrapesage/airbnb-scraper)** — listings, prices and availability.
- **[Foodpanda Scraper](https://apify.com/scrapesage/foodpanda-scraper)** — restaurants, menus & merchant leads.
- **[Eventbrite Scraper](https://apify.com/scrapesage/eventbrite-scraper)** — events + organizer leads.
- **[Product Hunt Scraper](https://apify.com/scrapesage/product-hunt-scraper)** — launches, makers & leads.
- **[LinkedIn Jobs Scraper](https://apify.com/scrapesage/linkedin-jobs-scraper)** — job postings as hiring-intent signals.

### Tips

- **Go deep with filters**: Subito has tens of thousands of ads per query. To exhaust a niche, split runs by category, region and price band rather than relying on one broad query.
- **Recurring monitoring**: combine [Schedules](https://docs.apify.com/platform/schedules) with `monitorMode` and a per-search `monitorKey` to capture only newly listed ads.
- **Leads**: set `mode: sellerLeads` (or `emitSellerLeads: true`) to get one deduplicated record per business advertiser, sorted by lead score.
- **Proxies**: keep the default residential proxy group (Italy) — Subito's data API serves residential IPs reliably; datacenter IPs are throttled.

### FAQ

**How do I scrape Subito for a specific city?** Set `region` (e.g. `Lombardia`), then `city` (the province, e.g. `Milano`), and optionally `town` (the comune). City requires a region; town requires a city.

**Can I scrape only cars / only houses?** Yes — set `category` to `Auto`, `Appartamenti`, `Moto e Scooter`, `Offerte di lavoro`, `Telefonia`, etc. (Italian name or id). Macro categories like `Motori` or `Immobili` pull the whole group.

**Do I get the seller's phone number?** When a seller publishes their phone on the ad it's included (`sellerPhone`). Many sellers keep it behind Subito's contact form, in which case it isn't available — but business sellers always carry a shop name, shop URL and location.

**Can I export to Google Sheets, CSV, or Excel?** Yes — one click in the dataset view, or automatically on every run via the [Google Drive integration](https://docs.apify.com/platform/integrations/drive).

**How do I monitor new ads automatically?** Turn on `monitorMode`, create a [Schedule](https://docs.apify.com/platform/schedules), and optionally add a [webhook](https://docs.apify.com/platform/integrations/webhooks) or [Zapier zap](https://docs.apify.com/platform/integrations/zapier) to push new ads/leads into your CRM as they appear.

**Is scraping Subito legal?** This actor collects publicly available data only. You are responsible for using the data in compliance with applicable laws (GDPR for personal data) and Subito's terms.

**A field is null — why?** Sellers don't always fill in every spec (mileage, floor, condition). Fields are `null` only when the seller didn't provide them, not because the scraper skipped them — and every raw attribute that *is* present is kept in `attributes`.

### Need help?

Open an issue on the actor's **Issues** tab, or visit the [Apify help center](https://help.apify.com/). Feature requests are welcome — this actor is actively maintained.

# Actor input Schema

## `mode` (type: `string`):

<b>Listings</b> = classified ads matching your search (the default). <b>Seller leads</b> = deduplicated <i>business</i> advertisers (pro shops, dealers, agencies) aggregated into B2B lead records with shop name, location, listing count, price range & a 0–100 lead score.

## `searchQueries` (type: `array`):

Keywords to search on Subito, e.g. <code>iphone 15</code>, <code>bici da corsa</code>, <code>divano</code>, <code>bmw serie 3</code>. Each query is combined with the filters below. Leave empty to browse purely by category and/or location.

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

Direct Subito URLs: search/listing pages (<code>https://www.subito.it/annunci-lombardia/vendita/usato/?q=...</code>) or individual ad pages (<code>.../...-123456789.htm</code>). Used in addition to search queries; query parameters in the URL (q, category, region, price) are honored.

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

Filter by category — Italian name or numeric id. Macro categories: <code>Motori</code>, <code>Immobili</code>, <code>Lavoro e Servizi</code>, <code>Elettronica</code>, <code>Per la casa e la persona</code>, <code>Sports e Hobby</code>. Common sub-categories: <code>Auto</code>, <code>Moto e Scooter</code>, <code>Appartamenti</code>, <code>Offerte di lavoro</code>, <code>Telefonia</code>, <code>Informatica</code>, <code>Arredamento e Casalinghi</code>, <code>Abbigliamento e Accessori</code>, <code>Biciclette</code>.

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

<b>For sale</b> (default) = items/properties/jobs offered. <b>Wanted</b> = "cerco" ads from buyers looking for something. <b>Any</b> = both.

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

Italian region name to limit results to, e.g. <code>Lombardia</code>, <code>Lazio</code>, <code>Campania</code>, <code>Veneto</code>, <code>Sicilia</code>, <code>Piemonte</code>, <code>Toscana</code>. Leave empty for all of Italy.

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

Province (provincia) name within the region, e.g. <code>Milano</code>, <code>Roma</code>, <code>Napoli</code>, <code>Torino</code>, <code>Bologna</code>. Requires a region.

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

Specific town/comune within the province, e.g. <code>Monza</code>, <code>Sesto San Giovanni</code>. Requires region + province.

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

Only ads at or above this price, in euros.

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

Only ads at or below this price, in euros.

## `advertiserType` (type: `string`):

Filter by who is selling. <b>Business</b> = pro shops, dealers and agencies only (great for lead-gen). <b>Private</b> = individuals only. <b>Any</b> = both.

## `onlyShippable` (type: `boolean`):

Only ads available for shipping (TuttoSubito).

## `onlyUrgent` (type: `boolean`):

Only ads flagged as urgent.

## `searchTitleOnly` (type: `boolean`):

Match the search query against the ad title only (not the description) for tighter, higher-relevance results.

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

How to order results.

## `emitSellerLeads` (type: `boolean`):

In Listings mode, also push one deduplicated lead record (type = "sellerLead") for every unique <i>business</i> advertiser found — with shop name, location, listing count, price range and a 0–100 lead score.

## `businessSellersOnly` (type: `boolean`):

In Listings mode, restrict the ads themselves to business / pro advertisers (excludes private individuals).

## `maxResults` (type: `integer`):

Maximum number of listings to scrape across all queries. Subito has tens of thousands of ads per query — use category, location and price filters to focus.

## `maxSellerLeads` (type: `integer`):

Maximum number of business seller-lead records to emit (Seller-leads mode, or when "also emit seller leads" is on).

## `deduplicateResults` (type: `boolean`):

Skip records already emitted in this run (recommended).

## `monitorMode` (type: `boolean`):

Remember ids across runs in a named key-value store and emit ONLY records not seen before (new ads, new sellers). Perfect for deal alerts and price-watching. Works with Apify Schedules.

## `monitorKey` (type: `string`):

Names the memory used by monitoring mode. Use a distinct key per saved search so different watches don't share state.

## `maxConcurrency` (type: `integer`):

Maximum parallel requests. Subito's API is fast; 6–10 is a good balance.

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

Proxy settings. Residential proxies (Italy) are strongly recommended and used by default — Subito's data API serves residential IPs reliably; datacenter IPs are throttled.

## `urlsFromFile` (type: `string`):

Paste a list of URLs (one per line), OR one link to a .txt/.csv file, Google Sheet or Google Drive file containing them. Lets you import many Start URLs at once instead of typing each. Google Sheet/Drive share links are handled automatically.

## Actor input object example

```json
{
  "mode": "listings",
  "searchQueries": [
    "iphone"
  ],
  "adType": "sale",
  "advertiserType": "any",
  "onlyShippable": false,
  "onlyUrgent": false,
  "searchTitleOnly": false,
  "sort": "newest",
  "emitSellerLeads": false,
  "businessSellersOnly": false,
  "maxResults": 200,
  "maxSellerLeads": 500,
  "deduplicateResults": true,
  "monitorMode": false,
  "monitorKey": "default",
  "maxConcurrency": 6,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "IT"
  }
}
```

# Actor output Schema

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

All scraped classified-ad records and optional business seller-lead records as JSON items in the default dataset.

# 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 = {
    "searchQueries": [
        "iphone"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "IT"
    },
    "urlsFromFile": ""
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapesage/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 = {
    "searchQueries": ["iphone"],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "IT",
    },
    "urlsFromFile": "",
}

# Run the Actor and wait for it to finish
run = client.actor("scrapesage/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 '{
  "searchQueries": [
    "iphone"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "IT"
  },
  "urlsFromFile": ""
}' |
apify call scrapesage/subito-scraper --silent --output-dataset

```

## MCP server setup

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