# Kleinanzeigen Autos Scraper - German Used Cars (`benthepythondev/kleinanzeigen-autos-scraper`) Actor

Scrape used-car listings from Kleinanzeigen (Germany). Parses make, model, year, mileage, fuel, transmission, power & price into clean fields. Filter by make, location, year, mileage & price.

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

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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 Autos Scraper — German Used-Car Listings

Scrape **used-car listings from Kleinanzeigen** (formerly eBay Kleinanzeigen),
Germany's largest classifieds site and a top source of **private-seller** vehicles.
It parses the German car attributes — **Marke (make), Modell, Erstzulassung (year),
Kilometerstand (mileage), Kraftstoff (fuel), Getriebe (transmission), Leistung
(power)** — into clean, structured fields. A perfect complement to dealer-focused
sources like mobile.de.

### Quick start

Enter a **make/model** (e.g. `bmw`), a **location** (PLZ or city like `berlin` —
city names are auto-resolved), and click Run. You'll get structured car listings
with price, year, mileage, and specs. Add filters for max price, min year, or max
mileage.

### Why this Actor

- **Private-seller inventory** — Kleinanzeigen is where private owners list, often
  cheaper than dealer platforms; great for deal-hunting and market analysis.
- **Structured car data** — make, model, year, mileage, fuel, gearbox, power,
  condition, color, doors, emission class — not just a title + price.
- **Filter where it matters** — make/model, location + radius, price, year, mileage.
- **Reliable access** — residential DE proxies + city→ID resolution, the same
  hardened engine behind our Kleinanzeigen real-estate scraper.

### Input

| Field | Type | Description |
|-------|------|-------------|
| `keyword` | string | Make/model, e.g. "bmw", "vw golf", "tesla model 3" |
| `locationCode` | string | PLZ (10115) or city name (berlin, münchen) |
| `radiusKm` | integer | Search radius |
| `startUrls` | array | Paste exact Kleinanzeigen car-search URLs (precise control) |
| `minPrice` / `maxPrice` | integer | Price range (EUR) |
| `minYear` | integer | Min first-registration year (e.g. 2015) |
| `maxMileage` | integer | Max mileage (km) |
| `fetchDetails` | boolean | Open each listing for full specs (default true) |
| `maxResults` | integer | Max listings to return |

#### Example input

```json
{
  "keyword": "bmw 3er",
  "locationCode": "münchen",
  "maxPrice": 20000,
  "minYear": 2016,
  "maxMileage": 120000,
  "maxResults": 100
}
````

### Output

```json
{
  "ad_id": "2891234567",
  "title": "BMW 320d Touring, Automatik, Navi",
  "make": "BMW",
  "model": "320d",
  "year": 2017,
  "first_registration": "März 2017",
  "mileage_km": 98000,
  "price_eur": 16900,
  "fuel": "Diesel",
  "transmission": "Automatik",
  "power": "140 kW (190 PS)",
  "condition": "Gebraucht",
  "color": "Schwarz",
  "city": "München",
  "plz": "80331",
  "url": "https://www.kleinanzeigen.de/s-anzeige/...",
  "scraped_at": "2026-06-24T09:00:00Z"
}
```

### Use cases

- **Used-car deal-hunting & arbitrage** — spot underpriced private-seller cars.
- **Market & price analysis** — track asking prices by make/model/region over time.
- **Dealers & resellers** — source private inventory and leads.
- **Automotive proptech/apps** — power a search product with structured listings.

### FAQ

**What does it scrape?** Kleinanzeigen.de (Germany), the Autos (cars) section — private and commercial listings.

**Do I need an API key?** No. A residential DE proxy is used automatically for reliable access.

**Can I search by make/model and city?** Yes — set `keyword` (make/model) and `locationCode` (PLZ or city; city names auto-resolve to the right area). For full control, paste a search URL in `startUrls`.

**What car fields do I get?** Make, model, year, first registration, mileage, price, fuel, transmission, power, condition, color, doors, and emission class (when present in the listing).

**How is this different from a mobile.de scraper?** Kleinanzeigen is dominated by private sellers and budget cars, a different inventory than dealer-heavy mobile.de — useful for arbitrage and broader market coverage.

**Is scraping Kleinanzeigen legal?** It extracts publicly available listing data. Use it responsibly and within applicable laws and Kleinanzeigen's terms.

***

**Keywords:** Kleinanzeigen scraper, Kleinanzeigen Autos, German used car scraper, used car data Germany, car listings API, gebrauchtwagen scraper, mobile.de alternative, car price data, automotive market data, private seller cars, DACH car data.

# Actor input Schema

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

Best-effort title filter by make/model, e.g. 'bmw', 'vw golf'. Many listings omit the brand in the title, so for precise make filtering paste a Kleinanzeigen search URL (with the make facet selected) into Start URLs.

## `locationCode` (type: `string`):

German postal code (e.g. 10115) or city name (e.g. berlin, münchen) — city names are auto-resolved. Leave empty for all of Germany.

## `radiusKm` (type: `integer`):

Search radius around the location.

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

Paste exact kleinanzeigen.de car-search URLs (overrides the fields above). Most reliable for precise filters — search on kleinanzeigen.de and copy the URL.

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

Only keep cars at or above this price.

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

Only keep cars at or below this price.

## `minYear` (type: `integer`):

Only keep cars registered in this year or later (e.g. 2015).

## `maxMileage` (type: `integer`):

Only keep cars at or below this mileage.

## `fetchDetails` (type: `boolean`):

Open each listing to extract make, model, year, mileage, fuel, gearbox, power, etc. (recommended).

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

Maximum number of listings to return.

## `proxyConfiguration` (type: `object`):

Residential DE proxy is strongly recommended (Kleinanzeigen blocks datacenter IPs).

## Actor input object example

```json
{
  "locationCode": "berlin",
  "radiusKm": 0,
  "fetchDetails": true,
  "maxResults": 100,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "DE"
  }
}
```

# 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 = {
    "locationCode": "berlin",
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "DE"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("benthepythondev/kleinanzeigen-autos-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 = {
    "locationCode": "berlin",
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "DE",
    },
}

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

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

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

```

## CLI example

```bash
echo '{
  "locationCode": "berlin",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "DE"
  }
}' |
apify call benthepythondev/kleinanzeigen-autos-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=benthepythondev/kleinanzeigen-autos-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Kleinanzeigen Autos Scraper - German Used Cars",
        "description": "Scrape used-car listings from Kleinanzeigen (Germany). Parses make, model, year, mileage, fuel, transmission, power & price into clean fields. Filter by make, location, year, mileage & price.",
        "version": "0.1",
        "x-build-id": "aILom9nTIrPxvgdwH"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/benthepythondev~kleinanzeigen-autos-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-benthepythondev-kleinanzeigen-autos-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/benthepythondev~kleinanzeigen-autos-scraper/runs": {
            "post": {
                "operationId": "runs-sync-benthepythondev-kleinanzeigen-autos-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/benthepythondev~kleinanzeigen-autos-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-benthepythondev-kleinanzeigen-autos-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "keyword": {
                        "title": "Make / model (optional, best-effort)",
                        "type": "string",
                        "description": "Best-effort title filter by make/model, e.g. 'bmw', 'vw golf'. Many listings omit the brand in the title, so for precise make filtering paste a Kleinanzeigen search URL (with the make facet selected) into Start URLs."
                    },
                    "locationCode": {
                        "title": "Location (PLZ or city)",
                        "type": "string",
                        "description": "German postal code (e.g. 10115) or city name (e.g. berlin, münchen) — city names are auto-resolved. Leave empty for all of Germany."
                    },
                    "radiusKm": {
                        "title": "Radius (km)",
                        "minimum": 0,
                        "maximum": 200,
                        "type": "integer",
                        "description": "Search radius around the location.",
                        "default": 0
                    },
                    "startUrls": {
                        "title": "Start URLs (optional)",
                        "type": "array",
                        "description": "Paste exact kleinanzeigen.de car-search URLs (overrides the fields above). Most reliable for precise filters — search on kleinanzeigen.de and copy the URL.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "minPrice": {
                        "title": "Min price (EUR)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Only keep cars at or above this price."
                    },
                    "maxPrice": {
                        "title": "Max price (EUR)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Only keep cars at or below this price."
                    },
                    "minYear": {
                        "title": "Min first-registration year",
                        "minimum": 1950,
                        "maximum": 2030,
                        "type": "integer",
                        "description": "Only keep cars registered in this year or later (e.g. 2015)."
                    },
                    "maxMileage": {
                        "title": "Max mileage (km)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Only keep cars at or below this mileage."
                    },
                    "fetchDetails": {
                        "title": "Fetch detail pages",
                        "type": "boolean",
                        "description": "Open each listing to extract make, model, year, mileage, fuel, gearbox, power, etc. (recommended).",
                        "default": true
                    },
                    "maxResults": {
                        "title": "Max results",
                        "minimum": 1,
                        "maximum": 5000,
                        "type": "integer",
                        "description": "Maximum number of listings to return.",
                        "default": 100
                    },
                    "proxyConfiguration": {
                        "title": "Proxy",
                        "type": "object",
                        "description": "Residential DE proxy is strongly recommended (Kleinanzeigen blocks datacenter IPs).",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ],
                            "apifyProxyCountry": "DE"
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
