Vinted is the largest second-hand fashion marketplace in Europe, and its home page is one of the heaviest we have weighed: on 28 September 2026 vinted.it answered a plain HTTP client through an Italian residential exit with 200 OK, 1,997,674 bytes and 227 words. Rendering the same URL in a browser took 36.4 seconds and returned 204 words, 23 fewer. The setting that works on Vinted is therefore the cheap one: residential exit, plain HTTP, no browser. The country you pin matters less than the domain you pick, because from a German exit vinted.it is still the Italian site. And before any of it, Vinted's robots.txt says in plain English what an automated client may not do on the platform.
Two megabytes of HTML carry 227 words, and the browser subtracts
Vinted's web app is a Next.js application behind Cloudflare. The response headers say so themselves: x-next-app marketplace-web, x-page-id root, and an x-middleware-rewrite of /it:it-IT:0:0:0:0/ that names the locale the server chose. What matters for a data job is what that server hands a client that does not execute JavaScript. We measured it with the seo_audit tool in our MCP server, which fetches a URL twice, once as a pure HTTP bot and once fully rendered, and diffs the two.
| Fetch (28 September 2026) | Status | Bytes returned | Time | Words | What survives |
|---|---|---|---|---|---|
| vinted.it, plain HTTP, Italian exit | 200 | 1,997,674 | 3.5 s | 227 | Title, meta description, canonical, the Italian h1, JSON-LD WebPage, robots meta index |
| vinted.it, rendered, Italian exit | 200 | 1,915,011 | 36.4 s | 204 | Same title, description, canonical and h1; 23 words fewer |
| vinted.it, plain HTTP, German exit | 200 | n/a | 13.5 s (audit) | 210 | Identical Italian title and h1; the page does not change with the exit |
| vinted.it/robots.txt, plain HTTP | 200 | 3,281 | 2.1 s | n/a | Cached at Cloudflare's edge for four hours |
Two things stand out. First, the ratio: about 8,800 bytes of HTML per visible word. Almost all of it is the application shell, preloaded fonts, a long link header of chunk preloads and inlined state; the home feed is personalised and arrives after hydration, which is why it is not in the count. Second, the direction of the diff. On most sites rendering adds words; on Vinted it removes 23, because the rendered page swaps static promotional blocks for feed placeholders that have not filled yet. The audit flagged no title change, no description change, no canonical missing without JavaScript and no content that exists only in the browser. There is nothing on this page that a browser earns you, and it costs ten times the wall-clock to find that out.
What "vinted proxy" means to the people searching for it
The keyword is a false friend for a proxy vendor. In Google's autocomplete on 28 September 2026 the completions for "proxies for vinted" were "vinted proxy reddit", "vinted fr proxy" and "vinted france proxy", and the third organic result for "vinted proxies" was a Reddit thread asking whether there is a proxy service to buy from other countries. That thread is about a person: someone in Vinted France or Vinted UK who buys an item for you and forwards the parcel, because Vinted's markets ship inside their own borders and a buyer in another country cannot check out. A network proxy does not solve that problem, and we are not going to pretend it does.
The rest of the first page is per-IP vendor pages and guides about running several accounts through antidetect browsers and non-VoIP SMS numbers. We decline that as well. Vinted's robots.txt carries a "transactional governance" block that states automated agents may not create or manage accounts, add items to carts, check out or simulate a customer, and that any of it may be blocked or referred for legal action. That is the one line worth quoting to anyone asking for "Vinted proxies for accounts": the platform has written the answer down.
What is left is the legitimate, measurable use: reading public catalogue and listing pages for price research, brand monitoring, availability checks across the 26 markets Vinted operates in, and verifying what a visitor to a given market actually sees. For that, the numbers above are the whole story, and the rest of this page is how to spend the least on them.
The country lives in the domain, not in the exit
Vinted runs one site per market: vinted.it, vinted.fr, vinted.de, vinted.co.uk and so on. The locale is chosen by the domain you request, and the response says which: x-user-iso-locale it-IT and the middleware rewrite to /it:it-IT/ arrived on both our Italian and our German fetch. From a German residential exit, vinted.it returned the same Italian title, the same Italian h1 and 210 words; there was no redirect to vinted.de and no German interface. The number that changes when you pick the wrong exit is, on the home page, zero.
So the geo rule on Vinted is inverted compared with a site like a bookmaker, where the same URL returns a different product by country. Here you choose the market by choosing the domain, and you pin the residential exit to that same country for a different reason: consistency. Shipping options, prices with local VAT and the catalogue a buyer in that market sees are what you are measuring, and a session that hops between countries on a single domain is the one thing that looks unlike any real visitor. Use country=it for vinted.it, country=fr for vinted.fr, and keep it that way for the length of a job.
What robots.txt allows, and what the terms add
Vinted's robots.txt is 3,281 bytes and unusually explicit. For every user agent it disallows /checkout, /util, /apipie/, /admin_alert/new, /member/ and /inbox, then allows ten specific member profiles by id and everything else. It then sets a Content-Signal line, ai-train=no, search=yes, ai-input=yes, and states that the restrictions are an express reservation of rights under Article 4 of the EU Directive 2019/790. A second group names GPTBot, ClaudeBot, Google-Extended, Amazonbot and CCBot and disallows the whole site to them, with ai-input=no. A generic client is allowed to read the catalogue; the named AI crawlers are not; nobody may train on it.
The terms page is a different kind of source: fetched over plain HTTP it returned 1,558,899 bytes and 197 words, all of them navigation. The legal text is loaded by JavaScript, so a client that wants to read Vinted's terms needs the browser that the catalogue does not. We read them as a person would, and the operative point for this article is the one already in robots.txt: no automated accounts, no automated transactions. Public-page reading is a technical question the measurement answers; account automation is a contractual one the platform has already closed.
Cost math with real numbers
Prices from our pricing page: residential Basic $0.80/GB, Premium $2.20/GB, mobile $2.30/GB, and the web scraping API from $0.0002 per page, $0.001 with rendering, billed only on success. One gigabyte is counted as 10^9 bytes throughout.
| Approach | Bytes per home page | Pages per GB | Cost per 1,000 pages |
|---|---|---|---|
| Plain HTTP over residential Basic ($0.80/GB) | 1,997,674 | about 500 | about $1.60 |
| Plain HTTP over residential Premium ($2.20/GB) | 1,997,674 | about 500 | about $4.39 |
| Rendered over residential Basic | 1,915,011 | about 522 | about $1.53, plus 36 seconds each |
| Web scraping API, plain HTTP | n/a | n/a | $0.20 |
| Web scraping API, rendered | n/a | n/a | $1.00 |
The lesson is not the usual "skip the browser to save bytes", because on Vinted the rendered DOM is marginally smaller than the raw HTML. The lesson is time: 3.5 seconds against 36.4 for fewer words. A crawl of 10,000 catalogue pages is under ten hours of fetch time over plain HTTP at one connection and over four days rendered. Byte figures are the decoded HTML; wire transfer after compression is lower, and headers and TLS add a little back, so treat the per-GB numbers as an upper bound. Where the page is this heavy and the words this few, the per-page price of the scraping API beats raw bandwidth by a factor of eight, and it carries the browser-grade TLS fingerprint and the retry logic for you.
There is no Vinted collector in our catalogue. For a comparable classifieds site with one, see what we measured on Subito through residential proxies, where a plain fetch is 183 KB and the collector returns ten ads in 2.7 seconds; and for the case where the render is not merely wasteful but shut out, Idealista.
The setting that works on Vinted
- Network: residential, Basic at $0.80/GB. Nothing in our fetches challenged a residential IP, and the cost driver is bytes, so Premium at $2.20/GB or mobile at $2.30/GB buys nothing measurable here.
- Fetch mode: engine: tls, plain HTTP. 227 words, title, h1, canonical and JSON-LD in 3.5 seconds; the rendered page returns 204 words in 36.4 seconds.
- Country: the country of the domain, country=it for vinted.it. The exit does not change the page (210 words of the same Italian home from Germany), so pin it for consistent shipping, prices and session behaviour rather than for access.
- When the proxy is not enough: the web scraping API at $0.0002 per page returns the same page as clean Markdown or JSON with the TLS fingerprint and retries handled, and the seo_audit tool measures any Vinted URL both ways in one call before you commit a crawl.
- Every account gets $2 of free API usage per month, and failed requests are never billed.