Subito.it Search Scraper
Pricing
from $2.00 / 1,000 results
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
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 data | What 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 |
| Images | CDN URLs that return HTTP 400 | Working URLs, plus matching thumbnails |
| Car mileage | "29" (an opaque bucket index) | "180.000 - 189.999" and mileage_scalar: 182000 |
| Attributes | 40+ nested objects keyed /item_condition | Flat attributes map with readable keys and typed values |
| Seller | type: 1, company: true | sellerType: "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.
priceis numeric, so aggregation is immediate. - Deal sourcing — surface underpriced listings the moment they appear; sort by
publishedAtand filter onconditionandshippable. - 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/shopNameto 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 types —
vendita(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
maxItemslimit, 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
_errorrow 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"]}}
| Field | Type | Description |
|---|---|---|
queries | array | One or more search terms. Each runs independently. Leave empty to browse a whole category. |
region | string | annunci-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. |
adType | string | vendita (default), regalo, cerco, or affitto. |
category | string | Category path segment. Default usato; also auto, appartamenti, moto-e-scooter, offerte-lavoro, and more. |
province | string | Optional province slug, e.g. milano, roma. Must belong to the selected region. |
town | string | Optional town slug to narrow further. Ignored unless province is set. |
categoryId | string | Optional numeric category ID (e.g. 12 = Telefonia) to filter within the category path. |
shippableOnly | boolean | Only return ads that offer shipping. |
subjectOnly | boolean | Match the query against titles only, not body text. |
maxItems | integer | Max ads per query. Default 100. Use 0 for unlimited. |
proxyConfiguration | object | Apify 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
Acceptheader 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 byadId. - 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.