👜 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
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 hours 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 extracts every public Vinted listing matching your search query and computes comps in one pass. You give it queries (e.g., ["louis vuitton bag", "vintage levis 501"]); it returns 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 rapidly growing in North America, with the deepest catalog of secondhand luxury, vintage, streetwear, and contemporary fashion outside of eBay. For fashion resellers, cross-listing tools, brand monitoring, and AI fashion-resale agents, Vinted comps are gold.
Vinted doesn't expose a public API for non-merchant users. This actor handles the listing fetch, condition normalization, currency conversion to USD, fee math, and the variant-grouped comps computation.
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
The actor uses Apify residential proxy with gotScraping (or Playwright fallback) to fetch each query's results. Each listing card is parsed; currency converted to USD; fees computed; comps_summary record runs after.
The actor writes:
OUTPUT— run summaryAGENT_BRIEFING— top queries by sample size + medianWATCHLIST_STATE— (whenwatchlistMode: true) seen item IDs
FAQ
How does Vinted Comps Scraper work?
The actor fetches Vinted's public search-results pages with Apify's residential proxy and respectful rate-limiting, parses each listing card, normalizes condition + brand + size + currency, computes the per-query comps_summary, and pushes the dataset.
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
- Comps math built-in — median, P10/P90, byVariant grouped by
(brand, size, condition) netSellerUsdafter fees — repricing logic models true take-home- Condition + brand + size enums — typed for downstream filtering
- Currency normalization — USD + raw EUR/GBP preserved
- Discriminated union —
listing+comps_summaryin one dataset - Watchlist diff mode — only emits NEW listings since the last run
- Versioned schema —
outputSchemaVersion: '2026-05-08' - Idempotent record IDs —
vinted:listing:<id>,vinted:comps:<query-slug>stable across runs - Agent-grade output —
agentMarkdownready to paste into an LLM context
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.