Kleinanzeigen Scraper & Kleinanzeigen API: Deals & Alerts avatar

Kleinanzeigen Scraper & Kleinanzeigen API: Deals & Alerts

Pricing

from $0.70 / 1,000 ads

Go to Apify Store
Kleinanzeigen Scraper & Kleinanzeigen API: Deals & Alerts

Kleinanzeigen Scraper & Kleinanzeigen API: Deals & Alerts

Kleinanzeigen API & scraper for German classifieds (ex eBay Kleinanzeigen): Kleinanzeigen Autos, Kleinanzeigen Immobilien, Kleinanzeigen Wohnung mieten and all ads, Kleinanzeigen prices with a 0–100 deal score, monitor mode for new ads & price drops (Suchauftrag, Preisalarm), Kleinanzeigen alerts.

Pricing

from $0.70 / 1,000 ads

Rating

0.0

(0)

Developer

EuroScrape

EuroScrape

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

1

Monthly active users

3 hours ago

Last modified

Share

Kleinanzeigen Scraper: Deal Finder, Price-Drop Alerts & Full Ad Details

Scrape Kleinanzeigen.de (formerly eBay Kleinanzeigen), Germany's #1 classifieds site. Unlike a plain scraper, this one also tells you which ads are good deals, watches your searches for new ads and price drops, and can alert you instantly on Telegram, Discord or Slack.

Search by keyword, city, radius, price and seller type, or paste any Kleinanzeigen search URL. You get clean JSON, CSV or Excel output with numeric prices, exact timestamps, condition, category, GPS coordinates, shipping, view counts and seller profiles.

You only pay for ads you receive. There are no monthly fees, and failed pages cost nothing.

German classifieds with instant new-ad alerts

✨ What makes it different

This Actor
📊 Deal score for every adEach price is compared with the median of the most similar ads (matched on model, storage, variant…), plus Kleinanzeigen's own "similar ads" when the page shows them. You get marketMedianPrice, priceVsMarketPct and a 0–100 dealScore.
🚗 Kleinanzeigen Autos: year & mileageCar ads get mileageKm and firstRegistration (EZ), and their market price comes from cars of the same search first registered within a year and with similar mileage, not from look-alike titles. Dealers (PRO, dealerName) count once, and possibly_defective flags Bastler, Motorschaden or Unfallwagen ads, which are kept out of the market price.
🏠 Kleinanzeigen Immobilien: price per m²Flats and houses (mieten or kaufen) get livingAreaSqm, rooms, pricePerSqm, and the median €/m² of the same postal code (marketPricePerSqm), so the deal score compares like with like. Private landlord or agency (sellerType, agencyName) is read straight from the results page.
🧾 Free market summaryEvery run also saves a MARKET_SUMMARY record, computed on all ads read (not only those returned, and not charged): median price per search; for real estate the median €/m² by postal code and by number of rooms; for cars the median price and mileage by year.
🔔 Monitor mode with price dropsName a search and schedule it. Each run returns only new ads and ads whose price dropped, with the old price and the % drop.
📲 Built-in alertsTelegram (with photo), Discord, Slack or any webhook (Make, Zapier, n8n). No extra integration needed.
👀 View countsViews and views per day for every detailed ad, so you can see how hot a listing is.
⚠️ Scam signalsriskFlags such as price far below market, brand-new account, no photos, or suspicious wording (PayPal Friends, Western Union, WhatsApp-only…).
🎛️ The site's own filtersCategory, sort (newest, cheapest, most expensive), "Direkt kaufen" only, shipping only, photos only, private or commercial sellers, offers or wanted ads.
🧭 Multi-searchSeveral keywords × several cities in one run, with automatic de-duplication and balanced results.
🧾 Rich detailsExact posting time, condition (normalized to English), all attributes, category IDs, GPS, shipping cost, buy-now, "offer possible", secure payment, seller type, member-since date, ads online and rating badges.
🛡️ ReliableA fast HTTP scraper with automatic proxy escalation. It handles both page layouts Kleinanzeigen currently serves.

🎯 Use cases

  • Reselling and flipping: get pinged within minutes when an underpriced iPhone, e-bike or PS5 appears near you.
  • Price research: see what used products really cost in each region, with sold similar ads when Kleinanzeigen shows them.
  • Dealers and shops: track competitors' listings and prices, and spot commercial sellers.
  • Market data and AI agents: the clean, typed output is ready for spreadsheets, BI tools or LLM agents via the Apify MCP server.

🚀 Quick start

Find deals on an iPhone 13 around Berlin and Munich:

{
"keywords": ["iphone 13"],
"locations": ["Berlin", "München"],
"radiusKm": 20,
"excludeKeywords": ["defekt", "tausch", "suche"],
"minDealScore": 65,
"maxItems": 50
}

Get a Telegram alert for every new e-bike under €800 in Hamburg (schedule it every 15 min):

{
"keywords": ["e-bike"],
"locations": ["Hamburg"],
"radiusKm": 30,
"maxPrice": 800,
"monitorName": "ebike-hamburg",
"telegramBotToken": "123456:ABC...",
"telegramChatId": "123456789"
}

Bikes in Berlin you can pay online with buyer protection ("Direkt kaufen"), cheapest first, bikes category only:

{
"keywords": ["fahrrad"],
"locations": ["Berlin"],
"radiusKm": 10,
"categoryId": "217",
"sortBy": "price_asc",
"buyNowOnly": true,
"maxItems": 30
}

Category, sort, "Direkt kaufen" and shipping are asked to Kleinanzeigen itself, so no page is read for nothing: on 22 October 2026 this returned 30 ads, all "Direkt kaufen", all in the bikes category. The category number is the c217 of a Kleinanzeigen category URL (161 electronics, 173 phones, 279 consoles, 216 cars, 80 home & garden, 203 flats for rent…).

Kleinanzeigen Immobilien: rentals in Berlin with the price per m² of each postal code, private landlords only:

{
"searchUrls": [{ "url": "https://www.kleinanzeigen.de/s-wohnung-mieten/berlin/c203l3331" }],
"sellerType": "private",
"maxItems": 100
}

Flat alert: new Berlin rentals with at least 2 rooms and 50 m², at most €16/m², checked every 15 minutes (schedule it):

{
"searchUrls": [{ "url": "https://www.kleinanzeigen.de/s-wohnung-mieten/berlin/c203l3331" }],
"minRooms": 2,
"minAreaSqm": 50,
"maxPricePerSqm": 16,
"monitorName": "berlin-flats",
"telegramBotToken": "123456:ABC...",
"telegramChatId": "123456789"
}

Ads that don't pass these filters are not charged. They are strict filters: on 20 October 2026, 20 of 618 Berlin rentals matched this one.

Some cards don't show who is renting: those ads come back with sellerType: null unless you also set includeDetails: true, which reads the ad page and applies the filter to them too.

On 20 October 2026, 60 Berlin rentals from this search page came back in under 4 seconds, 59 of them with living area and rooms. The median asking rent was about €21.70/m², and the best-scored flats were around €8–10/m² (older contracts and "Nachmieter gesucht" ads).

Full details for any search URL:

{
"searchUrls": [{ "url": "https://www.kleinanzeigen.de/s-fahrraeder/k0c217" }],
"includeDetails": true,
"maxItems": 200
}

📦 Output example (a real ad, with includeDetails)

{
"id": "3526178105",
"url": "https://www.kleinanzeigen.de/s-anzeige/iphone-13-mini-blau-128gb/3526178105-173-6182",
"title": "Iphone 13 mini blau 128gb",
"price": 150,
"priceType": "FIXED",
"priceText": "150 €",
"currency": "EUR",
"postedAt": "2026-09-29T05:53:43.000Z",
"location": "85640 Kr. München - Putzbrunn",
"postalCode": "85640",
"state": "Bayern",
"latitude": 48.079455204269486,
"longitude": 11.707305908203125,
"category": "Smartphones",
"categoryId": 173,
"condition": "good",
"attributes": {
"Art": "Apple",
"Modell": "iPhone 13 mini",
"Farbe": "Blau",
"Gerät & Zubehör": "Gerät",
"Zustand": "Gut",
"Versand": "Versand möglich"
},
"shippingAvailable": true,
"shippingText": "+ Versand ab 6,19 €",
"buyNowAvailable": true,
"offerPossible": true,
"images": [
"https://img.kleinanzeigen.de/api/v1/prod-ads/images/bb/bb77743f-ae9a-4ac4-b37b-5fcf535a3f38?rule=$_59.JPG"
],
"views": 47,
"viewsPerDay": 47,
"marketMedianPrice": 225,
"marketConfidence": "high",
"marketSource": "search_comparables",
"priceVsMarketPct": -33,
"dealScore": 83,
"comparableAds": [
{
"id": "3526076524",
"title": "iPhone 13 mini 128 GB midnight blue",
"price": 225,
"url": "https://www.kleinanzeigen.de/s-anzeige/iphone-13-mini-128-gb-midnight-blue/3526076524-173-6444"
},
{
"id": "3524663960",
"title": "iPhone 13 mini 128gb Midnight",
"price": 250,
"url": "https://www.kleinanzeigen.de/s-anzeige/iphone-13-mini-128gb-midnight/3524663960-173-16395"
}
],
"similarAdsMedianPrice": 160,
"similarAdsSoldCount": 0,
"riskFlags": [],
"seller": {
"id": "…",
"name": "…",
"type": "private",
"activeSince": "2014-06-17",
"adsOnline": null,
"badges": [
"TOP Zufriedenheit",
"Sehr freundlich",
"Besonders zuverlässig"
]
},
"changeType": null,
"search": {
"keyword": "iphone 13",
"location": "München"
}
}

Without includeDetails you still get the id, url, title, numeric price, price type, location, postal code, posting time, shipping, buy-now, image, description snippet and the full deal analysis.

In monitor mode, a price drop looks like this: "changeType": "price_drop", "previousPrice": 520, "priceDropPct": 13.

📊 How the deal score works

  1. We collect the ads from your search, pooled across all your cities for the same keyword.
  2. For each ad, we find the most similar listings. We compare titles with TF-IDF weighting, so rare, distinguishing words like "Pro", "Max" or "256GB" count far more than words every ad shares ("iPhone", "13").
  3. We take the similarity-weighted median of their prices. If comparables are too scattered (for example accessories mixed with devices), we give no estimate rather than a wrong one.
  4. When Kleinanzeigen shows its own "similar ads" on the page, we use them as a second reference.
  5. Cars (when most ads of a search show mileage and first registration): each car is compared with the cars of the same search first registered within 1 year (2 as a fallback) and with mileage within ±35% (±50%), at least 5 sellers, a dealer counting once. On "golf" (20 October 2026), 56 of 80 cars got a price this way. Cars more than 3× or under ⅓ of that price get no score (wrecks, rentals, typos). When a search mixes makes and models (a whole category such as all cars in München, with no keyword), a car is only compared with cars of the same model read from the title (Golf with Golf, Fabia with Fabia), and gets no score if fewer than 5 sellers offer that model.
  6. Real estate (when most ads of a search show a living area): titles say little about a flat, so each ad's €/m² is compared with the median €/m² of the same postal code (at least 5 other ads), else the same 3-digit postal area, else the whole search (marketSource tells which). Several ads from the same agency count as one, and an agency's ad is never compared with its own other ads: one student residence with 13 studios must not set a district's price. Rents and sale prices mixed in one search (or a typo in the area) give no score rather than a wrong one. The €/m² is the advertised price divided by the advertised area. For rentals that price is normally the cold rent (Kaltmiete); with includeDetails, each ad also gets a realEstate object with warmRent, additionalCosts (Nebenkosten), deposit (Kaution), warmRentPerSqm, floor, year built, plot area, availability and features (balcony, built-in kitchen, garden…). Rentals also get rentalType: furnished temporary lets (möbliert, auf Zeit, Zwischenmiete, Untermiete) are compared only with each other, and WG rooms and flat swaps (Tauschwohnung) get no market price, so neither a €400 WG room nor a swap offer passes for a cheap flat.

On a test set of 1,151 real ads, high-confidence estimates were within ~13% of the listed price (median error). A naive "median of the whole search" was off by ~60%. Treat medium estimates (~19% error) as a hint.

💰 Pricing

Pay per event:

EventPrice
Ad from search results (incl. deal analysis)$1.00 / 1,000 ads
Ad with full details (incl. views, seller, deal analysis)$2.00 / 1,000 ads
Run start (once per run)$0.003

Alerts, monitoring and deal analysis are included at no extra cost. Set a max budget per run and the Actor stops cleanly when it's reached.

💡 Tips

  • Deal hunting: use minDealScore: 65 together with excludeKeywords such as "defekt", "kaputt", "tausch" or "suche".
  • Monitoring: the first run of a new monitorName records everything currently online as the baseline. From the second run on, you only get what's new or cheaper. Schedule it in Apify (for example every 10–30 minutes).
  • Big searches: Kleinanzeigen shows about 25 ads per page and at most ~50 pages per search. Split by city or price range to go further.
  • Telegram setup: create a bot with @BotFather to get the token, send it one message, then get your chat ID from @userinfobot.

🤖 For AI agents

  • Minimal input: { "keywords": ["iphone 13"], "maxItems": 20 }.
  • Every price is a number (price), with the type in priceType (FIXED, NEGOTIABLE, GIVE_AWAY, ON_REQUEST).
  • dealScore runs from 0 to 100; 50 means priced at market.
  • postedAt is an ISO-8601 UTC timestamp.
  • Use id as the unique key.

This Actor only accesses publicly visible Kleinanzeigen pages, with no login. It is not affiliated with Kleinanzeigen GmbH. You are responsible for using the data in line with the GDPR and Kleinanzeigen's terms. In particular, don't store or re-publish personal data (seller names) you don't need.

🔌 API, AI agents and integrations

  • API: one call runs the Actor and returns the results, POST https://api.apify.com/v2/acts/euroscrape~kleinanzeigen-scraper/run-sync-get-dataset-items (see the API tab for Python, JavaScript and cURL).
  • AI agents (MCP): add https://mcp.apify.com?tools=euroscrape/kleinanzeigen-scraper to Claude, Cursor, VS Code or any MCP client, and the Actor becomes a tool your agent can call.
  • No-code automation: start runs and pass the results on with Apify's integrations for n8n, Make and Zapier, or with a webhook when a run ends.
  • Exports: every result set downloads as JSON, CSV, Excel or XML, and can be sent to Google Sheets.

⭐ Your feedback

If this Actor saves you time, a short review on Apify Store helps other users find it. Missing a field, a country or a filter? Say it in your review: the most requested features are added first.

🔗 More from EuroScrape

💡 Selling to the German-speaking market? The Impressum & Legal Notice Scraper turns any shop or company website into legal name, HRB number, VAT ID and contacts.