A Vinted sold-prices API
Vinted doesn't offer a public API, and its site has no “sold items” filter. If you price stock, run a reselling tool or research the second-hand market, you have to reconstruct sold data yourself. Comps does that and gives it to you as one JSON call.
What Vinted exposes — and what it doesn't
Vinted's internal /api/v2 endpoints aren't open to anonymous callers: they return 401/403/404 without a logged-in session, and using someone's session breaks Vinted's terms. The catalog pages are public, but they only list items that are still for sale. When an item sells, its page stays up for a while with a “Sold” label — and then disappears.
So sold history exists only if somebody watches listings while they're live and checks them again later. That's the whole job.
How Comps builds sold history
- Discover. We read public catalog pages (newest first) for hundreds of brands and item types in France, Germany, the UK, Italy, Spain, the Netherlands and Poland — and for every search our users run.
- Track. Each sampled listing is re-checked 1, 3, 7, 14, 30 and 60 days after we first saw it.
- Confirm. A sale counts only when the item page itself shows Vinted's “Sold” status. Items that just vanish are recorded as disappeared and never counted as sales — deleted listings would otherwise inflate the numbers.
- Summarise. Median, p25/p75, mean and min/max after 1.5×IQR outlier removal, plus median days to sell where we saw the listing go up.
One request
curl -G "https://swanum.com/comps/api/v1/vinted/sold" \
-H "X-API-Key: $COMPS_KEY" \
--data-urlencode "q=carhartt detroit jacket" \
-d country=fr -d condition=usedThe response has a stats block (count, median, p25, p75, mean, min, max, outliers removed, median days to sell, and sell-through after 1, 3, 7, 14 and 30 days with the prices of quick sellers vs the ones still waiting), a coverage block that tells you how much tracking stands behind the numbers, and the individual sales: title, price, currency, condition, size, brand, when it was listed, last seen for sale, sold detected, and the Vinted link. Full field list in the docs.
Honest limits
- Asking price, not negotiated price. Vinted shows the last listed price; private offers aren't public.
- Detection time, not sale time. The sale happened between
last_active_atandsold_detected_at; both are in the response. - History starts when tracking starts. Coverage grows every day and fastest for what people search. New searches return “0 sales yet” and are added to tracking.
- No personal data. We don't collect or return seller or buyer information, and we link to images rather than copying them.
Countries
France (EUR) · Germany (EUR) · United Kingdom (GBP) · Italy (EUR) · Spain (EUR) · Netherlands (EUR) · Poland (PLN). Prices are returned in the local currency; we don't convert.
Comps is independent and not affiliated with or endorsed by Vinted.