Vinted Products Crawler avatar

Vinted Products Crawler

Pricing

from $1.50 / 1,000 products

Go to Apify Store
Vinted Products Crawler

Vinted Products Crawler

Scrape Vinted listings from all 27 country sites — .fr, .de, .co.uk, .pl and more, mixable in one run. Get prices, brands, sizes, conditions, seller ratings and photos as clean JSON, CSV or Excel. Built for reselling, price tracking and market research. Not affiliated with Vinted Limited.

Pricing

from $1.50 / 1,000 products

Rating

0.0

(0)

Developer

Alkausari M

Alkausari M

Maintained by Community

Actor stats

1

Bookmarked

67

Total users

23

Monthly active users

a day ago

Last modified

Share

Get thousands of Vinted listings into a spreadsheet — from any of Vinted's 27 country sites. Paste a catalog, search or item link, press Start, get every matching listing as one clean row.

Export to Excel, CSV, JSON or XML, or pipe it into Google Sheets, Zapier, Make or your own code through the Apify API. Schedule it daily to track prices over time.

Use cases

  • 💰 Price research — track second-hand prices for a brand or item over time
  • 🔍 Resale sourcing — spot underpriced listings by price, brand and condition
  • 📊 Market analysis — see what sells, at what price, in what condition
  • 📦 Inventory feeds — build product lists for a category or brand to resell elsewhere
  • 🔗 Data pipelines — feed a dashboard, a database or your own app

What you get

🏷️ ListingTitle, price, currency, total price, size, condition, brand, colour
👤 SellerUsername, rating, review count, last active, profile link
🖼️ PhotosUp to 9 high-resolution images per listing
📐 Item detailDescription, material, measurements, shipping price, free shipping
🌍 SourceCountry domain, item ID, listing URL, upload time, favourites

How to run the Actor

  1. Click Try for free.
  2. Paste a Vinted link into Start URLs — a catalog or search page, a direct item link, or a mix. Any filters you already applied on Vinted are kept.
  3. Set End Page or Max items to control how much you scrape.
  4. Press Start, then open the Output tab and export.

Every Vinted country works — .com, .co.uk, .fr, .de, .es, .it, .pl and 20 more — and they can be mixed in a single run.

Ready-made tasks

Pre-configured setups — open one, hit Start, get results. Each is a normal task, so you can change the filters, page range or item limit and save it as your own.

TaskWhat it doesBest for
Track new women's fashion listings on Vinted UKLatest womenswear from vinted.co.uk, fast modeSpotting new stock the moment it lands
Compare sneaker prices across Vinted France and GermanyTwo countries in one run, with comparable priceAmount + currencyCross-border bargain hunting
Research a brand's resale prices and descriptionsOne brand with full details — descriptions, materials, seller ratingsValuing stock before you buy

Fast mode vs full details

ModeFieldsPriceBest for
Fast (default)16$1.50 / 1,000Price tracking, resale sourcing, market research
Full details29$8.50 / 1,000Descriptions, materials, seller ratings

Full details opens every listing's own page, adding description, colour, material, measurements, shipping, every photo, and the seller's username, rating and last active time.

Input

SettingWhat it doesDefault
Start URLsCatalog or search pages, direct item URLs, or a mix, from any Vinted country—
Start PageFirst catalog page to scrape1
End PageLast catalog page, up to Vinted's limit of 101
Max itemsStop after this many listings (0 = no limit)0
Max ConcurrencyPages scraped in parallel — lower it if you hit blocks10
Fetch full item detailsAdd descriptions, materials, photos and seller ratingsfalse
Proxy ConfigurationLeave as default if unsureApify Proxy (Residential)

Each catalog page holds about 96 listings, so pages 1–5 returns roughly 480 items. Direct item URLs are always scraped with full details.

Example input

{
"startUrls": [
{ "url": "https://www.vinted.fr/catalog?catalog[]=1904&order=newest_first" },
{ "url": "https://www.vinted.de/catalog?search_text=nike" }
],
"startPageNum": 1,
"endPageNum": 5,
"maxItems": 200,
"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }
}

Output

One dataset, one row per listing. Here is a real record from vinted.fr with full details turned on:

{
"itemId": 9627980284,
"url": "https://www.vinted.fr/items/9627980284-pantalon-hugo-boss-beige-clair",
"domain": "vinted.fr",
"title": "pantalon Hugo Boss beige clair taille 50 coupe habillée",
"price": "€10.00",
"priceAmount": 10,
"currency": "EUR",
"totalPrice": "€11.20",
"size": "W50 | FR 60",
"condition": "Très bon état",
"brand": "Hugo Boss",
"brandUrl": "https://www.vinted.fr/catalog/261-tailored-trousers/brand/120-hugo-boss",
"color": "Beige",
"description": "Pantalon homme Hugo Boss, coloris beige clair / écru…",
"uploaded": "Il y a 14 minutes",
"seller": "lysker",
"sellerProfileUrl": "https://www.vinted.fr/member/14081384",
"sellerRating": 5,
"sellerRatingCount": 253,
"sellerLastSeen": "Vu la dernière fois : il y a 41 minutes",
"favorites": 0,
"images": ["https://images1.vinted.net/tc/05_02362_GTAwfUjrJ4XjL4aoiRA6v68Q/1786381468.jpeg"],
"shippingPrice": "à partir de 2,83 €",
"freeShipping": false,
"material": null,
"measurements": null,
"scrapedAt": "2026-08-10T17:19:09.234Z"
}

Every record in a run carries the same columns, with null where a seller left something blank — so Zapier, Make and Sheets can map them from a single sample. Switching mode changes the column set, so pick a mode before building a mapping.

Pricing

You pay per result, so the bill is simply how many listings you asked for:

ListingsFast modeFull details
100$0.15$0.85
1,000$1.50$8.50
10,000$15.00$85.00

The extra $7 per 1,000 covers opening each listing's own page. Pages that cannot be read are not charged — the item is still saved with everything the catalog gave, and the item-page fields are left empty.

Start in fast mode. It already covers price tracking, resale sourcing and market research, and costs under a fifth as much.

Getting more than 960 listings

Vinted serves only 10 pages per search. At ~96 listings a page that is a hard ceiling of roughly 960 listings per URL, however high you set End Page. Ask for 150 pages and you still get 10.

The limit applies to each search, not to each run — so split one broad search into several narrower ones, and each gets its own 10-page window.

{
"startUrls": [
{ "url": "https://www.vinted.fr/catalog?catalog[]=2050&price_from=30&price_to=60" },
{ "url": "https://www.vinted.fr/catalog?catalog[]=2050&price_from=60&price_to=100" },
{ "url": "https://www.vinted.fr/catalog?catalog[]=2050&price_from=100&price_to=150" }
],
"endPageNum": 10,
"maxItems": 0
}

Three URLs instead of one: ~2,880 listings instead of ~960, same filters.

Split byWhen it works well
Price bandAlmost always — bands are easy to keep non-overlapping
BrandYou are already filtering several brands
SizeClothing and shoes, where buyers want one size anyway
CategoryBroad searches spanning several categories
CountryThe same search across markets

The quickest way to build them is on Vinted itself: apply one extra filter, copy the URL, change that filter, copy again.

Integrations & scheduling

Results don't have to stay on Apify. Without writing any code you can:

  • Send listings to Google Sheets, Airtable or Slack — pick the integration on the Actor's Integrations tab and every run appends its results automatically.
  • Connect anything else via Zapier or Make — thousands of apps, triggered when a run finishes.
  • Fire a webhook to your own server the moment a run completes, with a link to the fresh dataset.
  • Pull the data over the API in JSON, CSV, Excel or XML — one URL, no auth juggling, ideal for a script or notebook.

Run it on a schedule. Point the Actor at a saved Vinted search, set it to run every morning and send the output to a sheet — that is a working price tracker with no code at all. Every listing carries a stable itemId, so you can match today's data against yesterday's to spot price drops and see which items disappeared.

Tips

  • Apply your filters on Vinted first, then copy the URL — every filter is preserved.
  • Start in fast mode and switch on full details only when you need descriptions or materials.
  • Use Max items for single-country runs, and Start/End Page for multi-country ones.
  • Split a broad search into narrower ones to get past the 960 ceiling.
  • Lower Max Concurrency if you start seeing blocks.

Good to know

  • Multi-country runs — mix .fr, .de, .co.uk and any others in Start URLs. Each record carries domain, and priceAmount + currency make prices comparable.
  • Max items across countries — leave it at 0 and size the run with Start/End Page. It is one budget shared by every URL, filled first-come-first-served, so 300 items across France and Germany can land as 192/108, differently each run.
  • Non-English text — condition, size, uploaded and sellerLastSeen come back in the site's own language, because that is how Vinted serves them. Compare on priceAmount, currency, sellerRating and domain instead.
  • Seller username in fast mode — always null, because Vinted's catalog does not carry it. Use sellerProfileUrl, which works in both modes.
  • Empty fields — sellers are not required to fill in every detail, so optional fields like material and measurements come back null.
  • Blocked or empty results — keep the proxy enabled; it is on by default, and residential IPs are far less likely to be blocked.
  • Fewer results than expected — check Max items, then End Page, then Vinted's 10-page cap above.

📮 Support

Bugs, feature requests, or custom scraping work — open an issue on Apify, email alkausarimujahid@gmail.com, or visit my website ayzalsoft.com.