Kleinanzeigen Scraper avatar

Kleinanzeigen Scraper

Pricing

Pay per event

Go to Apify Store
Kleinanzeigen Scraper

Kleinanzeigen Scraper

Scrape Kleinanzeigen.de listings -- electronics, furniture, cars, apartments, jobs. Get titles, prices, descriptions, locations, seller info, images, and listing details. Pure HTTP, no browser needed.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

21 hours ago

Last modified

Share

What does Kleinanzeigen Scraper do?

Kleinanzeigen Scraper extracts structured listing data from Kleinanzeigen.de (formerly eBay Kleinanzeigen) -- Germany's largest classifieds marketplace with millions of active listings. Enter search keywords and get detailed data: titles, prices, descriptions, locations, seller info, images, categories, and listing attributes.

The scraper uses pure HTTP requests (no browser) so it runs fast and cheap. It handles pagination automatically, supports location and price filters, and can optionally visit each listing's detail page for complete data including full descriptions, all images, seller profiles, and item attributes.

Try it right now -- click Start with the prefilled input to scrape bicycle listings from Berlin.

Who is Kleinanzeigen Scraper for?

  • Market researchers -- Track pricing trends for used electronics, cars, furniture, or real estate across German cities. Monitor supply and demand in specific categories.
  • E-commerce sellers -- Research competitor pricing on secondhand goods. Find underpriced items for resale. Analyze what sells fastest in your niche.
  • Real estate professionals -- Monitor apartment and house listings across German cities. Track rental and sale prices by neighborhood.
  • Data analysts -- Build datasets of classifieds listings for academic research, price index calculations, or consumer behavior studies.
  • Recruiters & HR teams -- Monitor job postings in specific German cities to understand local hiring trends and salary ranges.

Why use Kleinanzeigen Scraper?

  • No login or API key required -- scrapes publicly available listing data
  • Pure HTTP scraper -- no browser overhead, runs 10x faster than Playwright-based alternatives
  • Extremely low cost -- HTTP-only means minimal compute usage, no expensive proxy needed
  • Automatic pagination -- fetches as many pages as needed to reach your target count
  • Detail page enrichment -- optionally visit each listing for full descriptions, all images, and seller profiles
  • Location & price filters -- narrow results to specific cities and price ranges
  • German market specialist -- handles German number formatting (1.999 EUR), VB (Verhandlungsbasis) negotiable prices, and German-language categories
  • Structured JSON output -- export to JSON, CSV, Excel, or connect via API
  • Scheduled runs -- set up recurring scrapes to monitor new listings daily
  • Apify platform integration -- connect with 5,000+ apps via Zapier, Make, and webhooks

What data can you extract?

FieldDescriptionAvailable in
titleListing titleSearch + Detail
pricePrice as displayed (e.g., "350 EUR VB")Search + Detail
priceNumericParsed numeric price in EURSearch + Detail
isNegotiableWhether the price is negotiable (VB)Search + Detail
locationCity/district with postal codeSearch + Detail
postedDateDate the listing was postedDetail only
categoryCategory breadcrumbs (e.g., "Elektronik > Notebooks")Detail only
urlDirect link to the listingSearch + Detail
thumbnailUrlListing thumbnail image URLSearch + Detail
descriptionFull listing description textDetail only (snippet in search)
sellerNameSeller's display nameDetail only
sellerType"private" or "commercial"Detail only
sellerUrlLink to seller's profileDetail only
imageCountNumber of photosSearch + Detail
imageUrlsArray of all image URLsDetail only
attributesListing-specific attributes (Art, Zustand, etc.)Detail only
breadcrumbsFull category pathDetail only
listingIdUnique Kleinanzeigen ad IDSearch + Detail
scrapedAtTimestamp when the data was collectedSearch + Detail

How much does it cost to scrape Kleinanzeigen listings?

Kleinanzeigen Scraper uses pay-per-event pricing -- you only pay for what you scrape.

EventPriceDescription
Actor start$0.001One-time charge per run
Listing (search only)$0.001Each listing from search results
Listing (with details)$0.003Each listing with full detail page data

Example costs:

  • 100 listings from search results: ~$0.10
  • 100 listings with full details: ~$0.30
  • 500 listings from search results: ~$0.50
  • 1,000 listings with full details: ~$3.00

With Apify's free plan ($5 monthly credits), you can scrape approximately 5,000 basic listings or 1,600 detailed listings per month at no cost.

How to scrape Kleinanzeigen listings

  1. Go to Kleinanzeigen Scraper on Apify Store.
  2. Click Try for free to open the actor in Apify Console.
  3. Enter your search keywords (e.g., "laptop", "wohnung berlin", "bmw 3er").
  4. Optionally set a location filter (e.g., "hamburg", "muenchen").
  5. Set the maximum number of results and whether to include full details.
  6. Click Start and wait for the run to finish.
  7. Download your data as JSON, CSV, or Excel from the Dataset tab.

Example input for laptop listings in Berlin under 500 EUR:

{
"searchQueries": ["laptop"],
"location": "berlin",
"maxPrice": 500,
"maxResults": 50,
"includeDetails": true
}

Example input for multiple searches:

{
"searchQueries": ["iphone 15", "samsung galaxy s24", "pixel 8"],
"maxResults": 30,
"includeDetails": false
}

Input parameters

ParameterTypeDefaultDescription
searchQueriesstring[]--Keywords to search on Kleinanzeigen.de
listingUrlsstring[]--Direct URLs to listing or search pages
locationstring--City/region filter (e.g., "berlin", "hamburg")
categoryIdstring--Category ID filter (e.g., "c176" for electronics)
minPriceinteger--Minimum price in EUR
maxPriceinteger--Maximum price in EUR
maxResultsinteger100Maximum listings per search keyword
includeDetailsbooleanfalseVisit each listing for full details
maxRequestRetriesinteger3Retry count for failed requests

Output examples

Basic listing (search only):

{
"listingId": "3372759636",
"title": "Van Rysel NCR CF Allroad | SRAM Apex AXS | Carbon",
"price": "1.999 EUR VB",
"priceNumeric": 1999,
"isNegotiable": true,
"location": "10961 Kreuzberg",
"url": "https://www.kleinanzeigen.de/s-anzeige/...",
"thumbnailUrl": "https://img.kleinanzeigen.de/...",
"imageCount": 4,
"scrapedAt": "2026-04-09T02:27:51.594Z"
}

Detailed listing (with includeDetails: true):

{
"listingId": "3354525614",
"title": "HP EliteBook 840 G7 i7-10610U 16GB DDR4 256GB NVMe SSD",
"price": "VB",
"priceNumeric": null,
"isNegotiable": true,
"location": "20537 Hamburg-Mitte - Hamburg Hamm",
"postedDate": "16.03.2026",
"category": "Elektronik > Notebooks",
"description": "HP EliteBook 840 G7 -- i7-10610U -- 14\" FHD...",
"sellerName": "Notebook-Pro",
"sellerType": "commercial",
"imageCount": 14,
"imageUrls": ["https://img.kleinanzeigen.de/..."],
"attributes": {},
"breadcrumbs": ["Kleinanzeigen Hamburg", "Elektronik", "Notebooks"],
"scrapedAt": "2026-04-09T02:31:54.621Z"
}

Tips for best results

  • Start small -- begin with maxResults: 25 and includeDetails: false to verify your search returns what you expect. Scale up once confirmed.
  • Use location filters -- Kleinanzeigen results are much more relevant when filtered by city. Add the city name to your search query or use the location parameter.
  • Enable details selectively -- includeDetails: true visits each listing page individually, which is slower and costs more. Use it when you need full descriptions, all images, or seller info.
  • Price filters save time -- use minPrice and maxPrice to skip irrelevant listings rather than filtering after scraping.
  • Schedule weekly runs -- set up recurring runs to track new listings in your niche. Combine with Google Sheets integration to build a living database.
  • German keywords work best -- search in German for more accurate results (e.g., "Wohnung" instead of "apartment").
  • Multiple searches in one run -- add multiple keywords to searchQueries to scrape different categories in a single run. Each keyword runs a separate search.

Integrations

  • Kleinanzeigen Scraper + Google Sheets -- automatically export new listings to a spreadsheet. Track pricing trends for used cars, electronics, or furniture over time.
  • Kleinanzeigen Scraper + Slack/Discord -- get notified when new listings match your criteria. Set up alerts for specific keywords or price ranges.
  • Kleinanzeigen Scraper + Make/Zapier -- build automated workflows: scrape listings, filter by price, send to your CRM, or post to your inventory system.
  • Scheduled monitoring -- run the scraper daily or weekly to catch new listings before competitors. Combine with webhooks for real-time processing.
  • Kleinanzeigen Scraper + Airtable -- build a searchable database of listings with images, prices, and seller contacts for your team.

Using the Apify API

You can run Kleinanzeigen Scraper programmatically using the Apify API.

Node.js:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('automation-lab/kleinanzeigen-scraper').call({
searchQueries: ['laptop berlin'],
maxResults: 50,
includeDetails: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python:

from apify_client import ApifyClient
client = ApifyClient('YOUR_API_TOKEN')
run = client.actor('automation-lab/kleinanzeigen-scraper').call(run_input={
'searchQueries': ['laptop berlin'],
'maxResults': 50,
'includeDetails': True,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

cURL:

curl "https://api.apify.com/v2/acts/automation-lab~kleinanzeigen-scraper/runs" \
-X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-d '{
"searchQueries": ["laptop berlin"],
"maxResults": 50,
"includeDetails": true
}'

Use with AI agents via MCP

Kleinanzeigen Scraper is available as a tool for AI assistants that support the Model Context Protocol (MCP).

Add the Apify MCP server to your AI client -- this gives you access to all Apify actors, including this one:

Setup for Claude Code

$claude mcp add --transport http apify "https://mcp.apify.com?tools=automation-lab/kleinanzeigen-scraper"

Setup for Claude Desktop, Cursor, or VS Code

Add this to your MCP config file:

{
"mcpServers": {
"apify": {
"type": "http",
"url": "https://mcp.apify.com?tools=automation-lab/kleinanzeigen-scraper"
}
}
}

Example prompts

  • "Find the cheapest bicycles listed in Berlin on Kleinanzeigen under 200 EUR"
  • "Scrape laptop listings from Kleinanzeigen in Hamburg and show me the average price"
  • "Get all apartment listings in Munich from Kleinanzeigen with full details and seller info"

Kleinanzeigen Scraper collects only publicly available data that anyone can access by visiting Kleinanzeigen.de in a web browser. The scraper does not bypass any login walls, CAPTCHAs, or access restrictions.

Web scraping of public data is generally considered legal in the EU and Germany, subject to compliance with GDPR and the website's terms of service. When using this scraper:

  • Only collect data you have a legitimate purpose for
  • Do not scrape personal data (emails, phone numbers) without a legal basis under GDPR
  • Respect rate limits and do not overload the website
  • Review Kleinanzeigen's terms of service for your specific use case

For more information, see Apify's guide on web scraping legality.

FAQ

How fast is Kleinanzeigen Scraper? Very fast. Since it uses pure HTTP requests (no browser), it can scrape ~25 listings per second from search results. With detail page enrichment enabled, speed depends on network latency but typically processes 5 listings per second.

How much does it cost to scrape 1,000 listings? Without details: approximately $1.00. With full details: approximately $3.00. The free Apify plan ($5/month) covers thousands of listings.

Why are some fields empty in search-only mode? Fields like description, sellerName, sellerType, postedDate, attributes, and full imageUrls are only available when includeDetails is enabled. Search results provide a subset of data (title, price, location, thumbnail).

Why do some listings show priceNumeric: null? Some listings on Kleinanzeigen have no fixed price -- they show only "VB" (Verhandlungsbasis, meaning "negotiable"). In these cases, priceNumeric is null but isNegotiable is true.

Can I scrape listings in a specific category? Yes. Use the categoryId parameter with the Kleinanzeigen category code (e.g., "c176" for electronics, "c86" for cars, "c210" for furniture). You can find category IDs in the Kleinanzeigen URL when browsing categories.

Why are results empty for my search? Check that your search keywords are in German. Kleinanzeigen is a German-language platform, so English keywords may return no results. Also verify the location name uses the German spelling (e.g., "muenchen" not "munich").

Other classifieds scrapers