# Vinted · Listings by Search (`corent1robert/vinted-listings-pro-sellers`) Actor

Export Vinted listings: titles, prices, photos, brands, seller IDs. One row per listing, CSV-ready. Optional Pro legal details. For new Pro emails by market, use Vinted Pro · Email & Phone. No login.

- **URL**: https://apify.com/corent1robert/vinted-listings-pro-sellers.md
- **Developed by:** [Corentin Robert](https://apify.com/corent1robert) (community)
- **Categories:** E-commerce, Marketing, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 listing exporteds

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?

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 · Listings by Search

Export Vinted listings from a search or a catalog / seller / item URL. Get titles, prices, photos, brands and seller IDs. One row per listing, ready for CSV.

**No login. No Vinted account.**

### Same Vinted suite — pick the job

| Actor | Use when |
|-------|----------|
| **This Actor — Listings by Search** | Titles, prices, photos |
| [Vinted Pro · Email & Phone by Market](https://apify.com/corent1robert/vinted-pro-siret-company) | New Pro emails (and optional company file) |

Pro legal details (public email, phone, company name) are an **optional extra** on this Actor. If that file *is* the job — use **[Vinted Pro · Email & Phone by Market](https://apify.com/corent1robert/vinted-pro-siret-company)**.

### Who is this for?

| You are… | Typical goal | Suggested setup |
|----------|--------------|-----------------|
| Reseller / sourcing | Price a model on FR (or another market) | Search + listing cap 25 |
| Agency / marketplace ops | Snapshot a seller closet | Paste `/member/…` URL |
| Analyst / pricing | Listing table, no contacts | Search, Pro details OFF |
| Catalog / data team | Item URLs you already collected | Paste `/items/…` links |

**What you get by default:** listing title, price, currency, brand, size, condition, photos, favourite/view counts, seller id and login, `isPro`. Particular (C2C) emails are **not** exported.

**When to enable Pro details:** you already have listings in this run and want the legal notice attached on Pro shops. Company name and SIRET usually fill; **clear email ~40%**, **clear phone ~25%** on a 20-Pro FR sample (Aug 2026) — Vinted masks the rest. For a Pro-only spreadsheet, use the dedicated Actor.

### Quick start

1. Open this Actor in [Apify Console](https://console.apify.com).
2. Type a search (e.g. `nike`) or paste a Vinted catalog / seller / item URL.
3. Leave **Include Pro legal details** off for a first sample.
4. Click **Start**. Download the dataset as CSV or JSON.

Free plan: **20 listings per run**. Paid plans follow the listing cap and pay-per-event pricing.

### Ready-made examples (published tasks)

| Example | Best for |
|---------|----------|
| [Export Vinted listings from a search](https://apify.com/corent1robert/vinted-listings-pro-sellers/examples/export-vinted-listings-by-search) | First Nike FR sample |
| [Export a Vinted seller closet](https://apify.com/corent1robert/vinted-listings-pro-sellers/examples/export-vinted-seller-closet) | All public listings of one seller |
| [Export Vinted listings from item URLs](https://apify.com/corent1robert/vinted-listings-pro-sellers/examples/export-vinted-listings-from-item-urls) | URLs you already have |
| [Attach Pro legal details to a search](https://apify.com/corent1robert/vinted-listings-pro-sellers/examples/export-vinted-pro-seller-details) | Optional extra on the same listing table |

### What it extracts

| Field | Default | Optional Pro extra |
|-------|---------|--------------------|
| Title, URL, price, currency | yes | yes |
| Brand, size, condition | yes | yes |
| Photos | yes | yes |
| Favourites / views | yes | yes |
| Seller id, login, profile URL, `isPro` | yes | yes |
| Company name, legal number | — | when Vinted shows them |
| Email / phone | — | as shown; `emailPublic` / `phonePublic` if not masked |

### Input

| Field | Console | Description |
|-------|---------|-------------|
| `searchText` | yes | Keywords a shopper would type |
| `startUrls` | yes | Catalog, `/member/{id}`, `/items/{id}` |
| `market` | yes | Country site for a search (default France) |
| `maxItems` | yes | Cap. **0** = no cap. Free plan: 20 / run |
| `includeProDetails` | yes | Optional extra (not the main product) |
| `brandName` / `brandIds` / `catalogIds` | API | Optional filters |
| `concurrency` / `verboseLogs` | API | Defaults are fine |

```json
{
    "searchText": "nike",
    "market": "FR",
    "maxItems": 25,
    "includeProDetails": false
}
```

### Output example

```json
{
    "listingId": "1234567890",
    "listingTitle": "Nike Air Force 1",
    "listingUrl": "https://www.vinted.fr/items/1234567890",
    "priceAmount": 45,
    "currency": "EUR",
    "brandName": "Nike",
    "sizeLabel": "42",
    "conditionLabel": "Very good",
    "imageUrl": "https://images.vinted.net/thumbs/example.jpg",
    "sellerId": "1234567890",
    "sellerLogin": "example_shop",
    "isPro": false,
    "market": "FR",
    "scrapedAt": "2026-08-24T12:00:00.000Z"
}
```

### How much does it cost to scrape Vinted?

Pay-per-event. No Actor-start fee.

| Scenario | Approx. cost |
|----------|-------------|
| 25 listings | ~$0.05 |
| 1,000 listings | ~$2.00 |
| 1,000 listings + 50 unique Pro extras | ~$2.00 + ~$0.40 |

HTTP-only (no browser). Cloud runs may use Apify Proxy when the country site does not answer from the datacenter — residential traffic is billed by Apify on top of PPE if that route is needed.

### Is scraping Vinted free?

You can try the Actor on the Apify **Free** plan (**20 listings per run**). Beyond that you pay per exported listing (`listing-row`, $0.002). The optional Pro extra is `$0.008` per unique Pro seller actually enriched.

### Is it legal to scrape Vinted?

This Actor only reads pages and public JSON Vinted already shows without a login. It does **not** open C2C inboxes or guess emails. You remain responsible for GDPR and for how you use personal data.

### FAQ

**Do I need a Vinted account?** No.

**I only want Pro shops with email and phone.** Use **[Vinted Pro · Email & Phone by Market](https://apify.com/corent1robert/vinted-pro-siret-company)** — set how many new contacts, require a public email.

**Does it scrape particular sellers' emails?** No. `user.email` is ignored on C2C accounts.

**Can I monitor prices over time?** Not in this version. Each run is a fresh snapshot.

**Which countries?** France by default, plus DE, ES, IT, NL, BE, AT, PT, GB, CZ, PL, LT, LU, HU, SK, RO.

### Also available

**[Vinted Pro · Email & Phone by Market](https://apify.com/corent1robert/vinted-pro-siret-company)** — New Pro emails on a market. You pick the count and required fields. Optional INSEE (France) / Companies House (UK) file.

**[PrestaShop · Catalog Copy by Store URL](https://apify.com/corent1robert/prestashop-catalog-copy)** — Export or copy a public PrestaShop catalog. No source admin login.

### Local development

```bash
npm install
npm test
apify run
```

`input.json` at the project root is merged when you run locally. Do not commit secrets.

### Support

Questions or a custom export: <corentin@outreacher.fr>.

# Actor input Schema

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

What a shopper would type on Vinted (brand, model, keywords). Combine with a market below. Leave empty if you only paste URLs.

## `startUrls` (type: `array`):

Catalog search, seller closet (`/member/…`), or item pages (`/items/…`). The market is taken from each URL.

## `market` (type: `string`):

Used when you type a search with no URL. URLs keep their own country site.

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

Stop after this many listings. **0** = no cap (the run still stops at the time limit). Default 25 is a safe first try. Free plan: 20 / run.

## `includeProDetails` (type: `boolean`):

Optional. Public email, phone and company name if Vinted already displays them. C2C accounts are skipped. Billed once per unique Pro seller. Vinted often masks contacts.

## `brandName` (type: `string`):

Optional brand filter (e.g. Nike). Matched on the selected market.

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

Optional Vinted brand ids when you already know them.

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

Optional Vinted catalog / category ids.

## `concurrency` (type: `integer`):

How many Pro seller profiles to open at once. Leave the default unless you know you need to slow down.

## `verboseLogs` (type: `boolean`):

Print extra debug lines in the run log.

## Actor input object example

```json
{
  "searchText": "nike",
  "market": "FR",
  "maxItems": 25,
  "includeProDetails": false,
  "concurrency": 8,
  "verboseLogs": false
}
```

# Actor output Schema

## `dataset` (type: `string`):

Full export — one listing per row.

## `listingsOverview` (type: `string`):

Title, price, brand, photo and seller.

## `proSellers` (type: `string`):

Company name, legal number and public contacts when Pro details are on.

## `runLog` (type: `string`):

Text log mirrored from the run console.

# 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",
    "market": "FR",
    "maxItems": 25
};

// Run the Actor and wait for it to finish
const run = await client.actor("corent1robert/vinted-listings-pro-sellers").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",
    "market": "FR",
    "maxItems": 25,
}

# Run the Actor and wait for it to finish
run = client.actor("corent1robert/vinted-listings-pro-sellers").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 '{
  "searchText": "nike",
  "market": "FR",
  "maxItems": 25
}' |
apify call corent1robert/vinted-listings-pro-sellers --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,corent1robert/vinted-listings-pro-sellers"
        }
    }
}

```

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/j4qNoCPLA4rUzW8qL/builds/HecQjiVhfulVkDYP4/openapi.json
