Vinted Scraper avatar

Vinted Scraper

Pricing

from $1.59 / 1,000 results

Go to Apify Store
Vinted Scraper

Vinted Scraper

Extract Vinted items across 23 country sites as clean JSON with zero seller data - prices with buyer fees, brand, size, condition, demand signals. Newest-first monitoring, pay per result. Built for resale pricing, brand tracking and AI pipelines.

Pricing

from $1.59 / 1,000 results

Rating

0.0

(0)

Developer

Lowland Data

Lowland Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 hours ago

Last modified

Categories

Share

Vinted Scraper — privacy-safe fashion resale data

Extract items from Vinted — Europe's largest fashion resale marketplace — as clean, structured JSON, across 23 national sites. Prices with buyer fees, brands, sizes, conditions, demand signals and photos, ready for resale pricing, brand monitoring and data pipelines.

No seller personal data, ever. This scraper is built privacy-first: seller usernames, user IDs and profile links never appear in the output — not as an option you have to remember to switch off, but by design. Only the business-vs-private flag survives.

Quick start (30 seconds)

  1. Put what you'd type in the Vinted search box into searchQuery — e.g. nike air max.
  2. Pick your domainfr, de, co.uk, be... (23 country sites).
  3. Click Start. When the run finishes, open the dataset's Overview tab for a clean table, or Export it as CSV/Excel/JSON.

Optional knobs: a price band and newest-first sorting for monitoring — and any input works on a daily Schedule.

What you can build with it

  • Price a resale inventory. Search your brand and model, and get every live listing with priceCents, the buyer-protection fee and the total price — the real market price, not the sticker.
  • Watch a niche for underpriced drops. Run searchQuery: "arc'teryx" with sortBy: "newest" hourly — every new listing arrives with brand, size and condition parsed.
  • Compare markets across countries. The same query against de, fr and co.uk shows where an item is cheap to buy and dear to sell.
  • Feed an AI agent clean data. Every field is structured, predictable and free of personal data, so an assistant or pipeline can consume it directly — no scrubbing, no compliance review before you store it.

What you get

Each item is one dataset item:

{
"itemId": "9720000001",
"url": "https://www.vinted.fr/items/9720000001-t-shirt-de-foot",
"title": "T-shirt de foot",
"brand": "Nike",
"size": "12 ans / 152 cm",
"condition": "Très bon état",
"priceCents": 500,
"currency": "EUR",
"serviceFeeCents": 95,
"totalPriceCents": 595,
"businessSeller": false,
"promoted": false,
"favouriteCount": 2,
"viewCount": 7,
"imageUrls": ["https://images1.vinted.net/t/example/f800/1.webp"]
}

Field notes, so you know exactly what you are buying:

  • priceCents is the asking price in minor units (cents, pence); totalPriceCents includes Vinted's buyer-protection fee — the price a buyer actually pays.
  • currency follows the site you searched: EUR, GBP, PLN, SEK, ...
  • condition and size come in the site's language, exactly as displayed.
  • favouriteCount is a live demand signal — high favourites at a low price means it will sell fast.
  • businessSeller separates professional sellers from private ones. Seller identity is never collected.

AI analysis: comparable fields across free-form listings (optional)

Sellers type titles, brands and conditions however they like, in 23 languages. With aiAnalysis: true, every item additionally carries four AI-computed fields with a fixed, comparable vocabulary:

  • normalizedBrand — canonical brand name ("nike air" → Nike), unbranded when there is none.
  • normalizedCategory — one of a fixed set (tops, shoes, bags, dresses, ...), so you can group across sellers.
  • conditionScore — the stated condition mapped to 1 (heavily worn) – 5 (new), language-independent.
  • listingQualityexcellent/good/fair/poor: how complete and consistent the listing looks.

Analysis costs $0.50 per 1,000 analyzed items on top of the result price and is available on paid Apify plans. You are only charged for items that were actually analyzed and delivered — an item the analysis could not process ships normally and costs nothing extra. The model receives only the fields already in your dataset (title, brand, size, condition), classifies them into the fixed vocabulary above, and can output nothing else — the same whitelist principle that keeps seller identity out of this scraper applies to the AI output too.

How much does it cost to scrape Vinted?

$1.99 per 1,000 items delivered, pay-as-you-go — no subscription, no charge for empty or failed runs. In plain euros:

  • 100 items ≈ $0.20 — a daily niche watch.
  • 500 items ≈ $1.00 — a solid brand snapshot.

The price is all-inclusive — your runs' platform usage is covered by it, with no separate compute or proxy charges. Datacenter proxies are sufficient — no residential proxy surcharge needed.

Free-plan runs are limited to a sample of 25 items, enough to evaluate the output format against your real query.

Not technical? Let your AI assistant set it up

Copy this into ChatGPT, Claude or any AI assistant, fill in the one line, and follow the conversation:

Help me set up the "Vinted Scraper" actor on Apify
(https://apify.com/lowlanddata/vinted-scraper). Guide me one step at a time.
What I want to watch: [E.G. "Nike Air Max under 40 euros on vinted.fr"]
Guide me to:
1. Propose my input values: searchQuery (what I'd type in the Vinted search box),
domain (fr, de, co.uk, be, ...), an optional priceMin/priceMax band, sortBy
"newest" for monitoring, maxItems, and whether I want aiAnalysis (adds
normalized brand/category and a 1-5 condition score, $0.50 per 1,000 items).
2. Create a free Apify account (apify.com), open the actor page, paste the values
into the Input form, and start a run.
3. Set up a daily Schedule in the Apify Console with the same input, plus an email
or Slack integration so new results reach me automatically.
4. Show me how to export results as CSV/Excel, or read them from the API if I code.
5. If the results are what I wanted, remind me at the end to leave a quick rating on the actor page, and to report anything broken or missing on its Issues tab.

Input

FieldDescription
searchQueryWhat you'd type in the Vinted search box. Required.
domainNational site: fr (default), be, de, nl, es, it, co.uk, pl, at, pt, cz, sk, lt, se, dk, fi, ie, lu, hu, ro, gr, hr, com.
priceMinOnly items costing at least this much (site currency).
priceMaxOnly items costing at most this much (site currency).
sortBynewest (default), price_asc, price_desc, or relevance.
aiAnalysistrue adds four AI-computed fields per item (see below). $0.50/1,000 analyzed items on top; paid Apify plans only. Default false.
maxItemsStop after this many items (default 500).
proxyConfigurationProxy settings; keep Apify proxy enabled.

A run minimally needs a searchQuery; invalid combinations (like an inverted price band) fail immediately with the reason in the run's status message.

Use it from your code

Run the actor and get items straight back with one HTTP call (fine for scoped runs up to ~5 minutes):

curl "https://api.apify.com/v2/acts/lowlanddata~vinted-scraper/run-sync-get-dataset-items?token=<YOUR_API_TOKEN>" \
-X POST -H "Content-Type: application/json" \
-d '{"searchQuery": "nike air max", "domain": "fr", "maxItems": 100}'

Node.js:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });
const run = await client.actor('lowlanddata/vinted-scraper').call({
searchQuery: 'nike air max',
domain: 'fr',
maxItems: 100,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Python:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("lowlanddata/vinted-scraper").call(
run_input={"searchQuery": "nike air max", "domain": "fr", "maxItems": 100})
items = client.dataset(run["defaultDatasetId"]).list_items().items

Schedules, webhooks and the Make/Zapier/n8n integrations all work out of the box — this is a standard Apify actor.

Use it with AI agents (MCP)

Claude, Cursor and other MCP-capable agents can run this scraper as a tool through Apify's hosted MCP server: the agent fills in the search itself, starts the run and reads the results — no glue code.

Claude Code:

$claude mcp add apify --transport http "https://mcp.apify.com?actors=lowlanddata/vinted-scraper"

Cursor or Claude Desktop (add a custom connector / MCP server with this URL):

https://mcp.apify.com?actors=lowlanddata/vinted-scraper

Sign in with your Apify account when prompted — runs are billed to it. Setup details per client: Apify MCP docs.

Prompts that work once connected:

  • "Search vinted.fr for 'nike air max' under 40 euros and list the newest ten with total buyer price."
  • "Compare 'levis 501' prices between vinted.de and vinted.co.uk and summarize the spread."
  • "Watch Vinted for 'arc'teryx' and flag anything with more than 10 favourites."

Public listing data — prices, brands, sizes, conditions — is public commercial information, and this scraper is built so that the hard part of the question never arises: no personal data enters your dataset in the first place. The GDPR sets strict rules on personal data; an output that carries no usernames, no user IDs and no profile links is the point of this actor, not an afterthought.

Structurally, the extractor maps a fixed whitelist of fields out of the page's data. Seller identity and tracking parameters are never read into the output. Requests are paced, load on the site is kept negligible, and no anti-bot protection is bypassed — a blocked request is reported honestly, never fought.

One honest limit: item titles are the seller's own words, delivered as-is. If a seller chooses to type contact details into their title, that text is not rewritten — the guarantee covers the data fields, not the content sellers publish about themselves.

Is there a Vinted API alternative?

Vinted publishes no public API. This actor is the practical alternative: the same items as structured JSON through one HTTP call (run-sync-get-dataset-items), on a schedule, or as an MCP tool for AI agents — with the privacy question already answered in the data itself.

Does Vinted block scrapers?

Vinted protects some routes aggressively, and this actor deliberately stays on the openly served pages: paced requests, standard datacenter proxies, load kept negligible, no anti-bot bypassing. If the site does block a run mid-way, the items already collected are delivered with an honest note in the run status — you are never charged for what didn't arrive.

How do I monitor Vinted prices?

Set sortBy: "newest" with your query, cap maxItems to a page or two, and add a daily (or hourly) Schedule in the Apify Console with an email/Slack integration on the runs — every new item lands in your inbox with the price already parsed to cents. The AI-assistant prompt above walks a non-technical user through exactly this setup.

FAQ

Can I get seller names or profiles? No — by design. That is the product: data you can store, share and process without a privacy review.

How deep does one search go? Vinted serves at most 10 pages (~960 items) per search. Narrow by price band to see everything in busy categories.

Which countries are covered? 23 national sites, from France to the US — one domain value each.

How fresh is the data? Live at run time — every run queries Vinted directly. For continuous freshness, schedule the actor.

Can I export to Excel or CSV? Yes — every dataset exports as CSV, Excel, JSON or XML from the Apify Console or API.

Does it work with Make, Zapier or n8n? Yes — it is a standard Apify actor; all platform integrations, webhooks and schedules apply.

Does Vinted have a public API? No — Vinted publishes none. This actor is the practical substitute: the same items as structured JSON through one HTTP call, a schedule, or an MCP tool for AI agents.

Do I need a Vinted account or API key? No. The actor reads the openly served listing pages, so the only account involved is your Apify account — the free plan is enough to test with.

How much does scraping Vinted cost? $1.99 per 1,000 items delivered, pay-as-you-go. No subscription, and empty or failed runs cost nothing.

Do I need residential proxies for Vinted? No. Standard datacenter proxies through the default Apify proxy setting are sufficient — there is no residential surcharge to pay.

What is the difference between priceCents and totalPriceCents? priceCents is the seller's asking price; totalPriceCents adds Vinted's buyer-protection fee, which is what a buyer actually pays at checkout.

Why are size and condition not in English? They arrive exactly as the site displays them, in the site's language. Turn on aiAnalysis if you need a language-independent conditionScore from 1 to 5.

What does the aiAnalysis option add? Four comparable fields per item: normalized brand, normalized category, a 1–5 condition score and a listing-quality grade. It costs $0.50 per 1,000 analyzed items on top and needs a paid Apify plan.

What happens if Vinted blocks my run? Everything collected up to that point is delivered, the run status says so honestly, and you are not charged for items that didn't arrive. A retry a few minutes later usually lands on a clean proxy session.

Why did my run stop at 25 items? That is the free-plan sample cap, there to let you evaluate the output format. Paid Apify plans get full results up to your maxItems.

Can I use this without writing any code? Yes. Fill in the input form on the actor page and click Start — or paste the AI-assistant prompt above into ChatGPT or Claude and let it walk you through setup, scheduling included.

How do I call it from my own code? One HTTP POST to the run-sync-get-dataset-items endpoint returns the items directly for scoped runs up to about 5 minutes; the apify-client packages for Node.js and Python are shown above.

Is it legal to scrape Vinted? Public listing data — prices, brands, sizes, conditions — is public commercial information, and this actor's output carries no usernames, user IDs or profile links, so the personal-data question never enters your dataset.

Can I track how prices change over time? Each run is a live snapshot. Put the same input on a daily Schedule and your datasets accumulate into a price history you can chart.

How do I tell professional sellers from private ones? The businessSeller flag. That is the only seller-related signal in the output — identity is never collected.

Is there a version of this for other marketplaces? Yes — the Kleinanzeigen.de, Marktplaats.nl and 2dehands/2ememain scrapers linked below share the same clean-output guarantee.

The same clean-output guarantee across Europe's biggest marketplaces:

Troubleshooting

The actor fails fast with the reason in the run's status message:

  • "priceMin must not be higher than priceMax." — swap the two values.
  • "Vinted blocked the run before any results could be fetched. This is usually temporary - retry in a few minutes." — a temporary block on the first request; a retry usually lands on a clean proxy session.
  • Fewer items than requested on a free plan — the 25-item free sample cap; run on a paid Apify plan for full results.

Support

Found an issue or missing a field you need? Open an issue on the actor's Issues tab — reports get fixed, this actor is actively maintained.

Working well for you? A rating on this page takes ten seconds and helps other buyers find a privacy-clean option among the lookalikes — it is also the clearest signal of what we should build next.