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

Scrape Vestiaire Collective luxury resale listings across 35 markets. 36 fields: price, brand, size, condition signals, likes, sold status, seller country, images, direct URLs. The richest Vestiaire dataset on Apify, with correct local currency for 18 markets.

- **URL**: https://apify.com/unfenced-group/vestiaire-collective-scraper.md
- **Developed by:** [Unfenced Group](https://apify.com/unfenced-group) (community)
- **Categories:** E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $6.99 / 1,000 product results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
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 resale listings from Vestiaire Collective across 35 markets. Returns brand, price, size, colour, likes, sold status, seller reputation, images, and direct listing URLs as structured data — the richest field set of any Vestiaire scraper on Apify.

### What it does

- Searches Vestiaire Collective by keyword across 35 country markets.
- Returns 36 structured fields per listing, including price, brand, size, colour, likes, sold and in-stock status, editor picks, duty-free eligibility, direct-shipping eligibility, seller country, and official-store status.
- Optionally includes sold listings for sell-through and price-history analysis.
- Filters by minimum and maximum price.

### Markets

35 markets are supported. 18 return prices in their own local currency:

US (USD), Canada (CAD), United Kingdom (GBP), Switzerland (CHF), Denmark (DKK), Sweden (SEK), Australia (AUD), Japan (JPY), Singapore (SGD), and the euro zone — France, Germany, Spain, Italy, Netherlands, Belgium, Ireland, Finland, Monaco (EUR).

17 more are served by Vestiaire in USD (the platform's own behaviour for these countries): Austria, Portugal, Luxembourg, Greece, Czechia, Hungary, Croatia, Slovakia, Estonia, Mexico, Chile, Peru, UAE, Saudi Arabia, Malaysia, Philippines, India. For these, the `currency` field correctly reports USD.

### Input

| Field | Description |
|---|---|
| `searchQueries` | List of keywords (brand, model, or free text). |
| `countries` | Markets to scrape (ISO codes). Default `["US"]`. |
| `sortBy` | `relevance`, `priceAsc`, `priceDesc`, `mostRecent`, or `popularity`. |
| `includeSoldItems` | Also scrape sold listings. Default `false`. |
| `minPrice` / `maxPrice` | Price bounds in the market currency. |
| `filters` | Advanced catalog facet filters (e.g. category, universe). |
| `maxResults` | Maximum items per market, per query. Default `5`. |

### Output

Each result includes: `listingId`, `title`, `description`, `brand`, `brandId`, `universeId`, `colors`, `color`, `size`, `price`, `currency`, `originalPrice`, `discountPercent`, `dutyFree`, `likes`, `isSold`, `inStock`, `isVintage`, `weLove`, `isHot`, `dealEligible`, `exceptionalPiece`, `directShippingEligible`, `localEligible`, `sellerId`, `sellerCountry`, `sellerIsOfficialStore`, `sellerBadge`, `imageUrl`, `images`, `url`, `createdAt`, `market`, `recordType`, `query`, `scrapedAt`.

### Notes

- Multi-market runs take longer than single-market runs, since each market is scraped through a separate localised browser session. Allow extra run time and memory when scraping many markets at once.
- The `currency` field always reflects the currency Vestiaire actually returns for that market.

### Privacy

This scraper does not collect personal data. It returns no individual seller names, contact details, or profile photos — only brand-level and shop-level signals (official-store status, seller country, badge).

### Pricing

Pay per result, with volume discounts. You pay only for the listings returned.

### Related scrapers

Other scrapers in our **Fashion & Sneaker Resale** collection:

- [StockX Scraper](https://apify.com/unfenced-group/stockx-scraper)
- [Grailed Scraper](https://apify.com/unfenced-group/grailed-scraper)
- [Vinted Demand & Sell-Through Scraper](https://apify.com/unfenced-group/vinted-arbitrage-scanner)
- [Zalando Scraper](https://apify.com/unfenced-group/zalando-scraper)

# Actor input Schema

## `searchQueries` (type: `array`):

Free-text searches (brand, model, or keywords), e.g. ["Chanel flap bag", "Louis Vuitton Neverfull"]. Leave empty to browse by catalog filters only.
## `countries` (type: `array`):

ISO country codes. 35 markets supported: 18 return prices in local currency (US USD, CA CAD, GB GBP, EUR zone FR/DE/ES/IT/NL/BE/IE/FI/MC, CH CHF, DK DKK, SE SEK, AU AUD, JP JPY, SG SGD), and 17 more are served by Vestiaire in USD (e.g. AE, SA, MX, IN, AT, PT, GR, CZ). Default ["US"].
## `filters` (type: `object`):

Vestiaire catalog facet filters applied to every search, keyed by facet id. Example: {"categoryLvl0.id":["5"],"universe.id":["1"]} for Women > Bags. IDs come from the site's category facets.
## `sortBy` (type: `string`):

Result ordering.
## `includeSoldItems` (type: `boolean`):

Also scrape public sold listings for the same queries (useful for sell-through and price-history analysis).
## `minPrice` (type: `integer`):

Only return listings at or above this price (in the market currency).
## `maxPrice` (type: `integer`):

Only return listings at or below this price (in the market currency).
## `maxResults` (type: `integer`):

Maximum number of unique items to scrape per market, per query. With multiple countries, each gets up to this many results.

## Actor input object example

```json
{
  "searchQueries": [
    "Chanel flap bag"
  ],
  "countries": [
    "US"
  ],
  "filters": {},
  "sortBy": "relevance",
  "includeSoldItems": false,
  "maxResults": 5
}
````

# Actor output Schema

## `results` (type: `string`):

No description

# 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 = {
    "searchQueries": [
        "Chanel flap bag"
    ],
    "countries": [
        "US"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("unfenced-group/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 = {
    "searchQueries": ["Chanel flap bag"],
    "countries": ["US"],
}

# Run the Actor and wait for it to finish
run = client.actor("unfenced-group/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 '{
  "searchQueries": [
    "Chanel flap bag"
  ],
  "countries": [
    "US"
  ]
}' |
apify call unfenced-group/vestiaire-collective-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=unfenced-group/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 luxury resale listings across 35 markets. 36 fields: price, brand, size, condition signals, likes, sold status, seller country, images, direct URLs. The richest Vestiaire dataset on Apify, with correct local currency for 18 markets.",
        "version": "0.0",
        "x-build-id": "fHQcK8fHq9B5EHWbc"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/unfenced-group~vestiaire-collective-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-unfenced-group-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/unfenced-group~vestiaire-collective-scraper/runs": {
            "post": {
                "operationId": "runs-sync-unfenced-group-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/unfenced-group~vestiaire-collective-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-unfenced-group-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",
                "properties": {
                    "searchQueries": {
                        "title": "Search queries",
                        "type": "array",
                        "description": "Free-text searches (brand, model, or keywords), e.g. [\"Chanel flap bag\", \"Louis Vuitton Neverfull\"]. Leave empty to browse by catalog filters only.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "countries": {
                        "title": "Markets",
                        "type": "array",
                        "description": "ISO country codes. 35 markets supported: 18 return prices in local currency (US USD, CA CAD, GB GBP, EUR zone FR/DE/ES/IT/NL/BE/IE/FI/MC, CH CHF, DK DKK, SE SEK, AU AUD, JP JPY, SG SGD), and 17 more are served by Vestiaire in USD (e.g. AE, SA, MX, IN, AT, PT, GR, CZ). Default [\"US\"].",
                        "default": [
                            "US"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "filters": {
                        "title": "Catalog filters (advanced)",
                        "type": "object",
                        "description": "Vestiaire catalog facet filters applied to every search, keyed by facet id. Example: {\"categoryLvl0.id\":[\"5\"],\"universe.id\":[\"1\"]} for Women > Bags. IDs come from the site's category facets.",
                        "default": {}
                    },
                    "sortBy": {
                        "title": "Sort by",
                        "enum": [
                            "relevance",
                            "priceAsc",
                            "priceDesc",
                            "mostRecent",
                            "popularity"
                        ],
                        "type": "string",
                        "description": "Result ordering.",
                        "default": "relevance"
                    },
                    "includeSoldItems": {
                        "title": "Include sold items",
                        "type": "boolean",
                        "description": "Also scrape public sold listings for the same queries (useful for sell-through and price-history analysis).",
                        "default": false
                    },
                    "minPrice": {
                        "title": "Min price",
                        "type": "integer",
                        "description": "Only return listings at or above this price (in the market currency)."
                    },
                    "maxPrice": {
                        "title": "Max price",
                        "type": "integer",
                        "description": "Only return listings at or below this price (in the market currency)."
                    },
                    "maxResults": {
                        "title": "Max results",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum number of unique items to scrape per market, per query. With multiple countries, each gets up to this many results.",
                        "default": 5
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
