Vinted Scraper - Listings, Prices & New-Item Monitor avatar

Vinted Scraper - Listings, Prices & New-Item Monitor

Pricing

from $0.48 / 1,000 items

Go to Apify Store
Vinted Scraper - Listings, Prices & New-Item Monitor

Vinted Scraper - Listings, Prices & New-Item Monitor

Scrape Vinted listings from search URLs or search text on all 26 Vinted country sites: title, brand, size, condition, price with buyer protection, favourites, photos, item URL, business sellers' names. Only-new mode for resellers. Optional item details. $0.60 per 1,000 items on Bronze.

Pricing

from $0.48 / 1,000 items

Rating

0.0

(0)

Developer

Amit Aviv

Amit Aviv

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Vinted Scraper: listings, prices and new-item monitor

Returns Vinted listings from any search or catalogue URL, or from search text with filters, on all 26 Vinted country sites (vinted.fr, .de, .es, .it, .nl, .be, .pl, .co.uk, .com and the others). Plain HTTP with no browser: 100 items take from about 4 seconds to about 15, depending on how many come from business sellers (see "Speed"). Apart from the start fee you pay only for delivered items, and a run that delivers nothing because of an error ends as Failed, never as a green empty run.

What you get

  • Title, brand, size, condition (as the site shows it, plus a code that is the same on every site), item URL and id
  • Price, currency, discounted price where shown, the buyer protection fee and the total the buyer pays before shipping
  • Favourites count, promoted flag, main photo and thumbnail
  • Seller type (business or private); for business sellers their Vinted seller id and the business name they trade under, legal name, legal form and country, read from one of the seller's item pages at no extra charge (once per seller per run; can be switched off for speed)
  • With Item details on (extra charge): description, category and category path, colours, all photos, how long ago the item was uploaded as Vinted words it ("Il y a 2 heures"), availability, reserved flag
  • The country site, the search that found the item, and when it was read
  • One record per item, as JSON, CSV or Excel, or through the API
  • A run summary (OUTPUT_SUMMARY in the run's key-value store): what was requested, delivered and charged, which inputs failed or were ignored, warnings, and why the run stopped

What it does not return: private sellers' ids, usernames, profile photos, locations or ratings (not by default, and usernames never); member pages (a person's wardrobe); sold items; shipping prices; view counts; an exact upload time (Vinted shows only "2 hours ago"); anything behind a login.

How to use

  1. Open Vinted in your country, search, set the filters you want (brand, size, condition, price, category, colour) and copy the URL from the browser.
  2. Paste it into Vinted search or catalogue URLs. Several entries are fine, from different country sites too. Or type search text into Search text and use the filter fields.
  3. Set Max items per search and press Start.
  4. Download the results from the Output tab, or read them from the API.

Input

FieldTypeDefaultWhat it does
startUrlslist of URLsnoneVinted search URLs (/catalog?search_text=…), catalogue pages (/catalog/1231-shoes) and brand pages (/brand/53-nike) from any Vinted country site. Each URL keeps all its filters. Results come newest first unless the URL sets another order. Enter full URLs starting with https:// (the input form rejects others); duplicates, other sites, member pages and single item pages are ignored and listed in the summary.
searchQuerieslist of textnoneInstead of URLs: one search per line, newest first, on the site chosen in country.
countrychoicefrSite for searchQueries: fr de es it nl be pl uk us at pt lu ie cz sk hu ro lt lv ee fi se dk gr hr si.
priceMin, priceMaxnumbernoneFor searchQueries, in the site's currency; decimals allowed (9.99). A minimum above the maximum fails the run before any request.
conditionslistallFor searchQueries: new_with_tags, new_without_tags, very_good, good, satisfactory.
brandIds, sizeIds, categoryIds, colorIdslist of numbersnoneFor searchQueries: Vinted's own ids, as they appear in a Vinted URL after you pick the filter (brand_ids[]=53 is Nike, /catalog/1231-… is category 1231). With no search text, the filters alone make one search of the whole site.
maxItemsPerQuerynumber100Stop after this many items for each URL or search text (1 to 960). Vinted shows at most 960 per search.
onlyNewyes/nonoMonitoring: return and charge only items that earlier runs have not delivered. See "Monitoring".
monitorKeytextemptyName of the monitor memory, to keep two schedules apart.
includeDetailsyes/nonoRead each item's page for the details listed above; charged per item whose page was read. Slower (see "Limits").
includeBusinessNamesyes/noyesFill business sellers' names from one item page per seller (free). Turn off for the fastest runs; sellerType and the business seller's id are still returned.
includePrivateSellerDatayes/nonoAdds private sellers' numeric Vinted ids and keeps phone numbers and e-mail addresses that sellers wrote into descriptions. Turn on only if you have a lawful basis under the GDPR to process this personal data.
proxyConfigurationproxyoffNot needed. Vinted often refuses Apify's datacenter proxy addresses (HTTP 403); refused requests are retried on a new proxy session, which got through in one test run and stalled in another, so it does not cure a block. Residential proxy was not tested.

Yes/no fields also accept the text "true" and "false" from the API; any other value is treated as the default and named in the run's warnings.

{
"searchQueries": ["zara"],
"country": "pl",
"priceMax": 50,
"conditions": ["new_with_tags"],
"startUrls": [
{ "url": "https://www.vinted.it/catalog?search_text=gucci&order=newest_first" },
{ "url": "https://www.vinted.es/brand/53-nike" }
],
"maxItemsPerQuery": 60
}

This input was run as 7cYd35VWdGrx7vufh on 2026-10-14: 180 items in 8 seconds, 60 per search; the Polish items all cost 50 PLN or less and are all "new with tags", the Spanish ones are all Nike.

Example result

A business seller's item with Item details on, from run vmEmgucOFvfcjftHo (2026-10-14, build 0.1.9). The description and the photo list (8 URLs) are shortened here; nothing else is edited.

{
"id": "10368164503",
"url": "https://www.vinted.fr/items/10368164503-jean-levis-510-skinny-w28-l28-bleu-tres-bon-etat-n809",
"title": "Jean Levi's 510 | Skinny | W28 l28 | bleu | Très bon état | N809",
"brand": "Levi's",
"size": "W28 | FR 38",
"condition": "Très bon état",
"conditionCode": "very_good",
"price": 19.9,
"currency": "EUR",
"discountedPrice": null,
"buyerProtectionFee": 1.7,
"totalPrice": 21.6,
"favouritesCount": 0,
"isPromoted": false,
"photoUrl": "https://images1.vinted.net/t/06_0007c_7v6UCrFhX9rtzU3k7UHfw4JU/f800/4aa3ef9b.webp?s=600e28f4ff9aeb8226b7aaeb236cd8b669445ac9",
"photoUrls": [
"https://images1.vinted.net/t/06_0007c_7v6UCrFhX9rtzU3k7UHfw4JU/f800/4aa3ef9b.webp?s=600e28f4ff9aeb8226b7aaeb236cd8b669445ac9",
"https://images1.vinted.net/t/06_001f2_WiZniTZD7daf4bNCz9uWiLLD/f800/cec6a25f.webp?s=c4526b4134e66eb775d5be96dc7b80c43d792c82",
"… 6 more"
],
"thumbnailUrl": "https://images1.vinted.net/t/06_0007c_7v6UCrFhX9rtzU3k7UHfw4JU/310x430/4aa3ef9b.webp?s=8a8a5dae57051bb8aac60be5e46418ab2f470240",
"sellerType": "business",
"sellerId": "3130790208",
"businessName": "FreePrix",
"privateDataRedacted": false,
"detailsFetched": true,
"description": "Bonjour,\n\n🎁 -10% pour les abonnés!\n\nModèle 510 → Jean Levi's coupe : \"Skinny\"\nCatégorie : Homme\nTaille : \"W28 L28\"\nCouleur :Jean \"Bleu\" traditionnelle Lévis\nEta …",
"category": "Hommes Jeans skinny",
"categoryId": "1817",
"categoryPath": [
"Hommes",
"Vêtements",
"Jeans",
"Jeans skinny"
],
"color": "Bleu",
"uploadedAgo": "Il y a une minute",
"availability": "InStock",
"isReserved": false,
"businessLegalName": "FRIPRIX",
"businessLegalForm": "legal_business",
"businessCountry": "FR",
"country": "fr",
"query": "https://www.vinted.fr/catalog?search_text=levis%20501&order=newest_first",
"searchUrl": "https://www.vinted.fr/catalog?search_text=levis%20501&order=newest_first",
"scrapedAt": "2026-10-14T15:34:48.343Z"
}
FieldMeaning
idVinted's item id; stable between runs.
brandnull when the seller gave no brand.
condition, conditionCodeCondition in the site's language, and the same condition as new_with_tags, new_without_tags, very_good, good or satisfactory on every site.
price, currencyThe asking price in the site's currency (items from another country are shown converted, as Vinted shows them).
discountedPriceSet when Vinted shows a reduced price, else null.
buyerProtectionFee, totalPriceVinted's buyer protection fee and price + fee, as the site shows them. Shipping is not included.
isPromotedA promoted listing Vinted inserted into the results.
sellerTypebusiness (a professional seller registered as such on Vinted) or private.
sellerIdThe business seller's Vinted id; null for private sellers unless includePrivateSellerData is on.
businessName, businessLegalName, businessLegalForm, businessCountryFrom the business's legal information on an item page of that seller, read once per seller per run and copied to all the seller's items. They are null when includeBusinessNames is off, or when Vinted refused that seller's item pages twice; the status message then says for how many items. A sole trader's business name can be a person's name.
privateDataRedactedtrue for a private seller whose id was left out.
detailsFetchedtrue when the item page was read for the details (includeDetails).
uploadedAgoVinted's own words, in the site's language.
query, searchUrlThe search as you gave it, and the URL that was read.

Fields Vinted does not provide for an item are null, never missing.

Pricing

Pay per event.

EventFreeBronzeSilverGold and above
Actor start (once per run at the default 512 MB)$0.0036$0.003$0.0027$0.0024
Item delivered$0.00072$0.0006$0.00054$0.00048
Item details read (includeDetails), per item$0.0012$0.001$0.0009$0.0008

Worked examples on Bronze: one search of 1,000 items costs $0.003 + 1,000 × $0.0006 = $0.603; with item details, + 1,000 × $0.001 = $1.603. A scheduled monitoring run that finds 20 new items costs $0.003 + 20 × $0.0006 = $0.015; a run that finds nothing new costs $0.003.

  • Items that could not be delivered are not charged. An item found twice in one run (by two searches, or on two result pages) is delivered and charged once; an item another search of the same run already delivered does not count against this search's maximum. Item details are charged only for items whose page was read.
  • The start event is charged by Apify once per GB of run memory: once at the default 512 MB, more if you raise the memory.
  • The maximum total charge you set for a run is respected: the actor stops before it would go over, keeps what was delivered, and says so in the status message (run 4zP2uYnq2f2VhASg2: a $0.0072 limit gave exactly 7 items).

Reliability and failure behaviour

What happenedRun statusStatus message
Items deliveredSucceededScraped 180 items from 3 queries
Items delivered, some business names not readSucceededScraped 2880 items from 3 queries — business name not read for 2 items (Vinted refused the item pages; businessName: null); …
A full search read, but some of its items never appearedSucceededScraped … — Vinted moved items between its result pages while they were read, so N items of the M it counts for … never appeared
Vinted has no items for your searchSucceeded0 results: Vinted has no items for this query
Some searches worked, some failedSucceededScraped 197 items from 2 queries — 1 of 2 queries failed ("…": …)
Nothing delivered because of errors or blockingFailedNo items delivered: Vinted blocked every attempt; try again later. No items were charged (the start fee applies).
Input the actor cannot useFailed, within 2 secondsNothing to do: … Add at least one entry to "startUrls", e.g. … No items were charged (the start fee applies).
Maximum charge reachedSucceededScraped 7 items from 1 query — stopped at the maximum charge set for this run
Run timeout closeSucceeded… — stopped just before the run timeout; raise the timeout to get the rest
Vinted's page no longer holds the data this actor readsFailedNo items delivered: Vinted's page did not contain the catalogue data this actor reads (layout change?) …
  • Requests are retried with increasing pauses on network errors, HTTP 429 and 5xx; refusals are named in the log as they happen.
  • Results are saved page by page. A run that is aborted, times out or is resurrected keeps what was delivered and never delivers or charges the same item twice.
  • Measured on 2026-10-14 (41 test runs in all; the last 16 on the current code): every run delivered what was asked or ended with the right status (normal, multi-country, 3 × 960, details, monitoring, empty search, bad input, charge limit), and in every run the items charged equal the items delivered. No run met a block on result pages; item pages answered HTTP 429 (rate limit) at times and were waited out (bhlYsmve9e691FUPG: 5 refusals, 40 of 40 details read). The blocked and layout-change paths were verified in offline simulations only.

Limits

  • 960 items per search. Vinted shows at most 10 pages of 96 for any search. When Vinted's count for a search reaches 960, the status message says so: narrow it with filters (price bands, sizes, categories) to reach the rest. Splitting a search automatically is not built.
  • Result pages move while they are read. Newest first, new listings push older ones down, and even on quiet searches Vinted's pages overlap from one request to the next: a reading of "barbour bedale olive 46" on vinted.ie (600 items by Vinted's count) once showed only 575 distinct items (oXfdr6LqezaDNZ6Oz, previous build). So the pages a run needs are requested together, and when a search read to its end showed repeated items, all its pages are read a second time and the items not seen before are added: the same search then gave 686 distinct items (QkQfKbQ71mJvaCK1r; Vinted's pages vary between requests, so a full reading can return more items than Vinted counts). If fewer distinct items than Vinted's count still came, the status message says how many never appeared. Nothing is charged twice.
  • Speed. Without details, result pages take a few seconds each and the rest depends on business sellers, whose names need one item page per seller, paced at about one a second because Vinted rate-limits item pages: 100 items with no business seller in 3.7 s (LlR2xdOWZH46hUQyT); 300 items from 25 business sellers in 35 s (SrrF6p5ZVKExy3L9W); 6 searches × 96 on six sites in 30 s (di9blT85Zrehyew60); 3 × 960 with 58 business sellers in 175 s (Nvd4E9ZODnNeW4dVs, about 1,000 items a minute). Turn off includeBusinessNames for the fastest runs. With Item details on, every item needs its page: about 25 to 50 items a minute, depending on how often Vinted rate-limits item pages (40 in 86 s, bhlYsmve9e691FUPG; 100 in 260 s, bhMk8UVNAna8Pd2Sp; 30 in 37 s, KdkEn0fWhaiLuIYQF).
  • Order. Searches are read newest first unless the URL you paste sets another order; with Only new items they are always read newest first.
  • Upload time is only Vinted's relative wording, and only with item details.
  • Category of an item comes only with item details (the search results do not carry it; a category filter in the search also matches its sub-categories, so it is not the item's own category).
  • Countries: the 26 Vinted sites listed under country. The condition codes were checked on all 26.

Monitoring: only new items

  1. Turn on Only new items and save the input as a task.
  2. Schedule the task (every 10 minutes, hourly, daily).
  3. The first run delivers what it finds (up to the maximum). Every later run reads newest first and delivers and charges only items it has not delivered before for the same search; a run with nothing new ends as Succeeded with 0 new items… and charges only the start event.

Tested on 2026-10-14: a quiet search on vinted.ie ("longchamp pliage") delivered 200, then 1, then 1, then 0 items in four runs (fc7qDM9FXphCKrkte, wYadaLyqlxx8deaPr, Amu0k5M37XcMXOsxF, rnkGVUCK5WMn4GOZi), no item twice. On the current build, a new monitor on the same search delivered 200, then 0 (hiYJM0ZuC9IQnVeOn, 0CBWxSghrBDyKIY7V), and one on "nike" (vinted.de) delivered 300, then a few minutes later 126 others with no overlap, reading 2 pages (5Qdl8lC9ssxpQf7gO, npXdVp0CnwMSb4XzF). A busy one ("nike" on vinted.de) delivered 200 and, 25 minutes later, 200 others with no overlap (QFAfU8azhI4HIVkLH, 2FE3RnNnezFib2OjM); the second run said that more than 200 new items had arrived, so raise the maximum or run more often for such searches.

"New" means "not delivered before by this monitor". Vinted's newest-first order also brings back some older listings that sellers have bumped to the top: if this actor has not delivered them before, they come as new. A later run reads down to the first page where at least a quarter of the items are known, so a few bumped items do not stop it early.

The memory is a key-value store named vinted-scraper-monitor in your own account (one record per search and monitor name, at most 10,000 ids each, oldest forgotten first). Delete the store or change Monitor name to start over. Items cut off by the maximum or by your charge limit in a later run are not delivered by the next one (the status message warns you), so set the maximum above what arrives between two runs. To be notified, add an integration to the task (email, Slack, webhook) on "run succeeded" and check that the dataset is not empty.

FAQ

Do I need a proxy or a Vinted account? No. The actor does not log in and reads only public pages, without a proxy. Apify's datacenter proxy addresses are often refused by Vinted.

Why did I get fewer items than Vinted shows? Vinted shows at most 960 per search, and its result pages move while they are read; the actor reads them a second time when that happens, and the status message says how many items never appeared (see "Limits"). The run summary lists per search how many items were found, delivered, repeated and recovered (pageShift).

Why do I get items for a word that makes no sense? Vinted matches search text loosely, so an unusual word can still return loosely related items (17 items for "qxzvjkwpl zzyqmb", VpGmXkdg2eJ3Alm3s); the actor returns what Vinted returns. 0 results comes only when Vinted itself finds nothing, e.g. with a narrow price band. Use filters or a pasted URL to narrow.

How do I find a brand, size or category id? Pick the filter on Vinted and look at the URL: brand_ids[]=53, size_ids[]=207, catalog[]=1231. Or simply paste that URL into startUrls.

Can I run it from code? Yes: the API, the Apify clients for JavaScript and Python, Make, Zapier, n8n. The Output tab shows the URLs.

What happens when Vinted changes its pages? Runs fail with a message that names the problem instead of returning empty data; report the run id under Issues.

This actor collects listing data that Vinted shows publicly without a login: item, price and condition data, and the legal information Vinted publishes about business sellers (for a sole trader, the business and legal name can be a person's name; it is returned because Vinted publishes it as trader information, and includeBusinessNames: false without item details leaves it out). Most Vinted sellers are private individuals. By default the actor does not return their ids, usernames, profile photos, locations or ratings, and it removes phone numbers and e-mail addresses that sellers write into descriptions; records carry sellerType and privateDataRedacted. Item photos are returned as Vinted shows them and can show people. The optional includePrivateSellerData adds private sellers' numeric ids; use it only with a lawful basis under the GDPR.

Vinted's terms are reported to forbid bots and automated collection (we could not read the clause ourselves); treat use of this actor as against those terms. You are responsible for how you use the data: respect Vinted's terms, copyright and database rights, and data-protection law (GDPR and others) in your country and the country of the data. Do not use the output to contact, profile or track individual sellers, or for unsolicited marketing. If you are unsure, ask a lawyer before you build on it.

Other actors by the same developer:

  • Listing Status Checker: paste Vinted item URLs you already have and get, per item, whether it is still online, reserved or sold (saleConfirmed: true for a sale through Vinted's checkout) and its current price against the last check. Useful for measuring how fast items sell after you collect them with this actor.
  • Leboncoin Scraper: ads from leboncoin.fr, France's largest classifieds site, in every category including clothing and accessories, to compare second-hand prices in France beyond Vinted.
  • Kleinanzeigen Scraper: ads from kleinanzeigen.de, Germany's largest classifieds site, in every category, to compare second-hand prices in Germany beyond Vinted.

Changelog

  • 2026-10-14 0.1: first release.

Support

Open an issue on the actor's Issues tab with the run id.