Vinted Scraper - Listings, Prices & Brands in 25 Countries avatar

Vinted Scraper - Listings, Prices & Brands in 25 Countries

Pricing

from $0.70 / 1,000 listings

Go to Apify Store
Vinted Scraper - Listings, Prices & Brands in 25 Countries

Vinted Scraper - Listings, Prices & Brands in 25 Countries

Scrape Vinted listings by search text, category, brand, condition and price: price, brand, size, condition, favourites, photos and seller login. 25 country sites. Only-new mode for schedules. No login.

Pricing

from $0.70 / 1,000 listings

Rating

0.0

(0)

Developer

Cliqto Media

Cliqto Media

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Share

Vinted Scraper reads public Vinted search results on 25 country sites and gives you one clean row per listing: price, price with the buyer fee, brand, size, condition, favourites, photo, seller login and link. You choose a country, type search words and add filters for category, brand, condition and price. No login, no Vinted account and no API key. A 10-listing search takes a few seconds and costs $0.021 on the Apify Free plan.

It is for resellers, deal hunters and price analysts who want Vinted listings in a spreadsheet or another app. The smallest useful run is one country plus one search word, for example fr and nike.

Vinted Scraper: search words and filters on 25 Vinted sites turn into a table of listings with price, size and condition, plus an only-new mode for schedules

Table of contents

What it does

The Actor runs the same search that you can run on a Vinted website, for example vinted.fr, and saves the listings it finds. It works with the public search only. It does not open each listing page, it does not log in and it does not read private data such as messages or addresses.

Good fit

  • Watch new Vinted listings for a brand or a search word and get only new ones on a schedule.
  • Compare prices of one item type between countries, for example Nike sneakers in France and Germany.
  • Build a list of listings for one category, brand and condition, with price, size and photo.

Not a fit / limits

  • Vinted USA (vinted.com) is not supported: it does not answer guest visitors.
  • Vinted shows at most 960 listings for one search, and some of them repeat (920 unique in our test). To get more, split the search with filters.
  • The search does not give the listing date, the description, all photos or the seller rating. The Actor does not return them.
  • Sold listings are not returned: Vinted search shows items that are still for sale.

What data you get

DataFields
ListingitemId, title, url, position
Priceprice, totalPrice (with the buyer protection fee), serviceFee, currency
Item detailsbrand, size, condition, conditionCode (the same code on every site)
Popularityfavourites, promoted
Photophoto, photos
SellersellerLogin (public login only)
Contextcountry, searchText, fetchedAt

Every run also saves a RUN_SUMMARY record with the status, counts, warnings and a link to the same search on the Vinted website.

Quick start

  1. Open the Input tab.
  2. Keep Country as France (fr) or choose another site.
  3. Type words in Search text, for example nike.
  4. Keep Max listings at 10 for a first test.
  5. Click Start.
  6. Open the Output tab. The Listings view shows the photo, title, price, brand, size and condition of each listing.

Expected result: about 10 rows in a few seconds, newest listings first.

Input

All fields are optional, but you need at least one of searchText, catalogIds or brandIds. The form opens with country = fr, searchText = nike and maxItems = 10. If you start the Actor with the API and leave a field out, the default in the table is used.

FieldTypeDefaultAllowed valuesWhat it doesRecommendation
countrystringfrfr, de, uk, it, es, nl, be, at, pl, pt, lu, ie, lt, cz, sk, se, fi, dk, ro, hu, hr, gr, ee, lv, siVinted site to search. Prices come in its currency; size and condition come in its language.One country per run. For several countries, start several runs.
searchTextstringnoneup to 200 charactersWords as you type them in the Vinted search box.Use short words: nike air max, not a full sentence.
maxItemsinteger1001–960Stops after this many saved listings. Each saved listing is one paid result.Start with 10–100. 960 is the Vinted limit for one search; repeats are removed, so a full search gives a bit less.
orderstringnewestnewest, relevance, priceLowToHigh, priceHighToLowOrder of results, as on the website.Keep newest for monitoring.
onlyNewbooleanfalsetrue, falseReturns only listings posted after the newest listing that earlier runs of the same search returned.Turn on for scheduled runs.
catalogIdsarray of stringsemptyup to 20 numeric idsVinted categories. Copy the number from catalog[]=1206 in a Vinted search link.Use it to split a big search.
brandIdsarray of stringsemptyup to 20 numeric idsVinted brands. Copy the number from brand_ids[]=53 in a Vinted search link.More exact than the brand name in searchText.
conditionsarray of stringsempty (any)new_with_tags, new_without_tags, very_good, good, satisfactoryKeeps only these conditions.Works the same on every country site.
priceFromnumbernone0–1,000,000Lowest price in the site currency.—
priceTonumbernone0–1,000,000Highest price in the site currency.—
proxyConfigurationobjectoffApify proxy settingsOff = direct connection. If Vinted blocks it twice, the Actor moves to a residential proxy on its own (included in the price).Leave it off. Data-center proxies are mostly blocked by Vinted.

How settings work together

  • searchText, catalogIds, brandIds, conditions and the price range all apply together (AND). Several ids in one field mean "any of them" (OR).
  • With onlyNew on, the Actor always reads the newest listings first and ignores order (you get a warning in RUN_SUMMARY).
  • onlyNew remembers each search separately. A search is the same when country, search text and filters are the same. maxItems and order do not change it.
  • Prices in priceFrom and priceTo use the site currency: euros for fr, pounds for uk, złoty for pl and so on.
  • Ids that are not numbers stop the run before any request with INVALID_INPUT. Duplicate ids are removed. A run with invalid input still costs the start fee ($0.003).

Input examples

Newest Nike listings in France

{
"country": "fr",
"searchText": "nike",
"maxItems": 10
}

Returns the 10 newest Nike listings on vinted.fr with price, size and condition. Cost on the Free plan: $0.021.

Jackets in the UK between £10 and £60

{
"country": "uk",
"searchText": "jacket",
"priceFrom": 10,
"priceTo": 60,
"maxItems": 20
}

Returns 20 jackets with prices in GBP. Cost on the Free plan: $0.039.

New Nike items with tags in Germany, only new ones on each run

{
"country": "de",
"brandIds": ["53"],
"conditions": ["new_with_tags"],
"onlyNew": true,
"maxItems": 100
}

The first run returns up to 100 newest listings and remembers them as the starting point. Each later run returns only listings posted after them. When nothing is new, the run ends with NO_RESULTS and you pay only the start fee.

Output example

One real row from a fr + nike search (the seller login is replaced):

{
"itemId": 10384744669,
"url": "https://www.vinted.fr/items/10384744669-nike-dunk-low-panda",
"title": "Nike dunk low panda",
"price": 70,
"totalPrice": 74.2,
"serviceFee": 4.2,
"currency": "EUR",
"brand": "Nike",
"size": "45",
"condition": "Très bon état",
"conditionCode": "very_good",
"sellerLogin": "example_seller",
"favourites": 0,
"promoted": false,
"photo": "https://images1.vinted.net/tc/05_0211f_kiZ4QQrUaZZLRQfYJQKkJPmJ/9db37083.webp?s=4651f023e8429bdd34f5f8603957167028e856d5",
"photos": [
"https://images1.vinted.net/tc/05_0211f_kiZ4QQrUaZZLRQfYJQKkJPmJ/9db37083.webp?s=4651f023e8429bdd34f5f8603957167028e856d5"
],
"country": "fr",
"searchText": "nike",
"position": 1,
"fetchedAt": "2026-10-15T09:40:11.775Z"
}

Output fields

FieldTypeCan be null?ExampleMeaning
itemIdintegerno10384744669Vinted listing id.
urlstringnohttps://www.vinted.fr/items/…Listing page on the country site.
titlestringyesNike dunk low pandaTitle written by the seller.
pricenumberyes70Price set by the seller.
totalPricenumberyes74.2Price plus the Vinted buyer protection fee, without shipping.
serviceFeenumberyes4.2Vinted buyer protection fee.
currencystringyesEURCurrency of the site: EUR, GBP, PLN, CZK, SEK, DKK, RON or HUF.
brandstringyesNikeBrand as shown on Vinted.
sizestringyes45Size as shown on Vinted, in the site language.
conditionstringyesTrès bon étatCondition as shown on Vinted, in the site language.
conditionCodestringyesvery_goodThe same condition in any language: new_with_tags, new_without_tags, very_good, good, satisfactory. Null if Vinted shows a label we do not know.
sellerLoginstringyesexample_sellerPublic login of the seller. No other seller data.
favouritesintegeryes0How many people saved the listing.
promotedbooleannofalsetrue for a paid promotion placed among the results.
photostringyeshttps://images1.vinted.net/…Main photo URL.
photosarray of stringsno (can be empty)[ … ]Photo URLs from the search. Vinted search usually gives one.
countrystringnofrSite you searched.
searchTextstringyesnikeYour search words; null when you searched only by category or brand.
positionintegerno1Place in the saved results, from 1.
fetchedAtstringno2026-10-15T09:40:11.775ZWhen the Actor read the listing (UTC).

Null means Vinted did not show this value for the listing. It is never replaced with 0 or an empty string.

Run summary

The RUN_SUMMARY record in the default key-value store has:

  • status: COMPLETE, NO_RESULTS, PARTIAL, ERROR, INVALID_INPUT or CANCELLED;
  • reason for COMPLETE and PARTIAL: MAX_ITEMS, SOURCE_LIMIT (960 reached), CHARGE_LIMIT, TIME_LIMIT or SOURCE_ERROR;
  • message in plain words and warnings;
  • counts: listingsSaved, pagesFetched, totalAvailable, skippedDuplicate, skippedSeen, skippedOlder;
  • input.searchUrl: the same search on the Vinted website, to check results by eye.

Pricing and cost examples

You pay per event. Apify platform usage is included: you do not pay for compute or proxy on top.

EventFree planBronzeSilverGold and higher
Actor start (once per run)$0.003$0.003$0.003$0.003
Listing saved$0.0018$0.0016$0.0013$0.0007
  • Listings that are not saved are free: duplicates, listings already seen with onlyNew, and listings over maxItems.
  • A search with no results, an onlyNew run with nothing new, or a run stopped by invalid input costs only the start fee: $0.003.
  • If the run stops because of a Vinted error, you pay only for listings that were saved before it.
  • You can set Max total charge for a run. The Actor stops before it goes over it and ends with PARTIAL and reason CHARGE_LIMIT.

Cost examples

ScenarioListings savedFree planGold plan
No results0$0.003$0.003
First test10$0.021$0.010
Typical search100$0.183$0.073
Full search (920 unique, measured)920$1.659$0.647

Use cases

GoalInputKey fieldsNext step
Find new deals for a brandbrandIds, priceTo, onlyNewtitle, price, size, urlSchedule + email or Slack integration
Compare prices between countriessame searchText in two runs, different countryprice, currency, conditionCodeSpreadsheet export
Study a categorycatalogIds, conditionsbrand, price, favouritesCSV or Excel export
Check prices before you sellsearchText, conditionsprice, totalPrice, sizeSort by price in the dataset

Scheduling and monitoring

  1. Make a task with your search and turn on onlyNew.
  2. Add a schedule, for example every hour.
  3. Each run returns only listings posted since the newest listing of the previous runs. You pay for new listings only, plus the start fee.

The memory of seen listings lives in the key-value store vinted-scraper-seen in your Apify account. It keeps up to 10,000 listings for each search. If more new listings appear between two runs than maxItems, the run returns the newest ones and the warning says how many did not fit. Run more often or raise maxItems to catch every new listing.

API, export and integrations

  • Export: download the dataset as JSON, CSV, Excel, XML or HTML from the Output tab.
  • API: start runs and read results with the Apify API. The input is the JSON shown above; rows are in the default dataset.
  • Integrations: send results to Google Sheets, Slack, email, Make or Zapier with Apify integrations.

Use with AI agents (MCP)

  • MCP server with only this Actor: https://mcp.apify.com?tools=cliqtomedia/vinted-scraper. See the Apify MCP docs.
  • Smallest useful input: {"country": "fr", "searchText": "nike", "maxItems": 10}.
  • Key fields: title (what the item is), price and currency (asking price), size and conditionCode (item details), url (link to cite).
  • A 10-listing search finishes in a few seconds and costs $0.021 on the Free plan. One run covers one country and at most 960 listings. RUN_SUMMARY explains empty and partial runs.

Limits and partial results

  • 960 listings per search: this is a Vinted limit. Vinted pages repeat some listings, and repeats are not saved: our full test search gave 920 unique listings. When a search has more, the run ends with reason SOURCE_LIMIT and a warning. Split it with catalogIds, brandIds, conditions or a price range.
  • Speed: in our tests 920 listings took about 6 seconds of run time. The Actor stops by itself after 10 minutes and keeps what it saved (PARTIAL, TIME_LIMIT).
  • Blocks: if Vinted blocks the direct connection twice, the Actor switches to a residential proxy. If Vinted keeps blocking after 6 tries, the run fails with SOURCE_BLOCKED and keeps the listings saved before.
  • "Newest" on vinted.co.uk: the UK site mixes some older listings from other countries (prices converted to GBP) into its newest results. The Actor returns what the website shows. onlyNew uses listing ids, so these older listings are not counted as new.
  • Duplicates: Vinted pages can repeat a listing. A repeat is not saved again and not charged.
  • Size and condition language: size and condition are in the site language. Use conditionCode to compare sites.

Troubleshooting

The run ends with no listings

Symptom: status NO_RESULTS. Likely reason: no listing matches all filters together, or with onlyNew nothing new was posted. Check: open input.searchUrl from RUN_SUMMARY in your browser. Action: remove a filter or check the ids. Search words are not translated: use words of the site language.

The run fails with INVALID_INPUT

Symptom: the run fails at once and makes no requests to Vinted. Likely reason: no searchText, catalogIds or brandIds; a non-numeric id; more than 20 ids; priceFrom higher than priceTo. Action: read message in RUN_SUMMARY, fix the field and start again.

The run fails with SOURCE_BLOCKED or SOURCE_UNAVAILABLE

Symptom: status ERROR, or PARTIAL with reason SOURCE_ERROR. Likely reason: Vinted blocked the connection or did not answer. Action: start the run again later. Saved listings stay in the dataset and are the only ones you pay for.

Vinted shows more listings in the browser than the Actor returns

Likely reason: the search has more than 960 listings, or the browser shows listings from your own history and location. Action: check counts.totalAvailable and the warnings, then split the search with filters.

FAQ

Do I need a Vinted account?

No. The Actor reads public search results without login.

Is this the official Vinted API?

No. Vinted has no public API for this. The Actor reads the same public search data that the Vinted website loads.

Why is there no listing date?

Vinted search does not show it. Use onlyNew and a schedule to know when a listing first appeared.

Can I search several countries at once?

One run covers one country. Start one run per country, or make one task per country.

Do I pay for listings that do not match my filters?

No. Filters are applied by Vinted, and you pay only for saved listings plus $0.003 per run.

The Actor reads only public data, without login. Vinted terms limit automated access and commercial use of its content. Check your use case with your own lawyer.

Support

Use the Issues tab of this Actor for bugs, questions and feature requests. Include the run ID, your input and the message from RUN_SUMMARY. Never post tokens, cookies or private data.