# Vestiaire Collective Scraper (`crawlerbros/vestiaire-collective-scraper`) Actor

Scrape Vestiaire Collective - Europe's largest luxury fashion resale platform. Search by keyword, browse by category/brand, or fetch individual product pages. Returns product ID, name, brand, condition, price, seller info, images, and more.

- **URL**: https://apify.com/crawlerbros/vestiaire-collective-scraper.md
- **Developed by:** [Crawler Bros](https://apify.com/crawlerbros) (community)
- **Categories:** E-commerce, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Vestiaire Collective Scraper

Scrape luxury and designer resale listings from [Vestiaire Collective](https://www.vestiairecollective.com/) — one of the world's largest authenticated pre-owned fashion platforms. Extract product details, prices, seller info, images, and more across all categories.

### What data you can extract

- **Product ID, name, and description**
- **Brand** (Gucci, Louis Vuitton, Chanel, Hermès, etc.)
- **Category and subcategory** (handbags, shoes, clothing, accessories, watches, jewelry)
- **Condition** (Never worn, Very good, Good, Fair)
- **Price** and **original price** in USD (or other currency)
- **Discount percentage**
- **Seller country and username**
- **Authentication status** (Vestiaire Certified / Direct Shipping)
- **Images** (full-resolution URLs)
- **Stock status** (in stock / sold)
- **Publication date**
- **Product URL**

### Scraping modes

| Mode | Description |
|---|---|
| `search` | Search by keyword (e.g. "gucci bag", "vintage dress") |
| `byCategory` | Browse all products in a category slug |
| `byBrand` | Browse by brand name slug |
| `byUrl` | Scrape specific product listing URLs directly |

### Input configuration

| Field | Type | Description |
|---|---|---|
| `mode` | Select | Scraping mode (search / byCategory / byBrand / byUrl) |
| `searchQuery` | Text | Search keyword (for search mode) |
| `categorySlug` | Select | Category to browse (e.g. `women-bags`, `men-shoes`) |
| `brandSlug` | Text | Brand slug (e.g. `gucci`, `louis-vuitton`) |
| `productUrls` | List | Direct product URLs (for byUrl mode) |
| `condition` | Select | Filter by condition (Never worn, Very good, Good, Fair, or Any) |
| `minPrice` | Number | Minimum price in USD |
| `maxPrice` | Number | Maximum price in USD |
| `maxItems` | Number | Maximum number of results (1–1000, default 50) |

### Example input

```json
{
  "mode": "search",
  "searchQuery": "gucci bag",
  "condition": "never_worn",
  "maxItems": 100
}
````

### Example output

```json
{
  "productId": "67750426",
  "name": "Ella Cloth Handbag",
  "brand": "Gucci",
  "category": "Handbags",
  "parentCategory": "Bags",
  "condition": "Never worn, with tag",
  "price": 1250.00,
  "currency": "USD",
  "originalPrice": 2400.00,
  "discount": 47,
  "sellerCountry": "France",
  "sellerUsername": "fashionseller123",
  "isAuthenticated": true,
  "isSold": false,
  "inStock": true,
  "likeCount": 24,
  "imageUrls": [
    "https://images.vestiairecollective.com/VC/prod/1/67750426/ella-handbag.jpg"
  ],
  "productUrl": "https://www.vestiairecollective.com/women-bags/handbags/gucci/ella-cloth-handbag-67750426.shtml",
  "publishedAt": "2024-03-15T10:22:31+00:00",
  "recordType": "product",
  "sourceUrl": "https://www.vestiairecollective.com/...",
  "scrapedAt": "2026-06-01T12:00:00+00:00"
}
```

### Available categories

- Women: Bags, Clothing, Shoes, Accessories, Jewelry, Watches
- Men: Bags, Clothing, Shoes, Accessories, Watches
- Kids, Home & Lifestyle

### Use cases

- **Luxury market research** — track resale prices for specific brands and models
- **Price intelligence** — compare original vs resale prices and discount trends
- **Inventory monitoring** — track availability of specific items or brands
- **Brand analysis** — understand which brands have the most activity on resale markets
- **Fashion trend analysis** — identify popular styles, colors, and categories

### FAQ

**Does it require login or cookies?**
No. All data is publicly accessible without authentication.

**How many products can I scrape?**
Up to 1000 per run. Each product sitemap file contains up to 50,000 URLs.

**Does it work for all regions?**
Yes — Vestiaire Collective lists items from sellers worldwide. Prices are shown in USD.

**How often does the data update?**
Vestiaire publishes new listings daily. Run the scraper regularly to capture new items.

**Are image URLs permanent?**
Vestiaire CDN URLs are stable but may expire after extended periods.

# Actor input Schema

## `mode` (type: `string`):

What to scrape.

## `searchQuery` (type: `string`):

Free-text search query, e.g. `gucci bag` or `chanel classic flap`.

## `categorySlug` (type: `string`):

Vestiaire category slug matching the URL path, e.g. `women-bags`, `men-clothing`. Watches and jewellery appear under their parent accessory category.

## `brandSlug` (type: `string`):

Vestiaire brand slug, e.g. `gucci`, `louis-vuitton`, `chanel`, `hermes`.

## `productUrls` (type: `array`):

List of Vestiaire Collective product page URLs to scrape.

## `condition` (type: `string`):

Filter by item condition.

## `minPrice` (type: `integer`):

Minimum price filter in USD.

## `maxPrice` (type: `integer`):

Maximum price filter in USD.

## `maxItems` (type: `integer`):

Maximum number of items to scrape.

## Actor input object example

```json
{
  "mode": "search",
  "searchQuery": "gucci bag",
  "categorySlug": "women-bags",
  "productUrls": [],
  "condition": "",
  "maxItems": 50
}
```

# Actor output Schema

## `items` (type: `string`):

Dataset containing all scraped luxury resale items.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "mode": "search",
    "searchQuery": "gucci bag",
    "productUrls": [],
    "maxItems": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawlerbros/vestiaire-collective-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "mode": "search",
    "searchQuery": "gucci bag",
    "productUrls": [],
    "maxItems": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("crawlerbros/vestiaire-collective-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "mode": "search",
  "searchQuery": "gucci bag",
  "productUrls": [],
  "maxItems": 50
}' |
apify call crawlerbros/vestiaire-collective-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=crawlerbros/vestiaire-collective-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Vestiaire Collective Scraper",
        "description": "Scrape Vestiaire Collective - Europe's largest luxury fashion resale platform. Search by keyword, browse by category/brand, or fetch individual product pages. Returns product ID, name, brand, condition, price, seller info, images, and more.",
        "version": "1.0",
        "x-build-id": "hLnbh0bqhEFzadnUf"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/crawlerbros~vestiaire-collective-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-crawlerbros-vestiaire-collective-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/crawlerbros~vestiaire-collective-scraper/runs": {
            "post": {
                "operationId": "runs-sync-crawlerbros-vestiaire-collective-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/crawlerbros~vestiaire-collective-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-crawlerbros-vestiaire-collective-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "mode"
                ],
                "properties": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "search",
                            "byCategory",
                            "byBrand",
                            "byUrl"
                        ],
                        "type": "string",
                        "description": "What to scrape.",
                        "default": "search"
                    },
                    "searchQuery": {
                        "title": "Search query (mode=search)",
                        "type": "string",
                        "description": "Free-text search query, e.g. `gucci bag` or `chanel classic flap`.",
                        "default": "gucci bag"
                    },
                    "categorySlug": {
                        "title": "Category (mode=byCategory)",
                        "enum": [
                            "women-bags",
                            "women-clothing",
                            "women-shoes",
                            "women-accessories",
                            "women-jewellery",
                            "men-bags",
                            "men-clothing",
                            "men-shoes",
                            "men-accessories",
                            "kids-girls",
                            "kids-boys",
                            "kids-shoes",
                            "kids-accessories"
                        ],
                        "type": "string",
                        "description": "Vestiaire category slug matching the URL path, e.g. `women-bags`, `men-clothing`. Watches and jewellery appear under their parent accessory category.",
                        "default": "women-bags"
                    },
                    "brandSlug": {
                        "title": "Brand slug (mode=byBrand)",
                        "type": "string",
                        "description": "Vestiaire brand slug, e.g. `gucci`, `louis-vuitton`, `chanel`, `hermes`."
                    },
                    "productUrls": {
                        "title": "Product URLs (mode=byUrl)",
                        "type": "array",
                        "description": "List of Vestiaire Collective product page URLs to scrape.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "condition": {
                        "title": "Condition filter",
                        "enum": [
                            "",
                            "never_worn",
                            "very_good",
                            "good",
                            "fair"
                        ],
                        "type": "string",
                        "description": "Filter by item condition.",
                        "default": ""
                    },
                    "minPrice": {
                        "title": "Min price (USD)",
                        "minimum": 0,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Minimum price filter in USD."
                    },
                    "maxPrice": {
                        "title": "Max price (USD)",
                        "minimum": 0,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Maximum price filter in USD."
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Maximum number of items to scrape.",
                        "default": 50
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
