Kleinanzeigen Deal Monitor — New Ads, Price Drops & Alerts avatar

Kleinanzeigen Deal Monitor — New Ads, Price Drops & Alerts

Pricing

Pay per event

Go to Apify Store
Kleinanzeigen Deal Monitor — New Ads, Price Drops & Alerts

Kleinanzeigen Deal Monitor — New Ads, Price Drops & Alerts

Monitor Kleinanzeigen.de searches: new ads, price drops, free items and underpriced deals near you, with scam-risk flags and Telegram or webhook alerts. Pay only for new rows. JSON, CSV, API, MCP.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Viktor Kondas

Viktor Kondas

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Features

Limited permissions

Share

Be first to the best Kleinanzeigen deals near you. Save your searches once, schedule the monitor, and get new ads, price drops, free items and listings priced below the market — with a scam-risk check — straight to Telegram or your webhook. You only pay for what's new: $0.02 per search check + $0.001 per new or changed ad.

Independent tool, not affiliated with Kleinanzeigen. Reads public ads only — no login, no account. 🇩🇪 Kleinanzeigen Alarm mit Telegram-Benachrichtigung, Preisvergleich, Entfernung und Betrugs-Check — als Bot, der nur meldet, was wirklich neu ist.

What does Kleinanzeigen Deal Monitor do?

  • Watches your saved searches — keyword, category, postcode + radius, price, private or commercial sellers, shipping or pickup. Or paste any kleinanzeigen.de search URL.
  • Finds real deals — compares each ad with similar live ads (outliers, accessories and empty boxes removed) and flags those well below the median.
  • Warns about likely scams — far-below-market prices, new accounts, "PayPal Freunde" or WhatsApp-only contact.
  • Shows pickup distance from your postcode and filters by maximum distance.
  • Alerts you on Telegram or any webhook, in English, German or Hungarian.
  • Ignores bumped Top ads and relisted duplicates, so "new" really means new.
  • Catches free items ("zu verschenken") and keeps "defekt" ads as their own condition for repair flippers.
  • Charges only for new or changed ads on repeat runs.
  • Tells the truth about blocks — a blocked or captcha page is reported as a failed search (and not charged), never as "0 results".

Who is it for?

You are…You use it to…
Reseller / flipperCatch underpriced electronics, bikes, tools and furniture near you
Repair flipperFind "defekt" items to fix and resell
Collector / bargain hunterGet pinged when LEGO, cameras or retro games appear under your price
Dealer / analystTrack regional prices and competitors' stock

Ready-made examples (one click)

ExampleWhat you get
Find underpriced iPhones on Kleinanzeigen BerliniPhone ads below the local median, with scam flags
Get alerts for free items in Hamburg"Zu verschenken" ads within 15 km
Track e-bike price drops in MunichE-bike ads whose price fell
Monitor new LEGO listings across GermanyNewest LEGO ads with shipping
Export private-seller road bike ads to CSVSnapshot of private road-bike ads with distance

How to use it

  1. Add a search (keyword, postcode, radius, price…) or paste Kleinanzeigen search URLs.
  2. Set your home postcode to see pickup distance.
  3. Optional: add your Telegram bot token + chat ID, or a webhook URL.
  4. Run once, then Schedule it (every 30–60 minutes is a good start).

The very first run of a monitor is its baseline: existing ads are written to the dataset, but not announced as "new" or "free". From the second run on, only changes are written, charged and alerted.

Telegram in 2 minutes

  1. In Telegram open @BotFather, send /newbot, copy the token.
  2. Message your new bot once, then get your chat ID (e.g. from @userinfobot).
  3. Paste both into the input and pick the alert language (English, Deutsch or Magyar).

Search example

{
"mode": "monitor",
"searches": [
{ "name": "E-Bike München", "query": "e-bike", "postcode": "80331", "radiusKm": 30, "priceMin": 300, "sellerType": "private" }
],
"homePostcode": "80331",
"alertOn": ["DEAL", "PRICE_DROP", "FREE_ITEM"],
"telegramBotToken": "123456:ABC-DEF…",
"telegramChatId": "123456789"
}

Input

FieldDescription
modemonitor (only new/changed ads + alerts) or snapshot (full export)
searches / searchUrlsYour saved searches (query, categoryId, postcode, radiusKm, priceMin, priceMax, sellerType, shippingOnly, buyNowOnly, conditions, mustInclude, mustExclude) or pasted Kleinanzeigen URLs
homePostcode, maxDistanceKmPickup distance and filter (works across several searches)
sellerType, adTypePrivate / commercial · offers (default) / wanted ads (Gesuche)
priceTypesFestpreis · VB · zu verschenken · auf Anfrage. Choose only free to watch the free-items category
conditionsNew · like new · very good · good · acceptable · defective ("defekt") — defective is off by default
excludeJunkRemove accessories, wanted/swap posts, empty boxes and spare parts (on by default)
includeTopAdsWrite Top ads as rows too (they never count as new)
alertOnNEW, PRICE_DROP, DEAL, FREE_ITEM, LIKELY_SOLD_OR_REMOVED
dealThresholdPct, minCompsForDealHow far below the median counts as a deal, and how many similar ads are needed
hideHighScamRiskDrop ads scored high instead of flagging them
includeItemDetailsDescription, condition, attributes, seller account age and badges ($0.002 per ad)
alertLanguage, telegramBotToken, telegramChatId, webhookUrl, webhookSecretAlert destinations (stored as secrets)
maxItemsPerSearchAds per search — also your cost cap

Output

One row per event. Example:

{
"eventType": "DEAL",
"searchName": "iPhone 14 Berlin",
"adId": "3566202383",
"title": "iPhone 14 128GB Mitternacht, Top Zustand",
"price": 390,
"priceType": "negotiable",
"priceRaw": "390 € VB",
"condition": "very_good",
"postcode": "10437",
"city": "Berlin",
"distanceKm": 4.2,
"shippingAvailable": true,
"buyNowAvailable": false,
"isTopAd": false,
"isCommercial": false,
"compsCount": 23,
"compsMedian": 520,
"discountVsMedianPct": 25,
"compsConfidence": "high",
"isDeal": false,
"scamRisk": "low",
"scamFlags": [],
"postedAt": "2026-11-12T14:32:00+01:00",
"postedAtPrecision": "minute",
"url": "https://www.kleinanzeigen.de/s-anzeige/…",
"status": "ok"
}

postedAt is normalised to Europe/Berlin; postedAtPrecision tells you whether the site gave a time (minute, for "Heute/Gestern" ads) or only a date (day).

Each run also saves an OUTPUT summary per search: status (OK, PARTIAL, VALID_EMPTY, UPSTREAM_FAILED), pages fetched, results reported by the site, coverage %, counts per event type, alerts sent and the proxy tier used. A blocked run is never shown as "no results".

How much does it cost?

EventPriceWhen
Actor startApify defaultOnce per run
Search check$0.02Each saved search per run
New or changed ad$0.001Each row written (monitor: only new/changed)
Ad details$0.002Only if you turn on details

Examples: 1 search checked hourly ≈ $14.40/month + new ads. A one-off export of 1,000 ads ≈ $1.02. A monitor run with 5 searches costs about $0.10 plus $0.001 per new ad — set Max cost per run to stay in control. Failed or blocked searches cost nothing. Higher Apify plans get Store discounts automatically.

Why it's different

  • Deals, not just rows — discount vs similar live ads, with junk and outliers removed.
  • Scam-risk flags on every ad (price, account age, payment and contact wording).
  • Pickup distance from your postcode.
  • Top ads and relists don't spam your alerts.
  • Honest status — blocked ≠ empty; coverage % per search.
  • Free-item alerts and "defekt" kept as its own condition.
  • Telegram built in, three alert languages.

Use with AI agents (MCP)

"Use kondasviktor/kleinanzeigen-deal-monitor in snapshot mode to find e-bikes under €900 within 30 km of 80331, private sellers only."

FAQ

Are the medians sold prices? No — Kleinanzeigen doesn't publish sold prices. Medians are current asking prices from similar ads (VB prices count as asking prices), plus a rolling 30-day history of your monitor.

How is "similar" decided? Your saved search defines the product: ads from the same search are compared with each other. Keep searches specific ("iphone 14 pro 256") for a meaningful median. Defective ads are compared only with other defective ads.

How often should I schedule it? Every 30–60 minutes for hot categories, daily for research.

What does "scam risk" mean? A heuristic score from price, account age and payment/contact wording. It helps you decide what to check first — it is not a verdict about any seller. Account-age and contact checks need includeItemDetails.

Kleinanzeigen only shows 1,250 results per search. Right — the site stops at 50 pages. If you ask for more than that, the Actor splits the price range into bands and reports the coverage %. For monitoring, narrow the search instead.

Does it work for cars or property? It reads any category, but the deal logic is tuned for goods. Use category filters and price bands for vehicles.

Is it legal? It reads public ads without logging in and stores only seller IDs, never names or phone numbers. Check Kleinanzeigen's terms for your use case. Not legal advice.

Something broke? Open an issue — fixes within 48 hours.

Limitations

  • Seller-age and contact signals need ad details (extra cost). The view counter on ad pages is filled in by the site's JavaScript, so viewCount is usually empty.
  • Deal verdicts need at least 8 comparable ads; rare items show compsConfidence: low.
  • Condition is judged from the title on search results (e.g. "defekt", "Bastler") and from the ad page when details are on.
  • Not a buying bot — it never contacts sellers.

Postcode coordinates: GeoNames postal codes, licensed CC BY 4.0.


Built by Viktor Kondas · Vibe Coder's Life · Custom monitors: hello@vibecoderslife.com