# Vinted Scraper - Second-Hand Fashion Listings & Prices (`sian.agency/vinted-scraper`) Actor

Scrape Vinted listings across 8 country sites: titles, prices in local currency, brands, sizes, condition, photos and sellers. Search by keyword or paste any Vinted search URL. Clean JSON, no code.

- **URL**: https://apify.com/sian.agency/vinted-scraper.md
- **Developed by:** [SIÁN OÜ](https://apify.com/sian.agency) (community)
- **Categories:** E-commerce, Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.62 / 1,000 listing searches

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/actors/running/actors-in-store.md#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 Scraper — Listings, Prices & Sellers as JSON 👕

[![SIÁN Agency Store](https://img.shields.io/badge/Store-SI%C3%81N%20Agency-1AE392)](https://apify.com/sian.agency?fpr=sian) [![Etsy Product Scraper](https://img.shields.io/badge/Store-Etsy%20Product%20Scraper-F1641E)](https://apify.com/sian.agency/etsy-product-scraper?fpr=sian) [![eBay Data Scraper](https://img.shields.io/badge/Store-eBay%20Data%20Scraper-E53238)](https://apify.com/sian.agency/ebay-data-scraper?fpr=sian) [![Marktplaats Scraper](https://img.shields.io/badge/Store-Marktplaats%20Scraper-1AE392)](https://apify.com/sian.agency/marktplaats-scraper?fpr=sian)

#### 🎉 96 listings per page from all 8 Vinted country sites — from one keyword, or any search URL you paste

##### Built for resale researchers, vintage sellers and price watchers who need clean rows, not screenshots

### 🔎 What is the Vinted Scraper — and when should you use it?

The **Vinted Scraper** turns second-hand fashion listings from all eight Vinted country sites into clean, structured rows you can filter, export and feed straight into a spreadsheet, database or AI agent. No account, no portal API key, no browser automation to maintain.

**Use it when you need:** listings from a keyword, a set of filters, or a search URL you paste from the site. Each row carries the title, the price in the site's own currency, the brand, the size, the condition the seller claims, the total with fees, every photo, the favourite count and the seller. The search's own totals ride along too, so you know how much supply is out there. Ask for the listing page and the row also gets the seller's full description, the category, the colour and whether it is still available. To pull one seller's whole closet, switch to seller listings. Fields are English; listing text stays in the site's language.

**Use something else when:** the listing is not on Vinted. Use [Marktplaats Scraper](https://apify.com/sian.agency/marktplaats-scraper?fpr=sian) for general classified ads in the Netherlands and Belgium, where this one covers the Vinted marketplace across eight countries. Use [eBay Data Scraper](https://apify.com/sian.agency/ebay-data-scraper?fpr=sian) for auction and fixed-price listings including sold prices, which Vinted does not expose. Use [Etsy Product Scraper](https://apify.com/sian.agency/etsy-product-scraper?fpr=sian) for the handmade and vintage marketplace, where sellers are shops rather than individuals. Posting dates are not returned because the marketplace removed them from every public surface. No scraper can honestly supply one. Sold prices are not available either: listings disappear when they sell and there is no public archive, so every price here is a live asking price. Private messages and buyer data are never included; only the public catalogue is read.

### 🤖 Use with AI agents

Already connected to the [Apify MCP server](https://mcp.apify.com)? Just ask for this Actor by name: sian.agency/vinted-scraper

**Your agent can pay for its own runs.** This Actor is eligible for [agentic payments](https://docs.apify.com/platform/actors/publishing/monetize), so an agent can discover it, run it and settle the bill over [x402](https://www.x402.org/) (USDC on Base) or [Skyfire](https://www.skyfire.xyz/) — without an Apify account or API token of its own. Billing is the same either way: per successful row, never for errors.

Otherwise copy this prompt into Claude, ChatGPT, Cursor or any MCP-enabled assistant:

```text
I want Vinted listings, prices and sellers using the Apify Actor `sian.agency/vinted-scraper`.

Use it when I need: listings from a keyword, a set of filters, or a search URL you paste from the site. Each row carries the title, the price in the site's own currency, the brand, the size, the condition the seller claims, the total with fees, every photo, the favourite count and the seller. The search's own totals ride along too, so you know how much supply is out there. Ask for the listing page and the row also gets the seller's full description, the category, the colour and whether it is still available. To pull one seller's whole closet, switch to seller listings. Fields are English; listing text stays in the site's language.

Don't use it when: the listing is not on Vinted — use marktplaats-scraper or ebay-data-scraper or etsy-product-scraper instead.

How to call it: give `query` a keyword, narrow with `minPrice`, `maxPrice` and a `sort`, and pick the country with `site`. The strongest route is pasting a URL you built on the site into `searchUrls` — every filter there (brand, size, colour, material, catalogue section) carries over. To read one seller's whole closet, set `operation` to `sellerItems` and pass member URLs or IDs in `sellers`. To open specific listings for the full description, category and colour, set `operation` to `itemDetail` and pass listing URLs or IDs in `itemUrls`. `maxResults` caps how many listings come back, up to the site's own ceiling of 960 per search.

Start with this input:
{
  "operation": "search",
  "site": "vinted.fr",
  "query": "levis 501",
  "sort": "newest_first",
  "maxPrice": 50,
  "maxResults": 96
}

Ask me what they are looking for and which of the eight country sites to read — prices come back in that site's currency, then run the Actor and summarise the results as a table.
```

**Things you can ask your agent for:**

- *Find every Levi's 501 under 50 euros on Vinted France, newest first, with brand, size, condition and seller for each.*
- *Compare average asking prices for Nike Air Max across the French, German and Italian Vinted sites and tell me where they are cheapest.*
- *Pull this seller's whole closet with prices and favourite counts, so I can see what moves before I make an offer.*

Machine-readable API, MCP config and OpenAPI definition for this Actor are published at [apify.com/sian.agency/vinted-scraper.md](https://apify.com/sian.agency/vinted-scraper.md).

### 📋 Overview

**Vinted is where Europe's second-hand fashion lives, and this actor turns its catalogue into structured rows**: title, price in local currency, brand, size, condition, photos, seller and favourite count — ready for a spreadsheet, a database or an AI agent. No Vinted account, no API key, nothing to maintain.

**Why resale professionals choose this actor:**

- ✅ **All 8 country sites in one actor**: France, Germany, Spain, Italy, Netherlands, Poland, United Kingdom and Lithuania, all verified working, with prices in each site's own currency (EUR, GBP, PLN)
- ⚡ **96 listings per page**: one run sweeps a whole search up to the site's own ceiling of 960, instead of page-by-page copying
- 🎯 **Every filter the site offers**: build your search on Vinted with brand, size, colour and material filters, paste the URL, and every filter carries over
- 💰 **Pay per row, never for errors**: roughly a third of the leading Vinted actors' price on paid plans, and nothing is charged for a row that fails
- 💎 **Three modes in one**: keyword search, a seller's whole closet, or a single listing's full description
- ✨ **NEW: search totals on every row**: matching count and page numbers straight from the search itself, so sizing a niche takes one run

***

### ✨ Features

- 🔍 **Keyword search**: find listings by keyword with price bounds and newest-first sorting
- 🌐 **Paste any search URL**: filters for brand, size, colour, material and catalogue section all carry over from the site
- 🏬 **Seller closet pull**: every live listing from any member, with the seller's name and profile on each row
- 📄 **Listing detail**: the seller's full description, category, colour and availability for specific listings
- 🌍 **8 country sites**: read France, Germany, Spain, Italy, Netherlands, Poland, the UK or Lithuania; English field names, native listing text
- 🖼️ **Every photo**: main photo plus the complete gallery on each row
- 💵 **True price data**: asking price, service fee and the total a buyer pays, in the site's currency
- 📊 **Search metadata**: total matching listings and page count stamped on every row
- 📦 **Bulk runs**: one run can sweep many searches, closets or listings, deduplicated and capped where you set it

***

### 🎬 Quick Start

Search Vinted France for "nike air max" with one API call:

```bash
curl -X POST 'https://api.apify.com/v2/acts/sian.agency~vinted-scraper/runs?token=YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"operation":"search","site":"vinted.fr","query":"nike air max","maxResults":96}'
```

***

### 🚀 Getting Started (3 Simple Steps)

#### Step 1: Pick what you want

Choose one operation: **Listing Search**, **Seller Listings** or **Listing Detail**.

#### Step 2: Give it a target

Type a keyword for a search, paste a Vinted search URL with all its filters, list member pages for closets, or list listing URLs for details.

#### Step 3: Run and export

Start the run and open the dataset. Export as JSON, CSV or Excel, straight from the Apify platform.

**That's it! In under a minute, you'll have:**

- Up to 96 listings per search page with title, price, brand, size and condition
- Photo galleries and seller attribution on every row
- A ready-to-filter table with the search's own totals

***

### 📥 Input Configuration

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `operation` | select | No | `search`, `sellerItems` or `itemDetail` (default: `search`) |
| `site` | select | No | Country site to read: vinted.fr, .de, .es, .it, .nl, .pl, .co.uk or .lt (default: vinted.fr) |
| `query` | string | No | Search keyword (Listing Search) |
| `searchUrls` | array | No | Paste search URLs instead of filling the form — every site filter carries over |
| `sort` | select | No | `relevance` or `newest_first` (default: `relevance`) |
| `minPrice` | integer | No | Cheapest price to include, in the site's currency (0 = no bound) |
| `maxPrice` | integer | No | Most expensive price to include (0 = no bound) |
| `itemUrls` | array | No | Listing URLs or IDs (Listing Detail) |
| `sellers` | array | No | Member URLs or IDs (Seller Listings) |
| `maxResults` | integer | No | How many listings to return, up to 960 per search (default: 96) |

**Example — keyword search:**

```json
{
  "operation": "search",
  "site": "vinted.fr",
  "query": "nike air max",
  "sort": "newest_first",
  "maxResults": 96
}
```

**Example: a pasted search URL with the site's own filters:**

```json
{
  "operation": "search",
  "searchUrls": [
    "https://www.vinted.de/catalog/2050-schuhe?brand_ids[]=53&size_from=40"
  ]
}
```

**Example — one seller's closet:**

```json
{
  "operation": "sellerItems",
  "sellers": ["https://www.vinted.fr/member/43183239-stephane775"]
}
```

***

### 📤 Output

Rows land in the Apify dataset with **31 fields**, exportable as JSON, CSV or Excel:

| Field | Type | Description |
|-------|------|-------------|
| `itemName` | string | Listing title as the seller wrote it |
| `price` | number | Asking price |
| `currency` | string | Site currency: EUR, GBP or PLN |
| `brand` | string | Brand the seller tagged |
| `size` | string | Size label |
| `condition` | string | Condition the seller claims, in the site's language |
| `photoUrl` | string | Main photo |
| `photoUrls` | array | Complete photo gallery |
| `sellerName` | string | Seller's handle |
| `favouriteCount` | number | How many members favourited the listing |
| `totalPrice` | number | Total a buyer pays, fees included |
| `itemUrl` | string | Listing URL on the site |
| `itemId` | integer | Listing ID |
| `itemDescription` | string | Seller's full description (Listing Detail) |
| `category` | string | Catalogue category (Listing Detail) |
| `color` | string | Colour (Listing Detail) |
| `searchTotalCount` | number | Total listings matching the search |
| `searchPage` | number | Which page of the search this row came from |

**Example row:**

```json
{
  "itemName": "Nike air max",
  "price": 70,
  "currency": "EUR",
  "brand": "Nike Air",
  "size": "46",
  "condition": "Très bon état",
  "photoUrl": "https://images1.vinted.net/t/02_02540_6ScTQMGzLVDFd1E2ugYWbn57/f800/1725164770.jpeg",
  "photoUrls": ["https://images1.vinted.net/t/02_02540_6ScTQMGzLVDFd1E2ugYWbn57/f800/1725164770.jpeg"],
  "sellerName": "familieluca",
  "sellerUrl": "https://www.vinted.fr/member/226176201-familieluca",
  "favouriteCount": 0,
  "serviceFee": 4.2,
  "totalPrice": 74.2,
  "itemUrl": "https://www.vinted.fr/items/9837923626-nike-air-max",
  "itemId": 9837923626,
  "searchQuery": "nike air max",
  "searchPage": 1,
  "searchTotalCount": 960,
  "searchTotalPages": 10,
  "site": "vinted.fr",
  "market": "France",
  "status": "success",
  "_operation": "search",
  "_fetchedAt": "2026-08-31T02:38:57.924Z"
}
```

***

### 💼 Use Cases & Examples

#### 1. Resale arbitrage across countries

**A reseller compares what the same model sells for on Vinted France, Germany and Italy before buying.**

**Input:** the same keyword on three `site` values
**Output:** prices in EUR for all three markets, with brand, size and condition to match like for like
**Use:** spot the country where an item is cheapest, buy there, list where it is dearer

#### 2. Vintage sourcing with the site's own filters

**A vintage buyer sweeps a narrow niche without touching a spreadsheet.**

**Input:** a search URL built on the site with brand, colour and material filters, pasted into `searchUrls`
**Output:** every matching listing with photos, sellers and favourite counts
**Use:** shortlist pieces worth an offer in one run

#### 3. Price monitoring for a niche

**A sneakers watcher tracks fresh listings week by week.**

**Input:** `sort: "newest_first"` on a saved search, on a schedule
**Output:** new listings with prices and totals, ready to diff against last week
**Use:** catch underpriced pairs the hour they go up

#### 4. Closet intelligence on a power seller

**A reseller studies what a top seller lists and how it performs.**

**Input:** the seller's member URL with `operation: "sellerItems"`
**Output:** their whole live closet with prices and favourite counts
**Use:** see what moves, at what price bands, before partnering or competing

#### 5. Market sizing for a category

**A researcher sizes the supply of a category before launching a shop.**

**Input:** one search per category node
**Output:** `searchTotalCount` on every row, the marketplace's own count of matching listings
**Use:** rank categories by supply and price bands in an afternoon

#### 6. Listing detail for appraisal

**A seller writing their own listing wants the full picture of comparable items.**

**Input:** listing URLs with `operation: "itemDetail"`
**Output:** full descriptions, categories, colours and availability
**Use:** write honest descriptions and price against real comparables

***

### 🔗 Integration Examples

#### JavaScript/Node.js

```javascript
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });

const run = await client.actor('sian.agency/vinted-scraper').call({
  operation: 'search',
  site: 'vinted.fr',
  query: 'nike air max',
  maxResults: 96,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0]);
```

#### Python

```python
from apify_client import ApifyClient
client = ApifyClient('YOUR_TOKEN')

run = client.actor('sian.agency/vinted-scraper').call(
    run_input={
        'operation': 'search',
        'site': 'vinted.fr',
        'query': 'nike air max',
        'maxResults': 96,
    }
)

for item in client.dataset(run['defaultDatasetId']).iterate_items():
    print(item)
```

#### cURL

```bash
curl -X POST 'https://api.apify.com/v2/acts/sian.agency~vinted-scraper/runs?token=YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"operation":"search","site":"vinted.fr","query":"nike air max"}'
```

#### Automation Workflows (N8N / Zapier / Make)

1. **Trigger**: a schedule (every morning) or a webhook
2. **HTTP Request**: call the actor API with your saved search
3. **Process**: read the JSON rows, diff against the previous run
4. **Action**: append to a sheet, post new arrivals to Slack or Telegram, or update your own database

***

### 📊 Performance & Pricing

#### FREE Tier (Try It Now)

- 25 listings per run, full feature access, same data
- No credit card and no Vinted account needed
- Perfect for testing your searches before committing

#### PAID Tier (Production Ready)

- Up to 960 listings per search, many searches per run
- Pay per successful row; failed rows are never charged
- Paid tiers cost roughly a third of the leading Vinted actors' per-row price

💰 **Best value among Vinted actors on paid plans**: same rows, same fields, a fraction of the price.

🔗 [View current pricing](https://apify.com/sian.agency/vinted-scraper?fpr=sian)

***

### ❓ Frequently Asked Questions

**Q: Which Vinted sites are supported?**
A: All eight verified country sites: France, Germany, Spain, Italy, Netherlands, Poland, United Kingdom and Lithuania. Prices come back in each site's currency.

**Q: Do I need a Vinted account?**
A: No. The actor reads the public catalogue without any account or login.

**Q: Can I filter by brand, size or colour?**
A: Yes. Set the filters on the Vinted site in your browser, copy the URL, and paste it into Search URLs. Every filter carries over.

**Q: How many listings can one run return?**
A: The site serves 96 per page and caps any single search at 960. Raise Max listings to pull more pages, or split a broad search into several narrower ones.

**Q: Why is there no posted-date column?**
A: The marketplace removed posting dates from every public listing surface, so no scraper can honestly return one. Every column you get is one the data actually carries.

**Q: What output formats are available?**
A: JSON, CSV and Excel, straight from the Apify dataset, plus the API for piping rows anywhere.

**Q: In what language is the output?**
A: Field names are English. Listing content (titles, condition labels, descriptions) stays in the site's own language, exactly as sellers wrote it.

**Q: Is this legal?**
A: The actor only reads listings the sellers chose to make public. See the legal section below.

***

### 🐛 Troubleshooting

**A search returns no rows**

- Check the keyword spelling: the site's own language finds more ('chaussure' beats 'shoe' on vinted.fr)
- Remove filters one at a time; a very narrow pasted URL can match nothing that is still live
- Listings expire the moment they sell, so a saved URL can empty out overnight

**Fewer rows than Max listings**

- The site caps any single search at 960 listings, and narrower searches can cap lower
- Split one broad search into several narrower ones to cover more ground

**A run fails with a session error**

- The marketplace rotates access for anonymous readers. Retry the run a few minutes later. The actor refreshes its session automatically, and a retry almost always clears it

**Rows look duplicated across pages**

- They are different listings with the same title from the same seller. Rows are deduplicated by listing ID within a run, never by appearance

***

### ⚖️ Is it legal to scrape data?

Our actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.

However, you should be aware that your results could contain personal data. Personal data is protected by the **GDPR** in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.

You can also read Apify's blog post on the [legality of web scraping](https://blog.apify.com/is-web-scraping-legal/).

Vinted is a trademark of Vinted UAB. This actor is not affiliated with, endorsed by, or sponsored by Vinted.

***

### 🤝 Support

[![Telegram Support](https://img.shields.io/badge/Telegram-Support%20Group-0088cc?logo=telegram)](https://t.me/+vyh1sRE08sAxMGRi)

**Join our active support community**

- For issues or questions, open an issue in the actor's repository
- Check [SIÁN Agency Store](https://apify.com/sian.agency?fpr=sian) for more automation tools
- 📧 <apify@sian-agency.online>

***

**Built by [SIÁN Agency](https://www.sian-agency.online)** | **[More Tools](https://apify.com/sian.agency?fpr=sian)**

# Actor input Schema

## `operation` (type: `string`):

🎯 **ONE OPERATION PER RUN.** 🔍 **Listing Search**: find listings by keyword and filters, or paste a search URL. 🏬 **Seller Listings**: pull everything in one seller's closet. 📄 **Listing Detail**: open specific listings for the full description, category, colour and availability.

## `site` (type: `string`):

🌍 **WHICH SITE TO READ.** Prices come back in that site's currency (EUR, GBP or PLN) and listing text stays in the site's language. A pasted URL from another site overrides this. 🇫🇷 France · 🇩🇪 Germany · 🇪🇸 Spain · 🇮🇹 Italy · 🇳🇱 Netherlands · 🇵🇱 Poland · 🇬🇧 United Kingdom · 🇱🇹 Lithuania

## `query` (type: `string`):

🔑 **WHAT TO SEARCH FOR** (Listing Search). Use the site's own language where it matters: 'chaussure' finds more on vinted.fr than 'shoe'.

## `searchUrls` (type: `array`):

🌐 **PASTE SEARCH URLS INSTEAD OF FILLING THE FORM.** Copy the URL from your browser while browsing Vinted: every filter you set there (brand, size, condition, colour, material…) is carried over. ✅ `https://www.vinted.fr/catalog?search_text=nike&order=newest_first` ✅ `https://www.vinted.de/catalog/2050-schuhe?brand_ids[]=53&size_from=40` 💡 Runs one search per URL.

## `sort` (type: `string`):

↕️ **WHICH LISTINGS COME FIRST.** 🎯 Relevance is the site's own ranking. 🕒 Newest first is what you want for monitoring fresh listings.

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

💵 **CHEAPEST PRICE TO INCLUDE**, in the site's own currency. 0 means no lower bound.

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

💰 **MOST EXPENSIVE PRICE TO INCLUDE**, in the site's own currency. 0 means no upper bound.

## `itemUrls` (type: `array`):

📄 **USED BY THE LISTING DETAIL OPERATION.** Which listings to open. ✅ `https://www.vinted.fr/items/9798124503-t-shirt-nike-air-femme` ✅ `9798124503` (bare listing ID) 💡 Gets the full description, category, colour and availability.

## `sellers` (type: `array`):

🏬 **USED BY THE SELLER LISTINGS OPERATION.** Whose closet to pull. ✅ `https://www.vinted.fr/member/43183239-stephane775` ✅ `43183239` (bare member ID) 💡 Runs one closet per seller.

## `maxResults` (type: `integer`):

🔢 **HOW MANY LISTINGS TO RETURN**, across everything the run touches. The site serves 96 per page and caps any single search at 960.

## Actor input object example

```json
{
  "operation": "search",
  "site": "vinted.fr",
  "query": "nike air max",
  "searchUrls": [],
  "sort": "relevance",
  "minPrice": 0,
  "maxPrice": 0,
  "itemUrls": [],
  "sellers": [],
  "maxResults": 96
}
```

# Actor output Schema

## `vintedListings` (type: `string`):

Every listing this run returned.

## `scrapingSummary` (type: `string`):

HTML summary showing successful and failed results with key metrics

# 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 = {
    "operation": "search",
    "site": "vinted.fr",
    "query": "nike air max",
    "searchUrls": [],
    "sort": "relevance",
    "minPrice": 0,
    "maxPrice": 0,
    "itemUrls": [],
    "sellers": [],
    "maxResults": 96
};

// Run the Actor and wait for it to finish
const run = await client.actor("sian.agency/vinted-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 = {
    "operation": "search",
    "site": "vinted.fr",
    "query": "nike air max",
    "searchUrls": [],
    "sort": "relevance",
    "minPrice": 0,
    "maxPrice": 0,
    "itemUrls": [],
    "sellers": [],
    "maxResults": 96,
}

# Run the Actor and wait for it to finish
run = client.actor("sian.agency/vinted-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "operation": "search",
  "site": "vinted.fr",
  "query": "nike air max",
  "searchUrls": [],
  "sort": "relevance",
  "minPrice": 0,
  "maxPrice": 0,
  "itemUrls": [],
  "sellers": [],
  "maxResults": 96
}' |
apify call sian.agency/vinted-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,sian.agency/vinted-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

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