Vinted Products Deal Detector
Pricing
from $5.00 / 1,000 results
Vinted Products Deal Detector
Get instant alerts when underpriced items appear on Vinted. Pick your product, price range, and condition — it learns the real market price and pings you the moment a genuine bargain shows up, with your savings on every alert.
Pricing
from $5.00 / 1,000 results
Rating
0.0
(0)
Developer
Alkausari M
Maintained by CommunityActor stats
0
Bookmarked
5
Total users
2
Monthly active users
2 hours ago
Last modified
Categories
Share
Get an instant alert the moment an underpriced item appears on Vinted. You pick the product, your price range, and the condition you want — the Actor learns the real market price, watches the newest listings around the clock, and pings you only when something is a genuine bargain. Every alert tells you the typical market price and how much you'd save, so you can act in seconds.
Built and maintained by Alkausari M.
✦ Highlights
- 🔔 Instant deal alerts — delivered straight to Slack, Discord, Telegram, Make, Zapier, or your own app
- 📉 Real market-price intelligence — knows the going rate for each condition from hundreds of live listings, not guesswork
- 💸 Savings shown on every alert — see exactly how far below the typical price each deal is, in $ and %
- 🎯 You set the filters — product, price range, and the exact conditions you'll accept
- 🧠 No spam, no duplicates — you never get the same listing twice, and only real bargains come through
- ⏱ Set it and forget it — schedule one product per run and let it watch around the clock
- 📊 Export anywhere — JSON, CSV, Excel, or live via the Apify API
- 🛡 Anti-blocking built-in — residential proxy support and smart retries
⚙ How it works
- Name your product. Just type what you're after — e.g. "Dior Sauvage" or "iPhone 15". The Actor builds the Vinted search for you automatically.
- Set your filters. Add a price range and the conditions you'll accept, and where you want alerts sent.
- Let it run. The Actor figures out the normal market price, keeps an eye on new listings, and alerts you instantly whenever a deal beats the market by a meaningful margin (set automatically by the item's value).
// Example input — one product per run{"product": "Dior Sauvage","webhookUrl": "https://webhook.site/your-unique-url","minPrice": 30,"maxPrice": 90,"conditions": ["Good", "Average"],"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }}
[!TIP] Use the product name the way buyers search for it — a clear brand + model ("Nike Air Force 1", "Dior Sauvage 100ml") gives the most relevant matches. Your price range and conditions are applied automatically; you don't need to set up anything on Vinted itself.
For best results, schedule the Actor to run every 10–30 minutes in your Apify Console. The best deals sell within minutes, so the more often it checks, the more you catch.
Powered by the Vinted Products Crawler. To read listings from Vinted, this Actor automatically uses its companion extractor, the Vinted Products Crawler. You don't need to install or set up anything — the first time the Deal Detector runs, the crawler is added to your Apify account automatically and called behind the scenes.
[!IMPORTANT] Billing: the Vinted Products Crawler runs as a separate Actor in your Apify Console, so each job appears as its own run with its own cost. This is expected — the Deal Detector orchestrates the crawler and layers the market-price and deal-detection logic on top.
💰 Market price & savings — on every deal
This is what makes the alerts worth acting on. For each product and each condition, the Actor builds a market median price from hundreds of recent listings — the honest "going rate." Every new listing is measured against it:
Market price (Very good condition): $120 ← what this normally sells forThis listing: $80─────You save: $40 ( 33% below market ) ✅ DEAL
The discount needed to count as a deal is set automatically from each item's market value — cheaper items need a bigger discount to be worth flagging (a 20% saving on a $10 item is only $2), while higher-value items qualify at a smaller percentage. Everyday pricing is ignored, so your alerts stay meaningful instead of constant. Every alert carries:
| Metric | What it tells you |
|---|---|
| Estimated market price | The typical price this item sells for in its condition |
| Estimated savings | How much cheaper this listing is than the market price, in $ |
| Estimated profit | Your savings after resale costs — market price − listing price − (resale fee % × market price). The resale fee defaults to 10% and is adjustable in the input |
| % below market | The discount as a percentage |
| Based on | How many listings the market price was calculated from |
[!NOTE] For a brand-new or very specific search, the Actor needs to see enough listings before it can trust a market price. Until then, those items are recorded but no alert is sent — this prevents false bargains based on too little data.
🔎 How your filters shape the results
The Actor does two things, and your filters apply to both:
- Building the market price (runs occasionally in the background): it scrapes many listings of your product within your price range and condition to work out the typical price. Your price range matters here — it keeps unrelated cheap items out of the calculation (e.g. phone cases and cables when you search "iPhone 15"), so the market price reflects the actual product, not accessories.
- Watching for deals (every run): it scans the newest listings in the same price range and condition and compares each one to that market price.
About "Sort by":
- Newest first (recommended) and Relevance are applied to both — so the market price is based on current, representative listings.
- Price: low to high / high to low are applied to the live deal scan only. Using them to build the market price would distort it (it would look at just the cheapest or most expensive items), so the Actor automatically skips them there.
📦 What you get back
Every alert is also saved as a structured record you can download or pipe anywhere:
Each evaluated item is saved as one record. The webhook delivers the exact same record — what you download mirrors what your alert receives:
{"alertName": "Dior Sauvage","itemId": "8700440386","title": "Dior Sauvage EDT 100ml — barely used","url": "https://www.vinted.com/items/8700440386-dior-sauvage","condition": "Very good","brand": "Dior","adPrice": 45, // the listing's asking price"marketPrice": 70, // typical market price for this condition"estimatedSaving": 25, // marketPrice − adPrice"estimatedProfit": 18, // saving after resale costs"pctBelowMarket": 35.7,"discountThreshold": 25, // the % it needed to beat (auto, by value)"marketSampleSize": 96, // listings the market price was based on"isDeal": true,"noBaseline": false,"seller": "...", "sellerLocation": "...", "uploaded": "an hour ago","freeShipping": true, "images": ["..."], "description": "...","scrapedAt": "2026-06-05T14:32:11.000Z"}
When a deal is found, the webhook wraps that same record:
{"event": "deal_detected","deal": { /* exactly the record above */ }}
[!NOTE] The dataset stores every evaluated item (so you can review near-misses too), each with
isDeal. The webhook fires only for items whereisDealistrue. For non-deal or "no baseline" rows, the market fields (marketPrice,estimatedSaving, etc.) arenull.
📋 Input
One product per run. To monitor several products, set up one scheduled task per product.
| Field | Description | Required | Default |
|---|---|---|---|
Product (product) | The product name to search for (e.g. "Dior Sauvage", "iPhone 15") — the Actor builds the Vinted search automatically | Yes | — |
Webhook URL (webhookUrl) | Where alerts are delivered (Slack, Discord, Make, Zapier, or your app) | Yes | — |
Price range (minPrice / maxPrice) | Only alert on items within this price band | No | no limit |
Condition (conditions) | How picky to be, as simple tiers (each covers several Vinted conditions so more listings match): Good (New with tags, New without tags, Very good), Average (Good), Poor (Satisfactory, Not fully functional) | No | Good + Average |
Sort by (order) | How listings are scanned: Newest first (recommended), Relevance, Price: low to high, Price: high to low. Newest first and Relevance also shape the market-price baseline; the price sorts apply to the live scan only (they'd distort the median). See How your filters shape the results | No | Newest first |
Advanced: Vinted URL (vintedUrl) | Power users: paste a fully-filtered Vinted search URL (any category, brand, size, colour, price, etc.). When set, it defines the search and the Product/Conditions fields are ignored. Include price in the URL; the Actor only strips sort/page and applies your chosen Sort | No | — |
Resale fee (resaleFeePct) | Assumed resale cost (fees + shipping) as a % of market price, used for the profit estimate | No | 10% |
| Proxy Configuration | Leave as default if unsure; residential proxies improve reliability | No | Residential |
[!NOTE] Advanced settings (how many pages to scan, how often to refresh the market price, how long to remember seen items) have sensible defaults — you can ignore them unless you want to fine-tune cost or freshness.
💡 Use cases
- Reselling & flipping — catch items priced below market, resell at the going rate.
- Personal bargain hunting — set your wishlist and get pinged the moment a deal drops.
- A deal-alert service — schedule one task per product and fan the alerts out to your subscribers.
- Price research — watch how the going rate for a category or brand moves over time.
- Automations — pipe deals into Slack, Sheets, Make, Zapier, or a custom app via the Apify API.
❓ FAQ
How does it know the "market price"? For each product and condition, it gathers hundreds of recent Vinted listings and takes the median — the middle price. That's a robust, real-world estimate of what an item normally sells for, and it refreshes automatically.
Will I get flooded with alerts? No. Two safeguards keep it quiet: an automatic discount threshold (scaled to each item's value) so only real bargains qualify, and duplicate filtering so you never see the same listing twice.
What's a "webhook" and how do I receive alerts? A webhook is just a link that receives the alert. For testing, create a free one at webhook.site and paste it in. For real use, connect Slack, Discord, Telegram, Make, or Zapier — or your own app — to turn each deal into a notification.
Why didn't the first run send any alerts? By design. The first run for a new search seeds quietly — it learns the market price and records the current deals to the dataset, but doesn't fire alerts for the entire existing backlog (which could be dozens at once). From the next run on, only genuinely new listings alert. If you want alerts on that first run (for testing or a one-time catch-up), enable Alert on the first run.
I'm not getting any alerts — why? Usually one of three things: it's the first run (seeds silently — see above), the Actor is still learning the market price, or your price range/conditions are very narrow. Widen the filters to catch more.
Why is there a "Vinted Products Crawler" in my account? That's the companion extractor this Actor uses to read listings from Vinted, the Vinted Products Crawler. It's added to your Apify account automatically the first time the Deal Detector runs — you don't need to set it up. Each crawler run is billed separately in your Console.
Can I filter by category, brand, or size? Yes — use the Advanced: Vinted URL field. Filter your search on vinted.com exactly how you want (pick the category, brand, size, colour, etc.), copy the URL from your browser, and paste it in. It replaces the simple product search, while your Sort and Price settings are still applied. Leave it empty if a product name is enough.
Can I monitor more than one product? Each run watches one product. To track several, create one scheduled task per product — each with its own filters and webhook. This keeps every run fast and focused.
How often should it run? Great deals sell fast. Schedule it every 10–30 minutes for the best catch rate.
Is it legal to use? The Actor only reads publicly visible listing data. Use it responsibly and in line with Vinted's Terms of Service.
📮 Support
Bugs, feature requests, or custom scraping work — open an issue on Apify or email alkausarimujahid@gmail.com.