# Vinted Search Scraper (`fetch_cat/vinted-search-scraper`) Actor

Scrape Vinted marketplace search listings by keyword, price, brand, catalog, and country.

- **URL**: https://apify.com/fetch\_cat/vinted-search-scraper.md
- **Developed by:** [Hanna Nosova](https://apify.com/fetch_cat) (community)
- **Categories:** E-commerce, Automation, Developer tools
- **Stats:** 10 total users, 6 monthly users, 99.2% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.30 / 1,000 listing saveds

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 web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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

## Vinted Search Scraper

Export Vinted marketplace search listings by keyword, price range, brand IDs, catalog IDs, country domain, and sort order.

Use this actor when you need a repeatable CSV, JSON, Excel, or API export of Vinted listings for resale research, price monitoring, inventory discovery, marketplace analytics, or AI-agent workflows.

### At a glance

- **Input:** Search text, marketplace domain, price filters, brand IDs, catalog IDs, sort order, page, and result limit.
- **Output:** Listing IDs, titles, prices, currency, brand, size, status, listing URL, photos, seller fields, favorite/view counts, and scrape time.
- **Marketplace domains:** Use a supported public marketplace domain such as `www.vinted.fr`, `www.vinted.de`, `www.vinted.co.uk`, or `www.vinted.com`. The default is `www.vinted.fr`; `.com` can be sparse for some searches.
- **Best for:** Vinted listing exports, resale pricing research, saved-search monitoring, and marketplace automation.
- **No login required:** Uses public listing search data.

### Ready-to-run examples

Use these saved Store examples as starting points. Open any example to prefill the Actor input, then adjust URLs, keywords, limits, or filters for your own run.

- **[Follow Vinted Search Results as RSS](https://apify.com/fetch_cat/vinted-search-scraper/examples/vinted-search-rss-deal-feed)**
- **[Vinted Fashion Trend Dataset](https://apify.com/fetch_cat/vinted-search-scraper/examples/vinted-fashion-trend-dataset)**
- **[Vinted Baby Clothes Search](https://apify.com/fetch_cat/vinted-search-scraper/examples/vinted-baby-clothes-search)**
- **[Vinted Homeware Search](https://apify.com/fetch_cat/vinted-search-scraper/examples/vinted-homeware-search)**
- **[Vinted Brand Demand Monitor](https://apify.com/fetch_cat/vinted-search-scraper/examples/vinted-brand-demand-monitor)**
- **[Vinted Europe Market Comparison](https://apify.com/fetch_cat/vinted-search-scraper/examples/vinted-europe-market-comparison)**
- **[View all ready-to-run examples](https://apify.com/fetch_cat/vinted-search-scraper/examples)** (31 examples)

### Who is it for?

- **Resellers and vintage shops** checking comparable Vinted listing prices before buying or listing inventory.
- **Marketplace analysts** building repeatable Vinted search exports for demand, supply, or brand tracking.
- **Automation teams and AI agents** that need structured public Vinted listings through Apify datasets, schedules, webhooks, API, or MCP.

### What can it do?

- **Export Vinted search listings:** Save listing titles, URLs, prices, currency, brands, sizes, status, and photos.
- **Track marketplace prices:** Combine search text, price filters, and sort order for repeatable price snapshots.
- **Collect seller fields:** Add seller IDs, logins, and profile URLs when available.
- **Filter by catalog or brand:** Use Vinted IDs to narrow the search beyond text.
- **Use as a Vinted search API alternative:** Run from the Apify UI, API, schedules, webhooks, or the official Apify MCP server.

### Common workflows

- **Resale research:** Compare listing prices for a brand, size, or item type.
- **Inventory discovery:** Export public listings that match a niche or search term.
- **Price monitoring:** Schedule daily runs and compare prices, favorites, and listing counts.
- **Seller research:** Capture seller profile URLs for public seller context.
- **AI-agent analysis:** Let an agent collect listing rows before summarizing demand and price bands.

### Input example

```json
{
  "searchText": "nike sneakers",
  "maxItems": 50,
  "domain": "www.vinted.fr",
  "priceMin": 10,
  "priceMax": 80,
  "brandIds": [],
  "catalogIds": [],
  "order": "newest_first",
  "page": 1,
  "perPage": 96,
  "includeSeller": true
}
```

### Output example

```json
{
  "id": "123456789",
  "title": "Nike Air sneakers",
  "priceAmount": 42,
  "currency": "EUR",
  "brandTitle": "Nike",
  "sizeTitle": "42",
  "status": "Very good",
  "url": "https://www.vinted.com/items/123456789",
  "photoUrls": ["https://images1.vinted.net/..."],
  "sellerId": "987654",
  "sellerLogin": "example_seller",
  "sellerProfileUrl": "https://www.vinted.com/member/987654-example-seller",
  "favoriteCount": 12,
  "viewCount": 88,
  "scrapedAt": "2026-07-03T10:00:00.000Z",
  "searchText": "nike sneakers"
}
```

### Input configuration

| Setting | JSON key | What to enter |
| --- | --- | --- |
| Search text | `searchText` | Vinted keyword or phrase. |
| Maximum items | `maxItems` | Maximum listing rows to save. |
| Domain | `domain` | Vinted marketplace domain to search. |
| Minimum price | `priceMin` | Optional lower price bound. |
| Maximum price | `priceMax` | Optional upper price bound. |
| Brand IDs | `brandIds` | Optional Vinted brand IDs. |
| Catalog IDs | `catalogIds` | Optional Vinted category/catalog IDs. |
| Order | `order` | Sort order, such as newest first when supported. |
| Page and per-page | `page`, `perPage` | Pagination controls. |
| Include seller | `includeSeller` | Adds public seller fields when available. |
| Resume checkpoint | `resumeCheckpoint` | Optional checkpoint copied from `RUN_SUMMARY` after a partial run; use it only with the same search text and domain. |

### Output fields

| Field | Description |
| --- | --- |
| `id`, `title`, `url`, `path` | Listing identity and links. |
| `priceAmount`, `currency` | Listing price and currency. |
| `brandTitle`, `sizeTitle`, `status` | Listing attributes when Vinted exposes them. |
| `photoUrls` | Public listing photo URLs. |
| `sellerId`, `sellerLogin`, `sellerProfileUrl` | Public seller fields when `includeSeller` is enabled and available. |
| `favoriteCount`, `viewCount` | Public engagement counters when available. |
| `scrapedAt`, `searchText` | Scrape timestamp and original search text. |
| `RUN_SUMMARY` | Saved in the default key-value store with saved-row count, page count, warnings, and a portable continuation checkpoint after a partial run. |

### Pricing

This Actor uses Apify pay-per-event pricing. It charges a one-time `apify-actor-start` event when a run starts and an `apify-default-dataset-item` event for each Vinted listing saved to the dataset.

For current rates, open the live [Apify Pricing tab](https://apify.com/fetch_cat/vinted-search-scraper/pricing). The final price shown in Apify depends on your account plan and any custom agreement. Apify may also charge platform usage for compute, storage, proxies, or data transfer outside this Actor pricing.

### Tips for best results

- Use the Vinted domain for the country or marketplace you want.
- Keep the first run small when testing brand IDs or catalog IDs.
- Use price filters to reduce broad searches.
- Turn on `includeSeller` only when seller fields matter.
- Use the same query and filters for scheduled price monitoring.
- If a run is marked partial, copy its `RUN_SUMMARY.checkpoint` into `resumeCheckpoint` and keep the same search text and domain.

### Limits and caveats

- The actor extracts public search listing data. It does not log in, message sellers, or purchase items.
- Vinted domains, filters, and field availability vary by country.
- Brand and catalog IDs must be Vinted IDs, not plain names.
- Some counters or seller fields may be missing for individual listings.
- A zero-row successful run means the requested public search had no currently returned listings. Challenge pages and malformed catalog responses fail with an actionable error instead of being reported as empty results.
- The Actor does not ask for credentials, bypass access controls, or guarantee an exhaustive or stable rank order.

### API usage

#### Node.js

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

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/vinted-search-scraper').call({
  searchText: 'nike sneakers',
  domain: 'www.vinted.fr',
  maxItems: 50,
});
console.log(await client.dataset(run.defaultDatasetId).listItems());
```

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("fetch_cat/vinted-search-scraper").call(run_input={
    "searchText": "nike sneakers", "domain": "www.vinted.fr", "maxItems": 50
})
print(client.dataset(run["defaultDatasetId"]).list_items().items)
```

#### cURL

```bash
curl "https://api.apify.com/v2/acts/fetch_cat~vinted-search-scraper/runs?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "searchText": "nike sneakers",
    "domain": "www.vinted.fr",
    "maxItems": 50,
    "includeSeller": true
  }'
```

### MCP and AI agents

You can run this actor through the official Apify MCP server at `https://mcp.apify.com`.

For a focused single-actor tool, use:

```text
https://mcp.apify.com?tools=fetch_cat/vinted-search-scraper
```

For Claude Code or another MCP-compatible client, add the focused server:

```bash
claude mcp add --transport http apify-vinted-search "https://mcp.apify.com?tools=fetch_cat/vinted-search-scraper"
```

Equivalent JSON configuration:

```json
{
  "mcpServers": {
    "apify-vinted-search": {
      "url": "https://mcp.apify.com?tools=fetch_cat/vinted-search-scraper"
    }
  }
}
```

Example prompts: “Export up to 30 Nike sneaker listings from Vinted France” and “Compare the price range for this Vinted search on the UK and French marketplaces.”

Agent-friendly inputs are `searchText`, `maxItems`, `domain`, `priceMin`, `priceMax`, `brandIds`, `catalogIds`, `order`, `page`, `perPage`, and `includeSeller`.

### FAQ

**Does this require a Vinted login?**\
No. It exports public search listing data.

**Can I monitor a Vinted search every day?**\
Yes. Use Apify schedules with the same input.

**Can I export to CSV or Excel?**\
Yes. Download the Apify dataset as CSV, Excel, JSON, XML, RSS, or through the Dataset API.

**Why did my run return zero items?**\
The domain, search, brand ID, catalog ID, price range, or page may not have matching public listings.

### Related actors

- [Poshmark Sold Listings Scraper](https://apify.com/fetch_cat/poshmark-sold-listings-scraper)
- [AliExpress Products Scraper](https://apify.com/fetch_cat/aliexpress-products-scraper)
- [Shopify Products Scraper](https://apify.com/fetch_cat/shopify-products-scraper)
- [Walmart Products Scraper](https://apify.com/fetch_cat/walmart-products-scraper)
- [Google Shopping Results Scraper](https://apify.com/fetch_cat/google-shopping-results-scraper)

### Support

If a run fails, returns no data, or a field looks wrong, open an issue from the Actor page.

Please include the Apify run ID or run URL, input JSON, one example public URL, query, or input item, what you expected, and what the dataset returned. Small reproducible inputs make parsing or site-layout issues much faster to fix.

### Privacy and data handling

This Actor runs with Apify limited permissions and only processes data needed for the documented run. It uses search/listing inputs and public product, marketplace, or listing records to produce the output dataset and sends requests to public Vinted Search pages/endpoints; results are stored in Apify run storage for your account. FetchCat does not use your inputs or outputs for advertising, does not use them for model training, and does not retain them outside the Apify run except for transient support debugging when you explicitly share run details. You are responsible for using the Actor lawfully, respecting the target site's terms, and avoiding unnecessary personal or sensitive data in inputs.

# Actor input Schema

## `searchText` (type: `string`):

Keyword or phrase to search on Vinted, for example brand, product type, or style.

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

Maximum number of Vinted listings to save.

## `domain` (type: `string`):

Public Vinted marketplace domain to search. Use a country domain such as www.vinted.fr, www.vinted.de, www.vinted.co.uk, or www.vinted.com. The default uses www.vinted.fr because www.vinted.com may return sparse or empty public search results.

## `priceMin` (type: `number`):

Optional minimum item price in the selected marketplace currency.

## `priceMax` (type: `number`):

Optional maximum item price in the selected marketplace currency.

## `brandIds` (type: `array`):

Optional Vinted brand IDs to filter by.

## `catalogIds` (type: `array`):

Optional Vinted catalog category IDs to filter by.

## `order` (type: `string`):

How Vinted should order the listings.

## `page` (type: `integer`):

Vinted result page to start from.

## `perPage` (type: `integer`):

Number of listings requested per Vinted page. Keep at or below 96.

## `includeSeller` (type: `boolean`):

Include seller ID, login, and profile URL when available.

## `resumeCheckpoint` (type: `object`):

Optional checkpoint object from RUN\_SUMMARY after a time-limited partial run. Keep the same search text and domain when resuming.

## Actor input object example

```json
{
  "searchText": "nike sneakers",
  "maxItems": 20,
  "domain": "www.vinted.fr",
  "order": "relevance",
  "page": 1,
  "perPage": 96,
  "includeSeller": true
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

## `runSummary` (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 = {
    "searchText": "nike sneakers",
    "maxItems": 20,
    "domain": "www.vinted.fr"
};

// Run the Actor and wait for it to finish
const run = await client.actor("fetch_cat/vinted-search-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 = {
    "searchText": "nike sneakers",
    "maxItems": 20,
    "domain": "www.vinted.fr",
}

# Run the Actor and wait for it to finish
run = client.actor("fetch_cat/vinted-search-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 '{
  "searchText": "nike sneakers",
  "maxItems": 20,
  "domain": "www.vinted.fr"
}' |
apify call fetch_cat/vinted-search-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/F1GAwbqJ9xc9h7P87/builds/ywwt03UI5bRegdNyr/openapi.json
