Kleinanzeigen Deal Finder – Underpriced Ads & Price Drops
Under maintenancePricing
from $2.00 / 1,000 new listing scrapeds
Kleinanzeigen Deal Finder – Underpriced Ads & Price Drops
Under maintenanceMonitor Kleinanzeigen.de searches and get only new listings, scored against the market median: deals, price drops, scam flags. For resellers & flippers.
Pricing
from $2.00 / 1,000 new listing scrapeds
Rating
0.0
(0)
Developer
ninhothedev
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
4 days ago
Last modified
Categories
Share
Monitor Kleinanzeigen.de (ex eBay Kleinanzeigen) searches and get only the new listings since your last run – each one scored against the market median of comparable ads. The actor flags deals (e.g. 25% below market and fresh), price drops and suspiciously cheap bait ads, so resellers and flippers see bargains minutes after they are posted. Search by keyword, city/PLZ + radius, category and price – or paste search URLs. Export JSON/CSV/Excel or push alerts via webhooks.
What data can you extract?
| Field | Example |
|---|---|
isDeal, dealScore | true, 41 (% below median) |
price, medianPrice, percentBelowMarket | 140, 239, 41 |
medianBasis, medianSampleSize | variant:128gb, 37 |
condition, intent, variantKey | normal, offer, 128gb |
priceDropped, previousPrice, priceDropPercent | true, 180, 22 |
suspiciousTooCheap | false |
title, url, location, zipCode | iPhone 13 128GB, …, 10115 Mitte |
postedAt, listingAgeHours | 2026-10-15T18:51Z, 0.3 |
sellerType, shippingAvailable, imageUrl | private, true, … |
description, allImages, attributes (details) | full text, photos, Marke/Modell/Zustand |
Plus every field of the Kleinanzeigen Scraper (same engine).
How deals are scored
- The median only uses clean offers: no TOP ads, no "Suche" (wanted) ads, no defective / for-parts / accessory listings.
- Listings are clustered by variant (e.g. 128 GB vs 256 GB) and compared like-for-like; the lowest/highest 10% are trimmed.
- Strict title match keeps only titles containing every search word (Kleinanzeigen's search is fuzzy) and ignores keyword stuffing like "kein iPhone 13".
- More than 75% below median =
suspiciousTooCheap, never a deal.
How to use
- Enter keywords (e.g.
iphone 13 pro,rolex submariner) plus optional location, radius, category and price range – or paste search URLs. - Set the deal threshold (default 25%) and max listing age (default 6 h).
- Create an Apify Schedule (e.g. every 10 minutes) and add a webhook / Make / Zapier / n8n flow to get alerts for
isDeal = true.
{"searchQueries": ["iphone 13 pro"],"location": "Berlin","radiusKm": 50,"dealThresholdPercent": 25,"maxListingAgeHours": 6,"dealsOnly": true}
Output example
Real item from a test run:
{"id": "3541976963","title": "Iphone13 pro","price": 85,"isVB": false,"medianPrice": 250,"percentBelowMarket": 66,"dealScore": 66,"isDeal": true,"medianBasis": "global","medianSampleSize": 82,"suspiciousTooCheap": false,"intent": "offer","condition": "normal","variantKey": "","priceDropped": false,"url": "https://www.kleinanzeigen.de/s-anzeige/iphone13-pro/3541976963-173-7888","location": "15569 Woltersdorf","zipCode": "15569","postedAt": "2026-10-15T18:46:00+00:00","listingAgeHours": 0.13,"sellerType": "private","shippingAvailable": true,"isInitialRun": true,"priceTypeLabel": "Festpreis","sellerId": "12345678"}
Pricing
Pay per event: $0.002 per new listing, $0.05 per deal found, $0.005 per detail page (only with details on). Example: monitoring that yields 1,000 new listings with 20 deals costs about $2 + $1 = $3. Already-seen listings are never charged again. Use Only output deals & price drops to pay only for what matters.
Use cases
- Resellers & flippers: catch underpriced phones, consoles, watches, bikes, furniture first.
- Dealers & buyers: watch competitor prices and price drops.
- Market research: track the median price of a product over time.
- Arbitrage: spot regional price differences with location + radius.
Integrations
Apify API, webhooks, Make, Zapier, n8n, Google Sheets, Slack, e-mail.
from apify_client import ApifyClientclient = ApifyClient("<YOUR_API_TOKEN>")run = client.actor("ninhothedev/kleinanzeigen-deal-finder").call(run_input={"searchQueries": ["iphone 13 pro"], "location": "Berlin", "radiusKm": 50, "dealsOnly": True})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["title"], item["price"], item["url"])
FAQ
How does "new since last run" work? Seen IDs and prices are stored per search in a key-value store. If the actor cannot access a named store (limited permissions), a run behaves like a first run and returns all current listings.
Is it legal? Only public listing data is collected – no contact data. Use it in line with GDPR and the site terms.
eBay sold-price comparison? Best-effort only: eBay.de currently requires a login for sold-price searches, so these fields are usually empty.
Support? Open an issue on the actor page; every run writes a RUN_SUMMARY record.
Related actors
- Kleinanzeigen Scraper – bulk export of listings with full details.