Vinted Scraper — search & extract listings avatar

Vinted Scraper — search & extract listings

Pricing

from $2.00 / 1,000 some-events

Go to Apify Store
Vinted Scraper — search & extract listings

Vinted Scraper — search & extract listings

Scrape Vinted marketplace listings across 14 countries. Extract prices, brands, seller data, images, and more from the second-hand fashion platform.

Pricing

from $2.00 / 1,000 some-events

Rating

0.0

(0)

Developer

Steven Bennett

Steven Bennett

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Vinted Scraper

Extract listings from Vinted — Europe's largest second-hand fashion marketplace with 80M+ members across 16 countries.

No existing Vinted scraper on Apify Store. First-mover advantage in this niche.

Vinted Scraper demo


Features

  • 🔍 Search anything — keyword, brand, size, price range, condition filters
  • 🌍 14 country domains — UK, France, Germany, Netherlands, Italy, Spain, Poland, US, Czechia, Austria, Lithuania, Luxembourg, Portugal, Belgium
  • 📊 Rich data — price (incl. buyer protection fee), brand, size, condition, photos, seller info, favourites, view count, promoted status
  • 🔄 Smart sorting — newest, price low→high, price high→low, relevance
  • 🛡️ Anti-bot resistant — headless browser with session rotation handles Cloudflare
  • 📦 No full detail needed — catalog pages already contain all item data
  • 💰 Pay-per-event — you only pay for what you use

Pricing

EventPrice
Start$0.50 per run
Per item$0.0015 per listing ($1.50 / 1,000 items)

A typical search for "jeans" (960 results) would cost ~$1.94. A small search (50 results) costs ~$0.58.

Quick Start

Via Apify Console

  1. Go to Vinted Scraper in Apify Console
  2. Click Run and fill in the fields:
    • search — what to look for (e.g. "Levi's 501")
    • country — Vinted domain (e.g. co.uk, fr, de)
    • maxItems — how many listings to scrape
  3. Wait for the run to complete
  4. Download results as JSON, CSV, or Excel

Via API

curl -X POST "https://api.apify.com/v2/acts/~vinted-scraper/runs?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"search": "Levi's 501",
"country": "co.uk",
"maxItems": 100,
"order": "price_low_to_high"
}'

Via Apify SDK (Node.js)

import { Actor } from 'apify';
const run = await Actor.call('~vinted-scraper', {
search: 'Levi\'s 501',
country: 'co.uk',
maxItems: 100,
});
const { items } = await Actor.openDataset(run.defaultDatasetId);
console.log(items);

Input Parameters

ParameterTypeDefaultDescription
searchstringrequiredSearch keyword or phrase
countrystringco.ukVinted domain: co.uk, fr, de, nl, it, es, pl, com, cz, at, lt, lu, pt, be
maxItemsnumber100Max listings to scrape (1–100,000)
orderstringnewest_firstSort: newest_first, price_low_to_high, price_high_to_low, relevance
brandstringFilter by brand name
sizestringFilter by size ID
minPricenumberMinimum price
maxPricenumberMaximum price
conditionstringnew_with_tags, new_without_tags, very_good, good, satisfactory
scrapeFullDetailsbooleanfalseVisit each item's detail page for descriptions
proxyConfigurationobjectApify proxyProxy configuration (recommended)

Output Schema

Each scraped listing returns the following fields:

Basic Fields (all modes)

#FieldTypeDescription
1idnumberUnique Vinted item ID
2titlestring | nullListing title
3brandstring | nullBrand name (e.g. Levi's, Zara)
4pricenumber | nullItem price
5currencystring | nullCurrency code (GBP, EUR, USD)
6totalPricenumber | nullPrice + buyer protection fee
7serviceFeenumber | nullVinted's buyer protection fee
8sizestring | nullSize label (e.g. "M / UK 12-14")
9conditionstring | nullItem condition (New, Very good, Good, Satisfactory)
10imagestring | nullMain photo URL
11imagesstring[]All photo URLs (up to 20)
12urlstring | nullDirect link to the listing on Vinted
13favouriteCountnumberNumber of favourites/likes
14viewCountnumberNumber of views
15promotedbooleanWhether the item is promoted (boosted)
16sellerIdnumber | nullVinted user ID of the seller
17sellerUsernamestring | nullSeller's username
18sellerAvatarstring | nullSeller's profile picture URL
19sellerBusinessbooleanWhether seller has a business account
20countrystringCountry domain scraped (e.g. co.uk, fr)
21scrapedAtstringISO 8601 timestamp of when the item was scraped

Detail Fields (when scrapeFullDetails: true)

#FieldTypeDescription
22descriptionstring | nullFull item description text
23materialstring | nullMaterial composition (if available)
24colourstring | nullItem colour (if available)
25brandSizestring | nullBrand-specific size label
26specificFieldsobject | nullKey-value pairs from item specifics table

Sample Output

{
"id": 9316064421,
"title": "Nike Pro Fit Orange Activewear Tank Top Size XXL",
"brand": "Nike",
"price": 7.0,
"currency": "GBP",
"totalPrice": 8.05,
"serviceFee": 1.05,
"size": "XXL",
"condition": "Very good",
"image": "https://images1.vinted.net/t/06_012fc_.../f800/1783154961.webp",
"images": [
"https://images1.vinted.net/t/06_012fc_...1/f800/1783154961.webp",
"https://images1.vinted.net/t/03_00f7f_...2/f800/1783154961.webp"
],
"url": "https://www.vinted.co.uk/items/9316064421-nike-tank-top",
"favouriteCount": 0,
"viewCount": 0,
"promoted": false,
"sellerId": 189006959,
"sellerUsername": "louisloftus",
"sellerAvatar": "https://images1.vinted.net/t/01_00cb7_.../f800/1779568859.webp",
"sellerBusiness": false,
"country": "co.uk",
"scrapedAt": "2026-07-04T11:30:18.220Z"
}

Use Cases

  • Reseller research — find underpriced items, track trends
  • Brand monitoring — track how much your brand trades for second-hand
  • Market analysis — fashion economics, price distribution studies
  • Competitive intelligence — monitor competitor products
  • Data collection — AI/ML training datasets for fashion models

Rate Limits & Anti-Bot

Vinted uses Cloudflare protection. This Actor handles it with:

  • ✅ Headless Playwright browser (full JS rendering)
  • ✅ Session rotation with Apify proxy
  • ✅ Retry logic with backoff
  • ✅ Stealth plugin to avoid detection

Using the Actor without Apify proxy may result in blocking.

Technical Details

The scraper extracts data from Vinted's React Server Components (RSC) streaming payload — the same data the frontend renders. This means:

  • No fragile CSS selector dependency
  • No DOM parsing errors
  • Clean, structured JSON extraction
  • Fast page-level data collection (no per-item requests unless scrapeFullDetails is enabled)

Stack: Crawlee (PlaywrightCrawler) · Node.js 20 · Apify SDK

Changelog

v1.0 — 2026-07-04

  • Initial release
  • 14 country domain support
  • Full search/filter pipeline
  • RSC payload extraction
  • Detail page scraping (optional)

Built with 🛠️ by Meester Bot · Not affiliated with Vinted