# Kleinanzeigen Scraper \[$1.3💰]| Cars, Real Estate & Seller Data (`ahmed_jasarevic/kleinanzeigen-scraper`) Actor

Scrape Kleinanzeigen.de listings with prices, GPS coordinates, seller type, and contact info. Monitor car deals, real estate, and electronics across Germany. No API needed — just paste your search URL and get structured data in seconds.

- **URL**: https://apify.com/ahmed\_jasarevic/kleinanzeigen-scraper.md
- **Developed by:** [Ahmed Jasarevic](https://apify.com/ahmed_jasarevic) (community)
- **Categories:** Developer tools, Automation, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.30 / 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.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Kleinanzeigen.de Scraper - German Classifieds Data API

Scrape **50+ million listings** from [kleinanzeigen.de](https://www.kleinanzeigen.de) (formerly eBay Kleinanzeigen) — Germany's largest classifieds marketplace. This Actor talks directly to the **mobile JSON API** (the same one the official Android app uses), returning structured data the website never shows: **exact GPS coordinates**, **seller type**, **price type**, **typed attributes**, **high-res images**, and **precise timestamps**.

No API key required. No browser automation. Just clean, structured JSON from Germany's biggest C2C marketplace.

***

### Use Cases

- **Price monitoring & market analysis** — track asking prices across electronics, cars, real estate, furniture, and fashion in Germany
- **Lead generation** — identify commercial vs. private sellers, extract seller profiles for B2B outreach
- **Deal hunting & arbitrage** — detect underpriced listings the moment they appear
- **Product research & comparison** — build datasets of German secondhand market values
- **Real estate intelligence** — pull apartment rentals, property sales, and rental price data by city
- **Used car market analysis** — extract mileage, registration, pricing, and seller data across Germany

***

### Why This Actor?

Kleinanzeigen.de has **no official public API**. The old eBay Kleinanzeigen endpoints are dead. This Actor fills the gap by using the **mobile JSON API** (`api.kleinanzeigen.de`) — the same backend the Android app uses — to return richer data than the website itself:

| Feature | Website | This Actor |
|---------|---------|------------|
| GPS coordinates | Approximate circle | Exact lat/long |
| Price type | Shows "VB" text | Structured (FIXED, NEGOTIABLE, GIVE\_AWAY) |
| Seller type | Basic badge | Full seller object with type, ID, account info |
| Attributes | Limited display | Complete typed key-value pairs |
| Images | Thumbnail only | Up to 1600px via CDN |
| Timestamps | Relative ("vor 2 Stunden") | ISO 8601 format |
| Rate limits | Browser-based throttling | Built-in residential proxy rotation |

***

### Output Fields

Each listing includes 25+ structured fields:

| Field | Type | Description |
|-------|------|-------------|
| `id` | string | Unique ad ID |
| `title` | string | Ad title |
| `description` | string | Full description text |
| `price` | number | Price in EUR (null if not set) |
| `priceType` | string | FIXED, NEGOTIABLE, PLEASE\_CONTACT, GIVE\_AWAY, ON\_REQUEST |
| `negotiable` | boolean | Whether price is negotiable (VB) |
| `url` | string | Direct link to the ad |
| `location` | string | City and zip code |
| `zipCode` | string | Postal code |
| `city` | string | City name |
| `latitude` | number | Exact GPS latitude |
| `longitude` | number | Exact GPS longitude |
| `images` | array | High-res image URLs (up to 1600px) |
| `datePosted` | string | ISO timestamp when the ad was posted |
| `seller.type` | string | "private" or "commercial" |
| `seller.name` | string | Seller/company name |
| `seller.userId` | string | Seller's user ID |
| `categoryName` | string | Category name |
| `status` | string | ACTIVE, RESERVED, EXPIRED |
| `adType` | string | OFFERED or WANTED |
| `labels` | array | Labels like "TopAd", "Highlight" |
| `features` | array | Active paid features |
| `attributes` | object | Typed attributes (brand, model, condition, etc.) |
| `hasPhoneNumber` | boolean | Whether phone number is displayed |
| `viewCount` | number | (optional) Number of views |

***

### Input Parameters

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| `searchUrl` | string | (required) | Any kleinanzeigen.de search URL |
| `maxPages` | integer | 5 | Number of pages to scrape (25 ads/page) |
| `maxItems` | integer | 0 | Max items total (0 = unlimited) |

#### Example Input

```json
{
  "searchUrl": "https://www.kleinanzeigen.de/s-aachen/iphone/k0l1921",
  "maxPages": 5,
  "maxItems": 0
}
```

#### Example Output

```json
[
  {
    "id": "3495528062",
    "title": "iPhone 14 Pro Max 256GB",
    "description": "Sehr gut erhalten, mit OVP...",
    "price": 875,
    "priceType": "NEGOTIABLE",
    "negotiable": true,
    "url": "https://www.kleinanzeigen.de/s-anzeige/iphone-14-pro-max/3495528062-192-6765",
    "location": "52066 Aachen-Mitte",
    "zipCode": "52066",
    "city": "Aachen-Mitte",
    "latitude": 50.7753,
    "longitude": 6.0839,
    "images": [
      "https://img.kleinanzeigen.de/api/v1/prod-ads/images/...?rule=$_57.AUTO"
    ],
    "datePosted": "2026-08-26T10:30:00.000+0200",
    "seller": {
      "name": "",
      "type": "private",
      "userId": "12268831"
    },
    "posterType": "PRIVATE",
    "categoryName": "iPhone",
    "status": "ACTIVE",
    "labels": [],
    "features": [],
    "attributes": {
      "Marke": "Apple",
      "Modell": "iPhone 14 Pro Max"
    }
  }
]
```

***

### Cost & Performance

- **Free tier**: Up to 50 items, 3 pages per run
- **Paid tier**: Up to 5,000 items, 34 pages per run
- **Compute cost**: ~$0.001 per page request
- **No browser needed**: Runs as a lightweight HTTP actor — fast and cheap
- **Proxy rotation**: Built-in residential proxy rotation (default)

***

### Integrations

This Actor works with:

- **Zapier** / **Make** / **n8n** — automate data flows to Google Sheets, Airtable, or your CRM
- **Apify webhooks** — get notified when runs complete
- **Apify scheduler** — set up daily/weekly monitoring runs
- **Apify MCP** — connect to AI agents for automated analysis

#### Recommended Monitoring Frequency

| Use Case | Recommended Schedule |
|----------|---------------------|
| Deal alerts | Every 1-2 hours |
| Price tracking | Daily |
| Market research | Weekly |
| Lead generation | Daily |

***

### Tips

- **Use residential proxies** — kleinanzeigen.de blocks datacenter IPs. The Actor uses Apify's residential proxy by default
- **Keep maxPages reasonable** — 50 pages = 1,250 ads. Going beyond may trigger rate limits
- **Schedule runs** — use Apify's scheduler to monitor listings daily and get notified of new ads
- **Combine with detail enrichment** — enable `fetchDetails` when you need full ad data, phone availability, and view counts

***

### Related Actors

More scrapers from the same developer:

- **[eBay Sold Items & Market Price Tracker](https://apify.com/ahmed_jasarevic/ebay-scraper)** — Track sold prices and market trends on eBay. Perfect for cross-platform price comparison with Kleinanzeigen
- **[AutoScout24 Scraper](https://apify.com/ahmed_jasarevic/autoscout24-scraper)** — Germany's largest car marketplace. Get full specs, seller data, and pricing for used vehicles across Europe
- **[Marketplace Cross-Country Arbitrage Scraper](https://apify.com/ahmed_jasarevic/vinted-cross-country-arbitrage-scraper)** — Find arbitrage opportunities across Vinted markets. Compare prices between countries for resale profit
- **[Real Estate Search & Property Details Scraper](https://apify.com/ahmed_jasarevic/real-estate-search-property-details-scraper)** — Multi-portal real estate scraper. Combine Kleinanzeigen property data with other German and European listing platforms
- **[Bayut Real Estate Scraper](https://apify.com/ahmed_jasarevic/bayut-scraper)** — UAE real estate data. Expand your property market coverage to Dubai and Abu Dhabi

***

### Frequently Asked Questions

#### Why use this Actor instead of the Kleinanzeigen API?

Kleinanzeigen.de has **no official public API**. The old eBay Kleinanzeigen endpoints (`api.ebay-kleinanzeigen.de`) are no longer accessible. This Actor uses the mobile JSON API that the official Android app relies on — the only working programmatic access point for Kleinanzeigen data.

#### How do I scrape Kleinanzeigen listings?

1. Go to kleinanzeigen.de and perform a search
2. Copy the URL from your browser's address bar
3. Paste it into the `searchUrl` field in this Actor's input
4. Set `maxPages` and `maxItems` as needed
5. Click **Start** — results appear in the Output tab

#### Can I filter by price, location, or seller type?

Yes. Build your search on kleinanzeigen.de with all desired filters (price range, location, radius, category, seller type), then paste the resulting URL into the Actor. All filters encoded in the URL are preserved.

#### Does this work for real estate and cars?

Yes. The Actor works across **all Kleinanzeigen categories** — electronics, furniture, cars, real estate, fashion, jobs, and services. Paste any category-specific search URL and the Actor handles the rest.

#### What's the difference between "FIXED" and "NEGOTIABLE" price types?

- **FIXED** (Festpreis): The seller expects the listed price, no negotiation
- **NEGOTIABLE** (VB/Verhandlungsbasis): Price is open to negotiation
- **GIVE\_AWAY** (Zu verschenken): Free items

#### Can I schedule recurring scrapes?

Yes. Use Apify's **Scheduler** to run this Actor on a daily, weekly, or custom schedule. Combine with Apify's webhook integration to get email, Slack, or Discord notifications when new listings appear.

#### Is scraping Kleinanzeigen legal?

This Actor extracts **publicly available listing data** — the same information any visitor can see on the website. All data is visible without logging in. Users are responsible for complying with German data protection laws (GDPR/DSGVO) and Kleinanzeigen's Terms of Service.

#### Alternatives to this Kleinanzeigen scraper

There are several Kleinanzeigen scrapers on Apify. What sets this one apart is the **mobile API approach** — it talks directly to `api.kleinanzeigen.de`, returning GPS coordinates, exact timestamps, and rich metadata that HTML-based scrapers miss. If you need basic listing data, any scraper works. If you need location precision, price type classification, and seller metadata, use this Actor.

***

### Legal Disclaimer

> This Actor extracts publicly available data from kleinanzeigen.de. It does not extract private user data such as email addresses, phone numbers, or private messages. Users should comply with applicable privacy regulations including GDPR/DSGVO and use collected data responsibly for legitimate business purposes.

# Actor input Schema

## `searchUrl` (type: `string`):

Kleinanzeigen search URL to scrape

## `maxPages` (type: `integer`):

Maximum number of pages to scrape (25 ads per page)

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

Maximum number of items to scrape (0 = unlimited)

## Actor input object example

```json
{
  "searchUrl": "https://www.kleinanzeigen.de/s-aachen/iphone/k0l1921",
  "maxPages": 5,
  "maxItems": 0
}
```

# Actor output Schema

## `dataset` (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 = {
    "searchUrl": "https://www.kleinanzeigen.de/s-aachen/iphone/k0l1921"
};

// Run the Actor and wait for it to finish
const run = await client.actor("ahmed_jasarevic/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 = { "searchUrl": "https://www.kleinanzeigen.de/s-aachen/iphone/k0l1921" }

# Run the Actor and wait for it to finish
run = client.actor("ahmed_jasarevic/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 '{
  "searchUrl": "https://www.kleinanzeigen.de/s-aachen/iphone/k0l1921"
}' |
apify call ahmed_jasarevic/kleinanzeigen-scraper --silent --output-dataset

```

## MCP server setup

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