Classifieds Scraper for Kleinanzeigen - Ads, Prices & Leads avatar

Classifieds Scraper for Kleinanzeigen - Ads, Prices & Leads

Pricing

from $2.20 / 1,000 classified ad scrapeds

Go to Apify Store
Classifieds Scraper for Kleinanzeigen - Ads, Prices & Leads

Classifieds Scraper for Kleinanzeigen - Ads, Prices & Leads

Scrape Kleinanzeigen.de, Germany's #1 classifieds: cars, property, jobs, electronics and more. Prices, attributes, photos, GPS, seller type and dealer leads with phone, email and address. Filter by keyword, category, city, price; monitor new ads. Independent tool, not affiliated with Kleinanzeigen.

Pricing

from $2.20 / 1,000 classified ad scrapeds

Rating

0.0

(0)

Developer

Scrape Sage

Scrape Sage

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Classifieds Scraper for Kleinanzeigen - Germany Ads, Prices & Seller Leads

Disclaimer: This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Kleinanzeigen or any of its subsidiaries. All trademarks mentioned are the property of their respective owners. "Kleinanzeigen" is referenced only to describe the publicly available website this Actor collects data from.

Extract complete Kleinanzeigen.de data across every category - cars, flats and houses, jobs, electronics, furniture, fashion, pets, tickets and more. Every listing comes with the numeric price and price type (fixed / VB-negotiable / free), the original price when it was reduced, location with zip, posting time, every photo, the category, and who is selling - private person or commercial dealer, with their seller id. Switch on the ad pages for the full description, every structured attribute (make, model, mileage, first registration, rooms, m², rent…), GPS coordinates, view counts and the seller's ratings - and turn the dealers behind the ads into B2B leads with phone, email, website, address, VAT id and commercial register taken from the legal imprint they publish.

No login, no browser - fast server-side extraction straight from Kleinanzeigen with automatic retries and German residential proxies.

Why use this scraper for Kleinanzeigen?

Most scrapers for Kleinanzeigen cover one vertical or return the search card with the price as a string. This actor reads search pages, ad pages, seller pages and PRO shops, and merges them into one rich record:

DataTypical scrapersThis actor
Every category in one actor (cars, property, jobs, electronics…)one vertical✅ every category, site category names or codes
Numeric price + price type + original price before a reductionprice text✅
Seller type (private / commercial) and seller id on every listing❌✅ straight from the search page
All photos in full resolutionthumbnail✅
Full attribute table (car, property, electronics specs)❌✅ with ad pages
GPS coordinates, state, street (when shown), view count❌✅ with ad pages
Dealer contacts: phone, email, website, address, VAT id, register❌✅ from the dealer's legal imprint
PRO shop contacts: phone, website, opening hours, followers❌✅ opt-in
Seller leads with ratings, member-since, active ads and a lead score❌✅ opt-in
More than 1,250 results for one searchstops at 1,250✅ continues with other sort orders
Monitoring - only newly posted ads, plus price drops❌✅

What you get

Every listing (type: "listing"): listingId, url, title, price, priceText, priceType, originalPrice, priceReduced, currency, location, zip, region, city, postedText, postedDate, postedAt, description (teaser), tags, category, categoryId, categoryPath, thumbnail, images, imageCount, isTopAd, isHighlighted, isWanted, isReserved, shippable, directBuy, hasVideo, hasVirtualTour, distanceKm (location searches), sellerId, sellerType, sellerName (PRO shops), sellerUrl, sellerIsPro, searchQuery, page, position, scrapedAt.

With full listing details (detailScraped: true), each listing also gets: the full description, attributes (every spec as key/value), features, the full photo gallery, latitude, longitude, state, street (when the seller shows it), shippingText, viewCount, adId, and the seller: sellerName, sellerActiveSince, sellerActiveAds, sellerRating, sellerFriendliness, sellerReliability, sellerBadges - and for commercial sellers sellerPhone, sellerCompanyName, sellerAddress, sellerEmail, sellerWebsite, sellerVatId, sellerRegister, sellerManagingDirector, sellerContactPerson and the full sellerImprint text.

Seller leads (type: "sellerLead"): sellerId, sellerName, sellerType, sellerUrl, shopUrl, companyName, contactPerson, phone, email, website, address, vatId, commercialRegister, managingDirector, openingHours, about, followers, rating, friendliness, reliability, activeSince, activeAds, categories, listingCountSeen, minPrice, maxPrice, sampleListings, leadScore (0–100), plus leadName, leadType and leadUrl (the seller's name, type and best link, repeated under lead-only names so the Seller leads table shows only leads).

Use cases

  • Lead generation - Kleinanzeigen is full of commercial sellers: car dealers, electronics shops, furniture and property businesses, service providers. Set offerType: commercial and includeSellerLeads to get one record per dealer with the phone, email, website, address and company details they publish in their legal imprint, ranked by lead score.
  • Price & market intelligence - track asking prices, price reductions and inventory for any product, car model or neighbourhood across Germany; compare cities with zip codes and coordinates.
  • Car & property research - pull structured car listings (make, model, mileage, first registration, power, fuel) or flats (rooms, m², warm rent, deposit, available from) for valuation models and sourcing.
  • Deal alerts & monitoring - schedule runs in monitoring mode to receive only newly posted ads for a saved search, plus ads that dropped their price.
  • Competitor inventory - paste a dealer's seller page or PRO shop into sellerUrls to export every ad they have online.

How to use

  1. Sign up for Apify - the free plan is enough to try this actor.
  2. Open Classifieds Scraper for Kleinanzeigen, enter search queries and (optionally) a category, city, radius and price range, then click Start.
  3. Watch results stream into the dataset table.
  4. Export as JSON, CSV, Excel, XML, or RSS - or pull results programmatically via the Apify API.

Input

{
"searchQueries": ["bmw 3er"],
"category": "Autos",
"location": "München",
"radius": 50,
"minPrice": 5000,
"maxPrice": 20000,
"offerType": "commercial",
"sort": "newest",
"includeListingDetails": true,
"includeSellerLeads": true,
"maxItems": 100
}
  • searchQueries - keywords, each combined with the filters. Leave empty to browse a category or a location.
  • startUrls / urlsFromFile - any Kleinanzeigen search or category page (with the filters you set on the site), ad page, seller page or PRO shop; paste a list or link a file.
  • listingUrls - ad URLs or ad ids, each returned with its full ad page.
  • sellerUrls - seller pages (/s-bestandsliste.html?userId=…) or PRO shops (/pro/…): every active ad of that seller.
  • category - the site's category names (Autos, Mietwohnungen, Smartphones, Konsolen, Fahrräder & Zubehör, Haus & Garten, Jobs …), common English names, or a code like c216.
  • location / radius - a German city, town or 5-digit postcode and an optional radius in km.
  • minPrice / maxPrice - price band in euros.
  • offerType - any, private or commercial.
  • adType - any, offer (Angebote) or wanted (Gesuche).
  • sort - newest, price_asc or price_desc.
  • includeListingDetails - open each ad page for the full record.
  • includeSellerLeads - also output one deduplicated lead per seller (implies listing details).
  • enrichSellerContacts - also open PRO shop pages for phone, website, opening hours and followers.
  • maxItems / maxSellerLeads - caps per run (shared fairly between several searches).
  • monitorMode / monitorKey - only new ads since the previous run (see below).

Output

A listing with its ad page opened (values shortened):

{
"type": "listing",
"listingId": "3530000001",
"url": "https://www.kleinanzeigen.de/s-anzeige/bmw-320d-touring/3530000001-216-6411",
"categoryId": 216,
"category": "Autos",
"categoryPath": ["Auto, Rad & Boot", "Autos"],
"title": "BMW 320d Touring",
"price": 18900,
"priceText": "18.900 € VB",
"priceType": "negotiable",
"originalPrice": 19900,
"priceReduced": true,
"currency": "EUR",
"location": "80331 Bayern - München",
"zip": "80331",
"region": "Bayern",
"city": "München",
"postedText": "Heute, 09:41",
"postedDate": "2026-10-09",
"postedAt": "2026-10-09T07:41:00.000Z",
"images": ["https://img.kleinanzeigen.de/api/v1/prod-ads/images/…?rule=$_59.AUTO"],
"imageCount": 18,
"isTopAd": false,
"sellerId": "100000001",
"sellerType": "commercial",
"sellerName": "Autohaus Beispiel GmbH",
"detailScraped": true,
"description": "Gepflegter 320d Touring aus erster Hand …",
"attributes": {
"Marke": "BMW",
"Modell": "3er",
"Kilometerstand": "98.000 km",
"Erstzulassung": "März 2019",
"Kraftstoffart": "Diesel",
"Leistung": "190 PS",
"Getriebe": "Automatik"
},
"state": "Bayern",
"latitude": 48.137,
"longitude": 11.575,
"viewCount": 412,
"sellerActiveSince": "14.10.2021",
"sellerActiveAds": 38,
"sellerPhone": "+49 89 1234567",
"sellerCompanyName": "Autohaus Beispiel GmbH",
"sellerAddress": "Musterstraße 5, 80331 München",
"sellerEmail": "info@autohaus-beispiel.de",
"sellerVatId": "DE123456789",
"sellerRegister": "HRB 123456, Amtsgericht München",
"scrapedAt": "2026-10-09T08:05:09.447Z"
}

A seller lead (type: "sellerLead"):

{
"type": "sellerLead",
"sellerId": "100000001",
"sellerName": "Autohaus Beispiel GmbH",
"sellerType": "commercial",
"sellerUrl": "https://www.kleinanzeigen.de/s-bestandsliste.html?userId=100000001",
"companyName": "Autohaus Beispiel GmbH",
"phone": "+49 89 1234567",
"email": "info@autohaus-beispiel.de",
"website": "https://www.autohaus-beispiel.de",
"address": "Musterstraße 5, 80331 München",
"vatId": "DE123456789",
"commercialRegister": "HRB 123456, Amtsgericht München",
"rating": "TOP",
"activeSince": "14.10.2021",
"activeAds": 38,
"categories": ["Autos"],
"listingCountSeen": 4,
"minPrice": 12900,
"maxPrice": 41900,
"leadScore": 98
}

Monitoring mode (only new ads)

Turn on monitorMode and the actor remembers, per search, the newest ad it has covered in a named key-value store. Each later run returns only ads posted since then (and sellers not delivered before) - an ad that was bumped or renewed keeps its old id and is not counted as new. An ad delivered earlier is delivered again, flagged priceDropped with its previousPrice, when it reappears at a lower price. If a run stops at maxItems, the remaining new ads are delivered by the next run. Combine it with Apify Schedules and use a distinct monitorKey per saved search.

Good to know

  • Kleinanzeigen shows at most 1,250 ads per search and sort order. When a search has more and your maxItems asks for more, the actor continues with the other sort orders (newest, lowest price, highest price) and removes duplicates. For complete coverage of a very large market, split it by category, location or price band.
  • Phone numbers: private sellers never publish theirs. Commercial sellers often publish a phone in their contact box or legal imprint, and PRO shops on their shop page - those are delivered; otherwise the field is empty.
  • Legal imprint fields (company, address, VAT id, register, managing director) exist only for commercial sellers and only when they filled in their imprint; free-text imprints vary, so a field can be empty.
  • View counts are the ad's own visit counter, read the way every visit of the ad page reads it.
  • Top ads are paid placements that Kleinanzeigen shows on every result page regardless of the sort order; they are marked isTopAd.
  • Times like "Heute, 09:41" are German local time; postedAt is the same instant in UTC, postedDate the German calendar day.
  • Price filters leave out ads that show no price ("VB" only), because their price is unknown.
  • Region and city follow the site's own location label: for most towns region is the state, for large cities split into districts region is the city and city the district (e.g. Berlin → Mitte). With ad pages, state is always the federal state.
  • Seller leads come after the listings in the dataset. With 50 or more listing rows, the Console's Seller leads view therefore opens on empty pages; the run's final message names the page where the leads start. Through the API, request the sellerLeads view with clean=true (or keep every row and filter on type: "sellerLead") to get only the leads.

How much does it cost to scrape Kleinanzeigen?

This Actor uses Apify's pay-per-event pricing: you are charged for the results it delivers, with no monthly rental. The events it can charge are:

  • Classified ad - one ad row from a search, category or seller page, with every field listed under "Every listing" above.
  • Detailed classified ad - one ad row enriched from its ad page (full description, every attribute, the full photo gallery, GPS, view count, the seller's ratings and, for commercial sellers, the contact details from their legal imprint). It is charged instead of a Classified ad, never on top of one; ads pasted into listingUrls are always read this way.
  • Seller lead - one deduplicated seller record (opt-in), with the contact details the seller publishes and a lead score.
  • Actor start - from 23 October 2026, Apify's standard run-start event: charged once when a run starts, per GB of run memory (once for the default 1 GB run). It covers each run's fixed cost, so the per-ad prices can stay low.

The current price of each event is shown on the Pricing tab of this page. Set a maximum total charge on the run if you want a hard cap on spend: the actor stops cleanly at the cap and never bills a row it did not deliver. Ads left out by your filters are never billed.

Automate & schedule

Run this actor on autopilot and pull results into your own stack:

  • Apify API - start runs, fetch datasets, and manage schedules over REST.
  • apify-client for JavaScript and apify-client for Python - official SDKs.
  • Schedules - run it hourly/daily to monitor new ads in a category, city or for specific keywords; ideal for deal alerts and lead pipelines.
  • Webhooks - trigger downstream actions (CRM import, Slack alert, email sequence) the moment a run finishes.
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });
const run = await client.actor('scrapesage/kleinanzeigen-scraper').call({
searchQueries: ['bmw 3er'],
category: 'Autos',
location: 'München',
offerType: 'commercial',
includeListingDetails: true,
includeSellerLeads: true,
maxItems: 100,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Got ${items.length} Kleinanzeigen records`);

Integrate with any app

Connect the dataset to 5,000+ apps - no code required:

  • Make - multi-step automation scenarios.
  • Zapier - push new seller leads straight into your CRM.
  • Slack - get notified when a monitored search finds new ads.
  • Google Drive / Sheets - auto-export every run to a spreadsheet.
  • Airbyte - pipe results into your data warehouse.
  • GitHub - trigger runs from commits or releases.

Use with AI assistants (MCP)

The output is clean, LLM-ready JSON. Call this actor from Claude, ChatGPT, or any agent framework through the Apify MCP server - ask your assistant to "find used BMWs under €15,000 in Munich on Kleinanzeigen and list the dealers" and let it run this scraper for you.

Agent-ready: autonomous payments (x402 & Skyfire)

This actor is agent-ready: AI agents can discover it, run it, and pay for it autonomously, with no Apify account and no human in the loop. It uses pay-per-event pricing and limited permissions, so it qualifies for Apify's agentic-payment standards:

  • x402: an open, HTTP-native payment protocol. Agents pay per run in USDC on the Base network directly through the Apify MCP server, with no account and no API key.
  • Skyfire: agent-to-service payments for fully autonomous AI-agent workflows.

Building an AI agent, MCP tool, or autonomous data pipeline? This scraper is ready to plug in and pay as it goes.

More scrapers from scrapesage

Build a complete marketplace, classifieds & lead-gen stack:

Tips

  • Go deep with filters: Kleinanzeigen has tens of thousands of ads per query. To exhaust a niche, split runs by category, city and price band rather than relying on one broad query.
  • Categories & cities the easy way: browse Kleinanzeigen in your own browser, apply the filters you want, then paste the resulting URL into startUrls - the actor honours all of it and paginates for you.
  • Leads: turn on includeSellerLeads (optionally enrichSellerContacts) to get one deduplicated record per seller, sorted by lead score; set offerType: commercial to focus on dealers.
  • Recurring monitoring: combine Schedules with monitorMode and a per-search monitorKey to capture only newly listed ads.
  • Proxies: keep the default residential proxy group (Germany) - Kleinanzeigen serves it reliably and refuses part of the datacenter ranges.

FAQ

How do I scrape a specific city? Set location (e.g. Berlin, München or a postcode like 50667) and optionally a radius in km. Or browse the site to a city and paste the URL into startUrls.

Can I scrape only cars / only real estate? Yes - set category to Autos, Mietwohnungen, Häuser zum Kauf, Jobs, Smartphones, etc. (the site's names, common English names or a c… code). For any filter combination, paste the site's URL into startUrls.

Do I get the seller's phone number? For commercial sellers who publish it (contact box, legal imprint or PRO shop), yes. Private sellers never publish a phone number on Kleinanzeigen, so their records carry name, type, member-since and ratings only.

Can I get a dealer's whole inventory? Yes - paste their seller page or PRO shop URL into sellerUrls; every page of their active ads is read.

Can I export to Google Sheets, CSV, or Excel? Yes - one click in the dataset view, or automatically on every run via the Google Drive integration.

How do I monitor new ads automatically? Turn on monitorMode, create a Schedule, and optionally add a webhook or Zapier zap to push new ads/leads into your CRM as they appear.

Is scraping Kleinanzeigen legal? This actor collects publicly available data only. You are responsible for using the data in compliance with applicable laws (GDPR for personal data) and Kleinanzeigen's terms.

A field is empty - why? Sellers don't fill in every spec, many details exist only on the ad page (switch on includeListingDetails), and contact fields exist only for commercial sellers who publish them. Every raw attribute an ad does show is kept in attributes.

Data & lawful use

This Actor reads public listings and the seller information shown on them. Sellers on Kleinanzeigen include private individuals, so seller names, usernames and seller ids are personal data, and the legal imprint commercial sellers publish can name people too (owners, managing directors, contact persons). If you are in the EU or UK you are the data controller for what you do with them: have a lawful basis, use the data for market research, price monitoring, lawful B2B outreach or sourcing, honour deletion requests, and do not send private sellers unsolicited marketing.

Under Apify's Standard Actor Contract, which governs your use of this Actor, you are the controller of any personal data in your input and output and scrapesage acts only as your processor: that data is processed solely to run your job, written only to your own Apify storage, never used for any other purpose and never shared onward. If you need help with a data-subject request that involves this Actor's output, open an issue on the Issues tab.

Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Kleinanzeigen or any of its subsidiaries. All trademarks mentioned are the property of their respective owners.

"Kleinanzeigen" and any related marks are the property of their respective owners and are used here only in a descriptive, nominative sense - to identify the publicly accessible website from which this Actor collects data. This Actor is not an official Kleinanzeigen product, is not authorised or certified by Kleinanzeigen, and does not distribute Kleinanzeigen software. It collects only publicly available information; you are responsible for ensuring your use of that data complies with applicable laws, regulations and the terms of the source website.

Need help?

Open an issue on the actor's Issues tab, or visit the Apify help center. Feature requests are welcome - this actor is actively maintained.