Vinted Scraper - New Listings Monitor & Price Drop Alerts avatar

Vinted Scraper - New Listings Monitor & Price Drop Alerts

Pricing

from $2.45 / 1,000 listing returneds

Go to Apify Store
Vinted Scraper - New Listings Monitor & Price Drop Alerts

Vinted Scraper - New Listings Monitor & Price Drop Alerts

For resellers, deal alerts and n8n or Telegram bots: Vinted listings from 26 countries by keyword, brand, size, condition and price, with title, price plus buyer fee, photo and seller type. Monitor mode returns only new listings and price drops, never old ones bumped to the top. JSON, CSV or Excel.

Pricing

from $2.45 / 1,000 listing returneds

Rating

0.0

(0)

Developer

NeverEmpty

NeverEmpty

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Get Vinted listings as clean JSON from 26 Vinted countries (vinted.fr, vinted.de, vinted.co.uk, vinted.com, vinted.it, vinted.es, vinted.nl, vinted.pl and more): title, brand, size, condition, price and currency, buyer protection fee and total price, photo, favourites, Boosted flag, seller ID and whether the seller is a business, and the link. Search by search term, country, category ID, brand ID, size ID, condition and price range, or paste Vinted search URLs. Turn on Monitor mode and scheduled runs return only new listings and price drops since the last check - for resellers, deal alerts, n8n / Make / Zapier flows and Telegram or Discord bots that should not pay for the same listings again.

  • A new listings monitor that does not sell old listings as new. Vinted's "newest first" order puts a listing back at the top when it is bumped (a paid Boost), relisted, or published late by Vinted's review, so old listings keep appearing above the new ones. Vinted item IDs grow with every new listing across all countries, so this Actor can tell them apart: a listing that sits above listings created after it is marked isResurfaced: true. In monitor mode only listings that are really new since the last check come back as changeType: new; older listings that moved back to the top, or moved up from further down the list, are not sold as new (you can still ask for them as changeType: resurfaced).
  • Price drops. A listing this watch has seen before whose price is now lower comes back as changeType: price-drop with previousPrice and priceDrop.
  • Honest search matching. Vinted matches search terms loosely: a production search for the nonsense term qqzxwvkjh plokm returned 58 listings on 2026-09-25, none containing either word. Every row has matchesSearchWords, and requireAllSearchWords leaves the non-matching ones out (and does not charge for them).
  • Unknown IDs are not "no results". Vinted answers a brand, size or condition ID it does not know with an empty list. This Actor checks the filter names Vinted sends back and returns a free not-found row naming the unknown ID instead of pretending the search is empty.
  • Free rows when there is nothing to deliver. A search with no results, an unknown ID, a page that could not be read, and a check page come back as free rows that say why, and such runs are not charged at all. A monitor-mode run that read the list and found nothing new pays only the run start fee for that check (no listing rows).
  • 26 countries in one run. Search terms times countries, plus search URLs, up to 10 searches per run. Prices, the price filter and the currency follow each site (EUR, GBP on vinted.co.uk, USD on vinted.com, PLN on vinted.pl, CZK, SEK, DKK, RON, HUF ...).
  • Fast. One Vinted page is 96 listings. Production runs on 2026-09-25 took about 3-4 s per search (one page), 512 MB.

Unofficial. Reads the public Vinted search result pages (/catalog), the same pages a person sees without logging in, and follows each site's robots.txt (checked on every run). It does not log in, does not open item or member pages, does not use Vinted's internal API, and does not solve or bypass check pages. It returns no seller names, photos or locations: only the numeric seller ID Vinted shows on the listing and whether the seller is a business. E-mail addresses and phone numbers written into a title are replaced with [email removed] / [phone removed]. Vinted's robots.txt asks that its content is not used to train AI models; please respect that.

What you get

One row per listing. Example (a production monitor-mode run on 2026-09-25, search term nike on vinted.fr):

{
"status": "ok",
"changeType": "new",
"itemId": "10123641799",
"title": "Nike Dunk High White/Red (Picante Red)| Taglia 46",
"brand": "Nike",
"size": "46",
"condition": "Très bon état",
"price": 54.49,
"currency": "EUR",
"buyerProtectionFee": 3.42,
"totalPrice": 57.91,
"previousPrice": null,
"priceDrop": null,
"isResurfaced": false,
"matchesSearchWords": true,
"isBoosted": false,
"favouriteCount": 0,
"photoUrl": "https://images1.vinted.net/t/02_00481_Cf4dfL7kDR6PBAwbwcEePBBZ/f800/80f0e616.webp?s=96c7bf1d51f4f6b4a0978866a6604c016df66a32",
"thumbnailUrl": "https://images1.vinted.net/t/02_00481_Cf4dfL7kDR6PBAwbwcEePBBZ/310x430/80f0e616.webp?s=dff9c29eee3602e2e27b7588a95d6dcbcf2bfb49",
"photoCount": 1,
"sellerId": "107109061",
"sellerIsBusiness": false,
"url": "https://www.vinted.fr/items/10123641799-nike-dunk-high-whitered-picante-red-taglia-46",
"country": "fr",
"positionInSearch": 4,
"listingsInSearch": 960,
"listingsInSearchCapped": true,
"searchQuery": "nike",
"searchFilters": null,
"searchUrl": "https://www.vinted.fr/catalog?search_text=nike&order=newest_first",
"watchName": "t2",
"checkedAt": "2026-09-24T20:30:33.337Z"
}
FieldWhat it is
statusok for a listing. Free rows: no-results, none-matching, not-found, no-new-listings, blocked, unreadable, incomplete, not-allowed-by-robots-txt, bad-input, budget-reached, more-not-returned, more-new-than-readable (with note saying why).
changeTypeMonitor mode only: first-check, new, price-drop or resurfaced. null in a normal search.
itemId, title, urlVinted item ID, title as the seller wrote it, link to the listing.
brand, size, conditionAs Vinted shows them on the listing, in the site's language. null when the listing has none.
price, currencyItem price without the buyer protection fee, in the site's currency.
buyerProtectionFee, totalPriceVinted's buyer protection fee and the total a buyer pays before postage.
previousPrice, priceDropMonitor mode price drops: the price at the previous check and the difference.
isResurfacedtrue when the listing is shown above listings created after it (older listing moved back to the top: bump, relisting or delayed publication).
matchesSearchWordstrue when every search word is in the title or brand, false when Vinted matched it loosely, null without a search term.
isBoostedVinted marks the listing as promoted.
favouriteCount, photoUrl, thumbnailUrl, photoCountFavourites, main photo (800 px), thumbnail, number of photos on the search card.
sellerId, sellerIsBusinessNumeric seller ID shown on the listing and whether the seller is a business (Vinted Pro). No names.
country, positionInSearch, listingsInSearch, listingsInSearchCappedSite, position in the newest-first list, the number of listings Vinted reports for the search (Vinted stops counting at 960).
searchQuery, searchFilters, searchUrlThe search that found it. searchFilters lists the brand, size and condition names Vinted confirmed for your IDs.
watchName, checkedAt, noteMonitor name, time of the check, and the reason on free rows.

Input

FieldTypeWhat it does
searchQuerieslistWhat you would type into the Vinted search box, for example nike air max, levis 501, lego star wars. Each term is searched in each country. All empty (and no IDs or URLs) = example search nike on vinted.fr.
countrieslistfr de uk us it es nl be at pl pt cz sk lt lv ee se dk fi ie lu ro hu hr si gr. Empty = fr.
categoryIdslistVinted category numbers (the digits after catalog[]= in a Vinted search address). A category alone lists everything new in it.
brandIdslistVinted brand numbers (after brand_ids[]=, for example 53 = Nike).
sizeIdslistVinted size numbers (after size_ids[]=). Sizes are numbered per category: choose the size once in your browser and copy the number.
conditionslistnew_with_tags, new_without_tags, very_good, good, satisfactory. Empty = all.
minPrice, maxPricenumberPrice range in each site's currency (Vinted's own price filter, price without the buyer protection fee).
searchUrlslistVinted search pages copied from your browser. Sort order is always set to newest first and the page number is dropped.
maxResultsPerSearchintegerMost listings per search, 1 to 960 (Vinted shows at most 960 for any search). Empty = 50. In monitor mode it limits the new listings and price drops per search in one run; the rest come in the next run while they are still on the pages the watch reads (on very busy searches, set it higher or narrow the search).
requireAllSearchWordsbooleanLeave out listings whose title and brand do not contain every search word. Default off.
onlyNewbooleanMonitor mode (see below). Default off.
includePriceDropsbooleanMonitor mode: also return price drops. Default on.
includeResurfacedbooleanMonitor mode: also return older listings moved back to the top, as resurfaced. Default off.
watchNamestringSeparate memories per watch (letters, digits, . - _, up to 40).
resetMonitoringStatebooleanForget what this watch has seen for these searches and start again.

Monitor mode

  1. The first run (changeType: first-check) returns up to maxResultsPerSearch listings and remembers everything it read as the starting point.
  2. Every later run reads the newest page (96 listings) of each search. When a lot changed and none of the remembered listings is on that page, or when new listings from the previous run are still owed to you, it reads up to 3 pages.
  3. It returns listings that are new since the previous check (new) and remembered listings whose price went down (price-drop). A listing it has not seen that sits below listings it already knew, or that is older than listings shown after it, is not called new.
  4. When more new listings appeared than fit on 3 pages, a free more-new-than-readable row says some may have been missed: run the watch more often or narrow the search.
  5. New listings or price drops that did not fit into maxResultsPerSearch or your maximum charge are not charged and come in the next run, as long as they are still on the pages the watch reads. On a very busy search (vinted.fr nike gets about 30-40 new listings a minute) set maxResultsPerSearch high enough or narrow the search.

Production check on 2026-09-25: a watch on nike at vinted.fr, run 50 seconds after its first check, returned 34 new listings (positions 1 to 35 of the newest page). One of them had an item ID about 12 minutes older than the others: a listing Vinted published late, which is still returned as new because it had never been visible before.

Countries tested

Every site below was read from the Apify platform in production on 2026-09-25 without a proxy (26 of 26 searches returned listings). When Vinted refuses a request without a check page (a plain 403, 429 or a timeout), the Actor asks once more, then through a residential IP address in the same country (at most 3 pages per run). When Vinted shows a check page, the Actor stops and says so.

France, Germany, United Kingdom, United States, Italy, Spain, Netherlands, Belgium, Austria, Poland, Portugal, Czechia, Slovakia, Lithuania, Latvia, Estonia, Sweden, Denmark, Finland, Ireland, Luxembourg, Romania, Hungary, Croatia, Slovenia, Greece.

Pricing

Pay per event:

  • Run start: once per run that returns listings, and once per monitor-mode run that read and compared the list, even when nothing changed or nothing matched your words (it pays for the check). Not charged when Vinted refuses the request or an ID is unknown, and not charged in a normal search where nothing matches.
  • Listing returned: per listing row delivered. Free rows (nothing new, not found, blocked, and so on) are never charged.

If your maximum total charge has no room for the run start fee plus one listing, the run requests nothing and is charged nothing. When a run reaches its maximum charge, the listings it could not deliver are not charged; in monitor mode they come in the next run while they are still on the pages the watch reads.

Limits

  • Vinted shows at most 960 listings for any search (10 pages of 96). Narrow the search with a brand, size, category or price range to reach older listings.
  • Monitor mode sees price drops on the pages it reads (the newest 96 to 288 listings of the search).
  • Brand, size and condition are the words shown on the listing card in the site's language.
  • Two schedules running the same search with the same watchName at the same moment can return the same new listing twice; give each schedule its own watchName.

Support

Found a search that does not work, or need another field? Open an issue on the Issues tab of this Actor with the input you used, and it will be looked at.