# Vinted Scraper - US, UK & 24 European Sites (`soldgraph/vinted-scraper`) Actor

Vinted listings from vinted.com, vinted.co.uk and 24 European sites by keyword, with brand, size, condition, price and buyer protection fee. Full listing details too. Pay per result.

- **URL**: https://apify.com/soldgraph/vinted-scraper.md
- **Developed by:** [Soldgraph](https://apify.com/soldgraph) (community)
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 listings

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Vinted Scraper - US, UK & 24 European Sites

Search **Vinted** by keyword on vinted.com, vinted.co.uk and 24 European sites. Every row has the price, the buyer protection fee and total, brand, size, condition, likes, a link and a photo, in the site's currency. **Details mode** adds the description, colour, category, all photos and the seller's rating.

### Sites

United States, United Kingdom, France, Germany, Italy, Spain, Netherlands, Belgium, Portugal, Austria, Luxembourg, Ireland, Poland, Sweden, Czechia, Denmark, Finland, Lithuania, Hungary, Romania, Slovakia, Croatia, Greece, Slovenia, Latvia and Estonia.

### What you can do with it

- **Price clothing** before you list it, from what similar items ask
- **Compare prices** across countries and currencies
- **Track a brand** with the brand ID filter
- **Find underpriced items** sorted by price

### How to use it

1. Add keywords and pick one or more country sites.
2. Optional: sort, condition, price range, brand ID, category ID, pages (up to 10, 96 listings each).
3. Run it and export as JSON, CSV or Excel.

For full details, choose **Full details for listing URLs or IDs**, paste item URLs or IDs, and pick the site you searched.

### Input example

```json
{ "queries": ["levis 501"], "countries": ["us", "uk"], "sort": "newest", "maxPages": 2 }
```

### Output example

```json
{
  "query": "levis 501",
  "country": "us",
  "title": "Levi's 501 skinny",
  "price": 14,
  "currency": "USD",
  "total_price_amount": 15.4,
  "brand": "Levi's",
  "size": "XS / US 2",
  "condition": "very_good",
  "promoted": false,
  "link": "https://www.vinted.com/items/..."
}
```

### Pricing

- **Search results: $2.00 per 1,000 listings**
- **Listing details: $8.00 per 1,000 listings**

### FAQ

**Can I get sold prices?** No. Vinted does not show sold items in search.

**Do European sites show different listings?** Many share one catalogue, so searching several mostly changes the currency and links. See [which sites share listings](https://soldgraph.com/docs/api/vinted-listings).

**What does `promoted` mean?** The row is a paid placement. Best-match results mix them in.

# Actor input Schema

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

Search returns listings with price, buyer protection fee, brand, size and photo. Details adds the description, colour, category, all photos and the seller's rating.

## `queries` (type: `array`):

One search per line.

## `countries` (type: `array`):

Every keyword is searched on every site you pick, in that site's currency. Many European sites share listings, so picking several mostly changes the currency and links.

## `maxPages` (type: `integer`):

Each page has up to 96 listings. Vinted stops at 10 pages (960 listings). You pay per listing returned.

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

Best match mixes in paid placements; each row says so in the promoted field.

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

Optional. Only listings in this condition.

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

Optional, in the site's currency.

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

Optional, in the site's currency.

## `brandId` (type: `integer`):

Optional Vinted brand ID, for example 53 for Nike or 10 for Levi's. Details mode returns brand_id for any listing.

## `categoryId` (type: `integer`):

Optional Vinted category ID, for example 1242 for men's trainers. Details mode returns category.id for any listing.

## `listings` (type: `array`):

For details mode: item URLs from any Vinted site, or listing IDs, one per line.

## `detailsCountry` (type: `string`):

The Vinted site that serves each listing page, also for full URLs. Use the country you searched.

## Actor input object example

```json
{
  "mode": "search",
  "queries": [
    "levis 501"
  ],
  "countries": [
    "us"
  ],
  "maxPages": 1,
  "detailsCountry": "us"
}
```

# 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 = {
    "queries": [
        "levis 501"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("soldgraph/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 = { "queries": ["levis 501"] }

# Run the Actor and wait for it to finish
run = client.actor("soldgraph/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 '{
  "queries": [
    "levis 501"
  ]
}' |
apify call soldgraph/vinted-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,soldgraph/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/8QMIxAdlO38dV5xaC/builds/MIdBVBdAtLldUQqMf/openapi.json
