Vestiaire Collective Scraper: Sold Items & Seller Intelligence
Pricing
from $16.00 / 1,000 listing results
Vestiaire Collective Scraper: Sold Items & Seller Intelligence
Scrape public Vestiaire Collective live and sold listings across 70 markets. Extract prices, seller countries, conditions, product details, price history, and duplicate/suspicious seller signals.
Pricing
from $16.00 / 1,000 listing results
Rating
0.0
(0)
Developer
KazKN
Maintained by CommunityActor stats
1
Bookmarked
12
Total users
4
Monthly active users
6 days ago
Last modified
Categories
Share
Vestiaire Collective Scraper โ Listings, Sold Items & Price Intelligence
Turn public Vestiaire Collective listings and sold-search observations into structured data for sourcing, pricing, seller research, and recurring watchlists.
Start with five France-market results. No login. Export the Dataset to JSON, CSV, Excel, Google Sheets, or your API workflow.
Run the 5-result sample ยท Open the API ยท View the output schema
Public data ยท France-verified path ยท 70 market-code input options
The current bounded verification path covers France. The 70 selectable market codes are input options, not a claim that every market has identical coverage or reliability.
Choose the result you need
| Workflow | Run recipe | Concrete Dataset result |
|---|---|---|
| Active listings | collectionMode: "active" | listing rows with visible price, condition, market, seller fields when exposed, and URL |
| Sold observations | collectionMode: "sold" | sold_item rows from public sold-search sources |
| Product details | includeDetails: true | detail rows with public description, material, attributes, shipping, and page metadata |
| Price watchlist | Reuse one trackingStoreName on a schedule | price observations plus carefully labelled missing or likely_sold transitions |
| Seller summaries | includeSellerInfo: true | seller_summary rows aggregated from records observed in that run |
| Duplicate review | includeDuplicateSignals: true | risk_signal rows with similarity reasons for manual review |
| Cross-market comparables | collectionMode: "combined" + countries | deduplicated listing and sold_item rows ready for comparison |
Unofficial community Actor. It is not affiliated with, endorsed by, or operated by Vestiaire Collective. Use it for public data only and where you have the required rights and authorization.
Quick start
Paste this input and click Start:
{"searchTerms": ["chanel"],"collectionMode": "active","countries": ["FR"],"itemConditions": ["1"],"maxListings": 5,"maxDatasetRecords": 5,"includeDetails": false,"includeSellerInfo": false,"includeDuplicateSignals": false}
itemConditions: ["1"] requests Jamais portรฉ avec รฉtiquette. The Actor keeps the requested filter in conditionFilter and does not invent a condition when Vestiaire does not expose one.
For a narrower product match, add requiredKeywords, for example ["classic flap"]. Every required phrase must appear in the public title or model.
What the Actor collects
- Active listings from search terms and public category, search, seller-profile, or product URLs.
- Public sold-search observations and sold-items pages.
- Publicly displayed prices, original prices when exposed, currencies, conditions, brands, models, images, and URLs.
- Product details, seller summaries, price tracking, and duplicate-review signals when enabled.
- Separate
marketCountry,sellerCountry, andproductLocationCountryfields when the source exposes them. - Deterministic record keys, field provenance, availability labels, and run diagnostics.
- Automatic deduplication when the same listing is observed through more than one market.
Every row has a recordType, sourceMode, collection timestamp, and stable record identity. Useful types are:
recordType | Use it for |
|---|---|
listing | active inventory, price comparables, sourcing, and tracking |
sold_item | public sold-search observations |
detail | richer product-page fields |
seller_summary | observed seller-level aggregates |
risk_signal | duplicate-looking listing review |
run_diagnostic | diagnosing a blocked or incomplete public request |
Dataset views organize columns; they do not remove rows. For sold analysis, filter on recordType === "sold_item" and isSold === true.
Built for real resale workflows
Source and price an intake lot
Search by brand or model, restrict the visible condition, and export active plus sold observations. Use sellerCountries only when you need an explicit seller-location filter; records without a public seller country are skipped when that filter is active.
Build a recurring price watchlist
Schedule the same input with the same trackingStoreName. The Actor records public price changes, marks a disappeared listing as missing, and uses likely_sold only after the configured number of comparable complete runs. A disappearance is not presented as a confirmed sale.
Enrich a catalogue or data pipeline
Enable product details, then consume the Dataset through the Apify API, webhook, Make, n8n, Python, JavaScript, CSV, Excel, or Google Sheets. Raise maxDatasetRecords above maxListings when enrichment rows are enabled.
Review sellers and duplicate-looking listings
Seller summaries describe only the listings and sold observations collected by the run. Duplicate signals are descriptive similarity evidence for manual review โ not fraud or authenticity decisions.
Filters that matter
Market and seller country
countrieschooses the Vestiaire market/locale searched. The safe default is["FR"].sellerCountriesfilters the explicit publicsellerCountry; it does not filter the market or silently substitute the item location.productLocationCountrystays separate when Vestiaire exposes it.countries: ["ALL"]requests all 70 supported market-code options. Start with a small explicit market before scaling.
Item condition
| ID | Vestiaire condition |
|---|---|
1 | Jamais portรฉ avec รฉtiquette |
2 | Jamais portรฉ |
3 | Trรจs bon รฉtat |
4 | Bon รฉtat |
5 | Correct |
Leave itemConditions empty for every condition. A selected condition is sent to the active and sold search paths and is recorded separately from the observed condition field.
Precision keywords
requiredKeywords is an optional post-filter on the public title and model. Matching is case-insensitive and accent-insensitive, and every phrase must match.
Pricing
This Actor uses Pay Per Event pricing. A small run pays for the public pages successfully parsed and the valuable records actually emitted.
| Event | FREE | BRONZE | SILVER | GOLD+ |
|---|---|---|---|---|
| Search/start page | $0.0020 | $0.0018 | $0.0015 | $0.0012 |
| Active or tracking listing | $0.025 | $0.020 | $0.018 | $0.016 |
| Sold observation | $0.030 | $0.025 | $0.022 | $0.020 |
| Product detail | $0.007 | $0.006 | $0.005 | $0.004 |
| Seller summary | $0.006 | $0.004 | $0.003 | $0.002 |
| Duplicate cluster | $0.006 | $0.004 | $0.003 | $0.002 |
The Actor uses atomic Dataset emission with the matching paid event and deterministic emission IDs to avoid intentionally duplicating output or charges across retries.
Limits and evidence boundaries
- Public pages only: no login, cookies, private account data, or hidden seller data.
- Sold rows are public sold-search observations. A displayed sold price is not a private settlement amount.
likely_soldis an explicitly labelled tracking inference, not confirmation of a transaction.- Product-page authentication metadata is source data, not an independent authenticity check.
- Duplicate signals are not fraud, seller-trust, or authenticity verdicts.
- Unknown fields remain
null; the Actor does not fill them with the requested filter value. - Live page structure can change. Use a five-result smoke run before scaling.
- Hard ceilings include 20 search terms, 100 start URLs, 10,000 listing-like rows, 25,000 total Dataset rows, 2,500 paid search pages, and 360 runtime minutes.
The run summary in OUTPUT reports collected rows, deduplicated rows, skipped seller-country and precision records, processed pages, paid pages, caps, and whether tracking state was committed.
Copy to your AI assistant
Copy this entire block into ChatGPT, Claude, Claude Code, Codex, Kimi Code, or your IDE assistant:
Use the public Apify Actor `kazkn/vestiaire-collective-smart-scraper` to collect five France-market Vestiaire Collective listings in condition `Jamais portรฉ avec รฉtiquette` and return the Dataset rows.Run this Python code exactly as the starting point:from os import environfrom apify_client import ApifyClientclient = ApifyClient(environ["APIFY_API_TOKEN"])run_input = {"searchTerms": ["chanel"],"collectionMode": "active","countries": ["FR"],"itemConditions": ["1"],"maxListings": 5,"maxDatasetRecords": 5,"includeDetails": False,"includeSellerInfo": False,"includeDuplicateSignals": False,}run = client.actor("kazkn/vestiaire-collective-smart-scraper").call(run_input=run_input)dataset_id = run["defaultDatasetId"]items = list(client.dataset(dataset_id).iterate_items())print(items)Required environment variable: `APIFY_API_TOKEN`.Useful output fields: `recordType`, `listingId`, `title`, `brand`, `model`, `condition`, `conditionFilter`, `price`, `currency`, `marketCountry`, `sellerCountry`, `productLocationCountry`, `displayStatus`, `url`, `scrapedAt`.Full default-build specification: https://api.apify.com/v2/acts/kazkn~vestiaire-collective-smart-scraper/builds/defaultApify token page: https://console.apify.com/account/integrationsLoad the token only from the environment variable. Never paste, print, commit, log, or share the secret.
KazKN Commerce Intelligence Suite
| KazKN ยท Commerce Intelligence Suite โ public marketplace data for sourcing, pricing, monitoring, and competitive research. | |||
![]() Vestiaire Collective Scraper โ You are here Collect luxury resale listings, sold observations, and seller signals. | ![]() Vinted Smart Scraper Compare resale listings and monitor marketplace opportunities. | ![]() Shopify Apps Spy Map products, reviews, catalog signals, and installed apps. | ![]() App Store Localization Compare localized App Store metadata across countries. |
Advanced reference
- Default market: France.
- Supported market-code options:
AD,AU,AT,BH,BE,BR,BG,CA,IC,CN,HR,CY,CZ,DK,EE,FI,FR,GF,PF,DE,GI,GR,GP,GG,HK,HU,ID,IE,IM,IL,IT,JP,JE,KW,LV,LB,LI,LT,LU,MY,MT,MQ,YT,MC,NL,NC,NZ,NO,PH,PL,PT,QA,RE,RO,SA,SG,SK,SI,ZA,KR,ES,BL,MF,SE,CH,TW,TH,AE,GB,US. maxListingscaps listing-like rows.maxDatasetRecordscaps all rows, including enrichments and diagnostics.maxItemsandincludeSoldItemsremain supported as legacy API inputs; new runs should usemaxDatasetRecordsandcollectionMode.- Apify Proxy is enabled by default. Blocked product-detail requests can retry once in Chromium through the configured proxy.
For local development:
npm installnpm testnpm run test:coveragenpm run lintnpm run buildapify validate-schema




