Subito.it Search Scraper avatar

Subito.it Search Scraper

Pricing

from $2.00 / 1,000 results

Go to Apify Store
Subito.it Search Scraper

Subito.it Search Scraper

Search Subito.it classified ads by keyword across any category, region, or ad type.

Pricing

from $2.00 / 1,000 results

Rating

0.0

(0)

Developer

Axery

Axery

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Turn Italy's biggest classifieds marketplace into a clean, analysis-ready dataset. Search Subito.it by keyword across any category, region, or ad type — and get back structured JSON you can load straight into a spreadsheet, database, or pricing model.

No browser. No login. No CAPTCHA solving. Pure HTTP, which means it runs fast and cheap.

What makes this different

Most scrapers hand you raw HTML scrapings or the site's internal blob and leave the cleanup to you. This one does the cleanup:

Raw Subito dataWhat this Actor gives you
Price"289" (string, buried in a nested feature map)289 — a real number, ready to sort, filter, and average
Shipping cost"0,99" (Italian comma decimal)0.99 — correctly parsed float
Date"2026-08-22 11:24:41" (no timezone)"2026-08-22T11:24:41+02:00" — ISO-8601, parseable anywhere
ImagesCDN URLs that return HTTP 400Working URLs, plus matching thumbnails
Car mileage"29" (an opaque bucket index)"180.000 - 189.999" and mileage_scalar: 182000
Attributes40+ nested objects keyed /item_conditionFlat attributes map with readable keys and typed values
Sellertype: 1, company: truesellerType: "company" + shopName

Every row is flat, typed, and consistent — whatever category you scrape.

What you can build with it

  • Price intelligence — track asking prices for any product across Italy, by region, condition, or seller type. price is numeric, so aggregation is immediate.
  • Deal sourcing — surface underpriced listings the moment they appear; sort by publishedAt and filter on condition and shippable.
  • Market supply analysis — measure inventory depth by category and province, and split private sellers from professional dealers with one field (sellerType).
  • Dealer monitoring — group by sellerId / shopName to watch a competitor's full inventory and pricing moves.
  • Product research & resale — pull real second-hand transaction supply for electronics, cars, furniture, or real estate.
  • AI / ML training data — Italian-language product descriptions paired with prices, categories, condition labels, and working image URLs.

Features

  • Whole marketplace coverage — every category, all 20 Italian regions, down to individual province and town.
  • Four ad typesvendita (for sale), regalo (free), cerco (wanted), affitto (for rent).
  • Bulk keyword search — run any number of queries in a single job; every row is traceable back to its query via _input.
  • Automatic pagination — pages through results until your maxItems limit, deduplicating boosted ads that repeat across pages.
  • Resilient — exponential-backoff retries on transient failures, and fail-fast with an actionable message on invalid input, so you're never billed for a silent retry loop.
  • Never crashes the run — a failed page emits a structured _error row instead of killing the job.
  • Residential proxy support — built-in Apify Proxy configuration.

Input

{
"queries": ["iphone", "bicicletta"],
"region": "annunci-lombardia",
"province": "milano",
"adType": "vendita",
"category": "usato",
"maxItems": 100,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}
FieldTypeDescription
queriesarrayOne or more search terms. Each runs independently. Leave empty to browse a whole category.
regionstringannunci-italia (default, all of Italy) or an annunci-<region> slug like annunci-lombardia. A bare city name (milano) is not a valid region — use province.
adTypestringvendita (default), regalo, cerco, or affitto.
categorystringCategory path segment. Default usato; also auto, appartamenti, moto-e-scooter, offerte-lavoro, and more.
provincestringOptional province slug, e.g. milano, roma. Must belong to the selected region.
townstringOptional town slug to narrow further. Ignored unless province is set.
categoryIdstringOptional numeric category ID (e.g. 12 = Telefonia) to filter within the category path.
shippableOnlybooleanOnly return ads that offer shipping.
subjectOnlybooleanMatch the query against titles only, not body text.
maxItemsintegerMax ads per query. Default 100. Use 0 for unlimited.
proxyConfigurationobjectApify Proxy settings. Residential recommended for large runs.

Output

One row per ad. Real output from queries: ["iphone"]:

{
"adId": "657937931",
"url": "https://www.subito.it/telefonia/iphone-14-128-gb-usato-ravenna-657937931.htm",
"title": "IPhone 14 128 gb usato",
"description": "Telefono in buone condizioni, display perfetto senza graffi, batteria ancora al 82 %, tutto funziona.",
"price": 249,
"currency": "EUR",
"condition": "Buono - usato ma ben conservato",
"adType": "vendita",
"adTypeLabel": "In vendita",
"category": "Telefonia",
"categoryId": "12",
"parentCategoryId": "9",
"publishedAt": "2026-08-22T11:43:28+02:00",
"location": "Ravenna, Ravenna, Emilia-Romagna",
"region": "Emilia-Romagna",
"province": "Ravenna",
"provinceCode": "RA",
"town": "Ravenna",
"istatCode": "039014",
"sellerId": "7484580",
"sellerName": null,
"sellerType": "private",
"shopId": null,
"shopName": null,
"shippable": true,
"shippingCost": 0.99,
"shippingCarriers": ["poste_italiane", "ups", "inpost", "bartolini"],
"shippingMethod": "Spedizione con TuttoSubito",
"packageSize": "Piccolo - fino a 2kg",
"imageCount": 6,
"images": ["https://images.sbito.it/api/v1/sbt-ads-images-pro/images/35/357ec1cc-115f-4f89-9351-358b6becccf4?rule=gallery-desktop-2x-auto"],
"thumbnails": ["https://images.sbito.it/api/v1/sbt-ads-images-pro/images/35/357ec1cc-115f-4f89-9351-358b6becccf4?rule=vertical-mini-card-1x-auto"],
"attributes": { "phone_type": "Cellulari e Smartphone" },
"_input": "iphone",
"_page": 1,
"_listingUrl": "https://www.subito.it/annunci-italia/vendita/usato/?q=iphone",
"_source": "subito-search",
"_scrapedAt": "2026-08-22T09:51:43.337496+00:00"
}

A full example is saved in sample_output.json. Every field is documented with types and examples in .actor/dataset_schema.json, so Apify Console, the API, and AI agents all know the shape up front.

Category-specific attributes

attributes adapts to whatever you scrape, with values already typed. A car listing:

{
"car": ["FIAT", "500X", "500X 1.6 MultiJet 120 CV Lounge"],
"fuel": "Diesel",
"gearbox": "Manuale",
"mileage": "180.000 - 189.999",
"mileage_scalar": 182000,
"power": "88 kW / 120 Cv",
"year": "2015",
"register_date": "07/2015",
"pollution": "Euro 6",
"seats": "5",
"color": "Grigio",
"newdrivers_only": true
}

Real estate exposes size, room, bathrooms, floor, energy_class, elevator, garden; jobs expose contract_type, work_hour, degree. Numbers arrive as numbers, Sì/No as booleans, multi-value fields as arrays.

Error rows

A page that can't be fetched produces a structured row instead of failing the run:

{
"_error": "fetch_failed",
"_errorDetail": "Subito returned its 'service unavailable' page for https://www.subito.it/milano/vendita/usato/ - check that region/adType/category/province/town slugs are valid (region must look like 'annunci-lombardia', not 'milano')",
"_input": "divano",
"_page": 1,
"_source": "subito-search",
"_scrapedAt": "2026-08-22T09:23:22.048637+00:00"
}

Filter on _error to separate failures from data.

Notes

  • How it works — Subito server-renders full structured ad data into the listing page, so the Actor reads it directly over plain HTTP. No headless browser, no reverse-engineered private API, no login.
  • Listing URLs are path-structured/<region>/<adType>/<category>/[<province>/[<town>/]], which is why geography and category are separate input fields rather than query filters.
  • Invalid slugs fail fast — Subito answers unroutable paths with an HTTP 200 "Servizio non disponibile" page rather than a 404. The Actor detects this and stops immediately with a message naming the likely cause.
  • Images are served as AVIF — the CDN ignores the Accept header and always returns AVIF, regardless of the preset requested.
  • Cross-query duplicates are expected — one ad matching two of your keywords appears once per query, distinguished by _input. Within a single query, results are deduplicated by adId.
  • Public data only — the Actor reads publicly visible listings. It does not log in, and it does not collect phone numbers or other contact details hidden behind Subito's authentication.