Vinted Scraper: Paste a URL, Search, Closets & Items avatar

Vinted Scraper: Paste a URL, Search, Closets & Items

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Vinted Scraper: Paste a URL, Search, Closets & Items

Vinted Scraper: Paste a URL, Search, Closets & Items

Paste any Vinted search, category, seller or item link and get structured data back. Or search by keyword with brand, size, colour, condition and price filters. Seller closets, item detail and brand lookup too, across all 26 EU and US markets. JSON or CSV. $1 per 1,000 results.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

Sourabh Kumar

Sourabh Kumar

Maintained by Community

Actor stats

0

Bookmarked

14

Total users

3

Monthly active users

6 days ago

Last modified

Share

Vinted scraper: search, seller closets, item detail & brand lookup

Paste a Vinted link and run it. Build the search you want in Vinted's own filters, copy the address bar, and the actor works out the rest: search pages, category pages, seller closets and item pages all just work. No login, no proxy setup, no browser.

$1 per 1,000 results, plus $0.002 per run. No monthly minimum.

Works on all 26 markets: ๐Ÿ‡ฌ๐Ÿ‡ง ๐Ÿ‡ซ๐Ÿ‡ท ๐Ÿ‡ฉ๐Ÿ‡ช ๐Ÿ‡ฎ๐Ÿ‡น ๐Ÿ‡ช๐Ÿ‡ธ ๐Ÿ‡ณ๐Ÿ‡ฑ ๐Ÿ‡ต๐Ÿ‡ฑ ๐Ÿ‡ต๐Ÿ‡น ๐Ÿ‡ง๐Ÿ‡ช ๐Ÿ‡ฆ๐Ÿ‡น ๐Ÿ‡ฑ๐Ÿ‡น ๐Ÿ‡จ๐Ÿ‡ฟ ๐Ÿ‡ธ๐Ÿ‡ฐ ๐Ÿ‡ญ๐Ÿ‡บ ๐Ÿ‡ท๐Ÿ‡ด ๐Ÿ‡ญ๐Ÿ‡ท ๐Ÿ‡ซ๐Ÿ‡ฎ ๐Ÿ‡ฉ๐Ÿ‡ฐ ๐Ÿ‡ธ๐Ÿ‡ช ๐Ÿ‡ช๐Ÿ‡ช ๐Ÿ‡ฌ๐Ÿ‡ท ๐Ÿ‡ฎ๐Ÿ‡ช ๐Ÿ‡ฑ๐Ÿ‡บ ๐Ÿ‡ฑ๐Ÿ‡ป ๐Ÿ‡ธ๐Ÿ‡ฎ ๐Ÿ‡บ๐Ÿ‡ธ

Why this scraper?

  • ๐Ÿ”— Paste any Vinted URL. Search, category, seller or item links all work, and the filters already in the link are used as they are. No mode to pick, no numeric category id to hunt down.
  • ๐Ÿ’ท The full price picture on every row. Asking price, Vinted's buyer-protection fee, and the total the buyer actually pays, split into three fields instead of one number you have to reverse-engineer.
  • ๐Ÿท๏ธ Type a brand name, not an ID. Enter "yeezy" and the actor resolves it to the canonical brand for you. No digging brand_ids[]= numbers out of URLs.
  • ๐Ÿ“ Size and colour filters that actually filter. Type M or Black and the actor maps it to Vinted's own size and colour codes for that market, across every size group.
  • ๐ŸŒ All 26 markets, one input change. Swap the country code; every mode behaves identically, in the local currency.
  • ๐Ÿšฆ Tells you when a run is incomplete. If a page fails or Vinted's 960-per-query ceiling truncates your search, the run says so in its status instead of handing you a short dataset that looks complete.
  • ๐Ÿงพ Bad input never bills you. A blank field, a brand that doesn't exist, or a minimum price above your maximum ends the run with a plain-English explanation and zero charges.
  • ๐Ÿ” The same link is never billed twice. Paste a URL twice by accident and it is scraped once.
  • โšก HTTP-only, pages fetched in parallel. No browser, no Playwright. A 100-row search finishes in about 20 seconds; a full 960-row search in about two minutes.
  • ๐Ÿ“ฆ One record shape across all four modes. Every row carries a recordType discriminator, so a single pipeline consumes the lot.

What data can you extract?

๐Ÿท๏ธ Title & brand๐Ÿ’ท Price๐Ÿงพ Buyer-protection fee๐Ÿงฎ Total buyer pays
๐Ÿ“ Sizeโœจ Condition๐Ÿ“ Description๐Ÿ“ธ Photos
โค๏ธ Favourites๐Ÿš€ Promoted flag๐Ÿšฆ Reserved / closed๐Ÿ“ฆ Heavy-bulky flag
๐Ÿ‘ค Seller login + URL๐Ÿ†” Seller IDโญ Feedback count + score๐Ÿ… Seller badges
๐Ÿ’ผ Business-seller flag๐ŸŽจ Colour๐Ÿ”ข Brand ID๐Ÿ•’ Upload age
๐ŸŒ Market๐Ÿ’ฑ Currency๐Ÿ”— Item URL๐Ÿ“… Scraped timestamp

Colour, brand ID and upload age come from item-detail mode. Reserved and closed flags come from item-detail and seller-closet modes. Vinted does not publish them on search results, and this actor leaves them null there rather than guessing.

Scraping modes

You can skip modes entirely by pasting links into startUrls. Everything below is the long form, for when you would rather build the query field by field.

๐Ÿ”— Paste Vinted URLs

Mix search, category, seller and item links in one run. Each link is routed to the right mode, and each keeps its own market, so a vinted.fr link is scraped on the French site even if the rest are British.

{
"startUrls": [
"https://www.vinted.co.uk/catalog?search_text=nike&brand_ids[]=53&price_to=50",
"https://www.vinted.co.uk/catalog/1049-boots",
"https://www.vinted.fr/member/3151368835-jacie7",
"https://www.vinted.co.uk/items/9784633922-nike-air-shoes"
],
"maxResults": 200
}

maxResults caps the whole run, not each link, so give it enough room to cover every URL you paste. If it fills up first, the run says which links it did not reach.

๐Ÿ” Search by keyword

Search any market by keyword, then narrow with brand, category, size, colour, condition, price range and sort.

{
"mode": "search",
"country": "uk",
"searchText": "nike air max",
"brand": "nike",
"size": "M",
"color": "Black",
"condition": ["very_good", "new_with_tags"],
"priceFrom": 20,
"priceTo": 80,
"sortBy": "newest_first",
"maxResults": 200
}

๐Ÿ‘ค Seller closet

Every active item from one seller, by member URL. Set maxResults to 0 for the whole closet.

{
"mode": "user-listings",
"country": "uk",
"userUrl": "https://www.vinted.co.uk/member/3151368835-jacie7",
"maxResults": 0
}

๐Ÿ“ฆ Item detail

Paste item URLs to get the full record: description, colour, brand ID, seller feedback and badges, reserved and closed flags, and the fee maths.

{
"mode": "item-detail",
"country": "uk",
"itemUrls": [
"https://www.vinted.co.uk/items/9026871059-nike-air-max-moto-2k-black-fire-pink"
]
}

๐Ÿท๏ธ Brand lookup

Turn a brand name into Vinted's brand ID, with item count and whether Vinted runs authenticity checks on it. Useful before locking a brand into a scheduled search.

{
"mode": "brand-catalog",
"country": "uk",
"brandKeyword": "yeezy"
}

How to scrape Vinted: step by step

  1. Create a free Apify account. Takes 30 seconds, no card needed.
  2. Open Vinted Scraper in the Apify Console.
  3. Paste your Vinted links into Vinted URLs, or pick a mode and fill the matching field by hand.
  4. Click Start. A 100-row search takes about 20 seconds.
  5. Export as JSON, CSV, or Excel, or pull the results through the API.

How much does Vinted Scraper cost?

$1.00 per 1,000 results, plus $0.002 per run (charged once per gigabyte of memory allocated, so $0.002 at the default 512 MB). No monthly minimum, no subscription lock-in.

The Free plan's $5 monthly credit covers roughly 5,000 results. The $29/month Starter plan covers about 29,000 results a month. You pay for rows written to the dataset, so a filter that narrows your search also narrows your bill, and rows the actor could not fetch are never billed.

Input examples

Pasted URLs

{
"startUrls": [
"https://www.vinted.co.uk/catalog?search_text=nike&brand_ids[]=53&price_to=50",
"https://www.vinted.fr/member/3151368835-jacie7"
],
"maxResults": 200
}

Search mode

{
"mode": "search",
"country": "fr",
"searchText": "sac cuir",
"priceFrom": 20,
"priceTo": 100,
"sortBy": "price_low_to_high",
"maxResults": 200
}

Seller closet mode

{
"mode": "user-listings",
"country": "uk",
"userUrl": "https://www.vinted.co.uk/member/3151368835-jacie7",
"maxResults": 0
}

Item detail mode

{
"mode": "item-detail",
"country": "uk",
"itemUrls": [
"https://www.vinted.co.uk/items/9026871059-nike-air-max-moto-2k-black-fire-pink",
"https://www.vinted.co.uk/items/9784633922-nike-air-shoes"
]
}

Brand lookup mode

{
"mode": "brand-catalog",
"country": "uk",
"brandKeyword": "yeezy"
}

All input fields

FieldTypeDefaultNote
startUrlsURL[]nonePaste Vinted search, category, member or item links. Overrides mode and the filter fields
modeenumsearchsearch, user-listings, item-detail, brand-catalog. Ignored when startUrls is set
countryenumuk26 markets, e.g. uk, fr, de, it, es, nl, pl, us
searchTextstringnoneKeyword query (search mode)
brandstringnoneBrand name, resolved to Vinted's ID for you (search mode)
categoryintegernoneVinted category ID. Open the category on Vinted and take the number from the address bar: /catalog/1049-boots is 1049. Easier still, paste the whole link into startUrls
sizestringnoneSize label such as M, UK 9, EU 42 (search mode)
colorstringnoneColour name such as Black, Cream, Burgundy (search mode)
conditionarraynoneAny of new_with_tags, new_without_tags, very_good, good, satisfactory
priceFrom / priceTonumbernonePrice range in the market's local currency
sortByenumrelevancerelevance, price_low_to_high, price_high_to_low, newest_first
userUrlURLnoneMember URL (seller-closet mode)
itemUrlsURL[]noneItem URLs (item-detail mode)
brandKeywordstringnoneBrand name to look up (brand-lookup mode)
maxResultsinteger100Cap on dataset rows. 0 means the whole closet, or Vinted's 960 ceiling on a search
maxConcurrencyinteger6Parallel requests, 1 to 10

Output examples

Every row carries recordType, country and scrapedAt. All rows below are real, captured from live runs.

Search mode, one row per listing:

{
"recordType": "listing",
"id": 9794458921,
"title": "Women sneakers",
"url": "https://www.vinted.co.uk/items/9794458921-women-sneakers",
"price": 34.75,
"currency": "GBP",
"serviceFee": 2.44,
"totalBuyerPrice": 37.19,
"brand": "Nike Air",
"brandId": null,
"size": "6",
"condition": "New without tags",
"color": null,
"country": "uk",
"photos": [
"https://images1.vinted.net/t/05_00801_J4TmewD8JJe4SWxXwMyStCq9/f800/1787828100.jpeg"
],
"sellerId": 3175585968,
"sellerLogin": "shopofstyle24",
"sellerProfileUrl": "https://www.vinted.co.uk/member/3175585968-shopofstyle24",
"isBusinessSeller": false,
"favouriteCount": 2,
"promoted": false,
"isClosed": null,
"isReserved": null,
"scrapedAt": "2026-08-27T16:31:12.402Z"
}

Seller closet mode, same shape, with the availability flags Vinted publishes on a closet:

{
"recordType": "listing",
"id": 9140235233,
"title": "Cocktail dress",
"price": 32.76,
"currency": "GBP",
"brand": "Nasty Gal",
"size": "M / UK 12-14",
"condition": "Very good",
"isReserved": false,
"isClosed": false,
"isHidden": false,
"isHeavyBulky": false,
"favouriteCount": 3,
"country": "uk",
"scrapedAt": "2026-08-27T16:31:20.884Z"
}

Item detail mode, everything above plus description, colour, brand ID and seller reputation:

{
"recordType": "item_detail",
"id": 9784633922,
"title": "Nike Air Shoes",
"url": "https://www.vinted.co.uk/items/9784633922-nike-air-shoes",
"price": 5.35,
"currency": "GBP",
"serviceFee": 0.97,
"totalBuyerPrice": 6.32,
"brand": "Nike Air",
"brandId": 5977,
"size": "5.5",
"condition": "Satisfactory",
"color": "White",
"description": "Good condition, well worn. Size 7.5",
"uploadedRelative": "a day ago",
"sellerId": 3164964426,
"sellerLogin": "charlotteaksm",
"sellerFeedbackCount": 15,
"sellerFeedbackReputation": 1,
"sellerBadges": ["ACTIVE_LISTER", "SPEEDY_SHIPPING"],
"isReserved": false,
"isClosed": false,
"country": "uk",
"scrapedAt": "2026-08-27T16:19:03.118Z"
}

Item detail errors are pushed as their own row so you can see which URL failed and why. These are never billed:

{
"recordType": "item_detail_error",
"url": "https://www.vinted.co.uk/items/1-dead-item",
"reason": "Vinted returned HTTP 404 for this item. It was probably sold, delisted or removed.",
"country": "uk",
"scrapedAt": "2026-08-27T16:19:01.556Z"
}

Brand lookup mode:

{
"recordType": "brand",
"id": 115490,
"title": "Yeezy",
"slug": "yeezy",
"itemCount": 452681,
"favouriteCount": 84057,
"isLuxury": true,
"requiresAuthenticityCheck": true,
"country": "uk",
"scrapedAt": "2026-08-27T16:31:05.271Z"
}

Use cases

  • ๐Ÿ›๏ธ Cross-border resale arbitrage. Pull the same query on ๐Ÿ‡ซ๐Ÿ‡ท France and ๐Ÿ‡ฉ๐Ÿ‡ช Germany, sort by cheapest, and find the gap between markets.
  • ๐Ÿ’ต Repricing and margin models. Asking price and the buyer's all-in total are separate fields, so you can price against either side of the fee.
  • ๐Ÿ“Š Brand-level market research. Lock a brand, pull its active inventory across markets, and aggregate by size, condition or price band.
  • ๐Ÿ” Brand protection and counterfeit monitoring. Watch a brand's live listings and a flagged seller's whole closet on a schedule.
  • ๐Ÿ‘ค Competitor closet tracking. Paste a member URL and get every active item with price, size, condition and photos.
  • ๐Ÿ“ˆ Demand research. Track favouriteCount on a listing over repeated runs to see what is drawing attention before it sells.
  • ๐Ÿงต Sourcing feeds for resellers. Filter by size and condition, sort by newest, and run it on a schedule to catch fresh stock.
  • ๐Ÿค– AI shopping and resale agents. One flat row shape with a recordType discriminator drops straight into an agent loop.

Limitations

  • Sold listings are not available. Vinted removes items from search and from closets once they sell, and publishes no sold-price history to logged-out visitors. This actor returns active listings only.
  • 960 results per search query. Vinted caps any single search there, however many items exist. Narrow the query with a brand, category, size or price band and run it again. The run tells you when it hits this ceiling.
  • View counts are not published. Vinted returns zero for every item in its listing feeds, so no scraper can report real view counts from a search or a closet.
  • Colour, brand ID and upload age need item-detail mode. Vinted omits them from search results and closets.
  • A minimum price above the maximum is rejected. Vinted quietly ignores an impossible minimum and returns cheaper items anyway, so the actor stops the run instead of billing you for results you did not ask for.
  • A minimum price above the maximum is rejected. Vinted quietly ignores an impossible minimum and returns cheaper items anyway, so the actor stops the run instead of billing you for results you did not ask for.
  • Brand lookup returns the top 10 fuzzy matches per keyword, ranked by Vinted's own item counts.
  • Nothing behind a login. Messages, order history, drafts and seller statistics all require being the account owner, which this actor never is.

Frequently asked questions

How much does Vinted Scraper cost?

Vinted Scraper uses pay-per-result pricing. You pay $1.00 for 1,000 results, plus $0.002 per run. The Apify Free plan gives you $5 in usage credits a month, enough for around 5,000 results. If you run regularly, the $29/month Starter plan covers about 29,000 results.

No subscription lock-in. Pause whenever.

Do I need to log in or provide cookies?

No. The actor reads only what a logged-out visitor can see, and handles session setup on its own. There is nothing to configure.

Will I get blocked?

The actor manages bot protection and retries for you, including switching routes when Vinted refuses one. If a run genuinely cannot reach Vinted, it fails with a clear message and charges you nothing for the missing rows, rather than handing you an empty dataset that looks like a success.

What happens if an item URL is dead or a seller has no listings?

A dead item URL produces an item_detail_error row naming the URL and the reason, and it is not billed. A search or closet that genuinely matches nothing finishes successfully and tells you the filters returned no items.

How do I find a seller's member URL?

Open any listing on Vinted and click the seller's name. The address bar shows vinted.co.uk/member/<id>-<username>. Paste that whole URL into userUrl.

Which countries are supported?

All 26 Vinted markets: United Kingdom, France, Germany, Italy, Spain, Netherlands, Poland, Portugal, Belgium, Austria, Lithuania, Czech Republic, Slovakia, Hungary, Romania, Croatia, Finland, Denmark, Sweden, Estonia, Greece, Ireland, Luxembourg, Latvia, Slovenia and the United States. Prices come back in each market's local currency.

Scraping public data is generally allowed in the US and most of the EU, as long as you don't collect personal data covered by GDPR or CCPA without a lawful basis. This actor only touches publicly accessible pages, but how you use the output is on you.

Apify's full breakdown: Is web scraping legal?.

Does it support scheduled runs and integrations?

Yes. Schedule it hourly or daily in the Apify Console, and push results into Make, Zapier, Slack, Airbyte, GitHub, Google Sheets, Google Drive and more. Apify treats every actor as a webhook source.

Full list: Apify integrations.

Can I use Vinted Scraper with the Apify API?

Yes. Every run is available through the Apify REST API:

curl -X POST "https://api.apify.com/v2/acts/sourabhbgp~vinted-scraper/runs?token=APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"mode":"search","country":"uk","searchText":"nike air max","maxResults":50}'

Docs: Apify API reference.

Can I use Vinted Scraper through an MCP server or an AI assistant?

Yes. Apify ships an MCP server that exposes every actor as a tool, so Claude, Cursor and any other MCP-capable client can call this one. Setup: Apify MCP docs.

To hand it to an assistant directly, paste this:

Use sourabhbgp/vinted-scraper on Apify. Pick one mode per run and wait for it to finish, then read its dataset.
Never paste an API token into chat. Load APIFY_API_TOKEN from the environment.
from apify_client import ApifyClient
import os
client = ApifyClient(os.environ["APIFY_API_TOKEN"])
run = client.actor("sourabhbgp/vinted-scraper").call(run_input={
"mode": "search",
"country": "uk",
"searchText": "nike air max",
"maxResults": 100,
})
items = client.dataset(run["defaultDatasetId"]).list_items().items
Modes: search, user-listings, item-detail, brand-catalog.
Countries: uk, fr, de, it, es, nl, pl, pt, be, at, lt, cz, sk, hu, ro, hr, fi, dk, se, ee, gr, ie, lu, lv, si, us.
Search caps at 960 results per query; narrow with brand, size, colour or price to go deeper.

Your feedback

Bug, missing field, or odd behavior? Drop a note in the Issues tab. Reports go to a human and fixes usually ship the same week.