👜 Vinted Comps Scraper avatar

👜 Vinted Comps Scraper

Pricing

from $5.00 / 1,000 listing or comps_summary records

Go to Apify Store
👜 Vinted Comps Scraper

👜 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

Skootle

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 hours ago

Last modified

Share

Vinted Comps hero

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:

  1. 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, and netSellerUsd after Vinted's buyer-protection fee.

  2. comps_summary — one record per query with medianUsd, p10Usd, p90Usd, sampleSize, confidence enum, and byVariant[] 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 favoriteCount velocity

How to use Vinted Comps Scraper

  1. Open the Input tab on the actor page
  2. Add search queries to searchQueries
  3. Optionally filter brands, sizes, conditions
  4. Set maxItemsPerQuery (default 50)
  5. Optionally enable emitCompsSummary (default true)
  6. 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.

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

FieldTypeDefaultDescription
searchQueriesstring[]requiredSearch terms
brandsstring[][]Brand filter
sizesstring[][]Size filter
conditionsenum[][]NEW_WITH_TAGS, NEW_WITHOUT_TAGS, VERY_GOOD, GOOD, SATISFACTORY
priceMinUsd, priceMaxUsdfloatnullPrice range
maxItemsPerQueryint50Per-query cap
emitCompsSummarybooltrueAlso emit one comps_summary per query
watchlistModeboolfalseIdempotent diff
useApifyProxybooltrueApify residential proxy. Recommended.

Vinted Comps output format

The dataset has two record types. Filter by recordType.

listing

FieldTypeDescription
outputSchemaVersion, recordType, recordIdstringDiscriminated identity
itemId, urlstringVinted item ID + URL
title, descriptionstringListing copy
priceUsd, priceRaw, currencyfloat / stringNumeric + original
buyerProtectionFeeUsd, totalBuyerUsdfloatVinted fee + total cost to buyer
netSellerUsdfloatWhat seller takes home
conditionenumNEW_WITH_TAGS, NEW_WITHOUT_TAGS, VERY_GOOD, GOOD, SATISFACTORY
brand, size, color, materialstringItem attributes
category, subcategorystringVinted taxonomy
sellerName, sellerCountry, sellerReviewCount, sellerRatingstring / floatSeller info
imageUrlsstring[]Listing photos
favoriteCountint"Hearts" on the listing
listedAt, scrapedAtISO 8601
searchQuerystringThe query that found this listing
fieldCompletenessScore, agentMarkdownint / stringQuality + LLM-ready summary

comps_summary

FieldTypeDescription
outputSchemaVersion, recordType, recordIdstringDiscriminated identity
searchQuery, sampleSize, confidencestring / int / enumQuery context + confidence
medianUsd, p10Usd, p90Usd, meanUsd, stdDevUsdfloatComps math
byVariantarray[{ variant: { brand, size, condition }, count, medianUsd }]
agentMarkdownstringLLM-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:

  1. OUTPUT — run summary
  2. AGENT_BRIEFING — top queries by sample size + median
  3. WATCHLIST_STATE — (when watchlistMode: 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)
  • netSellerUsd after fees — repricing logic models true take-home
  • Condition + brand + size enums — typed for downstream filtering
  • Currency normalization — USD + raw EUR/GBP preserved
  • Discriminated unionlisting + comps_summary in one dataset
  • Watchlist diff mode — only emits NEW listings since the last run
  • Versioned schemaoutputSchemaVersion: '2026-05-08'
  • Idempotent record IDsvinted:listing:<id>, vinted:comps:<query-slug> stable across runs
  • Agent-grade outputagentMarkdown ready to paste into an LLM context

Other Skootle actors you might want to check

Support and contact

File issues on this actor's page — replies within 48 hours.