Vinted Smart Scraper - Cross-Country Arbitrage Scanner avatar

Vinted Smart Scraper - Cross-Country Arbitrage Scanner

Pricing

from $1.50 / 1,000 results

Go to Apify Store
Vinted Smart Scraper - Cross-Country Arbitrage Scanner

Vinted Smart Scraper - Cross-Country Arbitrage Scanner

Find profitable Vinted arbitrage across 26 markets, compare buy-low / sell-higher country price gaps, schedule deal alerts, monitor sellers, and export structured data to CSV, API, or webhooks.

Pricing

from $1.50 / 1,000 results

Rating

5.0

(5)

Developer

KazKN

KazKN

Maintained by Community

Actor stats

7

Bookmarked

807

Total users

80

Monthly active users

2.6 hours

Issues response

4 days ago

Last modified

Share

๐Ÿ›๏ธ Vinted Smart Scraper โ€” Cross-Country Arbitrage Scanner for 26 Vinted Markets

26 markets CSV, Excel and JSON Pay per event

Vinted Smart Scraper helps resellers investigate Vinted price gaps across countries. Search a niche, compare up to 5 Vinted markets, inspect underpriced candidates, then export structured results to CSV, Excel, JSON, API, or webhooks.

Vinted market gaps turned into structured reseller signals
KazKN ยท Resale & market intelligence suite ย ย โ€ขย ย Vinted arbitrage, luxury resale, Shopify intelligence, App Store research
Vinted Smart Scraper logo
Vinted
โžค You are here
Compare markets, listings, and sellers.
Vestiaire Collective Smart Scraper logo
Vestiaire
Research luxury listings and sellers.
Shopify Apps Spy logo
Shopify Apps
Research stores, products, and apps.
App Store Localization Scraper logo
App Store
Compare localized app metadata.

Copy to your AI assistant

Use kazkn/vinted-smart-scraper on Apify. Start with one outcome preset, wait for the run to finish, then retrieve its Dataset.
Never paste or share your Apify API token. Load APIFY_API_TOKEN from the environment.
Python:
import os
from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_API_TOKEN"])
run = client.actor("kazkn/vinted-smart-scraper").call(run_input={
"workflowPreset": "ARBITRAGE_SCANNER",
"query": "nike air force 1",
"countries": ["fr", "de", "nl", "it", "es"],
"maxItems": 100,
})
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(items)
Presets: ARBITRAGE_SCANNER, DEAL_ALERTS, SELLER_WATCHLIST.
Dataset views: Arbitrage opportunities / Arbitrage items, Overview, Seller profiles.
Public listing visibility can be partial. Token settings: https://console.apify.com/account/integrations

๐ŸŽฏ Choose the result you need

I want toโ€ฆChoose this outcome presetOpen this Dataset view
Compare a product across countries๐ŸŒ ARBITRAGE_SCANNERArbitrage opportunities for the summary, then Arbitrage items for sampled listings
Monitor fresh listings for one nicheโšก DEAL_ALERTSOverview for listing rows and URLs
Inspect seller inventory and profile signals๐Ÿ‘ค SELLER_WATCHLISTSeller profiles for seller-level rows

Public activity snapshot (August 9, 2026): 795 total users and 118,654 total runs. These are directional usage, not payer or creator-revenue proof; live totals and reviews can change after this observation.

Current pricing is pay-per-event: a small start event, result rows, and a fixed event for premium workflows. The full current table is below.

๐Ÿงญ Start With One of These 3 Workflows

WorkflowOutcome presetRuntime modeWhat you get
๐ŸŒ Arbitrage ScannerARBITRAGE_SCANNERCROSS_COUNTRYPrice-gap summary and sampled listings
โšก Deal AlertsDEAL_ALERTSSEARCHFresh filtered listings for a schedule or webhook
๐Ÿ‘ค Seller WatchlistSELLER_WATCHLISTSELLER_PROFILESeller inventory, profile, and rating signals

Advanced modes are still available: PRICE_TRACK for exact listing price history, SELL_THROUGH_TRACKER for demand validation over time, ITEM_DETAIL for URL lookups, SOLD_ITEMS for explicit sold signals only, and TRENDING for engagement-ranked discovery.

โœ… Arbitrage Workflow to Sell

Use this actor to make a buy/no-buy decision fast:

Workflow to sell: search opportunity -> compare countries -> detect underpriced listings -> alert/export -> buy/resell.

1. Search opportunity2. Compare countries3. Detect underpriced listings4. Alert / export5. Buy / resell
Pick a niche, brand, size, or sellerRun CROSS_COUNTRY across 2-5 marketsSort by spread, price gap, and opportunity scoreSend CSV/API/webhook/TelegramValidate shipping, fees, condition, and demand before buying

The main output to watch is the arbitrage summary row. This is a sanitized representative shape; values vary by run:

{
"recordType": "ARBITRAGE_SUMMARY",
"query": "nike air force 1",
"opportunityScore": 78,
"buyCountry": "fr",
"sellCountry": "nl",
"spread": 23,
"estimatedResellPrice": 58,
"priceGapPercent": 65.7,
"alertReason": "High spread: buy in fr around 35 EUR, compare resale in nl around 58 EUR."
}

๐Ÿ‘ค Who Should Run This?

  • Vinted arbitrageurs watching price gaps across France, Germany, Italy, Spain, and the Netherlands
  • Resellers who need a fast โ€œis this underpriced?โ€ signal before buying inventory
  • Deal hunters who want scheduled alerts instead of refreshing Vinted manually
  • Pricing analysts comparing active supply by country, brand, size, and condition
  • Agencies and automation builders delivering Vinted opportunity feeds to clients

๐Ÿงฉ Ready-to-Use Apify Task Templates

Create an Apify Task with one of these inputs, run it once, then add a schedule or webhook. Use maxItems: 100 for a focused scan and 300 for a broader arbitrage or alert workflow. Very small 8-30 row samples can be too narrow for useful market comparison.

Example URL note: all numeric item and seller URLs in this README are placeholders. Replace them with current Vinted URLs before running an input.

TemplateUse it forDefault cadenceMain guardrail
Cross-Country Arbitrage ScannerBuy-low / sell-high country gapsDaily or weeklymaxItems: 300, max 5 countries
Vinted Deal AlertsNew cheap listings for one nicheEvery 15-60 min or dailymaxItems: 100-300, webhook/Telegram export
Seller WatchlistCompetitor seller stats and inventory signalsDailySELLER_PROFILE for stats; PRICE_TRACK for specific listings

1. Cross-Country Arbitrage Scanner

{
"mode": "CROSS_COUNTRY",
"query": "nike air force 1",
"countries": ["fr", "de", "nl", "it", "es"],
"condition": ["very_good", "good"],
"priceMin": 20,
"priceMax": 90,
"sortBy": "price_low_to_high",
"maxItems": 300
}

Use this first. It answers: which returned country sample is cheaper, which is more expensive, and is the observed spread large enough to investigate?

2. Vinted Deal Alerts

{
"mode": "SEARCH",
"query": "carhartt detroit jacket",
"countries": ["fr"],
"condition": ["very_good", "good"],
"priceMin": 30,
"priceMax": 120,
"sortBy": "newest_first",
"maxItems": 100
}

Save as an Apify Task, schedule it every 15-60 minutes or daily, then send successful run results to a webhook, n8n, Discord, Telegram, Google Sheets, or your own API.

3. Seller Watchlist

{
"mode": "SELLER_PROFILE",
"sellerUrls": [
"https://www.vinted.fr/member/123456",
"https://www.vinted.de/member/234567"
]
}

Schedule this daily to watch seller rating, review count, follower count, item count, and sold item count.

For exact listing watchlists, use PRICE_TRACK. On paid plans, keep each Task to 100 or fewer item URLs as an operational guardrail; Free runs are capped to 10 URLs.

{
"mode": "PRICE_TRACK",
"itemUrls": [
"https://www.vinted.fr/items/1234567890-example",
"https://www.vinted.fr/items/2345678901-example"
],
"trackingStoreName": "daily-seller-price-watchlist"
}

๐Ÿ’ธ Cost Guardrails

Free Apify accounts are best for proof runs: broad arbitrage/search/monitor workflows are transparently capped to 30 results, Price Track URL watchlists to 10 item URLs, and Seller Profile URL watchlists to 1 seller. For scheduled 100 / 300 result Vinted monitors, use an Apify paid plan and save the setup as a Task.

Each run combines the applicable fixed workflow event with the Actor start and the Dataset rows actually saved. Rates observed on August 9, 2026:

Paid eventFreeBronzeSilverGold+
Result row$0.002$0.0018$0.0017$0.0015
Actor start$0.020$0.018$0.017$0.015
Cross-country arbitrage check$0.20$0.18$0.17$0.15
Daily monitor check$0.05$0.045$0.0425$0.0375
Seller details$0.10$0.09$0.085$0.075
Price tracking persistence$0.06$0.054$0.051$0.045
Sell-through check$0.08$0.072$0.068$0.06
Sold signal check$0.02$0.018$0.017$0.015

Example: at the displayed Free-tier rates, an Arbitrage Scanner proof run capped at 30 item rows can also emit one summary row, for up to 31 charged result rows: $0.20 workflow + $0.02 start + $0.062 results = about $0.282. Actual cost follows saved rows and the workflow selected; review the charge estimate shown by Apify before starting.

Important guardrails:

  • The current runtime caps maxItems at 300 per run and countries at 5 per run for stability. Use multiple tasks if you need 1,000+ rows.
  • Dataset rows are what drive the result fee. For arbitrage and deal alerts, control spend with maxItems; for Sell-Through Tracker, emitActiveItems: false can reduce daily charges after the first baseline.
  • Start focused with maxItems: 100; use 300 for serious arbitrage scans or deal-alert tasks once the output is useful.
  • For item URL watchlists, each watched URL can emit one status row per run; Sell-Through Tracker now caps watched URLs by maxItems for billing control.

๐Ÿ“Œ Advanced Sell-Through Report

Runtime fieldsWhat it meansWhat a reseller does next
trackingStatus: active, changeType: first_seenNew item entered the trackerCheck if price is below your buy threshold
trackingStatus: active, changeType: still_activeItem stayed visibleWatch price, favourites, or seller behavior
trackingStatus: missing, changeType: missingItem disappeared onceWait for confirmation before calling it sold
trackingStatus: likely_sold, changeType: likely_soldItem disappeared for enough scheduled runsTreat it as demand signal
trackingStatus: active, changeType: reappearedItem came back after disappearingAvoid counting it as a clean sale
trackingStatus: sold, changeType: explicit_soldVinted exposed it as soldHigh-confidence sale signal

Each Sell-Through Tracker run can also emit a final summary row. This is a sanitized representative shape; values vary by run:

{
"recordType": "SELL_THROUGH_DAILY_SUMMARY",
"trackerId": "daily-nike-af1-fr-de-nl-it-es",
"checkedAt": "2026-05-31T08:00:00.000Z",
"newItems": 41,
"activeItems": 784,
"missingItems": 37,
"likelySoldItems": 18,
"explicitSoldItems": 3,
"sellThroughRate": 0.0249,
"avgPrice": 42.8,
"topBrands": [
{ "brand": "Nike", "count": 171 },
{ "brand": "Adidas", "count": 88 }
],
"dailySellThroughSignals": 21,
"telegramText": "Vinted sell-through daily-nike-af1-fr-de-nl-it-es: 300 observed, 41 first seen, likely sold: 18, sold: 3, reappeared: 2."
}

Use this optional Sell-Through summary row after you already found a promising niche with arbitrage or deal-alert scans. It is useful for scheduled webhooks, Telegram alerts, and CSV reports. Item-level rows still include recordType: "SELL_THROUGH_ITEM".

๐ŸŽฏ Who Is This For?

  • ๐Ÿ‘Ÿ Fashion & sneaker resellers who source in one country and sell in another
  • ๐Ÿ” Vinted buyers comparing returned prices across supported markets
  • ๐Ÿ“Š Data analysts & developers who need structured Vinted data for their projects
  • ๐Ÿช Businesses tracking competitor pricing on Vinted at scale

โšก Why Use Vinted Smart Scraper?

  • ๐Ÿ’ฐ Investigate cross-border price gaps using comparable returned listings from up to 5 countries per run across 26 supported markets.
  • ๐Ÿท๏ธ Price your listings right by comparing active market prices and sell-through signals over time
  • ๐Ÿ•ต๏ธ Track competitor sellers โ€” monitor their pricing, inventory, and sell-through rates
  • ๐Ÿ“ˆ Explore engagement trends in the returned sample to see which brands and items may be gaining momentum
  • ๐Ÿค– AI-ready โ€” optional Claude Desktop + MCP integration for natural language queries

๐Ÿ† Built for Vinted arbitrage workflows: cross-country price gaps, scheduled deal alerts, seller watchlists, and advanced sell-through validation across 26 supported Vinted markets.

โœ… Advanced Feature: Sell-Through Tracker

Vinted often hides sold listings from public search results. That makes classic "sold item" scraping unreliable: a missing listing can mean sold, removed, relisted, moderated, or temporarily hidden.

SELL_THROUGH_TRACKER compares scheduled snapshots over time. The first run builds a baseline for a query or watched URLs. Later runs set trackingStatus to active, missing, likely_sold, or sold; an item that returns is active with changeType: reappeared.

Use it after an arbitrage or deal-alert scan reveals a promising niche. The advanced workflow is: find opportunity -> save tracker -> schedule daily -> validate demand -> webhook/Telegram/CSV.

Use it when you need:

  • Sell-through signals for a niche, brand, size, or country
  • Demand tracking before buying inventory
  • Competitor monitoring without trusting Vinted's hidden sold pages
  • A repeatable daily dataset for pricing and restock decisions

๐ŸŽฌ Video Tutorial โ€” See It in Action

โ–ถ๏ธ Watch the full tutorial โ€” from search to export.

๐Ÿ‡ฌ๐Ÿ‡ง English tutorial | ๐Ÿ‡ซ๐Ÿ‡ท Tutoriel franรงais | ๐Ÿ‡ฉ๐Ÿ‡ช Deutsches Tutorial

๐Ÿ“Š What Data Can You Scrape from Vinted?

๐Ÿ“ฆ Item Listings Title, price, brand, size, condition, colour/color when returned, photos ๐Ÿ‘ค Seller Profiles Username, rating, reviews, followers, verification ๐Ÿ’ฐ Price Comparison Avg, median, min, max prices across countries ๐Ÿ”ฅ Trending Items Engagement-ranked items in the returned sample โœ… Sold Signals Only items Vinted explicitly marks as sold; returns empty when Vinted hides sold results ๐Ÿช Seller Closet Visible seller inventory returned by the current lookup ๐Ÿ“ 26 Markets FR, DE, UK, IT, ES, NL, PL, PT, BE, AT, LT, CZ, SK, HU, RO, HR, FI, DK, SE, EE, GR, IE, LU, LV, SI, US ๐Ÿ“‰ Price Tracking Monitor price drops and days listed โœ… Sell-Through Tracking Detect likely sold items from scheduled snapshots

๐Ÿ‘† Screenshot: Apify input form โ€” select mode, enter query, pick countries

๐Ÿš€ How to Scrape Vinted in 5 Steps

  1. Create a free Apify account at apify.com
  2. Open Vinted Smart Scraper and click "Try for free"
  3. Pick a workflow: Arbitrage Scanner, Deal Alerts, or Seller Watchlist
  4. Click Start and wait for the run to finish
  5. Download your data in JSON, CSV, Excel, or connect via API

That's it. No coding, no proxies to configure, no Vinted account needed.

๐Ÿ” 8 Powerful Vinted Scraping Modes

Start with CROSS_COUNTRY if your goal is arbitrage. Use SEARCH for scheduled deal alerts and SELLER_PROFILE for seller watchlists. Sell-Through is an advanced validation layer once you already know which niche is worth tracking.

ModeBest forRecurring value
CROSS_COUNTRYArbitrage and country price-gap monitoringPrimary workflow
SEARCHScheduled deal alerts for one nicheHigh when saved as a task
SELLER_PROFILESeller watchlistsHigh
PRICE_TRACKSpecific listing price changesMedium to high for exact watchlists
SELL_THROUGH_TRACKERAdvanced demand and sell-through validationHigh after you find a niche
ITEM_DETAILDeep inspection of known URLsLow
SOLD_ITEMSExplicit sold listings onlyLimited by Vinted visibility
TRENDINGFast trend discoveryMedium

๐Ÿ” 1. Search Items

Search the Vinted catalog with filters: keywords, brand, size, price range, condition, category.

Input example:

{
"mode": "SEARCH",
"query": "nike air force 1",
"countries": ["fr"],
"priceMin": 10,
"priceMax": 100,
"condition": ["very_good"],
"maxItems": 100
}

Output example (sanitized representative shape; values vary by run):

[
{
"id": 1234567890,
"title": "Nike Air Max",
"url": "https://www.vinted.fr/items/1234567890-example",
"price": 62,
"currency": "EUR",
"brand": "Nike",
"condition": "Neuf avec รฉtiquette",
"size": "45",
"favouriteCount": 10,
"viewCount": 42,
"country": "fr",
"seller": {
"id": 123456,
"username": "example_seller",
"profileUrl": "https://www.vinted.fr/member/123456"
},
"scrapedAt": "2026-08-09T00:00:00.000Z"
}
]

The number of returned rows depends on current Vinted visibility, filters, plan caps, and maxItems.

๐Ÿ“ฆ 2. Item Detail

Inspect the item fields visible to the current lookup, including available description, photos, seller info, views, and favorites.

Input example:

{
"mode": "ITEM_DETAIL",
"itemUrls": ["https://www.vinted.fr/items/1234567890-example"]
}

Output example (sanitized representative shape; values vary by run):

{
"id": 1234567890,
"title": "Air Force 1",
"description": "Air force 1 parfait รฉtat, Pointure 40",
"price": 45,
"currency": "EUR",
"brand": "Nike",
"category": "Femmes Baskets",
"condition": "New",
"color": "Blanc",
"photos": ["https://images1.vinted.net/..."],
"favouriteCount": 49,
"viewCount": 234,
"isSold": false,
"seller": {
"id": 123456,
"username": "example_seller",
"rating": 0.98,
"followerCount": 1500
}
}

๐Ÿ‘ค 3. Seller Profile

Analyze any Vinted seller. Rating, reviews, followers, sold items count, verification status.

Input example:

{
"mode": "SELLER_PROFILE",
"sellerUrls": ["https://www.vinted.fr/member/123456"]
}

Output example (sanitized representative shape; values vary by run):

{
"recordType": "SELLER_PROFILE",
"mode": "SELLER_PROFILE",
"sellerId": 123456,
"username": "example_seller",
"profileUrl": "https://www.vinted.fr/member/123456",
"country": "fr",
"rating": 0.96,
"ratingCount": 2628,
"itemCount": 526,
"soldItemCount": 3180,
"followerCount": 10283,
"followingCount": 3146,
"verifications": { "email": true, "phone": false },
"lastSeenAt": "2026-08-08T18:30:00.000Z",
"checkedAt": "2026-08-09T00:00:00.000Z"
}

๐ŸŒ 4. Cross-Country Vinted Price Comparison

Compare active listing prices for the same search across multiple Vinted markets. Use the output to investigate possible cross-border gaps before checking fees, shipping, condition, and real demand.

Input example:

{
"mode": "CROSS_COUNTRY",
"query": "nike air force 1",
"countries": ["fr", "de", "es", "it", "nl"]
}

Output example (sanitized representative shape; values vary by run):

{
"recordType": "ARBITRAGE_SUMMARY",
"query": "playstation 5",
"opportunityScore": 48,
"buyCountry": "de",
"sellCountry": "es",
"spread": 45.1,
"estimatedBuyPrice": 167.4,
"estimatedResellPrice": 212.5,
"priceGapPercent": 26.9,
"alertReason": "Moderate spread: buy in de around 167.4 EUR, compare resale in es around 212.5 EUR.",
"comparisons": [
{
"country": "fr",
"avgPrice": 182.85,
"medianPrice": 170,
"minPrice": 23,
"maxPrice": 440,
"itemCount": 20,
"currency": "EUR"
},
{
"country": "de",
"avgPrice": 167.4,
"medianPrice": 150,
"minPrice": 28,
"maxPrice": 400,
"itemCount": 20,
"currency": "EUR"
},
{
"country": "es",
"avgPrice": 212.5,
"medianPrice": 235,
"minPrice": 45,
"maxPrice": 310,
"itemCount": 20,
"currency": "EUR"
}
],
"bestBuyCountry": "de",
"bestSellCountry": "es",
"arbitrageSpreadPct": 26.9
}

This example illustrates the comparison fields. Treat a price gap as a research lead, then verify current listings, shipping, fees, condition, and demand before acting.

๐Ÿ‘† Screenshot: Dataset output โ€” cross-country price comparison with avg/median/min/max per country

๐Ÿ’ฐ 5. Vinted Price Tracking

Track prices of specific items over time. Monitor price drops, calculate days listed, and get price history.

{
"mode": "PRICE_TRACK",
"itemUrls": [
"https://www.vinted.fr/items/1234567890-example",
"https://www.vinted.fr/items/2345678901-example"
],
"trackingStoreName": "nike-air-force-price-history"
}

Keep the same trackingStoreName when scheduling this mode. The actor writes price history to a named Apify key-value store so later runs can output real priceHistory and priceDropPct values.

โœ… 6. Daily Sell-Through Tracker

Detect what likely sold by comparing scheduled snapshots. The first run builds a baseline from a search query and/or item URLs. Later runs use trackingStatus values such as active, missing, likely_sold, or sold; a returned item uses changeType: reappeared.

{
"mode": "SELL_THROUGH_TRACKER",
"query": "nike air max",
"countries": ["fr"],
"maxItems": 300,
"trackingStoreName": "nike-air-max-fr-tracker",
"missingRunsThreshold": 2,
"emitRunSummary": true
}

Use an Apify schedule daily or every few hours. Keep the same trackingStoreName and trackerId to compare runs over time. Send successful run outputs to CSV/API, an Apify webhook, a self-hosted n8n flow, or your Telegram bot.

You can also track specific item URLs:

{
"mode": "SELL_THROUGH_TRACKER",
"itemUrls": [
"https://www.vinted.fr/items/1234567890-example"
],
"trackingStoreName": "watched-items-fr",
"emitRunSummary": true
}

๐Ÿท๏ธ 7. Sold Signals

Return only listings that Vinted explicitly marks as sold. Vinted currently removes or hides sold listings from many public search results, so this mode may return an empty dataset instead of active listings.

For market research and sell-through analysis, use SELL_THROUGH_TRACKER instead. It compares scheduled snapshots and detects items that disappear over time.

{
"mode": "SOLD_ITEMS",
"query": "adidas yeezy",
"countries": ["fr"],
"maxItems": 100
}

Explore the returned product sample sorted by engagement (favorites) to identify items worth further research.

{
"mode": "TRENDING",
"query": "nike",
"countries": ["fr"],
"maxItems": 100
}

The output includes trendScore, favsGrowthRate, viewsGrowthRate, and listedHoursAgo so you can rank items by engagement speed, not only by raw favorites.

๐ŸŒ 26 Supported Vinted Markets

RegionMarkets
Western EuropeFR, DE, UK, IT, ES, NL, BE, AT, IE, LU
Central / Eastern EuropePL, CZ, SK, HU, RO, HR, LT, LV, SI, EE
Northern EuropeFI, DK, SE
Southern EuropePT, GR
North AmericaUS

๐Ÿ‡ซ๐Ÿ‡ท France vinted.fr EUR | ๐Ÿ‡ฉ๐Ÿ‡ช Germany vinted.de EUR | ๐Ÿ‡ฌ๐Ÿ‡ง United Kingdom vinted.co.uk GBP ๐Ÿ‡ฎ๐Ÿ‡น Italy vinted.it EUR | ๐Ÿ‡ช๐Ÿ‡ธ Spain vinted.es EUR | ๐Ÿ‡ณ๐Ÿ‡ฑ Netherlands vinted.nl EUR ๐Ÿ‡ต๐Ÿ‡ฑ Poland vinted.pl PLN | ๐Ÿ‡ต๐Ÿ‡น Portugal vinted.pt EUR | ๐Ÿ‡ง๐Ÿ‡ช Belgium vinted.be EUR ๐Ÿ‡ฆ๐Ÿ‡น Austria vinted.at EUR | ๐Ÿ‡ฑ๐Ÿ‡น Lithuania vinted.lt EUR | ๐Ÿ‡จ๐Ÿ‡ฟ Czechia vinted.cz CZK ๐Ÿ‡ธ๐Ÿ‡ฐ Slovakia vinted.sk EUR | ๐Ÿ‡ญ๐Ÿ‡บ Hungary vinted.hu HUF | ๐Ÿ‡ท๐Ÿ‡ด Romania vinted.ro RON ๐Ÿ‡ญ๐Ÿ‡ท Croatia vinted.hr EUR | ๐Ÿ‡ซ๐Ÿ‡ฎ Finland vinted.fi EUR | ๐Ÿ‡ฉ๐Ÿ‡ฐ Denmark vinted.dk DKK ๐Ÿ‡ธ๐Ÿ‡ช Sweden vinted.se SEK | ๐Ÿ‡ช๐Ÿ‡ช Estonia vinted.ee EUR | ๐Ÿ‡ฌ๐Ÿ‡ท Greece vinted.gr EUR ๐Ÿ‡ฎ๐Ÿ‡ช Ireland vinted.ie EUR | ๐Ÿ‡ฑ๐Ÿ‡บ Luxembourg vinted.lu EUR | ๐Ÿ‡ฑ๐Ÿ‡ป Latvia vinted.lv EUR ๐Ÿ‡ธ๐Ÿ‡ฎ Slovenia vinted.si EUR | ๐Ÿ‡บ๐Ÿ‡ธ United States vinted.com USD

๐Ÿ’ก Vinted Scraper Use Cases

๐Ÿช For Resellers & Flippers

  • Find underpriced items across different countries
  • Cross-border research: compare returned country samples to identify a possible spread before checking shipping, fees, demand, and resale risk
  • Monitor competitors' prices and adjust your listings
  • Track price drops on items you want to buy
  • Track sell-through over time with scheduled snapshots; use Sold Signals only when Vinted explicitly exposes sold listings

๐Ÿ“Š For Market Researchers & Analysts

  • Analyze pricing trends across the European second-hand market
  • Study seller behavior: top sellers' strategies, pricing patterns, inventory size
  • Monitor brand popularity and demand by country
  • Export data for analysis in Excel, Google Sheets, or BI tools
  • Study seasonal changes in returned listings and engagement signals

๐Ÿค– For Developers & Automation Builders

  • Build Vinted price comparison tools using our structured JSON output
  • Create Vinted alerts with Apify webhooks, self-hosted n8n, or your Telegram bot endpoint
  • Feed data into ML models for price prediction
  • Integrate via Vinted API alternative for structured scheduled data access
  • Connect to AI assistants via MCP protocol (see below)

๐Ÿง  How to Use Vinted Scraper with Claude Desktop (MCP)

Use this when you want to query Vinted data through an AI assistant instead of manually opening datasets.

With the Vinted MCP Server, you can connect Claude Desktop (or Cursor, Windsurf, or any MCP-compatible AI) directly to Vinted data. Ask questions in plain English:

  • "Find me Nike Air Force 1 under โ‚ฌ40 in France"
  • "Compare PS5 prices across Germany, Spain, and Italy"
  • "Show me the top sellers for vintage Levi's in the Netherlands"

Setup:

{
"mcpServers": {
"vinted": {
"command": "npx",
"args": ["-y", "vinted-mcp-server"]
}
}
}

Add this to your Claude Desktop config, then test the connection with a small query. See the linked Apify MCP page above for current setup details.

๐Ÿ“– Deep dive: I Built an MCP Server for Vinted. Here's How Cross-Border Price Gaps Make You Money

๐Ÿ”Œ How to Scrape Vinted via API

Via Apify API (cURL)

curl "https://api.apify.com/v2/acts/kazkn~vinted-smart-scraper/runs" \
-X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${APIFY_API_TOKEN}" \
-d '{
"mode": "SEARCH",
"query": "nike",
"countries": ["fr"],
"maxItems": 100
}'

Via JavaScript/Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_API_TOKEN });
const run = await client.actor('kazkn/vinted-smart-scraper').call({
mode: 'CROSS_COUNTRY',
query: 'nike air force 1',
countries: ['fr', 'de', 'es', 'it'],
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Via Python

import os
from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_API_TOKEN"])
run = client.actor("kazkn/vinted-smart-scraper").call(run_input={
"mode": "CROSS_COUNTRY",
"query": "nike air force 1",
"countries": ["fr", "de", "es", "it"],
})
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(items)

๐Ÿ”— Integrations

This Vinted scraper works with:

  • CSV / Excel exports for daily reseller spreadsheets
  • Apify API for programmatic market monitors
  • Apify webhooks for run-complete notifications
  • Self-hosted n8n for zero-subscription automations
  • Telegram bot workflows through your own webhook endpoint
  • Claude Desktop / Cursor via Vinted MCP Server

๐Ÿ’ฐ Vinted Scraper Pricing

This Actor uses pay-per-event pricing. A run can include three components: one Actor start, the fixed event for the selected premium workflow, and one result event per saved Dataset row. See Cost Guardrails above for the dated tier-by-tier table. Cap maxItems; for Sell-Through Tracker, turn off emitActiveItems after the first baseline if you only need changes.

โšก Performance & Limits

๐Ÿ“ฆ Max items per run: 300 in the current stable runtime ๐ŸŒ Markets per run: up to 5 โฑ๏ธ Default timeout: 600 seconds ๐Ÿ›ก๏ธ Access can be partial: Vinted can change visible surfaces, challenge requests, or return fewer rows than requested ๐ŸŒ Proxy input: optional; start with the default and change it only when a run needs it

โ“ Frequently Asked Questions

The Actor is designed for publicly visible listing and seller surfaces; it does not automate purchases or sales. Rules can depend on your use, location, data, and current platform terms, so assess those separately. This README is product documentation, not legal advice.

When is this Vinted scraper a good fit?

Use it when you need cross-country listing comparisons, scheduled deal alerts, seller watchlists, or structured exports. Start with a small run and confirm that the visible fields match your workflow before scheduling it.

How to compare Vinted prices across countries?

Use the CROSS_COUNTRY mode. Enter your search query and select which countries to compare, up to 5 countries per run. The scraper returns average, median, min, and max prices per country, plus opportunityScore, buyCountry, sellCountry, spread, estimatedResellPrice, priceGapPercent, and alertReason.

Can I use this as a Vinted bot alternative?

It can monitor and structure visible data, but it does not automate buying, selling, messaging, or account actions.

Can I download Vinted data to Excel or Google Sheets?

Absolutely. Apify lets you export results in JSON, CSV, Excel, XML, and RSS. You can also connect directly to Google Sheets via the Apify integration for automatic updates.

How often can I run this Vinted scraper?

Use sensible schedules based on your workflow. For arbitrage scans, start daily with maxItems: 100. For deal alerts on fast-moving niches, test a tight filter first, then choose a cadence based on run stability and cost.

How do I avoid a surprise bill on daily schedules?

Set maxItems, keep countries to 5 or fewer per run, and include the workflow event shown in Cost Guardrails when estimating each run. For Sell-Through Tracker only, use emitActiveItems: false after the first baseline if you want fewer daily result rows.

Does this work with all 26 supported Vinted markets?

Yes. The actor currently supports 26 Vinted markets: France, Germany, United Kingdom, Italy, Spain, Netherlands, Poland, Portugal, Belgium, Austria, Lithuania, Czech Republic, Slovakia, Hungary, Romania, Croatia, Finland, Denmark, Sweden, Estonia, Greece, Ireland, Luxembourg, Latvia, Slovenia, and the United States.

How is this different from the Vinted API?

This is an independent Apify Actor, not an official Vinted API. It turns supported visible surfaces into structured Dataset rows and adds cross-country comparison and tracking workflows.

Can I connect this to AI assistants like Claude or ChatGPT?

Yes. The Vinted MCP Server lets you connect Claude Desktop, Cursor, or any MCP-compatible AI to Vinted data. Ask questions in plain English and get structured results.

โญ Recent User CTA

If Vinted Smart Scraper saved you time or helped you find a real market gap, leave a short Apify review with your use case:

"I use it to monitor [brand/query] in [countries] every [day/week]. It helps me [source inventory / price listings / track sellers / report to clients]."

That feedback decides which daily templates and output fields get improved next.

๐Ÿ“‹ Changelog

v1.2 (June 2026)

  • Recentered the Store README around cross-country Vinted arbitrage and scheduled deal alerts
  • Promoted 3 primary workflows above the fold: Arbitrage Scanner, Deal Alerts, and Seller Watchlist
  • Added arbitrage-first output fields: opportunityScore, buyCountry, sellCountry, spread, estimatedResellPrice, priceGapPercent, and alertReason
  • Moved Sell-Through Tracker to advanced demand validation instead of the first workflow new users see
  • Updated cost guardrails to explain maxItems for arbitrage/alerts and emitActiveItems only for Sell-Through Tracker

v1.1 (May 2026)

  • Added SELL_THROUGH_TRACKER as a daily demand-validation workflow
  • Added Apify Task templates for daily sneaker monitoring, seller watchlists, and cross-country arbitrage
  • Updated daily templates and input defaults toward maxItems: 100 or 300
  • Added SELL_THROUGH_DAILY_SUMMARY output rows for schedules, webhooks, Telegram, and CSV reports
  • Added cost guardrails for 300, 1,000, 10,000 emitted rows, and monthly daily schedules
  • Added status guide for first_seen, missing, likely_sold, explicit_sold, and the reappeared change event
  • Updated Store copy, input guidance, and actor descriptions around 26 supported Vinted markets
  • Clarified current pay-per-event pricing: dataset item fee plus actor start fee

v1.0 (February 2026)

  • Initial release
  • 8 scraping modes: Search, Item Detail, Seller Profile, Cross-Country, Price Track, Sell-Through Tracker, Sold Signals, Trending
  • 26 Vinted markets supported
  • Initial request pacing and retry controls
  • Initial pay-per-result pricing