Vinted Price Comparison — Cross-Country Arbitrage & Price Gap avatar

Vinted Price Comparison — Cross-Country Arbitrage & Price Gap

Pricing

from $20.00 / 1,000 cross-country price gaps

Go to Apify Store
Vinted Price Comparison — Cross-Country Arbitrage & Price Gap

Vinted Price Comparison — Cross-Country Arbitrage & Price Gap

Compare one keyword across 8 national Vinted marketplaces in one call: each country median in USD with its sample size, the cheapest and priciest market, the price gap %, and a cross-country arbitrage spread including Buyer Protection fees. From $0.02 — no subscription. Vinted 8カ国の価格差を1コールで比較。

Pricing

from $20.00 / 1,000 cross-country price gaps

Rating

0.0

(0)

Developer

h ichi

h ichi

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Where is this cheapest, where is it dearest, and can you actually trade the difference? One call per keyword prices the same search on up to 8 national Vinted marketplaces at once, converts every median into one currency (USD), and returns the ranking, the gap, and the resale spread.

Marketsvinted .com (USD) · .fr · .de · .es · .it · .nl (EUR) · .co.uk (GBP) · .pl (PLN)
Price basisasking — Vinted's catalog serves live listings only. No number here is a sold price
Per countrymedian + quartiles (native and USD), sample size, hit count, Buyer Protection fee, demand heat, brand mix
Across countriescheapest / priciest, gapPct, inventory pools, and a buy-here/sell-there margin that includes the buyer's fee

The one thing every other Vinted price comparison gets wrong

The eight marketplaces are not eight inventories. Measured on 2026-08-07 with leica m6 across all eight: the five euro sites served 58–87% literally the same listing ids — same item, same price, same currency, five hostnames — while .com, .co.uk and .pl overlapped everything by 0.0%.

US FR DE GB ES IT NL PL
FR 0% - 62% 0% 64% 78% 78% 0%
IT 0% 78% 71% 0% 71% - 81% 0%

So a "price gap" between France and Italy is mostly one pool sampled twice. You cannot buy an item in Italy and sell it in France when it is the same listing. This Actor therefore:

  1. measures the overlap from the sampled listing ids and groups the countries into inventoryOverlap.inventoryPools;
  2. still ranks every country by price, because "where is it listed lowest" is a real question;
  3. computes gap.arbitrage only across different pools — and says available: false when every selected country turns out to be one pool.

Measured example of the trap (levis 501 vintage, 8 countries): cheapest ES $38.59 → priciest DE $44.97 looks like a 16.5% opportunity. ES and DE cross-list one inventory, so it is worth nothing. The honest cross-pool deal that run was buy US $42.70 → sell DE $44.97 = 5.3%.

The other three numbers that keep it honest

  • Buyer Protection is priced in. The buyer pays asking + fee, and the fee is not the same everywhere — measured medians: GB 7.22% · PL 6.45% · US 6.07% · DE 6.01%. gap.arbitrage.buyCostUsd is the buyer's real total, and excludes lists what is still missing (shipping, duty, seller fees, FX spread).
  • totalFoundCapped. Vinted stops counting at 960 hits (10 pages × 96). A totalFound of 960 is a ceiling, not supply, and says so instead of pretending to be a market size.
  • thinSample. A country with fewer than minSampleSize priced listings is reported in full but is excluded from the cheapest/priciest selection. A median over four listings is not an arbitrage case.

Pricing — from $0.02 per keyword, no subscription

EventPriceWhen
Keyword analyzed across countries$0.02Per keyword, whatever the number of countries
Individual listing$0.002Only if you enable Include individual listings

A default run (1 keyword, 4 countries, summary only) costs $0.02 and took 8 seconds measured. All 8 countries cost the same $0.02. Apify's $5 monthly free credit covers ~250 runs, and there is no subscription.

A keyword is only charged when at least two countries returned a usable median (or the single one, if you selected only one). A "cross-country" record with one country in it is not a comparison, so it is free.

Input

FieldExampleNotes
keywords["nike air max 90"]Narrow keywords give a real gap; broad ones compare product mixes. $0.02 each
countries["com","de","co.uk","pl"]Default = one market per currency, which is also the four pools that measurably do not cross-list. Add fr/es/it/nl for the full euro picture
maxItemsPerCountry9630–288. 96 = one result page and is usually enough
minSampleSize10Below this a country is flagged thinSample and cannot be cheapest/priciest. 0 disables the gate
priceMinUsd / priceMaxUsd30Optional window in USD, applied after conversion, identically in every country
includeIndividualItemsfalseEnable to also get every sampled listing, +$0.002 each

Output example (type: "cross_country_price_gap", abridged, measured 2026-08-07)

{
"type": "cross_country_price_gap",
"keyword": "nike air max 90",
"priceBasis": "asking",
"quoteCurrency": "USD",
"countries": {
"co.uk": {
"domain": "vinted.co.uk", "country": "GB", "currency": "GBP",
"available": true,
"totalFound": 960, "totalFoundCapped": true,
"sampleSize": 96, "pricedListings": 96, "thinSample": false,
"listingPrice": {"min": 6.0, "p25": 20.0, "median": 32.37, "p75": 62.0, "max": 180.0, "average": 48.67},
"buyerTotalPrice": {"median": 34.69},
"buyerProtectionFeePctMedian": 7.22,
"exchangeRateToUsd": 1.345818,
"listingPriceUsd": {"median": 43.56},
"buyerTotalPriceUsd": {"median": 46.69},
"signals": {"favouriteCount": {"median": 11},
"topBrands": [{"brand": "Nike Air", "listings": 59, "sharePct": 61.5}],
"conditionBreakdown": {"Very good": 59, "Good": 16, "New with tags": 12}},
"sourceUrl": "https://www.vinted.co.uk/catalog?search_text=nike+air+max+90"
},
"de": {"country": "DE", "currency": "EUR", "listingPrice": {"median": 69.47},
"listingPriceUsd": {"median": 80.1}, "buyerProtectionFeePctMedian": 6.01},
"com": {"country": "US", "listingPriceUsd": {"median": 65.5}},
"pl": {"country": "PL", "currency": "PLN", "listingPrice": {"median": 200.0},
"listingPriceUsd": {"median": 53.63}}
},
"inventoryOverlap": {
"thresholdPct": 20.0, "sampledPairs": 6, "maxOverlapPct": 0.0,
"independentMarkets": 4,
"inventoryPools": [["US"], ["DE"], ["GB"], ["PL"]],
"pairs": [{"countries": ["US","DE"], "sharedListings": 0, "overlapPct": 0.0, "sharedInventory": false}],
"note": "Every compared country serves its own inventory …"
},
"gap": {
"quoteCurrency": "USD",
"ranking": [
{"country": "GB", "medianListingPriceUsd": 43.56, "medianBuyerTotalUsd": 46.69, "medianListingPriceNative": 32.37, "pricedListings": 96, "totalFound": 960, "totalFoundCapped": true, "thinSample": false, "vsCheapestPct": 0.0},
{"country": "PL", "medianListingPriceUsd": 53.63, "vsCheapestPct": 23.1},
{"country": "US", "medianListingPriceUsd": 65.5, "vsCheapestPct": 50.4},
{"country": "DE", "medianListingPriceUsd": 80.1, "vsCheapestPct": 83.9}
],
"comparable": true,
"cheapestCountry": "GB", "cheapestMedianUsd": 43.56,
"priciestCountry": "DE", "priciestMedianUsd": 80.1,
"gapUsd": 36.54, "gapPct": 83.9,
"cheapestAndPriciestShareInventory": false,
"arbitrage": {
"available": true, "crossPool": true,
"buyCountry": "GB", "buyCostUsd": 46.69, "buyCostIncludesBuyerProtection": true,
"sellCountry": "DE", "sellProceedsUsd": 80.1,
"grossMarginUsd": 33.41, "grossMarginPct": 71.6,
"excludes": ["cross-border shipping", "customs duty and import VAT",
"the destination marketplace's seller fees", "FX spread on the actual transfer"]
},
"note": "Both sides are asking prices, not sold prices …"
},
"mixDiagnostics": {
"topBrandByCountry": {"US": "Nike", "DE": "Nike Air", "GB": "Nike Air", "PL": "Nike Air"},
"topBrandSharePct": {"US": 52.1, "DE": 64.6, "GB": 61.5, "PL": 53.1},
"sameTopBrandEverywhere": false, "itemLevelMatching": false,
"note": "The countries did not sample the same product mix …"
},
"checkedAt": "2026-08-07T06:56:00+00:00"
}

With includeIndividualItems: true you additionally get one record per listing (type: "listing"), each tagged with country, domain and priceBasis, carrying both listingPrice and buyerTotalPrice in native currency and USD.

Use cases

  • Cross-border sourcinggap.arbitrage is the only line that pairs two genuinely separate inventories, with the buyer's fee already inside the buy cost
  • Deciding which country to list inranking plus totalFound is price against the supply you would compete with
  • Repricing — schedule the Actor and watch a country's median move; signals.favouriteCount is the demand heat
  • Market research — how much cheaper is Poland than Germany for a category, and is the euro zone one market or five
  • Reality-checking a supplier's "EU arbitrage" pitchinventoryOverlap answers it in one field

Notes & limits

  • Asking prices only. Vinted does not serve sold listings. A high median means sellers ask more there, not that buyers pay it
  • A broad keyword compares product mixes, not countries. mixDiagnostics is the tell — check topBrandByCountry and topBrandSharePct before believing a large gapPct, and narrow the keyword or set priceMinUsd/priceMaxUsd
  • Vinted's own brand labels differ per market (Nike on .com vs Nike Air on .de for the same shoe), so sameTopBrandEverywhere is conservative — a false is a prompt to look, not a verdict
  • totalFound saturates at 960. Above that the field is a ceiling; totalFoundCapped tells you which it is
  • Condition labels are localized (Very good / Sehr gut / Bardzo dobry) and are deliberately not translated into a shared scale — that would be a claim this Actor cannot back
  • The price window is USD. A bound in native currency would mean EUR 20 in Germany and PLN 20 in Poland; totalFound is never rewritten by it
  • Exchange rates come from open.er-api.com, once per currency per run. A country whose rate is unavailable is reported with fxUnavailable: true and excluded from the gap rather than converted at 1.0
  • A country that fails does not fail the run: it comes back as available: false with an error, and the rest are still compared. Only a keyword where every country failed fails the run
  • Read-only public catalog data, no login, no browser. Each country opens its own proxy session (random per run, rotated up to 4×) and pages are throttled to one per 1.5 s
  • No seller personal data is collected

日本語: Vinted 8カ国の同一キーワード相場を1コールで比較し、USD 換算の中央値ランキング・国別サンプル数・価格差(%)、および「実際に取引できる国の組み合わせだけ」で計算した裁定利ざやを返します(ユーロ圏5サイトは同一在庫を共有しているため自動判定して除外します)。

中文: 一次调用即可比较 Vinted 八国同一关键词的行情,返回按美元折算的中位价排名、各国样本量与价差百分比,以及仅在真正独立库存之间计算的套利空间(欧元区五站共享同一库存,会被自动识别并排除)。