Vinted France — Listings, Sold & Removed Status avatar

Vinted France — Listings, Sold & Removed Status

Pricing

from $1.50 / 1,000 listings

Go to Apify Store
Vinted France — Listings, Sold & Removed Status

Vinted France — Listings, Sold & Removed Status

Scrape vinted.fr listings for a keyword: itemId, title, brand, size, lastPrice and status (active, sold or removed). Try it returns live catalog matches. Sold/removed only when the item page or a scheduled snapshot says so — no dummy IDs. RESIDENTIAL FR recommended.

Pricing

from $1.50 / 1,000 listings

Rating

0.0

(0)

Developer

Noah Adler

Noah Adler

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

a day ago

Last modified

Share

vinted.fr listings for a keyword: itemId, title, brand, size, lastPrice and status (active, sold, removed). Try it with Nike (or any query) returns live catalog matches. vinted sold / removed only when the item page or a scheduled snapshot says so — never dummy IDs.

Vinted has no public sold archive. Official Vinted Pro allowlist is broken. This Actor searches the public catalog HTML. Sold/removed is a status on a real listing (SoldOut, 404, or gone vs last snapshot), not a historical sold feed.

Table of contents

What you get

One row per listing (or sold/removed event)

  • itemId, url (vinted.fr / .es / .de)
  • title, brand, size
  • status: active | sold | removed
  • lastPrice, soldPrice (only when status is sold and a price is still on the page or snapshot), currency (EUR)
  • lastSeenAt, daysListed when the item page exposes a created date
  • sellerId, country, scrapedAt

Default Try it (includeActive: true) is a vinted france catalog for your keyword. It is not a fake sold dump.

How it works

StepAction
1Open vinted.fr (or .es / .de) and load catalog HTML for your keyword or catalogUrl.
2With includeActive on (default), push those cards as active rows.
3Save the universe in Actor storage for the next run.
4Probe only real itemIds / watchItems and IDs that vanished since the last snapshot.
5Item page: InStock = active. JSON-LD SoldOut = sold. HTTP 404 = removed. Invented IDs are ignored as comps.

The internal /api/v2/catalog/items route is gone (404). v0.2 uses public catalog HTML + item pages over HTTP. No Playwright.

Input

FieldRequiredDefaultNotes
keywordOne of keyword / URL / IDsnike air forceBrand query as on Vinted
catalogUrlOne of keyword / URL / IDs—Full catalog or /vetements URL
itemIdsOne of keyword / URL / IDs—Real IDs or item URLs only
watchItemsNo—Last-known cards (itemId, title, lastPrice, …)
countryNofrfr / es / de
maxItemsNo201–80
lookbackHoursNo168Keep IDs between scheduled runs
includeActiveNotrueOn = usable Try it catalog; off = sold/removed diffs only
proxyConfigurationNoRESIDENTIAL + market CCKeep country aligned to the site

Output

One row per listing (or sold/removed). A hard block pushes one row with error: true and a message that names RESIDENTIAL + FR/ES/DE.

{
"itemId": "10121328475",
"url": "https://www.vinted.fr/items/10121328475-basket-nike",
"title": "Basket nike",
"brand": "Nike Air",
"size": "36",
"status": "active",
"lastPrice": 10.0,
"soldPrice": null,
"currency": "EUR",
"sellerId": "222058101",
"country": "fr",
"scrapedAt": "2026-09-24T16:00:00Z"
}

Example input

Use this as Try it. It must return Nike (or your keyword) catalog rows, not dummy tombstone IDs.

{
"keyword": "nike air force",
"country": "fr",
"maxItems": 12,
"lookbackHours": 168,
"includeActive": true,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "FR"
}
}

To watch sold/removed only, set includeActive to false and run on a Schedule every 6–12 hours. The first of those runs seeds watch state; later runs emit comps when items leave the catalog.

To check IDs you already have (must be real listings):

{
"keyword": "nike air force",
"country": "fr",
"itemIds": ["10121328475"],
"includeActive": true,
"maxItems": 12
}

Use cases

  • Pull a Nike / Zara / Sézane catalog from vinted france with last asking price.
  • Schedule the same keyword with includeActive off to catch vinted sold / vinted removed inside that universe.
  • Feed a repricer: last asking price vs sold price when the page still shows it.

Proxy

Vinted sits behind Cloudflare / DataDome on some JSON routes. This Actor stays on public HTML. Default proxy is Apify RESIDENTIAL with country FR for vinted.fr. Use ES / DE when you change country.

API quick start

from apify_client import ApifyClient
client = ApifyClient("YOUR_TOKEN")
run = client.actor("noahadler/vinted-sold-comps").call(run_input={
"keyword": "nike air force",
"country": "fr",
"maxItems": 12,
"includeActive": True,
})
items = client.dataset(run["defaultDatasetId"]).list_items().items
curl "https://api.apify.com/v2/acts/noahadler~vinted-sold-comps/run-sync-get-dataset-items?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"keyword":"nike air force","country":"fr","maxItems":12,"includeActive":true}'

FAQ

Why did Try it used to return two nonsense IDs? Old examples used dummy tombstones (1000000000). Those are gone. Try it is keyword catalog.

Will the first Schedule with includeActive off be empty? Yes, honestly. There is no public sold feed. The next run compares the snapshot.

Is this another Vinted search scraper? Search is what Try it delivers. Sold/removed is optional status / schedule, not invented comps.

Can I use Spain or Germany? Yes. country=es or de. Default is France.

Do I need Vinted Pro? No.

Will I get every sale on Vinted? No. Only sales/removals inside the universe you watch.

Limitations

  • France is the default market (vinted.fr). ES/DE via input.
  • Cap 80 items per run.
  • Sold price equals last asking price when Vinted hides the close price.
  • No invented neighbor IDs. Dummy tombstones are not comps.
  • includeActive false without a prior snapshot is a seed, not a sold archive.

Racimo

Hero: vinted listings + status. Later (only if this one gets runs): Vinted search FR/ES, then seller wardrobe.

Keywords

vinted sold · vinted sold items · vinted france sold · vinted listings · vinted removed · vinted scraper