Subito is Italy's largest classifieds site, and it is the cheapest page to read in this whole family: on 28 September 2026 subito.it answered a plain HTTP client through an Italian residential exit with 200 OK, 182,983 bytes and 600 words, about 305 bytes per word. Rendering the same URL in a browser cost 1,263,991 bytes, took 23.7 seconds, and returned the same 600 words. The setting that works on Subito is residential, plain HTTP, country=it, and when you need listings rather than pages, the subito_search collector, which returned 10 ads with price, comune, seller type and shipping cost in 2.7 seconds out of the 9,268 Subito reports for the query.
183 kilobytes carry the whole server-rendered page
Subito's home is server-rendered and light. The compressed body on the wire was 22,111 bytes, the decoded HTML 182,983, and inside it the seo_audit tool in our MCP server found the title, the meta description, an og:title and a JSON-LD Organization block. What it did not find is a canonical link and an h1: Subito ships neither on the home, with or without JavaScript, so a parser that keys on either will see nothing on both passes. That is a property of the page, not of the fetch mode.
| Fetch (28 September 2026) | Status | Bytes returned | Time | Words | Notes |
|---|---|---|---|---|---|
| subito.it, plain HTTP, Italian exit | 200 | 182,983 | 5.8 s | 600 | Title, description, og:title, JSON-LD Organization; no canonical, no h1 |
| subito.it, rendered, Italian exit | 200 | 1,263,991 | 23.7 s | 600 | Same title and description; no canonical, no h1; the audit diff is empty |
| subito.it, plain HTTP, German exit | 200 | n/a | 11.5 s (audit) | 600 | Identical page; no redirect and no country gate |
| subito.it/robots.txt | 200 | 590 | 3.1 s | n/a | Last modified 17 June 2022 |
On 26 September a rendered pass of the same URL counted 848 words against 602 without JavaScript. Two days later the render counted 600. The difference is the home feed: it is personalised and fills after hydration, so the rendered count depends on what the browser happened to load before capture, while the no-JS count moved by two words in two days. When a number is that unstable it is not worth 6.9 times the bytes. Read Subito over plain HTTP and put the browser budget into the pages that need it.
What the people searching for a Subito scraper actually build
There is no such thing as a "subito proxies" query in Google's autocomplete on 28 September 2026; the field is empty. The demand is "subito it scraper", "scraping subito it", "subito it bot telegram" and "subito it api developer". The top organic result we read is a small open-source Python searcher: it polls a search URL such as /annunci-italia/vendita/usato/?q=iphone every two minutes with BeautifulSoup, keeps a list of seen ads, and posts new ones to a Telegram channel. That is the archetype. People want to know the moment a listing appears at a price, in a comune, from a private seller.
Two things follow. The first is that a plain HTTP client works, which the measurement above confirms and the script's own existence proves. The second is that the script is doing, badly, what a collector does in one call: parsing cards, tracking pagination, normalising prices. Subito's own robots.txt disallows the pagination parameter (*/?o=* and *&o=*) to every user agent, so a polite crawler cannot page a search at all; it can only re-read page one. A poller that wants coverage beyond the first page is already outside the file. The collector, by contrast, is a single semantic input: query, category, comune, seller type, and it returns rows.
The collector returns ten ads in 2.7 seconds, with the fields the cards hide
We ran the Subito collector once on 28 September 2026 with the query "iphone 15" and max_results 10. It finished in 2.74 seconds, delivered 10 rows, and noted that Subito reports 9,268 ads for the query. Every row carries title, ad URL, price as shown and as a number, category, condition, publication timestamp, region, city and comune, seller id and type, shipping availability and cost, image URLs and the full description, which Subito's cards truncate.
| Field in the run | What came back for 10 rows |
|---|---|
| Price | 8 numeric prices from 38 € to 1,999 €; 2 dealer ads with the price only in the description text |
| Seller type | 6 company ads, all from one Brescia phone shop; 4 private ads |
| Shipping | 4 ads shippable through Subito's own service, 3 at 0.99 € and 1 at 2.99 €; 6 pickup only |
| Condition | "Come nuovo", "Nuovo", "Ottimo" as Subito labels them, one per row |
| Geo | Region, city and comune on every row: Brescia, Vasto, Leverano, Milano, Tremestieri Etneo |
| Timestamps | All 10 posted within the four minutes before the run, because the collector sorts by recent |
That last row is the one a price-alert builder cares about: the collector sorted by recency returned ads posted 18:51 to 18:55 local time on a run at 19:06, so a poll every few minutes sees the market as it moves. The two dealer rows with a null price are also instructive: the shop wrote "Prezzo: 1299€" in the description instead of the price field, and the full description in the row is where a parser finds it. At $0.001 per delivered ad the run cost one cent, and nothing is billed for a query that returns nothing.
What robots.txt and the terms say, in one line each
Subito's robots.txt is 590 bytes, unchanged since 17 June 2022, and opens with a comment stating that using search robots or other automatic methods to access Subito.it is forbidden unless Subito has given permission. The rules below it then allow the whole site to every agent except a dozen paths: /pr/, /vi/, /vim/, /utente/, the ad-insertion and PayPal flows, and pagination. The terms of service add the contractual layer: clause 8 forbids automatic ad-upload systems, serial publishing and managing ads for third parties without authorisation, and clause 10 forbids aggregator software, apps or sites from using any content of the service without express prior authorisation. The professional terms state in 3.1 that they apply to users who merely consult ads as well as to advertisers.
So the honest line is this: Subito's terms forbid unauthorised aggregation of its content, and no proxy setting changes that. The searches for a "Subito API" have no public answer; what Subito licenses to professionals, per its own terms, is a multi-listing management programme for their own inventory, not a read API. Read public listings for price research and market monitoring at a human pace, and if your product is an aggregator, the address to write to is Subito's, not ours.
Cost math with real numbers
Prices from our pricing page: residential Basic $0.80/GB, Premium $2.20/GB, the web scraping API from $0.0002 per page ($0.001 rendered) and the Subito collector at $0.001 per delivered ad. One gigabyte is counted as 10^9 bytes.
| Approach | Bytes per page | Pages per GB | Cost per 1,000 |
|---|---|---|---|
| Plain HTTP over residential Basic ($0.80/GB) | 182,983 | about 5,465 | about $0.15 per 1,000 pages |
| Plain HTTP over residential Premium ($2.20/GB) | 182,983 | about 5,465 | about $0.40 per 1,000 pages |
| Rendered over residential Basic | 1,263,991 | about 791 | about $1.01 per 1,000 pages |
| Web scraping API, plain HTTP | n/a | n/a | $0.20 per 1,000 pages |
| subito_search collector | n/a | n/a | $1.00 per 1,000 ads, with the fields parsed |
At 183 KB a page, raw bandwidth is almost free and the browser is the only thing that makes Subito expensive. Byte figures are decoded HTML, so real transfer is lower and headers add a little back. The comparison that matters is the last two rows: $0.20 buys a thousand pages you still have to parse, $1.00 buys a thousand ads already parsed, geo-coded to the comune and with the truncated description restored. For the opposite shape, a site where the raw page is two megabytes and the render subtracts words, see Vinted through residential proxies; for the German equivalent of this market, Kleinanzeigen.
The setting that works on Subito
- Network: residential, Basic at $0.80/GB. Nothing in our fetches challenged a residential exit, and at 183 KB a page the network tier barely registers in the bill.
- Fetch mode: engine: tls, plain HTTP. 600 words in 5.8 seconds; the rendered page returns the same 600 words for 1,263,991 bytes and 23.7 seconds.
- Country: country=it. The page does not change from a German exit (600 words, no redirect), so the reason to pin Italy is a session that looks like the Italian buyers Subito serves, not access.
- When the proxy is not enough: the subito_search collector, 10 ads in 2.7 seconds with price, condition, comune, seller type, shipping cost and full description, $0.001 per delivered ad; pagination that robots.txt closes to a crawler is a max_results number here.
- Every account gets $2 of free API usage per month, and failed requests are never billed.