👜 Vinted Comps Scraper
Pricing
from $5.00 / 1,000 listing or comps_summary records
👜 Vinted Comps Scraper
Scrape Vinted for fashion resale listings + comps. Price (USD + raw), condition, brand, size, seller, photos. Plus computed comps: median, P10/P90, byVariant grouped by brand+size+condition, netSellerUsd after fees. Export, run via API, schedule, or integrate with other tools.
Pricing
from $5.00 / 1,000 listing or comps_summary records
Rating
0.0
(0)
Developer
Skootle
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
22 days ago
Last modified
Categories
Share

TL;DR
Scrape Vinted for fashion resale listings + comps. Returns one record per listing (price, condition, brand, size, seller, photos, ISO date) plus one comps_summary per query with medianUsd, p10Usd, p90Usd, sample-size confidence, byVariant block grouped by (brand, size, condition), and netSellerUsd (after Vinted's buyer-protection fee). Built for fashion resellers, cross-listing tools, AI fashion-resale agents.
Try it on a small dataset, then let us know what you think in a review.
What does Vinted Comps Scraper do?
Vinted Comps Scraper pulls every public Vinted listing matching your search query and computes ready-to-use price comps in one pass. The dataset has two record types:
-
listing, one record per individual Vinted listing with sold price (numeric USD + raw EUR/GBP), condition enum, brand, size, seller name + reviews + reputation, listing date in ISO 8601, photos, andnetSellerUsdafter Vinted's buyer-protection fee. -
comps_summary, one record per query withmedianUsd,p10Usd,p90Usd,sampleSize,confidenceenum, andbyVariant[]block grouped by(brand, size, condition)tuple.
Vinted is the only platform live in v0.1. Depop and Mercari arrive in v0.2.
Why scrape Vinted?
Vinted is the largest peer-to-peer fashion resale marketplace in Europe (~80M users) and the fastest-growing alternative to Mercari and Poshmark in North America. For secondhand luxury, vintage, streetwear, and contemporary fashion outside of eBay, Vinted is the deepest catalog. Resellers, cross-listers, boutique sellers, and fashion-resale agents need clean comps off Vinted to price inventory and avoid overpaying on buys. There is no public API for non-merchant users.
Manual workflow killed: opening Vinted, filtering, paging through 200 listings, copying prices into a sheet, converting EUR/GBP to USD by hand, subtracting Vinted's buyer-protection fee, and eyeballing a median. You get median, P10, P90, sample-size confidence, and a per-variant breakdown grouped by (brand, size, condition). Every listing also carries netSellerUsd after fees, so repricing logic models true take-home, not gross list price. Pair with the eBay Sold Comps actor for cross-marketplace pricing without writing two scrapers.
Who needs this?
- Fashion resellers pricing buys and listings before paying or relisting
- Boutique and vintage sellers monitoring competitor pricing on their brand
- Cross-listing tool builders integrating Vinted comps into Vendoo / List Perfectly / Crosslist
- Brand-protection teams monitoring secondary-market pricing on their brand
- AI fashion-resale agents running daily reprice loops on inventory
- Demand researchers measuring brand momentum via
favoriteCountvelocity
How to use Vinted Comps Scraper
- Open the Input tab on the actor page
- Add search queries to
searchQueries - Optionally filter
brands,sizes,conditions - Set
maxItemsPerQuery(default 50) - Optionally enable
emitCompsSummary(defaulttrue) - Click Start
How much will scraping Vinted cost?
This actor is priced per event:
- Actor Start: $0.01 once per run
- Vinted record (listing or comps_summary): tiered, charged per record written
| Apify plan | $/1000 records |
|---|---|
| FREE | $30.00 |
| BRONZE | $25.50 |
| SILVER | $21.00 |
| GOLD | $18.00 |
| PLATINUM | $18.00 |
| DIAMOND | $16.20 |
A daily reseller workflow on 10 SKUs returns ~510 records. Roughly $9 per run on GOLD.
Is it legal to scrape Vinted?
Yes, Vinted's listings are publicly accessible to anyone in a browser without logging in. This actor reads the same public pages with proper rate-limiting. It does not log into seller accounts, does not access buyer-side data, and does not bypass any technical access control.
For commercial redistribution of raw datasets, consult Vinted's terms and your legal counsel. For internal pricing tools, repricing engines, AI training, and comparison-shopping research, the scraped data is treated like any other public web content.
Examples
Example 1: Louis Vuitton bag comps
{"searchQueries": ["louis vuitton bag"],"maxItemsPerQuery": 50}
Example 2: Vintage Levis 501 by size
{"searchQueries": ["vintage levis 501"],"sizes": ["W30", "W31", "W32", "W33"],"maxItemsPerQuery": 100}
Example 3: Reseller bulk-SKU repricing
{"searchQueries": ["north face nuptse jacket","carhartt detroit jacket","patagonia retro-x fleece"],"maxItemsPerQuery": 50}
Example 4: Brand monitoring
{"searchQueries": ["yourBrandName"],"watchlistMode": true,"maxItemsPerQuery": 100}
Example 5: Pre-loved-only filter
{"searchQueries": ["chanel classic flap"],"conditions": ["VERY_GOOD", "GOOD"],"maxItemsPerQuery": 50}
Example 6: Cross-platform comp comparison
{"searchQueries": ["air jordan 1 chicago size 10"],"maxItemsPerQuery": 50}
Pair with the ebay-sold-comps actor running the same query for cross-platform comp delta.
Example 7: Demand-velocity research
{"searchQueries": ["stanley quencher"],"maxItemsPerQuery": 200}
Aggregate favoriteCount per listing as a leading demand indicator.
Example 8: AI fashion-resale autopilot
{"searchQueries": ["yourSKU1", "yourSKU2"],"watchlistMode": true,"maxItemsPerQuery": 50}
Daily run; agent compares yesterday's medianUsd to today's, flags 10%+ swings.
Input parameters
| Field | Type | Default | Description |
|---|---|---|---|
searchQueries | string[] | required | Search terms |
brands | string[] | [] | Brand filter |
sizes | string[] | [] | Size filter |
conditions | enum[] | [] | NEW_WITH_TAGS, NEW_WITHOUT_TAGS, VERY_GOOD, GOOD, SATISFACTORY |
priceMinUsd, priceMaxUsd | float | null | Price range |
maxItemsPerQuery | int | 50 | Per-query cap |
emitCompsSummary | bool | true | Also emit one comps_summary per query |
watchlistMode | bool | false | Idempotent diff |
useApifyProxy | bool | true | Apify residential proxy. Recommended. |
Vinted Comps output format
The dataset has two record types. Filter by recordType.
listing
| Field | Type | Description |
|---|---|---|
outputSchemaVersion, recordType, recordId | string | Discriminated identity |
itemId, url | string | Vinted item ID + URL |
title, description | string | Listing copy |
priceUsd, priceRaw, currency | float / string | Numeric + original |
buyerProtectionFeeUsd, totalBuyerUsd | float | Vinted fee + total cost to buyer |
netSellerUsd | float | What seller takes home |
condition | enum | NEW_WITH_TAGS, NEW_WITHOUT_TAGS, VERY_GOOD, GOOD, SATISFACTORY |
brand, size, color, material | string | Item attributes |
category, subcategory | string | Vinted taxonomy |
sellerName, sellerCountry, sellerReviewCount, sellerRating | string / float | Seller info |
imageUrls | string[] | Listing photos |
favoriteCount | int | "Hearts" on the listing |
listedAt, scrapedAt | ISO 8601 | |
searchQuery | string | The query that found this listing |
fieldCompletenessScore, agentMarkdown | int / string | Quality + LLM-ready summary |
comps_summary
| Field | Type | Description |
|---|---|---|
outputSchemaVersion, recordType, recordId | string | Discriminated identity |
searchQuery, sampleSize, confidence | string / int / enum | Query context + confidence |
medianUsd, p10Usd, p90Usd, meanUsd, stdDevUsd | float | Comps math |
byVariant | array | [{ variant: { brand, size, condition }, count, medianUsd }] |
agentMarkdown | string | LLM-ready summary |
Vinted Comps scraper output example (listing)
{"outputSchemaVersion": "2026-05-08","recordType": "listing","recordId": "vinted:listing:1234567890","itemId": "1234567890","url": "https://www.vinted.com/items/1234567890","title": "Louis Vuitton Speedy 30 monogram","priceUsd": 425.00,"buyerProtectionFeeUsd": 35.50,"totalBuyerUsd": 460.50,"netSellerUsd": 408.00,"condition": "VERY_GOOD","brand": "Louis Vuitton","size": "M","category": "Bags","sellerName": "stylesonia","sellerCountry": "FR","sellerRating": 4.92,"favoriteCount": 23,"listedAt": "2026-05-08T10:00:00.000Z","fieldCompletenessScore": 95,"agentMarkdown": "**👜 Louis Vuitton Speedy 30 monogram**\n- 💰 $425 · net to seller $408\n- 🏷 VERY_GOOD · size M\n- 👤 stylesonia (FR · ⭐ 4.92)\n- ❤️ 23 hearts\n- 🔗 https://www.vinted.com/items/1234567890"}
During the Actor run
Each query pulls Vinted's results, parses every listing card, converts currency to USD, computes Vinted's buyer-protection fee + netSellerUsd, then emits the per-query comps_summary (median, P10/P90, byVariant grouped by brand/size/condition).
Three artifacts land in the run's key-value store: OUTPUT (run summary), AGENT_BRIEFING (top queries by sample size + median), and WATCHLIST_STATE (when watchlistMode: true, the seen item IDs for diff-only runs).
FAQ
How reliable is this for daily production use?
Built for it. Monitored daily, maintenance updates ship within 24-48 hours when Vinted changes anything that matters, and the comps math + fee math + currency conversion are all computed in-actor so your downstream pipeline gets a clean record per query.
Are Mercari and Depop supported?
Not in v0.1. Both have aggressive anti-bot challenges that require a vendor unblocker. Both on v0.2 roadmap.
Can I monitor for new listings only?
Yes. Set watchlistMode: true. The actor stores seen item IDs and emits only listings new since the last run.
Can I filter by condition?
Yes. conditions: ["VERY_GOOD", "GOOD"] to skip new-with-tags and worn pieces.
Can I get netSellerUsd for repricing?
Yes, every listing carries netSellerUsd after Vinted's buyer-protection fee.
Can I get the byVariant breakdown?
Yes. Set emitCompsSummary: true (default). Each comps_summary includes a byVariant array grouped by (brand, size, condition).
Can I use this with the Apify API?
Yes. POST to https://api.apify.com/v2/acts/skootle~resale-marketplace-comps/runs.
Can I integrate with Make / Zapier / n8n / Slack?
Yes. Click Integrations on the actor page.
Why does this actor cost more than free Vinted scrapers?
This actor ships normalized condition + brand + size, USD currency conversion, Vinted-fee math, computed comps (median, P10/P90, byVariant), agent-ready markdown summaries.
Your feedback
Hit a bug or want a feature? Open an issue on the Issues tab rather than the reviews page, and we'll fix it fast (typically within 48 hours).
Why choose Vinted Comps Scraper
- Cross-marketplace normalized format, USD currency conversion + condition enum + brand normalization, ready to merge with eBay sold comps (and Mercari plus more sources coming)
- Models true take-home, not gross list price,
netSellerUsdafter Vinted buyer-protection-fee math is handled - Comps math built-in, median, P10/P90, byVariant grouped by
(brand, size, condition), computed in-actor so you don't have to write it - Daily reprice loops just work, watchlist diff mode emits only NEW listings since the last run
- Hand-tuned for Vinted. Fixes ship within 24-48 hours when Vinted changes anything that matters
- Condition + brand + size enums typed for downstream filtering
- Agent-ready,
agentMarkdownready to paste into an LLM context - One dataset, two record types,
listing+comps_summarydiscriminated byrecordType - Schema doesn't break your pipeline,
outputSchemaVersionliteral on every record - Safe to dedupe across re-runs,
vinted:listing:<id>,vinted:comps:<query-slug>stable IDs
Other Skootle actors you might want to check
- eBay Sold Comps · Variant Pricing, same comps pattern for eBay sold listings
- Shopify App Store Scraper, Shopify app intelligence
- Reddit Subreddit Scraper, sentiment + trend signals on r/Flipping
- Apple App Store Reviews Monitor, App Store reviews + metadata
- GitHub Trending Repos, daily trending dev repos
Support and contact
File issues on this actor's page, replies within 48 hours.