Tags: side-hustle, reselling, api, automation, vinted
Every reseller knows the feeling: you spot a Game Boy Micro for €100 on Vinted, you’re pretty sure it flips for more on eBay, but by the time you’ve checked sold listings, filtered out the broken ones and done the fee math, someone else bought it.
The problem isn’t finding listings — it’s valuing them fast. So I automated the whole loop: scan live listings on Vinted, Wallapop and Milanuncios, value each item against confirmed eBay sold prices (not asking prices!), subtract every fee, and return only the listings with real profit in them. This tutorial shows you how to run it yourself in 5 minutes, across Spain, France, Germany, Italy or the UK.
Three traps kill naive flipping bots:
Sold listings — what buyers actually paid. Any valuation built on active listings is fantasy.The Second-hand Deal Scanner EU Actor handles all three: sold-only valuations, aggressive junk/accessory/price-sanity filters (every rejection is counted so you can audit it), and a fee model you can override.
Grab a free Apify API token, then:
const res = await fetch(
'https://api.apify.com/v2/acts/jdepablos~second-hand-deal-scanner-es/run-sync-get-dataset-items?timeout=300',
{
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.APIFY_TOKEN}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
query: 'Game Boy Micro',
country: 'ES', // or FR, DE, IT, UK
marginMinPct: 25, // only show ≥25% estimated margin
}),
},
);
console.log(await res.json());
A real result from my test runs:
{
"query": "Game Boy Micro",
"valuation": { "median": 217.47, "n": 184, "confidence": "high", "currency": "EUR" },
"deals": [
{
"source": "vinted",
"title": "Game Boy micro en perfecto estado",
"price": 100,
"url": "https://www.vinted.es/items/...",
"economics": {
"estBuyTotal": 108.70,
"estResaleNet": 162.92,
"estProfit": 54.22,
"estMarginPct": 49.65,
"verdict": "deal"
}
}
],
"meta": {
"listingsScanned": 89,
"filteredOut": { "titleMismatch": 21, "accessory": 3, "junk": 2, "suspiciouslyCheap": 5 }
}
}
Read that valuation line: 184 confirmed sales, median €217.47, high confidence. The console at €100 has ~€54 of profit after buyer protection, shipping and resale fees. And look at filteredOut — 31 listings were rejected (wrong product, accessories, too-cheap-to-be-real). That’s the boring machinery that makes the number trustworthy.
The real power move: a watchlist of items you know well, scanned every morning.
{
"items": [
{ "query": "Game Boy Micro" },
{ "query": "PlayStation Vita OLED", "priceMax": 150 },
{ "query": "iPhone 13 128gb", "marginMinPct": 20 },
{ "query": "Lego 75192", "priceMax": 500 }
],
"country": "ES"
}
Schedule it in the Apify Console (Actor → Schedule → daily 8:00), wire the webhook to Telegram or Slack, and you’ll wake up to a ranked list of real opportunities. Each item scan costs $0.04 flat — a 10-item daily watchlist is ~$12/month, or roughly the profit of one decent flip.
Because valuation and scanning are decoupled, you can hunt arbitrage between markets: scan French Vinted but value against German eBay (country: "FR", marketplaceForComps: "ebay.de"). Retro games routinely price 15-30% apart between EU markets — that spread is the whole business model for some resellers.
The Actor doubles as an MCP tool:
{
"mcpServers": {
"deal-scanner": {
"url": "https://mcp.apify.com?tools=jdepablos/second-hand-deal-scanner-es",
"headers": { "Authorization": "Bearer <APIFY_TOKEN>" }
}
}
}
Then: “Is there any Game Boy Micro under €120 in Spain right now that flips for 30%+? Show the math.” The agent runs the scan and reasons over economics — no parsing on your side.
Stop valuing by gut feel. Try the Deal Scanner with a query you know well — the first scan costs 4 cents and will probably teach you something about your market. More copy-paste examples (including the standalone eBay Sold Price Appraiser that powers the valuations) live in the cookbook repo.