Vinted Listings & Condition Scraper icon

E-commerce

Vinted Listings & Condition Scraper

Scrape Vinted active listings — price, condition, brand, size, seller, and photo — by keyword across 4 country domains. Real resale-market asking-price data.

Free Apify credit covers a first run. No credit card to try.

What this Actor scrapes

Vinted is Europe's largest resale marketplace, and it doesn't publish a clean price-comps export — resellers checking what an item is actually worth are stuck scrolling active listings by hand across four separate country domains. This Actor queries Vinted's own catalog search by keyword — optionally narrowed by brand, size, and price band — across vinted.com, vinted.co.uk, vinted.de, and vinted.fr, and hands back one clean row per active listing: price, condition, brand, size, seller, favourite count, and photo.

What we handle for you

  • 🛡️ We rotate browser fingerprintscurl-cffi impersonation replays a real Chrome TLS handshake, rotating profiles between retries so Vinted sees a browser, not Python.
  • 🔁 We retry with exponential backoff on 408 / 429 / 503 and network errors — up to 5 attempts, Retry-After honoured.
  • 🌐 We rotate proxies through Apify Proxy on every retry — fresh session, fresh exit IP.
  • 🧱 We back off when the target rate-limits. Partial successes surface with a clear status message; we never silently return an empty dataset.
  • 🧊 We keep the dataset clean — Pydantic-validated rows, ISO-8601 timestamps, stable item IDs.
  • 💰 You pay only for results that land. No data → no charge, beyond the small actor-start warm-up fee.

Use cases

  • Resale-arbitrage comps — check what similar items are currently priced at before buying stock to flip.
  • Sourcing research — see which brands, sizes, and condition bands are actually listed and at what price.
  • Cross-market pricing — compare the same keyword's asking prices across the US, UK, German, and French Vinted domains.
  • Demand tracking — monitor favourite counts as a proxy for listing interest over time.

Input

Paste this into the Apify Console, or send it as the run input over the API. Proxy settings are on by default; you rarely need to touch them.

FieldTypeRequiredWhat it does
keywords array yes Free-text search terms, e.g. "nike jacket". One catalog run per keyword; results merged, sharing the Max items budget.
domain string no Vinted host to search. All four share the same catalog API wire shape.
brand string no Optional brand filter, folded into the search text (e.g. "Nike").
size string no Optional size filter, folded into the search text (e.g. "M").
priceFrom number no Minimum price, passed through as a catalog query parameter.
priceTo number no Maximum price, passed through as a catalog query parameter. Must be >= Price from when both are set.
maxItems integer no Cap on rows emitted across all keywords combined.
{
  "keywords": [
    "nike jacket"
  ],
  "domain": "vinted.com",
  "maxItems": 50,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}

Output

One row per result, schema-validated before it is written. Export JSON, CSV, Excel or XML from the run, or read it over the API.

item_idtitlebrandsizepricecurrencystatus_conditionseller_loginfavourite_counturl

{
  "item_id": 9518825280,
  "title": "Free Country jacket",
  "brand": "Free Country",
  "size": "M",
  "price": "12.00",
  "currency": "USD",
  "status_condition": "Good",
  "seller_login": "jane_doe123",
  "favourite_count": 3,
  "created_at": null,
  "url": "https://www.vinted.com/items/9518825280-free-country-jacket",
  "photo_url": "https://images1.vinted.net/t/...",
  "scraped_at": "2026-07-29T12:00:00.000Z"
}

Pricing

EventPriceWhen
Actor start$0.20Once per run, covers warm-up and proxy session setup.
Item result$0.0025Per result written to the dataset.

You pay only for results that land. Cap any run with maxTotalChargeUsd. See pricing & billing for worked examples.

FAQ

Does this return sold listings?
No — Vinted's public catalog API only exposes active/visible listings. There's no sold flag in the public wire format, so this Actor returns current asking prices and condition, not closed-sale history.
Do I need a proxy?
proxyConfiguration defaults to Apify Proxy on. We rotate sessions on every retry to stay ahead of rate limits.
Which domains are supported?
vinted.com, vinted.co.uk, vinted.de, and vinted.fr — all share the same catalog wire format.
Why is `created_at` always null?
No public endpoint reliably returns a per-item creation timestamp for this target. We'd rather ship null than fabricate a value.

Ready to run it?

Open the listing on Apify, paste the input above, and watch rows land. If it ever breaks, it is our problem before it is yours.

Related Actors

Teams that run this also run