# 🇩🇪 Kleinanzeigen Germany Scraper | Property Listings (`misterkhan/kleinanzeigen-immobilien-scraper`) Actor

From $0.75/1K. Extract property listings from Kleinanzeigen (kleinanzeigen.de) across Berlin, Munich & Hamburg — prices in EUR, beds, area & photos.

- **URL**: https://apify.com/misterkhan/kleinanzeigen-immobilien-scraper.md
- **Developed by:** [Khan](https://apify.com/misterkhan) (community)
- **Categories:** Real estate, AI, Automation
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.75 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### 🇩🇪 Kleinanzeigen Germany Scraper

Extract structured real estate listings from Kleinanzeigen (kleinanzeigen.de), Germany's largest online classifieds marketplace across Berlin, Munich, Hamburg, Cologne, Frankfurt, and Stuttgart. Collect comprehensive property data including asking prices in EUR, living space, room counts, locations, descriptions, photo galleries, and direct listing links.

***

### What does Kleinanzeigen Germany Scraper do?

Kleinanzeigen is Germany's most popular classifieds portal, featuring hundreds of thousands of active private FSBO (Von Privat) and broker property listings for sale and rent across every German postal code.

This Actor extracts structured property listings directly from Kleinanzeigen search categories:

- **Sale & Rental Properties**: Apartments (Eigentumswohnungen), single-family houses (Häuser zum Kauf), rental flats (Mietwohnungen), plots (Grundstücke), and commercial properties (Gewerbeimmobilien).
- **Detailed Specifications**: Living area (m²), room numbers (Zimmer), balcony/terrace status, floor level, and year built.
- **Financial Details**: Asking prices in EUR, rental rates (Kaltmiete / Warmmiete), and negotiation flags (VB).
- **Private & Agent Attributions**: Broker company names, private seller indicators, and direct listing IDs.
- **Geographic Precision**: Postal codes (PLZ), cities, boroughs, and federal states across Germany.

***

### Why scrape Kleinanzeigen Germany?

- **Direct Owner (FSBO) Deal Sourcing**: Identify private seller properties before they reach institutional portals or agency commission markups.
- **German Real Estate Market Research**: Monitor asking prices, rental yields, and price-per-square-meter variations across Berlin, Munich, Frankfurt, and secondary regional hubs.
- **PropTech & Investment Aggregators**: Aggregate German residential feeds for neighborhood valuation models, automated deal screeners, and investor dashboards.
- **Competitive Agency Monitoring**: Track inventory from major German brokerage firms and independent real estate agents.

***

### How to scrape Kleinanzeigen Germany listings

1. **Find your search URL on Kleinanzeigen**: Visit `https://www.kleinanzeigen.de` and select your property category (e.g. Wohnungen kaufen or Häuser mieten), location, and price filters.
2. **Copy the search URL**: Copy the full URL from your browser address bar (e.g. `https://www.kleinanzeigen.de/s-wohnung-kaufen/berlin/c196l3331`).
3. **Configure the Actor**: Paste the search URL into the **Start URLs** field in the Apify Console.
4. **Set Max Results**: Specify the total number of property listings you want to collect.
5. **Run the Actor**: Click **Start**. The Actor streams live results into your default dataset in real time.
6. **Export your data**: Download your structured property listings in JSON, CSV, Excel, XML, or Parquet.

***

### Input Configuration

The Actor accepts the following input parameters:

**📍 `location`** — search city or region in Germany (e.g. `Berlin`). Optional when `startUrls` is provided <br>
**Start URLs** (`startUrls`):<br>
One or more Kleinanzeigen Germany search or category URLs. Supports apartments, houses, and commercial real estate for sale or rent across any German city or postal code.<br>
*Default*: `https://www.kleinanzeigen.de/s-wohnung-kaufen/berlin/c196l3331`

**Max Results** (`maxItems`):<br>
The maximum number of property listings to extract during the run.<br>
*Default*: 40

***

### Input Examples

**Berlin Apartments for Sale Search**:

```json
{
  "startUrls": [
    {
      "url": "https://www.kleinanzeigen.de/s-wohnung-kaufen/berlin/c196l3331"
    }
  ],
  "maxItems": 100
}
```

**Munich Houses for Rent Search**:

```json
{
  "startUrls": [
    {
      "url": "https://www.kleinanzeigen.de/s-haus-mieten/muenchen/c209l6411"
    }
  ],
  "maxItems": 50
}
```

***

### Output Data & Sample Dataset

The Actor returns clean, normalized property listing objects directly to the Apify dataset:

```json
{
  "id": "3527259426",
  "listing_id": "3527259426",
  "property_id": "3527259426",
  "title": "Ein Rückzugsort im Herzen Berlins: Helle und ruhige 3-Zimmer-Wohnung mit zwei Südbalkonen in Mitte!",
  "price": "825.000 €",
  "currency": "EUR",
  "address": "10179 Mitte",
  "location": "10179 Mitte",
  "description": "Diese attraktive Eigentumswohnung befindet sich in einer modernen und gepflegten Wohnanlage aus dem Baujahr 1999 mitten im begehrten Berliner Bezirk Mitte...",
  "image_url": "https://img.kleinanzeigen.de/api/v1/prod-ads/images/b3/b3219de9-04f6-4350-8b73-03fe0d91d57f?rule=$_59.AUTO",
  "url": "https://www.kleinanzeigen.de/s-anzeige/ein-rueckzugsort-im-herzen-berlins-helle-und-ruhige-3-zimmer-wohnung-mit-zwei-suedbalkonen-in-mitte-/3527259426-196-3521",
  "portal": "kleinanzeigen.de",
  "country": "DE"
}
```

***

### Performance & Resource Utilization

- **Ultra-Lightweight Memory Footprint**: Runs on just 128 MB RAM, maximizing cost efficiency and throughput.
- **Asynchronous Pipeline**: Built with native async streaming, collecting records at high extraction rates.
- **Real-Time Data Streaming**: Listings are pushed to the Apify Dataset incrementally as pages are processed.
- **Resilient Transport Routing**: Features intelligent proxy management and automatic header emulation to ensure uninterrupted scraping.

***

### How much does it cost to scrape Kleinanzeigen Germany?

This Actor uses transparent **Pay-Per-Event (Pay-Per-Result)** pricing with a **`$0.00` Actor run start fee**:

**🆓 Free Plan** — $0.005 per item ($5.00 / 1K) with up to 40 items per run <br>
**🥉 Bronze Plan** — $0.00135 per item ($1.35 / 1K) with unlimited scale <br>
**🥈 Silver Plan** — $0.00095 per item ($0.95 / 1K) with unlimited scale <br>
**🥇 Gold Plan** — $0.00075 per item ($0.75 / 1K) with highest priority execution <br>

You only pay for successful listings extracted. Failed runs or empty pages incur zero platform cost.

***

### Integrations & Export Options

- **Direct Export**: Download collected data in JSON, CSV, XLSX, XML, or NDJSON.
- **Apify API & Webhooks**: Trigger downstream webhooks upon run completion to sync new listings to external endpoints.
- **Cloud & Automation Workflows**: Connect directly with Zapier, Make, Google Sheets, Airtable, Amazon S3, and PostgreSQL.
- **Python & Node.js Clients**: Ingest property feeds directly into data science workflows using `apify-client`.

***

***

### Using 🇩🇪 Kleinanzeigen Germany Scraper | Property Listings — Input with AI Agents and Apify MCP

This Actor is optimized as an on-demand tool for AI developer assistants, Claude Desktop, Cursor, and autonomous agent workflows connected via the official Apify MCP Server (`https://mcp.apify.com`).

**Example prompts for Claude Desktop and Cursor:** <br>
• Extract property listings in Berlin and summarize pricing, bedrooms, and square meters. <br>
• Search the latest listings and identify high-yield investment opportunities. <br>
• Monitor new properties and compare square meter pricing. <br>

**Agent tool advantages:** <br>
• **Natural location input** — Pass simple city or region names (e.g. Berlin) without constructing portal URLs. <br>
• **Sub-second Rust streaming** — Returns live listings in 3 to 4 seconds to prevent agent tool-call timeouts. <br>
• **Context-protective JSON** — Clean, normalized fields designed to fit efficiently inside LLM prompt context windows. <br>
• **Pay-Per-Event pricing** — Only pay per extracted property listing with zero platform start fees. <br>

### Frequently Asked Questions (FAQ)

**Can I scrape properties from across Germany?**<br>
Yes. You can paste search URLs covering Berlin, Munich, Hamburg, Cologne, Frankfurt, Leipzig, Dresden, Düsseldorf, or any German postal code.

**Does this scraper extract rental listings as well as purchase properties?**<br>
Yes. Simply paste a Kleinanzeigen search URL filtered for rentals (e.g. /s-wohnung-mieten/ or /s-haus-mieten/) and the Actor will collect rental listings and monthly rates.

**Are private owner (FSBO) listings supported?**<br>
Yes. Both private seller listings (Von Privat) and commercial broker listings are collected from Kleinanzeigen search results.

**How many listings can I collect in a single run?**<br>
You can configure `maxItems` to collect anywhere from a handful of records up to thousands across paginated search results.

***

### Legal & Ethical Considerations

- The Actor only collects publicly accessible real estate listing data displayed on Kleinanzeigen.de.
- Respect Kleinanzeigen's platform terms of service and avoid aggressive scraping rates.
- Adhere to applicable data privacy regulations (such as GDPR) when handling seller and agent contact information.

***

### Support & Feedback

If you have feature requests, notice website layout changes, or need assistance configuring custom extraction workflows, open an issue in the Apify Console Actor Discussion tab.

***

### Additional Real Estate Scrapers

Explore related property and classified scrapers in the Crawlomatic ecosystem:

- **ohne-makler-de-scraper**: Germany leading FSBO direct property portal (ohne-makler.net).
- **willhaben-immobilien-scraper**: Austria leading property marketplace (willhaben.at).
- **funda-nl-scraper**: Netherlands leading property portal (funda.nl).
- **immoweb-be-scraper**: Belgium leading property portal (immoweb.be).
- **fotocasa-scraper**: Spain top real estate portal (fotocasa.es).

# Changelog

This Actor's version history is a separate document: https://apify.com/misterkhan/kleinanzeigen-immobilien-scraper/changelog.md

# Actor input Schema

## `location` (type: `string`):

City, region, or municipality in Germany (e.g. 'Berlin'). Optional when startUrls is provided.

## `startUrls` (type: `array`):

Paste one or more Kleinanzeigen Germany (kleinanzeigen.de) search or property URLs (e.g., `https://www.kleinanzeigen.de/s-wohnung-kaufen/berlin/c196l3331`).

## `maxItems` (type: `integer`):

Maximum number of property listings to collect (Free plan runs collect up to 40 results per run; paid plans support unlimited results).

## Actor input object example

```json
{
  "location": "Berlin",
  "startUrls": [
    {
      "url": "https://www.kleinanzeigen.de/s-wohnung-kaufen/berlin/c196l3331"
    }
  ],
  "maxItems": 20
}
```

# Actor output Schema

## `results` (type: `string`):

All extracted property listings from Kleinanzeigen Immobilien (kleinanzeigen.de).

## `usage_summary` (type: `string`):

Execution telemetry and extraction summary stored in the default key-value store.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "location": "Berlin",
    "startUrls": [
        {
            "url": "https://www.kleinanzeigen.de/s-wohnung-kaufen/berlin/c196l3331"
        }
    ],
    "maxItems": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("misterkhan/kleinanzeigen-immobilien-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "location": "Berlin",
    "startUrls": [{ "url": "https://www.kleinanzeigen.de/s-wohnung-kaufen/berlin/c196l3331" }],
    "maxItems": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("misterkhan/kleinanzeigen-immobilien-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "location": "Berlin",
  "startUrls": [
    {
      "url": "https://www.kleinanzeigen.de/s-wohnung-kaufen/berlin/c196l3331"
    }
  ],
  "maxItems": 20
}' |
apify call misterkhan/kleinanzeigen-immobilien-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,misterkhan/kleinanzeigen-immobilien-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/f50ouPfTcqiBAiW2b/builds/4SSMZqWGjwJNlqrc5/openapi.json
