# Kleinanzeigen Scraper - alle Kategorien, 1000/Min (`clearpath/kleinanzeigen-scraper`) Actor

Kleinanzeigen Scraper für alle Kategorien: 78 Felder pro Inserat mit Verkäuferdaten, Bewertung und Shop-Kontakt, 1.000 Inserate pro Minute. Such-URL einfügen, alle Filter werden übernommen. Auch über 10.000 Treffer. Monitor-Modus liefert nur neue Inserate.

- **URL**: https://apify.com/clearpath/kleinanzeigen-scraper.md
- **Developed by:** [ClearPath](https://apify.com/clearpath) (community)
- **Categories:** E-commerce, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.49 / 1,000 listings

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

[![78 Felder pro Inserat. Mehr Output, mehr Speed als andere Actors. Mit Verkäuferdaten. 1.000 Inserate pro Minute.](https://api.apify.com/v2/key-value-stores/pJ7iaZsTFhR3k9tjV/records/kleinanzeigen-scraper-hero-f93e4d0fc11e.png)](https://console.apify.com/actors/olRy4Ux7QiRz3CkuJ/input)

Von **Clearpath**, den Entwicklern von [Kleinanzeigen Immobilien Pro](https://apify.com/clearpath/kleinanzeigen-immobilien-api-pro), [Kleinanzeigen Nachrichten](https://apify.com/clearpath/kleinanzeigen-message-api) und [ImmoScout24 Pro](https://apify.com/clearpath/immoscout24-api-pro). Dieselbe Engine wie Kleinanzeigen Immobilien Pro, für jede Kategorie.

### Warum diesen Actor wählen?

**78 Felder pro Inserat, mit Verkäuferdaten.** Preis, Preisart, Zustand und alle Merkmale der Kategorie mit lesbaren Bezeichnungen, Bilder in fünf Größen, Ort mit Koordinaten. Dazu der Verkäufer, soweit veröffentlicht: privat oder gewerblich, Bewertung, Abzeichen, Follower, aktive und bisherige Inserate, bei Shops Website, Telefon, Adresse und Öffnungszeiten.

**Alle Kategorien, alle Filter der Website.** Elektronik, Fahrräder, Möbel, Autos, Immobilien, Jobs: Such-URL einfügen, alle Filter werden übernommen. Ein Filter, den die Kategorie nicht kennt, stoppt den Lauf, statt still ohne ihn zu suchen.

**1.000 Inserate pro Minute, auch über 10.000 Treffer.** Kleinanzeigen zeigt pro Suche höchstens 10.000 Treffer; der Actor teilt große Suchen automatisch auf und liefert über 99 % des Bestands. Der Monitor-Modus speichert nur neue Inserate seit dem letzten Lauf.

<a href="https://console.apify.com/actors/olRy4Ux7QiRz3CkuJ/input"><img src="https://api.apify.com/v2/key-value-stores/pJ7iaZsTFhR3k9tjV/records/kleinanzeigen-immobilien-pro-cta-810219b60617.svg" width="260" height="48" alt="Eigene Kleinanzeigen-Suche testen"/></a>

### Mit 20 Inseraten starten

Das Beispiel sucht Rennräder in Berlin, mit Verkäuferdaten. Statt der Felder kannst du auch die Adresse einer Suche von kleinanzeigen.de einfügen; ihre Filter werden übernommen.

```json
{
    "category": "217",
    "keyword": "rennrad",
    "location": "Berlin",
    "maxResults": 20
}
```

[Actor-Eingabe öffnen](https://console.apify.com/actors/olRy4Ux7QiRz3CkuJ/input), Felder anpassen und starten. Exportiere als JSON, CSV oder Excel; JSON behält verschachtelte Merkmale, Bilder und Öffnungszeiten. Die aktuellen Konditionen findest du in der [Preisliste](https://apify.com/clearpath/kleinanzeigen-scraper/pricing).

<table><tr><td colspan="5" style="background:#B7E841;color:#203B12;padding:10px 14px;font-size:13px;font-weight:700">Clearpath · Kleinanzeigen-Suite</td></tr><tr><td style="background:#DDF69B;padding:10px 10px;border:1px solid #C9D9A4;vertical-align:top;width:20%"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/DSvMCAwsufMyZeLyt-actor-Yu9fmARTOt79Ungbn-PTLhKqKWa5-kleinanzeigen-immobilien-api-pro-logo.png" width="20" height="20" alt="" style="vertical-align:middle"/>&nbsp;&nbsp;<a href="https://apify.com/clearpath/kleinanzeigen-scraper" style="color:#203B12;text-decoration:none;font-weight:700;font-size:13px">Kleinanzeigen</a></span><br><span style="color:#425523;font-size:12px;white-space:nowrap">Du bist hier</span></td><td style="background:#F0F9D8;padding:10px 10px;border:1px solid #C9D9A4;vertical-align:top;width:20%"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/DSvMCAwsufMyZeLyt-actor-Yu9fmARTOt79Ungbn-PTLhKqKWa5-kleinanzeigen-immobilien-api-pro-logo.png" width="20" height="20" alt="" style="vertical-align:middle"/>&nbsp;&nbsp;<a href="https://apify.com/clearpath/kleinanzeigen-autos-scraper" style="color:#203B12;text-decoration:none;font-weight:700;font-size:13px">Autos</a></span><br><span style="color:#425523;font-size:12px;white-space:nowrap">Gebrauchtwagen & Händler</span></td><td style="background:#F0F9D8;padding:10px 10px;border:1px solid #C9D9A4;vertical-align:top;width:20%"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/DSvMCAwsufMyZeLyt-actor-Yu9fmARTOt79Ungbn-PTLhKqKWa5-kleinanzeigen-immobilien-api-pro-logo.png" width="20" height="20" alt="" style="vertical-align:middle"/>&nbsp;&nbsp;<a href="https://apify.com/clearpath/kleinanzeigen-immobilien-api-pro" style="color:#203B12;text-decoration:none;font-weight:700;font-size:13px">Immobilien</a></span><br><span style="color:#425523;font-size:12px;white-space:nowrap">Inserate & Details</span></td><td style="background:#F0F9D8;padding:10px 10px;border:1px solid #C9D9A4;vertical-align:top;width:20%"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/DSvMCAwsufMyZeLyt-actor-P37iR62zVMGSIzz8P-HDthE5mbAT-kleinanzeigen-immobilien-api-pro-logo.png" width="20" height="20" alt="" style="vertical-align:middle"/>&nbsp;&nbsp;<a href="https://apify.com/clearpath/kleinanzeigen-message-api" style="color:#203B12;text-decoration:none;font-weight:700;font-size:13px">Nachrichten</a></span><br><span style="color:#425523;font-size:12px;white-space:nowrap">Senden & empfangen</span></td><td style="background:#F0F9D8;padding:10px 10px;border:1px solid #C9D9A4;vertical-align:top;width:20%"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/DSvMCAwsufMyZeLyt-actor-rfUFdb0huw88MIU1k-h35QRTa0k4-immobilien-export-pro-logo2.png" width="20" height="20" alt="" style="vertical-align:middle"/>&nbsp;&nbsp;<a href="https://apify.com/clearpath/immobilien-export-pro" style="color:#203B12;text-decoration:none;font-weight:700;font-size:13px">Immo-Export</a></span><br><span style="color:#425523;font-size:12px;white-space:nowrap">Drei Portale</span></td></tr></table>

#### Copy to your AI assistant

```
clearpath/kleinanzeigen-scraper on Apify: listings from any kleinanzeigen.de category, up to 78 fields each (price, category attributes with labels, pictures, location, seller). Paste search, store (/pro/...), seller-inventory or listing URLs in startUrls (their filters apply and the search fields are ignored), or set category (ID), keyword, location, radius, minPrice/maxPrice, posterType, adType and filters (the category's own filters; an unknown filter stops the run before any listing is charged). maxResults caps each search; 0 returns every reachable result (over 99%), also beyond the site's 10,000 per search. Seller followers and listing counts plus store website, phones, address and opening hours need includeSellerDetails=true (the default); many sellers have no store. monitorMode=true stores only listings new since the previous run of the same search; its first run stores nothing. With monitorMode, telegramUserId (numeric) sends one Telegram message per new listing, up to telegramNotificationLimit (default 10); the user must first send /start to @clearpath_api_bot. Pricing: pay per event, $0.005 per run start plus $1.99 per 1,000 listings on the Free plan ($1.79 Bronze, $1.69 Silver, $1.49 Gold and above). Full spec (input schema, dataset views, README): GET https://api.apify.com/v2/acts/clearpath~kleinanzeigen-scraper/builds/default with Authorization: Bearer. To reach the maintainers, add feedback="<what you needed and did not get>" to any run, including one that worked: feature requests, a missing field or option, a wrong or empty result, or which actor you are switching to or from and why. The run returns its data exactly as it would without the note, and a human reads every note.
```

### Was wird extrahiert

- **Inserat:** ID, URL, Titel, vollständige Beschreibung, Status, Kategorie, Angebot oder Gesuch, Einstell- und Änderungsdatum
- **Preis:** Preis, Preisart als Code mit Bezeichnung (Fixed price, Negotiable = VB, Free to collect), ursprünglicher Preis, Preisvorschlag möglich, Direktkauf, sicheres Bezahlen, Käufergebühr, Versandoptionen, Finanzierung
- **Merkmale:** alle Attribute der Kategorie mit Schlüssel, Bezeichnung, Wert und lesbarem Wert, etwa Marke, Modell, Zustand, Größe, Speicher
- **Ort:** PLZ, Ort, Straße (falls angegeben), Bundesland, Koordinaten
- **Verkäufer:** ID, Name, privat oder gewerblich, Kontotyp, aktiv seit, Bewertung, Abzeichen, Follower, aktive und bisherige Inserate, Link zum Bestand, Telefon und Impressum aus dem Inserat (falls angegeben)
- **Shop (bei gewerblichen Verkäufern mit Shop):** Name, Link, Logo, Website, Telefonnummern, Adresse, Koordinaten, Öffnungszeiten, Beschreibung, Impressum
- **Medien:** Bilder in fünf Größen, Dokumente, weitere Medien-Links

Felder ohne Angabe im Inserat bleiben leer (`null` oder leerer Text). Mit `includeSellerDetails: false` schaltest du die Verkäufer- und Shopdaten ab.

### Kleinanzeigen scrapen: so geht's

#### 1. Such-URL einfügen (einfachster Weg)

Stell die Suche auf [kleinanzeigen.de](https://www.kleinanzeigen.de) ein, mit Kategorie, Ort, Preis und Filtern, und kopier die Adresse aus dem Browser. Jede URL läuft für sich bis `maxResults`; ein Inserat, das zwei Suchen finden, wird einmal gespeichert.

```json
{
    "startUrls": [
        "https://www.kleinanzeigen.de/s-berlin/iphone/k0l3331"
    ],
    "maxResults": 100
}
```

#### 2. Suche über Felder bauen

Ohne URL: Kategorie, Suchbegriff, Ort, Umkreis, Preis und Anbieter direkt setzen. `filters` nimmt die eigenen Filter der Kategorie, wie auf kleinanzeigen.de.

```json
{
    "category": "173",
    "keyword": "iphone",
    "location": "Hamburg",
    "radius": 30,
    "filters": {
        "art": "Apple",
        "condition": "like_new"
    },
    "maxResults": 50
}
```

#### 3. Alle Inserate eines Shops

Die Adresse eines Shops (`/pro/…`) oder eines Verkäuferbestands (`/s-bestandsliste.html?userId=…`) liefert alle Inserate dieses Verkäufers.

```json
{
    "startUrls": [
        "https://www.kleinanzeigen.de/pro/maurer-medical-solution"
    ],
    "maxResults": 200
}
```

#### 4. Einzelne Anzeigen

Anzeigen-URLs werden vollständig gelesen und zählen nicht gegen `maxResults`, bis zu 50 pro Lauf. Ersetze die Beispiel-URL durch deine Anzeige.

```json
{
    "startUrls": [
        "https://www.kleinanzeigen.de/s-anzeige/apple-iphone-18-pro-512gb-burgunder-weiss-blau-schwarz/3533143980-173-3343"
    ]
}
```

### Input-Parameter

| Parameter | Typ | Standard | Bedeutung |
|---|---|---|---|
| `startUrls` | array | -- | Such-, Shop- oder Anzeigen-URLs von kleinanzeigen.de, bis zu 100 Suchen pro Lauf. Sind URLs angegeben, werden die Suchfelder ignoriert. |
| `maxResults` | integer | `0` | Höchstzahl Inserate pro Suche. `0` = alle erreichbaren Treffer (über 99 %). |
| `category` | string | -- | Kategorie-ID, z. B. `173` (Smartphones). Leer = alle Kategorien. |
| `keyword` | string | -- | Suchbegriff wie im Suchfeld der Website. |
| `location` | string | -- | Stadt, PLZ oder Bundesland. Leer = ganz Deutschland. |
| `radius` | integer | -- | Umkreis in km, braucht einen Ort. |
| `minPrice` / `maxPrice` | integer | -- | Preisgrenzen in EUR. |
| `posterType` | string | `ALL` | `ALL`, `PRIVATE` oder `COMMERCIAL`. |
| `adType` | string | `ALL` | `ALL`, `OFFERED` (Angebote) oder `WANTED` (Gesuche). |
| `filters` | object | -- | Eigene Filter der Kategorie, Bereiche als `min,max`. |
| `sorting` | string | `newest` | `newest`, `price_asc`, `price_desc`, `distance`. |
| `includeSellerDetails` | boolean | `true` | Verkäufer- und Shopdaten ergänzen. |
| `monitorMode` | boolean | `false` | Nur neue Inserate seit dem letzten Lauf speichern. |
| `telegramUserId` | string | -- | Deine Telegram-Nutzer-ID für eine Nachricht pro neuem Inserat im Monitor-Modus. |
| `telegramNotificationLimit` | integer | `10` | Höchstzahl Telegram-Nachrichten pro Lauf. |

Alle Kategorien mit ID findest du im [Input-Tab](https://console.apify.com/actors/olRy4Ux7QiRz3CkuJ/input).

### Output-Beispiel

Ein echtes Smartphone-Inserat eines Shops. Verkäufer- und Shopangaben sind im Beispiel anonymisiert; `pictures` und `attributes` sind auf die ersten Einträge gekürzt.

```json
{
    "id": "3533143980",
    "url": "https://www.kleinanzeigen.de/s-anzeige/apple-iphone-18-pro-512gb-burgunder-weiss-blau-schwarz/3533143980-173-3343",
    "title": "Apple iPhone 18 Pro 512GB Burgunder, Weiss, Blau, Schwarz",
    "description": "Zum Verkauf steht ein Apple iPhone 18 Pro 512GB in Weiss, Rot, Blau und Schwarz\n\nDas Gerät ist neu und ungeöffnet mit voller Apple\n\nGarantie.\n\nDer Preis von 1599,00€ ist fest und nicht verhandelbar.\n\nAuf Verhandlungen wird nicht reagiert.\n\nAktuell nur Barzahlung.",
    "description_content_type": "text/markdown",
    "status": "ACTIVE",
    "category_id": "173",
    "category": "Smartphones",
    "category_key": "Handy_Telekom",
    "parent_category_id": "161",
    "ad_type": "OFFERED",
    "ad_type_label": "Offer",
    "price": 1599,
    "price_currency": "EUR",
    "price_type": "SPECIFIED_AMOUNT",
    "price_type_label": "Fixed price",
    "original_price": null,
    "offer_allowed": false,
    "buy_now": false,
    "secure_payment_possible": false,
    "buyer_fee_eur": null,
    "shipping_options": null,
    "financing_eligible": false,
    "financing": null,
    "zip_code": "10627",
    "city": "Charlottenburg",
    "street": "Musterstraße 1",
    "latitude": 52.51,
    "longitude": 13.31,
    "location_id": "3343",
    "location": "10627 Charlottenburg",
    "region": "Berlin",
    "seller_id": "10000001",
    "seller_name": "Verkäufer",
    "seller_initials": "V",
    "poster_type": "COMMERCIAL",
    "poster_type_label": "Commercial seller",
    "seller_account_type": "PRO",
    "seller_account_type_label": "Pro store",
    "seller_package": "commercial_propremium",
    "seller_since": "2020-12-30T11:15:55+01:00",
    "seller_rating": 0.6086956521739131,
    "seller_badges": [
        {
            "name": "rating",
            "level": "1"
        },
        {
            "name": "friendliness",
            "level": "1"
        },
        {
            "name": "reliability",
            "level": "0"
        }
    ],
    "seller_inventory_url": "https://www.kleinanzeigen.de/s-bestandsliste.html?userId=10000001",
    "store_id": "100001",
    "store_name": "Beispiel Shop",
    "store_url": "https://www.kleinanzeigen.de/pro/beispiel-shop",
    "phone": "030 0000000",
    "imprint": "Beispiel Shop\nMusterstraße 1\n10627 Berlin",
    "attributes": [
        {
            "key": "handy_telekom.art",
            "label": "Art",
            "value": "apple",
            "value_label": "Apple",
            "unit": null
        },
        {
            "key": "handy_telekom.versand",
            "label": "Versand",
            "value": "nein",
            "value_label": "Nur Abholung",
            "unit": null
        },
        {
            "key": "handy_telekom.model",
            "label": "Modell",
            "value": "iphone_18_pro",
            "value_label": "iPhone 18 Pro",
            "unit": null
        },
        {
            "key": "handy_telekom.color",
            "label": "Farbe",
            "value": "rot",
            "value_label": "Rot",
            "unit": null
        }
    ],
    "other_attributes": null,
    "external_reference_id": null,
    "pictures": [
        {
            "thumbnail_url": "https://img.kleinanzeigen.de/api/v1/prod-ads/images/c3/c3e9691d-f76e-48ff-ad8c-9ae97e3ca050?rule=$_0.JPG",
            "teaser_url": "https://img.kleinanzeigen.de/api/v1/prod-ads/images/c3/c3e9691d-f76e-48ff-ad8c-9ae97e3ca050?rule=$_2.JPG",
            "web_url": "https://img.kleinanzeigen.de/api/v1/prod-ads/images/c3/c3e9691d-f76e-48ff-ad8c-9ae97e3ca050?rule=$_1.JPG",
            "extra_large_url": "https://img.kleinanzeigen.de/api/v1/prod-ads/images/c3/c3e9691d-f76e-48ff-ad8c-9ae97e3ca050?rule=$_59.JPG",
            "full_url": "https://img.kleinanzeigen.de/api/v1/prod-ads/images/c3/c3e9691d-f76e-48ff-ad8c-9ae97e3ca050?rule=$_57.JPG"
        }
    ],
    "documents": null,
    "medias": null,
    "placeholder_image": false,
    "features_active": null,
    "labels": null,
    "posted_via": "0",
    "posted_via_label": "Website",
    "posted_at": "2026-10-06T16:59:52+02:00",
    "edited_at": "2026-10-06T16:59:51+02:00",
    "scraped_at": "2026-10-06T16:33:41.739877+00:00",
    "seller_followers": 148,
    "seller_online_listings": 14,
    "seller_total_listings": 458,
    "store_logo_url": "https://img.kleinanzeigen.de/api/v1/prod-user/images/00/00000000-0000-0000-0000-000000000000?rule=$_12.JPG",
    "store_website": "https://www.example.com",
    "store_phone": "030 0000000",
    "store_phone_2": "030 0000001",
    "store_street": "Musterstraße 1",
    "store_zip_code": "10627",
    "store_location": "Berlin - Charlottenburg",
    "store_latitude": 52.51,
    "store_longitude": 13.31,
    "store_opening_hours": [
        {
            "days": "Mo - Fr:",
            "hours": [
                "10:00 - 19:00"
            ]
        },
        {
            "days": "Sa:",
            "hours": [
                "10:00 - 16:00"
            ]
        }
    ],
    "store_description": "Willkommen im Beispiel Shop.",
    "store_imprint": "Beispiel Shop\nMusterstraße 1\n10627 Berlin"
}
```

### Monitor-Modus: nur neue Inserate

Mit `monitorMode` speichert ein Lauf nur Inserate, die seit dem letzten Lauf derselben Suche neu dazugekommen sind.

1. **Erster Lauf:** merkt sich den aktuellen Bestand und speichert noch nichts.
2. **Jeder weitere Lauf:** speichert nur die neuen Inserate.

Der Monitor-Modus verfolgt eine Suche pro Lauf; für mehrere Suchen legst du je einen Task an. Speichere die Eingabe als Task und starte ihn per [Apify-Zeitplan](https://docs.apify.com/platform/schedules), etwa stündlich. Ändert sich die Suche (andere URL, andere Filter), beginnt sie mit einem neuen Bestand.

```json
{
    "startUrls": [
        "https://www.kleinanzeigen.de/s-berlin/iphone/k0l3331"
    ],
    "monitorMode": true,
    "maxResults": 0
}
```

### Telegram-Benachrichtigungen

Im Monitor-Modus schickt der Actor dir für jedes neue Inserat eine Telegram-Nachricht, bis zu `telegramNotificationLimit` pro Lauf (Standard 10). Der erste Lauf, der nur den Bestand merkt, verschickt nichts.

1. Schreib [@userinfobot](https://t.me/userinfobot) auf Telegram; er antwortet mit deiner numerischen Nutzer-ID.
2. Öffne [@clearpath_api_bot](https://t.me/clearpath_api_bot) und schick `/start`. Ohne diesen ersten Kontakt lässt Telegram den Bot dir nicht schreiben.
3. Trag die ID in `telegramUserId` ein und aktiviere `monitorMode`.

```json
{
    "startUrls": [
        "https://www.kleinanzeigen.de/s-berlin/iphone/k0l3331"
    ],
    "monitorMode": true,
    "telegramUserId": "123456789",
    "telegramNotificationLimit": 15,
    "maxResults": 0
}
```

### Integration mit Python und JavaScript

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient("DEIN_APIFY_TOKEN")

run = client.actor("clearpath/kleinanzeigen-scraper").call(run_input={"category": "173", "keyword": "iphone", "location": "Berlin", "maxResults": 50})

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["title"], item["price"], item.get("seller_name"))
```

#### JavaScript

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

const client = new ApifyClient({ token: "DEIN_APIFY_TOKEN" });

const run = await client.actor("clearpath/kleinanzeigen-scraper").call({"category": "173", "keyword": "iphone", "location": "Berlin", "maxResults": 50});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => console.log(item.title, item.price, item.seller_name));
```

### Preise

Abrechnung pro gespeichertem Inserat: $1,99 pro 1.000 Inserate im Free-Plan. Bronze zahlt $1,79, Silver $1,69, Gold und höher $1,49. Pro Inserat zahlst du nur, wenn es im Datensatz landet. Kein Abo, keine Mindestlaufzeit.

### FAQ

**Welche Kategorien werden unterstützt?**
Alle Kategorien von kleinanzeigen.de, von Elektronik über Haus & Garten bis Jobs und Immobilien. Für Immobilien mit eigenen Spalten wie Wohnfläche und Kaltmiete gibt es [Kleinanzeigen Immobilien Pro](https://apify.com/clearpath/kleinanzeigen-immobilien-api-pro), für Autos mit Fahrzeugspalten den [Kleinanzeigen Autos Scraper](https://apify.com/clearpath/kleinanzeigen-autos-scraper).

**Bekomme ich mehr als 10.000 Ergebnisse?**
Ja, nahezu alle. Die Website zeigt pro Suche höchstens 10.000 Treffer. Mit `maxResults: 0` teilt der Actor größere Suchen automatisch auf und speichert über 99 % der Treffer, jedes Inserat einmal. Wie viele nicht erreichbar waren, steht im Log.

**Kann ich Gesuche statt Angebote abrufen?**
Ja, mit `adType: "WANTED"`. Standardmäßig kommen Angebote und Gesuche gemeinsam, wie auf der Website.

**Bekomme ich Telefonnummern?**
Nur wenn der Verkäufer sie öffentlich angibt: im Inserat (`phone`) oder im Shop (`store_phone`, `store_phone_2`). Private Verkäufer haben meist keine.

**Warum stoppt mein Lauf mit einer Liste von Filtern?**
Ein Filter, den die Kategorie nicht kennt, wird nicht still ignoriert: Der Lauf stoppt, bevor ein Inserat berechnet wird, und nennt die Filter, die es dort gibt. So bekommst du nie Ergebnisse, die deinen Filter nicht erfüllen.

**Brauche ich einen Kleinanzeigen-Account?**
Nein.

**Wie aktuell sind die Daten?**
Jeder Lauf liest die Inserate in dem Moment, in dem er läuft.

**Wie begrenze ich die Kosten eines Laufs?**
Mit `maxResults` legst du fest, wie viele Inserate jede Suche höchstens speichert. Zusätzlich kannst du in Apify pro Lauf ein Kostenlimit setzen: Ist es erreicht, endet der Lauf mit den bis dahin gespeicherten Inseraten.

**Kann ich die Daten kommerziell nutzen?**
Die Datenerhebung unterliegt den Nutzungsbedingungen von Kleinanzeigen und den geltenden Datenschutzgesetzen. Prüf die rechtliche Lage für deinen Anwendungsfall selbst, besonders bei Verkäuferdaten.

### Weitere Actors von Clearpath

- [Kleinanzeigen Autos Scraper](https://apify.com/clearpath/kleinanzeigen-autos-scraper): Gebrauchtwagen mit 16 Fahrzeugfiltern und eigenen Fahrzeugspalten, von Händlern und privat.
- [Kleinanzeigen Immobilien Pro](https://apify.com/clearpath/kleinanzeigen-immobilien-api-pro): Miet- und Kaufangebote mit Wohnfläche, Zimmern, Nebenkosten und Exposé-Texten.
- [Kleinanzeigen Nachrichten](https://apify.com/clearpath/kleinanzeigen-message-api): Nachrichten an Inserenten senden und das Postfach abrufen.
- [Immobilien Export Pro](https://apify.com/clearpath/immobilien-export-pro): Kaufimmobilien aus ImmoScout24, Kleinanzeigen und Immowelt in einem Datensatz.

### Individuelle Lösungen

Spezielle Anforderungen oder höhere Volumen? Schreib uns im Issues-Tab oder an <max@mapa.slmail.me>.

# Actor input Schema

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

Adressen von kleinanzeigen.de: eine Suche in beliebiger Kategorie mit allen Filtern (Marke, Modell, Kilometer, Preis, Anbietertyp, Ort und Umkreis, Suchbegriff, Sortierung) oder eine einzelne Anzeige. Jede Suche läuft für sich bis <b>Max. Ergebnisse</b>; ein Inserat, das zwei Suchen finden, wird einmal gespeichert. Sind URLs angegeben, werden die Suchfelder unten ignoriert. Bis zu 100 Such-URLs pro Lauf.

## `maxResults` (type: `integer`):

Höchstzahl gespeicherter Inserate für <b>jede</b> Such-URL bzw. Suche. <code>0</code> speichert alle erreichbaren Treffer (über 99 %), auch bei Suchen mit mehr als 10.000 Ergebnissen. Anzeigen-URLs werden vollständig gelesen und zählen nicht mit.

## `includeSellerDetails` (type: `boolean`):

Ergänzt jede Zeile um Follower und Inseratszahlen des Verkäufers und, bei Verkäufern mit Shop, Website, Telefonnummern, Adresse und Öffnungszeiten des Shops.

## `category` (type: `string`):

Die zu durchsuchende Kategorie. Leer lassen, um alle Kategorien zu durchsuchen.

## `keyword` (type: `string`):

Wörter, die das Inserat enthalten muss, wie im Suchfeld auf kleinanzeigen.de.

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

Stadt, PLZ oder Bundesland, z. B. <code>Berlin</code> oder <code>80331</code>. Leer lassen für ganz Deutschland.

## `radius` (type: `integer`):

Entfernung um den Ort. Braucht einen Ort.

## `minPrice` (type: `integer`):

Niedrigster Angebotspreis. Inserate ohne Preis fallen weg, sobald eine Preisgrenze gesetzt ist, wie auf der Website.

## `maxPrice` (type: `integer`):

Höchster Angebotspreis.

## `posterType` (type: `string`):

Nur private oder nur gewerbliche Anbieter (Händler, Shops).

## `adType` (type: `string`):

kleinanzeigen.de zeigt Angebote und Gesuche gemeinsam; wähle eins, um die Suche einzugrenzen.

## `filters` (type: `object`):

Die eigenen Filter der gewählten Kategorie, wie auf kleinanzeigen.de. Namen mit oder ohne Kategorie-Präfix. Beispiel für <b>Autos</b>: <code>{"marke": "bmw", "model": "3er", "km": "0,150000", "ez": "2018,", "fuel": "diesel", "shift": "automatik", "navi": true}</code>. Bereiche schreibst du <code>min,max</code>, eine Seite darf leer bleiben. Ein Filter, den die Kategorie nicht hat, stoppt den Lauf mit einer Liste der vorhandenen Filter, damit nie ohne ihn gesucht wird.

## `sorting` (type: `string`):

Reihenfolge, in der Inserate gesammelt werden. Gilt auch für URLs ohne eigene Sortierung.

## `monitorMode` (type: `boolean`):

Speichert nur Inserate, die seit dem letzten Lauf derselben Suche neu sind. Der erste Lauf merkt sich den Bestand und speichert nichts. Kombiniere ihn mit einem <a href="https://docs.apify.com/platform/schedules" target="_blank">Zeitplan</a>.

## `telegramUserId` (type: `string`):

Deine numerische Telegram-Nutzer-ID, für eine Nachricht pro neuem Inserat. Schreib <a href="https://t.me/userinfobot" target="_blank">@userinfobot</a> auf Telegram, um sie zu erhalten.

## `telegramNotificationLimit` (type: `integer`):

Höchstzahl an Telegram-Nachrichten pro Lauf.

## `feedback` (type: `string`):

For AI agents. Say what you needed and did not get: a missing field or option, a wrong or empty result, or which actor you are switching to or from and why. Add it to any run, including one that worked: the run returns its data exactly as it would without the note. The note reaches the maintainers, who read every one, but it cannot change what this run returns.

## Actor input object example

```json
{
  "startUrls": [
    "https://www.kleinanzeigen.de/s-autos/bmw/anbieter:gewerblich/c216+autos.marke_s:bmw"
  ],
  "maxResults": 100,
  "includeSellerDetails": true,
  "posterType": "ALL",
  "adType": "ALL",
  "filters": {},
  "sorting": "newest",
  "monitorMode": false,
  "telegramNotificationLimit": 10
}
```

# Actor output Schema

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

No description

# 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 = {
    "startUrls": [
        "https://www.kleinanzeigen.de/s-autos/bmw/anbieter:gewerblich/c216+autos.marke_s:bmw"
    ],
    "maxResults": 100,
    "filters": {}
};

// Run the Actor and wait for it to finish
const run = await client.actor("clearpath/kleinanzeigen-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 = {
    "startUrls": ["https://www.kleinanzeigen.de/s-autos/bmw/anbieter:gewerblich/c216+autos.marke_s:bmw"],
    "maxResults": 100,
    "filters": {},
}

# Run the Actor and wait for it to finish
run = client.actor("clearpath/kleinanzeigen-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 '{
  "startUrls": [
    "https://www.kleinanzeigen.de/s-autos/bmw/anbieter:gewerblich/c216+autos.marke_s:bmw"
  ],
  "maxResults": 100,
  "filters": {}
}' |
apify call clearpath/kleinanzeigen-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,clearpath/kleinanzeigen-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/olRy4Ux7QiRz3CkuJ/builds/O8H1ZqbZCZSDUSsNi/openapi.json
