Vinted Scraper - Second-Hand Fashion Listings & Prices avatar

Vinted Scraper - Second-Hand Fashion Listings & Prices

Pricing

from $0.62 / 1,000 listing searches

Go to Apify Store
Vinted Scraper - Second-Hand Fashion Listings & Prices

Vinted Scraper - Second-Hand Fashion Listings & Prices

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.

Pricing

from $0.62 / 1,000 listing searches

Rating

0.0

(0)

Developer

SIÁN OÜ

SIÁN OÜ

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Vinted Scraper — Listings, Prices & Sellers as JSON 👕

SIÁN Agency Store Etsy Product Scraper eBay Data Scraper Marktplaats Scraper

🎉 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 for general classified ads in the Netherlands and Belgium, where this one covers the Vinted marketplace across eight countries. Use eBay Data Scraper for auction and fixed-price listings including sold prices, which Vinted does not expose. Use Etsy Product Scraper 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? 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, so an agent can discover it, run it and settle the bill over x402 (USDC on Base) or Skyfire — 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:

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.

📋 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:

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

FieldTypeRequiredDescription
operationselectNosearch, sellerItems or itemDetail (default: search)
siteselectNoCountry site to read: vinted.fr, .de, .es, .it, .nl, .pl, .co.uk or .lt (default: vinted.fr)
querystringNoSearch keyword (Listing Search)
searchUrlsarrayNoPaste search URLs instead of filling the form — every site filter carries over
sortselectNorelevance or newest_first (default: relevance)
minPriceintegerNoCheapest price to include, in the site's currency (0 = no bound)
maxPriceintegerNoMost expensive price to include (0 = no bound)
itemUrlsarrayNoListing URLs or IDs (Listing Detail)
sellersarrayNoMember URLs or IDs (Seller Listings)
maxResultsintegerNoHow many listings to return, up to 960 per search (default: 96)

Example — keyword search:

{
"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:

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

Example — one seller's closet:

{
"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:

FieldTypeDescription
itemNamestringListing title as the seller wrote it
pricenumberAsking price
currencystringSite currency: EUR, GBP or PLN
brandstringBrand the seller tagged
sizestringSize label
conditionstringCondition the seller claims, in the site's language
photoUrlstringMain photo
photoUrlsarrayComplete photo gallery
sellerNamestringSeller's handle
favouriteCountnumberHow many members favourited the listing
totalPricenumberTotal a buyer pays, fees included
itemUrlstringListing URL on the site
itemIdintegerListing ID
itemDescriptionstringSeller's full description (Listing Detail)
categorystringCatalogue category (Listing Detail)
colorstringColour (Listing Detail)
searchTotalCountnumberTotal listings matching the search
searchPagenumberWhich page of the search this row came from

Example row:

{
"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

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

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

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
  • 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


❓ 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

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.

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


🤝 Support

Telegram Support

Join our active support community


Built by SIÁN Agency | More Tools