Vestiaire Collective Scraper: Sold Items & Seller Intelligence avatar

Vestiaire Collective Scraper: Sold Items & Seller Intelligence

Pricing

from $16.00 / 1,000 listing results

Go to Apify Store
Vestiaire Collective Scraper: Sold Items & Seller Intelligence

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

KazKN

Maintained by Community

Actor stats

1

Bookmarked

12

Total users

4

Monthly active users

6 days ago

Last modified

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

Vestiaire Collective public listings transformed into structured price, condition, seller-country, and record-type data โ€” vestiaire-collective-data-hero-v2.png

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

WorkflowRun recipeConcrete Dataset result
Active listingscollectionMode: "active"listing rows with visible price, condition, market, seller fields when exposed, and URL
Sold observationscollectionMode: "sold"sold_item rows from public sold-search sources
Product detailsincludeDetails: truedetail rows with public description, material, attributes, shipping, and page metadata
Price watchlistReuse one trackingStoreName on a scheduleprice observations plus carefully labelled missing or likely_sold transitions
Seller summariesincludeSellerInfo: trueseller_summary rows aggregated from records observed in that run
Duplicate reviewincludeDuplicateSignals: truerisk_signal rows with similarity reasons for manual review
Cross-market comparablescollectionMode: "combined" + countriesdeduplicated 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, and productLocationCountry fields 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:

recordTypeUse it for
listingactive inventory, price comparables, sourcing, and tracking
sold_itempublic sold-search observations
detailricher product-page fields
seller_summaryobserved seller-level aggregates
risk_signalduplicate-looking listing review
run_diagnosticdiagnosing 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

  • countries chooses the Vestiaire market/locale searched. The safe default is ["FR"].
  • sellerCountries filters the explicit public sellerCountry; it does not filter the market or silently substitute the item location.
  • productLocationCountry stays separate when Vestiaire exposes it.
  • countries: ["ALL"] requests all 70 supported market-code options. Start with a small explicit market before scaling.

Item condition

IDVestiaire condition
1Jamais portรฉ avec รฉtiquette
2Jamais portรฉ
3Trรจs bon รฉtat
4Bon รฉtat
5Correct

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.

EventFREEBRONZESILVERGOLD+
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_sold is 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 environ
from apify_client import ApifyClient
client = 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/default
Apify token page: https://console.apify.com/account/integrations
Load 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 Smart Scraper logo
Vestiaire Collective Scraper

โ—† You are here
Collect luxury resale listings, sold observations, and seller signals.
Vinted Smart Scraper logo
Vinted Smart Scraper

Compare resale listings and monitor marketplace opportunities.
Shopify Apps Spy logo
Shopify Apps Spy

Map products, reviews, catalog signals, and installed apps.
Apple App Store Localization Scraper logo
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.
  • maxListings caps listing-like rows. maxDatasetRecords caps all rows, including enrichments and diagnostics.
  • maxItems and includeSoldItems remain supported as legacy API inputs; new runs should use maxDatasetRecords and collectionMode.
  • Apify Proxy is enabled by default. Blocked product-detail requests can retry once in Chromium through the configured proxy.

For local development:

npm install
npm test
npm run test:coverage
npm run lint
npm run build
apify validate-schema