<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ionut Radu</title>
    <description>The latest articles on DEV Community by Ionut Radu (@ionut_radu_4ef70042f03bd3).</description>
    <link>https://dev.to/ionut_radu_4ef70042f03bd3</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4197915%2F3f3ac59c-dab6-4d64-ad43-1f618fd2536d.jpg</url>
      <title>DEV Community: Ionut Radu</title>
      <link>https://dev.to/ionut_radu_4ef70042f03bd3</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ionut_radu_4ef70042f03bd3"/>
    <language>en</language>
    <item>
      <title>How to get alerts for new Vinted listings (and see what sells) without writing code</title>
      <dc:creator>Ionut Radu</dc:creator>
      <pubDate>Wed, 21 Oct 2026 09:22:51 +0000</pubDate>
      <link>https://dev.to/ionut_radu_4ef70042f03bd3/how-to-get-alerts-for-new-vinted-listings-and-see-what-sells-without-writing-code-1lhd</link>
      <guid>https://dev.to/ionut_radu_4ef70042f03bd3/how-to-get-alerts-for-new-vinted-listings-and-see-what-sells-without-writing-code-1lhd</guid>
      <description>&lt;p&gt;The best deals on Vinted go within minutes, and refreshing the same search all day doesn't scale. Vinted has no public API for this, and its search shows at most 960 results.&lt;/p&gt;

&lt;p&gt;In this tutorial you'll set up an hourly monitor that sends new listings for a search to Discord or Slack, using the &lt;a href="https://apify.com/upright_inmate/vinted-scraper" rel="noopener noreferrer"&gt;Vinted Scraper&lt;/a&gt; on Apify. It takes about 10 minutes and no code. Full disclosure: I built the scraper.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you need
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A free Apify account. Runs on the free plan save up to 100 results, which is enough to try everything below.&lt;/li&gt;
&lt;li&gt;A Vinted search you want to watch, for example Levi's 501 jeans under 40 EUR on vinted.fr.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 1: Run your first search
&lt;/h2&gt;

&lt;p&gt;Open the Vinted Scraper, click &lt;strong&gt;Try for free&lt;/strong&gt;, and switch the input to JSON:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"searchQueries"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"levi's 501"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"country"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"fr"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"sortBy"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"newest_first"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"maxPrice"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;40&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"maxItemsPerSearch"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Click &lt;strong&gt;Start&lt;/strong&gt;. After about 20 seconds the &lt;strong&gt;Output&lt;/strong&gt; tab shows each listing with its title, price, total price with buyer protection, brand, size, condition, photo and link:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fva2qmjscik9fsh1jv8ce.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fva2qmjscik9fsh1jv8ce.png" alt="Listings view in Apify Console" width="800" height="445"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tip: if you need a filter the form doesn't have, set it on the Vinted website and paste the search URL into &lt;strong&gt;Vinted URLs&lt;/strong&gt;. Every filter in the URL is kept.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Turn the search into a monitor
&lt;/h2&gt;

&lt;p&gt;Add two fields: a &lt;strong&gt;monitoring ID&lt;/strong&gt;, any name you choose, and &lt;strong&gt;Save only: new listings&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"searchQueries"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"levi's 501"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"country"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"fr"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"maxPrice"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;40&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"monitoringId"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"levis-501-fr"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"saveOnly"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"new"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Run it once. The first run saves the current listings as the baseline. Every later run with the same monitoring ID saves only listings created since the previous run. It scans only the newest pages of the search and stops at the first page without new listings, so it stays fast and cheap.&lt;/p&gt;

&lt;p&gt;Old listings that Vinted bumps back to the top are not reported as new.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Run it every hour
&lt;/h2&gt;

&lt;p&gt;Save the input as a &lt;strong&gt;task&lt;/strong&gt;, then open &lt;strong&gt;Schedules&lt;/strong&gt;, create a schedule with an hourly cron expression (&lt;code&gt;0 * * * *&lt;/code&gt;) and add the task to it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: Get the alerts in Discord or Slack
&lt;/h2&gt;

&lt;p&gt;In the task's &lt;strong&gt;Integrations&lt;/strong&gt; tab:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Slack:&lt;/strong&gt; add the Slack integration and pick a channel.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Discord:&lt;/strong&gt; create a webhook in your Discord channel settings, then add an HTTP webhook on &lt;strong&gt;Run succeeded&lt;/strong&gt; with this payload template:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"content"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"New Vinted listings: https://console.apify.com/view/runs/{{resource.id}}"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each message links to the run, where you'll see the new listings with photos and prices.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it costs
&lt;/h2&gt;

&lt;p&gt;The scraper charges per result, with platform usage and proxies included:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;$0.02 per monitored search per run&lt;/li&gt;
&lt;li&gt;$0.0015 per listing saved&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;An hourly monitor that finds 10 new listings per run costs $0.035 per run, about $0.84 a day. Set a maximum cost per run in the task options if you want a hard cap.&lt;/p&gt;

&lt;h2&gt;
  
  
  Going further
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;See what sells.&lt;/strong&gt; Add &lt;code&gt;"trackSoldItems": true&lt;/code&gt; and &lt;code&gt;"maxItemsPerSearch": 0&lt;/code&gt; to a narrow search and run it daily. Listings that disappear are checked on their item page and reported as sold or removed, with their last price. Sold detection scans the whole search on every run ($0.008 per search page), so keep the search specific.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Find the cheapest country.&lt;/strong&gt; Add &lt;code&gt;"compareCountries": ["de", "it", "es"]&lt;/code&gt; and the run ends with a summary of the median price per country in EUR, with the cheapest and the most expensive country.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Watch a seller.&lt;/strong&gt; Paste a seller's profile URL into &lt;strong&gt;Vinted URLs&lt;/strong&gt; to get the profile and all their active listings; with a monitoring ID and &lt;code&gt;"trackSoldItems": true&lt;/code&gt;, later runs report their new listings and the ones that sold.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Get more than 960 results.&lt;/strong&gt; Set &lt;code&gt;"maxItemsPerSearch": 0&lt;/code&gt;. Searches above Vinted's 960-result limit are split into price ranges automatically and merged without duplicates.&lt;/p&gt;

&lt;h2&gt;
  
  
  Use it responsibly
&lt;/h2&gt;

&lt;p&gt;The scraper reads only public data, the same any visitor sees, and never logs in. Seller usernames and locations are personal data under GDPR, so collect them only when you need them, and follow Vinted's terms.&lt;/p&gt;

&lt;p&gt;Try it here: &lt;a href="https://apify.com/upright_inmate/vinted-scraper" rel="noopener noreferrer"&gt;Vinted Scraper on Apify&lt;/a&gt;. If something doesn't work for your search, open an issue on the Actor page and I'll look at it.&lt;/p&gt;

</description>
      <category>webscraping</category>
      <category>python</category>
      <category>automation</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
