Subito.it Classifieds Scraper - Italy Marketplace avatar

Subito.it Classifieds Scraper - Italy Marketplace

Pricing

from $1.75 / 1,000 results

Go to Apify Store
Subito.it Classifieds Scraper - Italy Marketplace

Subito.it Classifieds Scraper - Italy Marketplace

Scrapes subito.it, Italy's largest classifieds marketplace: cars, property, electronics, jobs and 38 more categories across all 20 regions. Returns price, location, seller type, images and every category attribute, with honest reporting of subito's 9,000-item paging wall.

Pricing

from $1.75 / 1,000 results

Rating

0.0

(0)

Developer

Ibnu Adzim

Ibnu Adzim

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

Subito.it Classifieds Scraper — Italy's Largest Marketplace

Every listing on subito.it: cars, motorbikes, property, electronics, furniture, jobs and 36 more categories, across all 20 Italian regions.

Price, location down to the town, seller type, images and every category-specific attribute upstream publishes. No API key, no login.


The number subito shows you is mostly out of reach

Search "auto" nationwide and subito reports 530,881 listings across 17,697 pages. It will serve you 300 of them.

Page 300 returns rows; page 301 is a hard HTTP 404. That is 9,000 items — 1.7% of what the page's own counter advertises — and the cap is fixed, not proportional: a region with 114 real pages hits the same wall.

A scraper that trusts totalPages walks into that 404 at page 301 and either crashes or stops quietly while still reporting half a million results. This one reports the gap on every query:

FieldMeaning
totalAvailablewhat subito says exists
reachableItemCeiling9,000 — what any single query can actually page to
itemsUnreachableByPagingthe difference, per query
reachableCeilingHitwhether this run hit the wall

The way past it is to partition, not to page harder. Region and category are path segments and both genuinely filter, so twenty regions × forty-two categories is 840 independent 9,000-item windows rather than one.


What you get

Three record types share one dataset, told apart by recordType:

  • LISTING — title, description, price in euro, publication timestamp, region / province / town, listing URL, every image URL, the advertiser (dealer trading name, shop id, private-vs-dealer flag), and features: upstream's own attribute set for that category, kept verbatim. A car carries /fuel, /gearbox, /mileage, /power, /year, /car (make, model, trim); a flat carries entirely different ones. Nothing is renamed, so a category this actor's author never opened still comes through whole.
  • SEARCH_SUMMARY — one per region × category: filters applied, upstream's echo of what it actually searched, the totals above, and every honesty flag.
  • ERROR — one per input that failed, so every input maps to at least one row.

Every row carries _input, _source, _scrapedAt, recordType.


Filters, and only the ones that work

Every offered filter was verified twice: the result total had to move by far more than churn (subito's baseline is perfectly stable — three identical requests returned 530,881 every time), and every returned row had to satisfy it.

InputVerified
categories / regionspath segments; upstream echoes both back, checked before paging
query + titleOnlya real keyword narrows 530,881 → 37,118 and 30/30 rows match; nonsense returns an honest zero
advertiserTypeprivate 290,112 + dealer 240,815 ≈ the 530,881 baseline — the two halves partition the catalogue
minPrice / maxPrice30/30 rows inside the range
sortOrderpriceasc returns €1 listings, pricedesc returns €9,999,999 ones

Parameters that subito accepts and silently ignores (t, urg, ndo — each moves the total by under 100 out of 530,881, and upward) are refused with an explanation rather than offered as no-ops.

For category-specific attributes there is extraFilters, a raw passthrough — and because unknown parameters are ignored in silence, supplying it makes the run fetch the same search without them and report both totals in extraFiltersChangedTotal. Whether your filter did anything is a field, not a guess.


Known limits

  • 9,000 items per query, however large the total. Partition by region, category or price.
  • No seller names for private sellers. advertiser.name is empty for everyone on the search surface; dealers are named via their shop, private sellers are not named at all. No phone numbers are exposed here either.
  • Listing detail pages are not fetched — the search rows already carry the full description and every image, so a detail pass would multiply requests for almost nothing.
  • Only vendita (for sale) listings; subito's /acquisto/ path does not exist.
  • DataDome is on this domain. It never fired during recon and rarely fires in normal use, but it triggers on request rate: the actor backs off 8 s / 20 s / 45 s and tells you to raise minRequestInterval or lower maxConcurrency. A residential proxy is the next step if it persists.