Vestiaire Collective Scraper — Luxury Resale Fashion Data
Pricing
from $20.00 / 1,000 result scrapeds
Vestiaire Collective Scraper — Luxury Resale Fashion Data
Scrape Vestiaire Collective for pre-owned luxury fashion: bags, clothing, shoes and accessories with brand, price, condition, size, seller and images.
Pricing
from $20.00 / 1,000 result scrapeds
Rating
0.0
(0)
Developer
Studio Amba
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Scrape Vestiaire Collective, Europe's largest pre-owned luxury fashion marketplace, into clean structured data. Search by brand or item and get price, condition, size, seller and images for every result — bags, clothing, shoes, jewellery and accessories, women's, men's and kids'.
Vestiaire Collective lists hundreds of thousands of pre-owned designer items across hundreds of brands. This actor reads their own search index directly and returns one row per item, no login required.
What you get
One row per item, with:
- Price and currency (as listed), condition (e.g. "Très bon état"), size and colour where the item has them
- Seller name, seller badge (e.g. "Expert") and whether it's an official brand/store account
- Sold status and seller-marked stock status
- Full seller description, all item images and the source URL
Who it is for
- Resale platforms and pricing tools tracking secondhand designer prices across marketplaces
- Market-intelligence and fashion-resale researchers comparing brand-level resale values over time
- Authentication and valuation services that need comparable listing data
- Sellers and buyers benchmarking a specific bag, brand or style against current asking prices
How to scrape Vestiaire Collective data
- Set Search query to a brand (e.g.
Chanel,Gucci,Hermes) or an item type. This matches Vestiaire Collective's own search box. - Optionally restrict to Universe: Women, Men or Kids.
- Set Max results to cap the run. Vestiaire Collective's own search API caps deep pagination at roughly 1,200 reachable results per distinct query — narrow the search query (a more specific brand or item) to reach deeper into a niche rather than raising this above the cap.
- Run the actor. Results stream into the dataset and can be exported as JSON, CSV or Excel.
Example inputs
Chanel bags and clothing, all genders:
{"searchQuery": "Chanel","maxResults": 200}
Gucci, men's only:
{"searchQuery": "Gucci","universe": "men","maxResults": 250}
Hermès, women's only, small sample:
{"searchQuery": "Hermes","universe": "women","maxResults": 50}
Input reference
| Field | Type | Description |
|---|---|---|
searchQuery | string | Free-text search — a brand or item type. Default Chanel. |
universe | select | women, men or kids. Empty = all. |
maxResults | integer | Stop after this many items. Default 100, max 1200 (the site's own API pagination limit per search). |
proxyConfiguration | object | RESIDENTIAL + country FR, required (see below). |
Output fields
| Field | Type | Example |
|---|---|---|
productId | string | "70036500" |
name | string | "Besace en cuir" |
brand | string | "Chanel" |
price | number | null | 1575 |
currency | string | null | "EUR" |
condition | string | null | "Très bon état" |
size | string | null | "42 FR" (null for items with no size, e.g. most bags) |
color | string | null | "Beige" |
sold | boolean | false |
inStock | boolean | null | true — null only when the source doesn't expose it |
sellerId | string | null | "9742869" |
sellerName | string | null | "maria" |
sellerBadge | string | null | "Expert" |
isOfficialStore | boolean | false |
itemCountry | string | null | "PT" |
likes | number | null | 10 |
description | string | null | Full seller description |
imageUrl | string | null | First item image |
imageUrls | array | All item images |
universe | string | null | "women" |
createdAt | string | null | ISO 8601 — when the item was listed |
url | string | Full item URL |
source | string | "vestiairecollective.com" |
scrapedAt | string | ISO 8601 timestamp |
searchQuery | string | null | Search query input echo |
Example output
{"productId": "70036500","name": "Besace en cuir","brand": "Chanel","price": 1575,"currency": "EUR","condition": "Très bon état","size": null,"color": "Beige","sold": false,"inStock": false,"sellerId": "9742869","sellerName": "maria","sellerBadge": "Expert","isOfficialStore": false,"itemCountry": "PT","likes": 10,"description": "Un sac à main Chanel classique en très bon état. Utilisé seulement quelques fois.","imageUrl": "https://images.vestiairecollective.com/produit/70036500-1_3.jpg","imageUrls": ["https://images.vestiairecollective.com/produit/70036500-1_3.jpg"],"universe": "women","createdAt": "2026-08-20T01:48:50.000Z","url": "https://www.vestiairecollective.com/sacs-femme/sacs-a-main/chanel/sac-a-main-chanel-en-cuir-beige-70036500.shtml","source": "vestiairecollective.com","scrapedAt": "2026-08-20T09:21:44.847Z","searchQuery": "Chanel"}
Proxy
RESIDENTIAL + country FR is required. Vestiaire Collective sits behind a Cloudflare managed challenge on every route, including its own search API — plain HTTP and Apify's automatic proxy pool both get blocked. The actor warms up a real browser session through a French residential IP once per run to pass the challenge, then reuses that session for fast plain-HTTP calls to the search API. Keep the proxy on RESIDENTIAL + FR; switching it off will make every run fail.
Cost
Pricing is pay per result. One browser warm-up per run passes the Cloudflare challenge; every result after that is a cheap HTTP call, no per-item browser overhead. A run's usage cost only settles after it reports SUCCEEDED — a dataset read taken mid-run shows a cost far below the final figure, so size your spend from a completed run, not a partial one.
Limitations
- Vestiaire Collective's own search API caps deep pagination at ~1,200 reachable results per distinct (query, universe) combination — this is their limit, not the actor's. Narrow the search query for more coverage of a niche.
sizeis null for items that don't have one (most bags, jewellery, accessories) — this is expected, not missing data.pricereflects the current asking price at scrape time and can change as sellers adjust it or the item sells.- Data is scraped from the public search index and may change without notice.
Related scrapers
- Vinted Scraper — secondhand fashion, electronics and home items across Vinted's EU country sites
- Mytheresa Scraper — full-price luxury e-tail with per-size stock
- Off-White Scraper — brand-direct Off-White catalogue
- Miu Miu Scraper — brand-direct Miu Miu catalogue
Need this data on a schedule, or a custom version?
We run this scraper as a managed service for businesses: scheduled runs, deduplication, delta detection, and delivery to your inbox, Google Sheets, or API — maintenance included. We can also build a custom version with your exact fields and filters, or combine multiple sources into one feed.
See studioamba.dev/services or email hello@studioamba.dev for a free data sample. We maintain 300+ European web scrapers and answer within one business day.