Vinted Scraper - Listings, Prices & Brands in 25 Countries
Pricing
from $0.70 / 1,000 listings
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
Maintained by CommunityActor 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.

Table of contents
- What it does
- What data you get
- Quick start
- Input
- Input examples
- Output example
- Output fields
- Pricing and cost examples
- Use cases
- Scheduling and monitoring
- API, export and integrations
- Limits and partial results
- Troubleshooting
- FAQ
- Related Actors
- Support
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
| Data | Fields |
|---|---|
| Listing | itemId, title, url, position |
| Price | price, totalPrice (with the buyer protection fee), serviceFee, currency |
| Item details | brand, size, condition, conditionCode (the same code on every site) |
| Popularity | favourites, promoted |
| Photo | photo, photos |
| Seller | sellerLogin (public login only) |
| Context | country, 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
- Open the Input tab.
- Keep Country as France (
fr) or choose another site. - Type words in Search text, for example
nike. - Keep Max listings at 10 for a first test.
- Click Start.
- 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.
| Field | Type | Default | Allowed values | What it does | Recommendation |
|---|---|---|---|---|---|
country | string | fr | fr, de, uk, it, es, nl, be, at, pl, pt, lu, ie, lt, cz, sk, se, fi, dk, ro, hu, hr, gr, ee, lv, si | Vinted 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. |
searchText | string | none | up to 200 characters | Words as you type them in the Vinted search box. | Use short words: nike air max, not a full sentence. |
maxItems | integer | 100 | 1–960 | Stops 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. |
order | string | newest | newest, relevance, priceLowToHigh, priceHighToLow | Order of results, as on the website. | Keep newest for monitoring. |
onlyNew | boolean | false | true, false | Returns only listings posted after the newest listing that earlier runs of the same search returned. | Turn on for scheduled runs. |
catalogIds | array of strings | empty | up to 20 numeric ids | Vinted categories. Copy the number from catalog[]=1206 in a Vinted search link. | Use it to split a big search. |
brandIds | array of strings | empty | up to 20 numeric ids | Vinted brands. Copy the number from brand_ids[]=53 in a Vinted search link. | More exact than the brand name in searchText. |
conditions | array of strings | empty (any) | new_with_tags, new_without_tags, very_good, good, satisfactory | Keeps only these conditions. | Works the same on every country site. |
priceFrom | number | none | 0–1,000,000 | Lowest price in the site currency. | — |
priceTo | number | none | 0–1,000,000 | Highest price in the site currency. | — |
proxyConfiguration | object | off | Apify proxy settings | Off = 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,conditionsand the price range all apply together (AND). Several ids in one field mean "any of them" (OR).- With
onlyNewon, the Actor always reads the newest listings first and ignoresorder(you get a warning inRUN_SUMMARY). onlyNewremembers each search separately. A search is the same when country, search text and filters are the same.maxItemsandorderdo not change it.- Prices in
priceFromandpriceTouse the site currency: euros forfr, pounds foruk, złoty forpland 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
| Field | Type | Can be null? | Example | Meaning |
|---|---|---|---|---|
itemId | integer | no | 10384744669 | Vinted listing id. |
url | string | no | https://www.vinted.fr/items/… | Listing page on the country site. |
title | string | yes | Nike dunk low panda | Title written by the seller. |
price | number | yes | 70 | Price set by the seller. |
totalPrice | number | yes | 74.2 | Price plus the Vinted buyer protection fee, without shipping. |
serviceFee | number | yes | 4.2 | Vinted buyer protection fee. |
currency | string | yes | EUR | Currency of the site: EUR, GBP, PLN, CZK, SEK, DKK, RON or HUF. |
brand | string | yes | Nike | Brand as shown on Vinted. |
size | string | yes | 45 | Size as shown on Vinted, in the site language. |
condition | string | yes | Très bon état | Condition as shown on Vinted, in the site language. |
conditionCode | string | yes | very_good | The 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. |
sellerLogin | string | yes | example_seller | Public login of the seller. No other seller data. |
favourites | integer | yes | 0 | How many people saved the listing. |
promoted | boolean | no | false | true for a paid promotion placed among the results. |
photo | string | yes | https://images1.vinted.net/… | Main photo URL. |
photos | array of strings | no (can be empty) | [ … ] | Photo URLs from the search. Vinted search usually gives one. |
country | string | no | fr | Site you searched. |
searchText | string | yes | nike | Your search words; null when you searched only by category or brand. |
position | integer | no | 1 | Place in the saved results, from 1. |
fetchedAt | string | no | 2026-10-15T09:40:11.775Z | When 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_INPUTorCANCELLED;reasonforCOMPLETEandPARTIAL:MAX_ITEMS,SOURCE_LIMIT(960 reached),CHARGE_LIMIT,TIME_LIMITorSOURCE_ERROR;messagein plain words andwarnings;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.
| Event | Free plan | Bronze | Silver | Gold 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 overmaxItems. - A search with no results, an
onlyNewrun 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
PARTIALand reasonCHARGE_LIMIT.
Cost examples
| Scenario | Listings saved | Free plan | Gold plan |
|---|---|---|---|
| No results | 0 | $0.003 | $0.003 |
| First test | 10 | $0.021 | $0.010 |
| Typical search | 100 | $0.183 | $0.073 |
| Full search (920 unique, measured) | 920 | $1.659 | $0.647 |
Use cases
| Goal | Input | Key fields | Next step |
|---|---|---|---|
| Find new deals for a brand | brandIds, priceTo, onlyNew | title, price, size, url | Schedule + email or Slack integration |
| Compare prices between countries | same searchText in two runs, different country | price, currency, conditionCode | Spreadsheet export |
| Study a category | catalogIds, conditions | brand, price, favourites | CSV or Excel export |
| Check prices before you sell | searchText, conditions | price, totalPrice, size | Sort by price in the dataset |
Scheduling and monitoring
- Make a task with your search and turn on
onlyNew. - Add a schedule, for example every hour.
- 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),priceandcurrency(asking price),sizeandconditionCode(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_SUMMARYexplains 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_LIMITand a warning. Split it withcatalogIds,brandIds,conditionsor 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_BLOCKEDand 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.
onlyNewuses 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:
sizeandconditionare in the site language. UseconditionCodeto 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.
Is it legal to scrape Vinted?
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.
Related Actors
- Historical FX Rates Converter: convert Vinted prices in GBP, PLN, CZK or SEK to one currency before you compare countries.
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.