Kleinanzeigen Scraper - New Ads & Price Drop Alerts avatar

Kleinanzeigen Scraper - New Ads & Price Drop Alerts

Pricing

Pay per event

Go to Apify Store
Kleinanzeigen Scraper - New Ads & Price Drop Alerts

Kleinanzeigen Scraper - New Ads & Price Drop Alerts

Scrape Kleinanzeigen.de (ex eBay Kleinanzeigen) without login: any search link or keyword, location, radius, price, offer and seller type. Schedule it with only-new ads and price-drop tracking. Full ad page optional. No seller data. US$ 1.00 per 1,000 ads.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Scrapewise Data

Scrapewise Data

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

6 hours ago

Last modified

Share

Kleinanzeigen Scraper: new ads and price drops, every day

Scrape Kleinanzeigen.de (formerly eBay Kleinanzeigen, Germany's largest classifieds site) without an account, cookies or a browser. Paste any Kleinanzeigen search link with your filters, or search by keyword, category, city or zip code, radius, price range, offers or wanted ads and private or commercial sellers. Works for every category: cars, apartments, phones, bikes, furniture, free stuff.

Built to be scheduled: turn on onlyNew and each run returns only the ads you have not seen yet, turn on trackPriceChanges and every row tells you the previous price and whether it dropped. A quiet day costs nothing.

At a glance

  • Price per 1,000 ads: US$ 1.00
  • Full ad page (description, attributes, all images): optional, US$ 1.00 per 1,000 ads more
  • Fee per run start: None
  • Search by Kleinanzeigen link, keyword, category, location and radius: Yes
  • Filters: price range, offers or wanted, private or commercial, sort order
  • Only new ads since the last run: Yes (onlyNew)
  • Price change and price drop per ad: Yes (trackPriceChanges, onlyChanged)
  • Seller data: Never (see below)
  • Error rows (bad link, deleted ad, no results): Free, with an errorCode

One real row

From a test run on 2026-10-06 (keyword "iphone 15", Berlin, 10 km, private sellers, full ad page and price tracking on; image list and description shortened):

{
"type": "ad",
"id": "3533112573",
"url": "https://www.kleinanzeigen.de/s-anzeige/iphone-15-pro-128-gb-blau/3533112573-173-3520",
"title": "iPhone 15 pro 128 GB Blau",
"price": 450,
"currency": "EUR",
"priceType": "fixed",
"priceText": "450 €",
"originalPrice": null,
"adType": "offer",
"categoryId": "173",
"sellerType": "private",
"isTopAd": false,
"buyNowAvailable": false,
"shippingAvailable": false,
"zipCode": "10117",
"locality": "Mitte",
"region": "Berlin - Mitte",
"postedAt": "2026-10-06T16:28:00+02:00",
"imageUrl": "https://img.kleinanzeigen.de/api/v1/prod-ads/images/8a/8a393486-aebd-4ab1-8751-aa7a6bdebf7b?rule=$_59.AUTO",
"imageCount": 11,
"isNewAd": true,
"previousPrice": null,
"priceChange": null,
"priceChangePct": null,
"isPriceDrop": false,
"searchTerm": "iphone 15",
"page": 1,
"description": "iPhone 15 Pro mit 128 GB in Blaufarbe funktioniert einwandfrei. [...] Keine Versand\nKeine PayPal\n\nNur Abholung!!",
"attributes": { "Art": "Apple", "Modell": "iPhone 15 Pro", "Farbe": "Blau", "Zustand": "Sehr Gut" },
"images": ["https://img.kleinanzeigen.de/api/v1/prod-ads/images/8a/8a393486-aebd-4ab1-8751-aa7a6bdebf7b?rule=$_59.JPG"],
"createdOn": "2026-10-06",
"categoryPath": ["Elektronik", "Smartphones"],
"location": "10117 Berlin - Mitte",
"shippingText": "Nur Abholung",
"detailsScraped": true,
"scrapedAt": "2026-10-06T14:45:15Z",
"errorCode": null,
"error": null
}

The next day, if the seller lowers the price to 420 €, the same ad comes back with previousPrice: 450, priceChange: -30, priceChangePct: -6.7 and isPriceDrop: true.

What you can do with it

  • Deal alerts: a daily (or hourly) Task with onlyNew on "ps5", "rtx 4090" or "Rennrad" under your price ceiling, sent to Slack, e-mail or Google Sheets. You read only what was posted since the last check.
  • Price research: asking prices for a model across Germany or in one city, with negotiable (VB) and fixed prices told apart, to price your own ad or check a deal.
  • Resellers and flippers: onlyChanged on your sourcing searches shows new ads plus every price cut, so you catch a seller who drops 20% before anyone else.
  • Car hunting: category 216 (cars) with a radius around your city; rows carry mileageKm and firstRegistration, and the full ad page adds make, model, power, fuel and inspection date.
  • Apartment hunting: paste your search for rentals in Berlin, Munich or Hamburg; rows carry livingAreaM2, rooms and the cold rent, the full ad page adds warm rent, extra costs, deposit and floor, and onlyNew turns it into a new-apartment alert.
  • Market datasets: supply and price levels by category, region and seller type.

Input

FieldTypeWhat it does
searchUrls (also startUrls, urls)listKleinanzeigen search or category links with your filters. Ad links (/s-anzeige/...) or ad ids return the full ad page.
keywordslistSearch terms, one search each, combined with the filters below.
categoryIdtextNumber after c in a site link: 216 cars, 203 apartments for rent, 196 apartments for sale, 173 phones, 161 electronics, 217 bicycles, 192 free stuff.
locationtextGerman city, district or 5-digit zip code (Berlin, München, 10115).
radiusKminteger, default 00, 5, 10, 20, 30, 50, 100, 150 or 200 km around the location.
minPrice, maxPriceintegerPrice range in euros.
adTypeall, offers, wantedAds selling something, ads looking for something, or both.
sellerTypeall, private, commercialKleinanzeigen's own private or commercial flag.
sortBynewest, recommended, priceLowToHigh, priceHighToLowOrder for keyword searches; links keep their own.
maxItemsPerSearchinteger, default 50Ads per search (25 per page). 0 = everything the site shows, up to 1,250.
includeTopAdsbooleanKeep the paid TOP ads pinned above the results (isTopAd: true). Default on, and off with onlyNew/onlyChanged
onlyNewboolean, default falseOnly ads this search never returned before.
trackPriceChangesboolean, default falsePrevious price, change and price drop on every row.
onlyChangedboolean, default falseOnly new ads and ads whose price changed.
includeDetailsboolean, default falseFull ad page for each delivered ad (separate event).
proxyConfigurationproxyApify datacenter proxy by default.

location, radiusKm, categoryId, prices, adType and sellerType apply to keywords. A link already carries its own filters. With no keyword, a category or location alone lists every ad there.

{
"keywords": ["iphone 15"],
"location": "Berlin",
"radiusKm": 10,
"maxPrice": 600,
"sellerType": "private",
"maxItemsPerSearch": 50
}

Schedule it daily: new ads and price drops

Save your input as a Task and attach a Schedule (every morning, every hour). Then pick one:

  • onlyNew: true: each run delivers, and charges, only ads this search has not returned before. Already delivered ads are skipped for free and do not count toward maxItemsPerSearch. The run stops reading at the first page with nothing new, so a quiet hour costs a request or two and US$ 0.
  • onlyChanged: true: new ads plus ads whose price changed since they were last seen, each with previousPrice, priceChange, priceChangePct and isPriceDrop. Unchanged ads are checked but not delivered and not charged; maxItemsPerSearch is how many ads each run checks.
  • trackPriceChanges: true alone: every ad is delivered, each with the price comparison fields.
{
"searchUrls": ["https://www.kleinanzeigen.de/s-wohnung-mieten/berlin/c203l3331"],
"onlyNew": true,
"includeTopAds": false,
"maxItemsPerSearch": 100
}
  • The memory lives in a Key-Value Store in your own account (kleinanzeigen-scraper-memory), one record per search and filter set, with the last price and the first and last time each ad was seen. Inspect it or delete it to start over. onlyNew, trackPriceChanges and onlyChanged share the same record.
  • The first run delivers up to maxItemsPerSearch and remembers every ad on the pages it read.
  • onlyNew and onlyChanged read the search in the newest order. A seller who bumps an old ad you never received makes it show up as new; an ad you already received never comes back under onlyNew.
  • TOP ads are paid placements that rotate above the results and are often weeks old, so onlyNew and onlyChanged leave them out unless you set includeTopAds: true.

Output fields

FieldMeaning
id, urlKleinanzeigen ad id and link
titleAd title
price, currencyPrice in EUR (number). 0 for free items, null when the ad shows only VB
priceTypefixed, negotiable (VB, Verhandlungsbasis), free (zu verschenken)
priceText, originalPricePrice as shown, and the crossed-out earlier price when the seller shows one
adTypeoffer or wanted (Gesuch)
categoryIdKleinanzeigen category of the ad
sellerTypeprivate or commercial when the site shows it (always with the full ad page or a seller filter), else null
isTopAd, buyNowAvailablePaid TOP placement; "Direkt kaufen" (buy with payment protection) available
shippingAvailabletrue when the ad offers shipping ("Versand möglich"); the full ad page also gives false and shippingText
zipCode, locality, regionZip code and town or district shown on the ad, and the region line ("Berlin - Mitte"). Never a street
postedAt, postedAtTextWhen the ad was posted or last bumped, Berlin time (date only for older ads, empty on TOP ads)
descriptionSnippetFirst lines of the description, as on the results page
imageUrl, imageCountMain photo (large) and number of photos
listingDetails, livingAreaM2, roomsKey facts on the card (apartments: "69 m²", "2 Zi.")
mileageKm, firstRegistrationCars: mileage and first registration (MM/YYYY)
tagsBadges as shown (Versand möglich, Direkt kaufen, Gesuch, km, EZ)
searchUrl, searchTerm, pageThe search that found the ad and its results page
isNewAd, previousPrice, priceChange, priceChangePct, isPriceDrop, firstSeenAt, previousSeenAtPrice tracking (with trackPriceChanges or onlyChanged)
description, attributes, features, images, createdOn, category, categoryPath, location, shippingText, isActive, detailsScrapedFull ad page (with includeDetails or an ad link)
scrapedAt, errorCode, errorCollection time; error fields are null on good rows

Seller data: never

Most Kleinanzeigen sellers are private people, so this Actor returns the ad only. It never returns the seller's name, user id, profile or shop link, phone number, e-mail, street address, map coordinates, rating, "active since" date or a dealer's imprint. sellerType says private or commercial and nothing else. Phone numbers and e-mail addresses that sellers type into a title or description are masked as [phone removed] and [email removed]. The description is otherwise the seller's own published text.

Error codes

Error rows are never charged.

errorCodeMeaning
INVALID_INPUTA filter is not valid (minimum price above maximum, unknown category or location, a link that is not a Kleinanzeigen search or ad)
NOT_FOUNDThe ad was deleted or expired, or the site does not know this search link
NO_RESULTSKleinanzeigen found no ad for this search and filters
BLOCKEDKleinanzeigen did not answer after several attempts on new IPs; run again
NOT_REACHEDThe run timeout arrived before this search or ad
UNEXPECTEDAn ad or page came in a shape we did not expect; the rest of the run goes on

Pricing

Pay per event, no start fee:

  • US$ 1.00 per 1,000 ads delivered (anuncio-entregue).
  • US$ 1.00 per 1,000 full ad pages (detalhe-entregue), only with includeDetails or ad links, because each one is an extra request. An ad with its full page costs US$ 2.00 per 1,000.

Free: error rows, the same ad found twice in a run, ads skipped by onlyNew, unchanged ads skipped by onlyChanged, and TOP ads left out with includeTopAds: false.

Limitations

  • Kleinanzeigen shows at most 50 pages (1,250 ads) per search. Split a broad search by category, city or price range to go further.
  • postedAt is the date the site shows, which moves when a seller bumps the ad. The full ad page adds createdOn.
  • Locations are resolved with the site's own suggestions: use the German name (München, Köln) or a zip code. English names such as "Munich" are not found.
  • On apartment ads price is the cold rent (Kaltmiete); the full ad page adds Warmmiete, Nebenkosten and Kaution in attributes.
  • Only public ads. Nothing behind a login (messages, phone numbers, seller inventories) is read.

FAQ

Do I need a Kleinanzeigen account or a German IP? No. Nothing to log in to, no cookies to paste. The default Apify datacenter proxy is used; if Kleinanzeigen refuses it several times in a row the run switches to a stronger proxy group on its own.

Can I paste a search link from my browser? Yes. Category, location, radius, price, offers or wanted, private or commercial and the order in the link are all kept. Page numbers in the link are ignored: the Actor starts at page 1 and pages on its own.

How fast is it? About 25 ads per results page; a test read 60 Berlin apartment ads in under 2 seconds. Full ad pages take one request each.

Can I get only new apartments or cars every morning? Yes: onlyNew: true and a Schedule. A run with nothing new delivers nothing and costs nothing.

Can I use it from n8n, Make, Zapier or an AI agent? Yes, through the Apify app or the Apify MCP server. Error rows are free, so an agent can explore cheaply.

What if a run is cut by its timeout? The Actor stops shortly before the limit and ends successfully with what it delivered, telling you in the status message how to get the rest.

Changelog

  • 0.1 (2026-10-06): first version. Search links and keyword search with category, location, radius, price, offers or wanted and seller type; onlyNew, trackPriceChanges and onlyChanged for scheduled monitoring; optional full ad page; no seller data; free error rows.