# Mobile.de Scraper — German Used Car Listings, Prices & Specs (`crawloop/mobile-de-scraper`) Actor

Scrape mobile.de used car listings: BMW, Mercedes, VW, Audi & all makes. Extract prices, mileage, fuel type, transmission, price rating, dealer phone & GPS, features, images. Search by make/model or URL. JSON/CSV export. 128–512 MB RAM.

- **URL**: https://apify.com/crawloop/mobile-de-scraper.md
- **Developed by:** [Andrej Kiva](https://apify.com/crawloop) (community)
- **Categories:** E-commerce, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.50 / 1,000 scraped vehicle listings

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/platform/actors/running/actors-in-store#pay-per-event

## 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

## Mobile.de Scraper — German Used Car Listings, Prices, Specs & Dealer Data

> **Disclaimer:** This is an unofficial integration developed independently. It is not affiliated with, sponsored by, or endorsed by mobile.de GmbH or any of its subsidiaries.
>
> **mobile.de** and related names are trademarks of mobile.de GmbH. Data is read from publicly accessible vehicle listings. No mobile.de account login is required.
>
> This Actor is provided **for informational, research, and price monitoring purposes only**. You are solely responsible for complying with applicable laws, mobile.de's terms of use, and your organization's policies.

Scrape **mobile.de** — Germany's largest online car marketplace with 1.4M+ active vehicle listings. Extract structured used-car and new-car data: make, model, year, mileage, fuel type, transmission, power, emission class, gross and net prices with VAT, mobile.de **price rating** with market threshold bands, full equipment lists, plain-text descriptions, dealer name, address, phone numbers, customer ratings, geocoordinates, and high-resolution images.

Search by **make and model** in plain text (BMW, Mercedes-Benz, Volkswagen, Audi, …), filter by price, first-registration year, mileage, fuel, and transmission — or paste a pre-filtered **mobile.de search URL** from your browser. Supports cars, motorbikes, motorhomes, trucks, vans, construction machines, trailers, and agricultural vehicles.

Runs on **128–512 MB RAM** with fast structured-API extraction — no headless browser required. Export results as JSON, CSV, or Excel from the dataset.

**Best for:** used-car price research, dealer inventory monitoring, vehicle sourcing, automotive market analytics, cross-border trade data, and bulk listing pipelines.

### When to use this Actor

- **Used-car price intelligence** — Build valuation datasets with prices, price ratings, mileage, and specs across any make/model on mobile.de.
- **Dealer inventory monitoring** — Track stock levels, newly listed vehicles, and listing updates via `createdAt` and `modifiedAt` timestamps.
- **Vehicle sourcing & arbitrage** — Filter by price, year, mileage, and fuel type; sort by newest; export dealer leads with phone numbers and GPS coordinates.
- **Exact browser-filter replication** — Apply any complex filter on mobile.de, copy the search URL, and paste it into Start URLs; all parameters are translated automatically.
- **German automotive market analytics** — Collect price-rating threshold bands per listing for market-band analysis without manual research.

### When not to use this Actor

- **Private seller personal data** — Names and phone numbers of private sellers (Privatanbieter) are excluded. Dealer business contact data only.
- **Account features** — No login, favorites, saved searches, or messaging.
- **Non-listing content** — Built for vehicle listings, not dealer review pages or editorial articles.

### Key Features

- **Full vehicle specs** — 30+ fields: first registration, mileage, power (kW/PS), cubic capacity, fuel type, transmission, emission class, HU date, previous owners, interior, color, consumption (EnVKV), and more.
- **Price transparency** — Gross price, net price, VAT rate, price type, and mobile.de market price rating (`VERY_GOOD_PRICE`, `GOOD_PRICE`, …) with six threshold bands.
- **Plain-text make/model** — Enter `BMW` / `320` or `Mercedes-Benz` / `A 200`; the Actor resolves official mobile.de catalog IDs automatically.
- **All vehicle categories** — Cars, motorbikes, motorhomes, trucks over 7.5 t, vans, construction machines, trailers, agricultural vehicles.
- **Dealer profiles** — Business name, address, phone numbers, spoken languages, member-since date, and customer rating score with recommendation rate.
- **Geocoordinates** — Latitude and longitude per listing for mapping and radius analysis.
- **High-resolution images** — All listing photos as direct CDN image links (1024 px).
- **Bulk scraping** — Up to 100 listings per search page; parallel detail fetching (`maxConcurrency`); tested at 500+ listings per run.
- **Proxy-ready** — Optional Germany residential proxy for large-volume cloud runs.

### Input Parameters

| Parameter | Type | Default | Description |
| :--- | :--- | :--- | :--- |
| `startUrls` | Array | `[]` | mobile.de search result URLs or individual listing URLs. URL filters applied automatically. |
| `make` | String | — | Vehicle brand: BMW, Mercedes-Benz, Volkswagen, Audi, Opel, Ford, … |
| `model` | String | — | Model name: 320, A 200, Golf, Passat, … Used with `make`. |
| `vehicleCategory` | String | `"Car"` | Car, Motorbike, MotorHome, TruckOver7500, VanUpTo7500, ConstructionMachine, Trailer, AgriculturalVehicle. |
| `minPrice` / `maxPrice` | Integer | — | Gross price range in euros. |
| `minYear` / `maxYear` | Integer | — | First-registration year range. |
| `maxMileage` | Integer | — | Maximum mileage in kilometers. |
| `fuelType` | String | `"all"` | Petrol, Diesel, Electric, Hybrid, LPG, CNG. |
| `transmission` | String | `"all"` | Manual, Automatic, Semi-automatic. |
| `excludeDamaged` | Boolean | `false` | Skip accident / damage-case vehicles. |
| `sortBy` | String | `"relevance"` | Relevance, price ascending, price descending, newest first. |
| `maxItems` | Integer | `100` | Maximum listings to collect. |
| `scrapeDetails` | Boolean | `true` | Full detail mode: specs, features, description, net price, dealer contacts. Disable for faster summary output. |
| `maxConcurrency` | Integer | `10` | Parallel detail requests (1–25). |
| `proxyConfiguration` | Object | — | Optional proxy. Germany residential recommended for 100+ listings on Apify Cloud. |

#### Input Example — make/model search

```json
{
  "make": "BMW",
  "model": "320",
  "minPrice": 5000,
  "maxPrice": 30000,
  "minYear": 2016,
  "maxMileage": 120000,
  "fuelType": "DIESEL",
  "sortBy": "newest",
  "maxItems": 200,
  "scrapeDetails": true,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"],
    "apifyProxyCountry": "DE"
  }
}
````

#### Input Example — browser search URL

```json
{
  "startUrls": [
    {
      "url": "suchen.mobile.de/fahrzeuge/search.html?ms=17200%3B%3B%3B&vc=Car&ft=DIESEL&dam=false"
    }
  ],
  "maxItems": 500,
  "scrapeDetails": true,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"],
    "apifyProxyCountry": "DE"
  }
}
```

### Output Format

Each dataset row = one mobile.de vehicle listing.

| Field | Type | Description |
| :--- | :--- | :--- |
| `adId` | String | Unique mobile.de listing ID. |
| `url` | String | Canonical listing page path on mobile.de. |
| `title` | String | Full listing title. |
| `make` / `model` | String | Brand and model from the mobile.de catalog. |
| `category` | String | Body type: Kombi, Limousine, Coupé, SUV, … |
| `price.gross` / `price.net` | Number | Gross and net price in EUR. |
| `price.vatRate` | Number | VAT rate when reported by the dealer. |
| `priceRating` | Object | Market price assessment plus six threshold bands. |
| `attributes` | Object | Technical specs: `firstRegistration`, `mileage`, `power`, `fuelType`, `transmission`, `emissionClass`, `hu`, `numberOfPreviousOwners`, and more. |
| `features` | Array | Equipment list: ABS, Apple CarPlay, navigation, LED headlights, … |
| `highlights` | Array | Seller-highlighted option packages. |
| `description` | String | Plain-text listing description. |
| `location` | Object | `zipCode`, `city`, `country`, `latitude`, `longitude`. |
| `seller` | Object | Seller type, dealer name, address, phones, languages, ratings. Private sellers: type only. |
| `images` | Array | High-resolution image URLs. |
| `isDamaged` | Boolean | Damage-case flag. |
| `createdAt` / `modifiedAt` | String | Listing timestamps (ISO 8601). |
| `scrapedAt` | String | Extraction timestamp (UTC ISO 8601). |

#### Output Example

```json
{
  "adId": "460532675",
  "url": "suchen.mobile.de/auto-inserat/bmw-320-coupe-320-d-xdrive-m-paket-aichach/460532675.html",
  "title": "BMW 320 Coupe 320 d xDrive M-Paket",
  "make": "BMW",
  "model": "320",
  "category": "Sportwagen/Coupé",
  "price": {
    "gross": 11900.0,
    "net": null,
    "currency": "EUR",
    "type": "FIXED",
    "vatRate": null
  },
  "priceRating": {
    "rating": "GOOD_PRICE",
    "label": "Guter Preis",
    "thresholds": ["8.500 €", "11.000 €", "11.900 €", "13.200 €", "14.200 €", "15.700 €"]
  },
  "attributes": {
    "firstRegistration": "06/2013",
    "mileage": "142.500 km",
    "power": "135 kW (184 PS)",
    "fuelType": "Diesel",
    "transmission": "Automatik",
    "emissionClass": "Euro5",
    "numberOfPreviousOwners": "2",
    "hu": "06/2027"
  },
  "features": ["ABS", "Apple CarPlay", "LED-Scheinwerfer", "Navigationssystem"],
  "description": "Sehr gepflegter 320d xDrive mit M-Paket...",
  "location": {
    "zipCode": "86551",
    "city": "Aichach",
    "country": "DE",
    "latitude": 48.4441916,
    "longitude": 11.1421373
  },
  "seller": {
    "id": "7858796",
    "type": "Händler",
    "sellerKind": "DEALER",
    "name": "WS-Automobile",
    "address": "Rudolf Diesel Strasse 11a, DE-86551 Aichach",
    "phones": ["+49 (0)177 3580228"],
    "memberSince": "Bei mobile.de seit 31.05.2012"
  },
  "images": ["img.classistatic.de/api/v1/mo-prod/images/10/101c77f8-6e1f-42fd-a856-dceee18eb1ac?rule=mo-1024.jpg"],
  "isDamaged": false,
  "createdAt": "2026-07-13T11:50:00+00:00",
  "scrapedAt": "2026-07-13T11:58:07.938477+00:00"
}
```

### Use Cases

| Use Case | What you get |
| :--- | :--- |
| **Used-car price research** | Prices, ratings, mileage, and specs per model for valuation models |
| **Dealer stock monitoring** | Full inventories with listing timestamps for change tracking |
| **Vehicle sourcing** | Filtered leads with dealer phones, addresses, and coordinates |
| **Cross-border automotive trade** | German market data with net prices and VAT for export buyers |
| **Market analytics** | Structured JSON/CSV datasets for BI tools and databases |

### FAQ

#### What is mobile.de and why scrape it?

mobile.de is Germany's leading online vehicle marketplace — cars, vans, trucks, motorbikes, and commercial vehicles from private sellers and dealers nationwide. This Actor turns listing pages into structured data for price monitoring, inventory analysis, and automotive research.

#### How is this different from a generic web scraper?

Built specifically for mobile.de: automatic make/model ID resolution, mobile.de price ratings, 30+ vehicle attributes, dealer contact parsing, and stable structured-API extraction that survives frontend redesigns.

#### Do I need proxies?

Small runs may work without proxies. For 100+ listings or cloud runs on Apify, enable **Residential proxies** with **Germany (DE)** country targeting in `proxyConfiguration`.

#### Can I paste my exact mobile.de search URL?

Yes. Configure filters on mobile.de in your browser, copy the search URL, and add it to `startUrls`. Price, year, mileage, fuel, transmission, damage, and sort parameters are translated automatically.

#### Does it collect private sellers' phone numbers?

No. Private seller (Privatanbieter) personal contact data is excluded. Dealer business name, address, and phone numbers are included.

#### How many listings can I scrape in one run?

Set `maxItems` to your target (e.g. 500 or 1000). Search returns up to 100 listings per page; details are fetched in parallel. A 500-listing run with full details completes in a few minutes on 256 MB RAM.

#### What output formats are supported?

Results are saved to the Apify dataset. Download as JSON, CSV, or Excel, or connect dataset integrations and webhooks.

#### Which German car brands are supported?

All brands on mobile.de: BMW, Mercedes-Benz, Volkswagen, Audi, Opel, Ford, Porsche, Toyota, Hyundai, Skoda, Renault, and every other make in the mobile.de catalog — plus motorbikes, trucks, and commercial vehicles.

# Actor input Schema

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

Paste mobile.de search result URLs or individual vehicle listing URLs. All search filters from the URL (make, price, year, mileage, fuel, transmission) are applied automatically.

## `make` (type: `string`):

Vehicle brand name in plain text, e.g. BMW, Mercedes-Benz, Volkswagen, Audi, Opel. Resolved automatically against the mobile.de catalog. Leave empty when using Start URLs.

## `model` (type: `string`):

Model name, e.g. 320, A 200, Golf, Passat. Only used together with Make.

## `vehicleCategory` (type: `string`):

Vehicle type to search: cars, motorbikes, motorhomes, trucks, vans, construction machines, trailers, or agricultural vehicles.

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

Filter by minimum gross vehicle price in euros.

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

Filter by maximum gross vehicle price in euros.

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

Earliest first-registration (EZ) year, e.g. 2018.

## `maxYear` (type: `integer`):

Latest first-registration (EZ) year, e.g. 2023.

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

Maximum vehicle mileage in kilometers.

## `fuelType` (type: `string`):

Filter by fuel type: petrol, diesel, electric, hybrid, LPG, or natural gas.

## `transmission` (type: `string`):

Filter by gearbox: manual, automatic, or semi-automatic.

## `excludeDamaged` (type: `boolean`):

Skip listings marked as damaged or accident vehicles on mobile.de.

## `sortBy` (type: `string`):

Sort order for search results: relevance, price low-to-high, price high-to-low, or newest listings first.

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

Maximum number of vehicle listings to collect per run.

## `scrapeDetails` (type: `boolean`):

Fetch full vehicle detail data: 30+ specs, equipment list, description, net price & VAT, dealer name, address, phone numbers, and ratings. Disable for faster search-summary output.

## `maxConcurrency` (type: `integer`):

How many vehicle detail pages to fetch in parallel. Higher = faster for large runs. Default 10.

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

Optional proxy for large-volume scraping. Germany residential proxy recommended for 100+ listings on Apify Cloud.

## Actor input object example

```json
{
  "startUrls": [],
  "vehicleCategory": "Car",
  "fuelType": "all",
  "transmission": "all",
  "excludeDamaged": false,
  "sortBy": "relevance",
  "maxItems": 100,
  "scrapeDetails": true,
  "maxConcurrency": 10
}
```

# 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": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawloop/mobile-de-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": [] }

# Run the Actor and wait for it to finish
run = client.actor("crawloop/mobile-de-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 '{
  "startUrls": []
}' |
apify call crawloop/mobile-de-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Mobile.de Scraper — German Used Car Listings, Prices & Specs",
        "description": "Scrape mobile.de used car listings: BMW, Mercedes, VW, Audi & all makes. Extract prices, mileage, fuel type, transmission, price rating, dealer phone & GPS, features, images. Search by make/model or URL. JSON/CSV export. 128–512 MB RAM.",
        "version": "0.2",
        "x-build-id": "OIBlHPZq808H8yIf1"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/crawloop~mobile-de-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-crawloop-mobile-de-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/crawloop~mobile-de-scraper/runs": {
            "post": {
                "operationId": "runs-sync-crawloop-mobile-de-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/crawloop~mobile-de-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-crawloop-mobile-de-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": {
                    "startUrls": {
                        "title": "Start URLs (mobile.de search or listing pages)",
                        "type": "array",
                        "description": "Paste mobile.de search result URLs or individual vehicle listing URLs. All search filters from the URL (make, price, year, mileage, fuel, transmission) are applied automatically.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "make": {
                        "title": "Make / brand (BMW, Mercedes-Benz, VW, …)",
                        "type": "string",
                        "description": "Vehicle brand name in plain text, e.g. BMW, Mercedes-Benz, Volkswagen, Audi, Opel. Resolved automatically against the mobile.de catalog. Leave empty when using Start URLs."
                    },
                    "model": {
                        "title": "Model (320, A 200, Golf, …)",
                        "type": "string",
                        "description": "Model name, e.g. 320, A 200, Golf, Passat. Only used together with Make."
                    },
                    "vehicleCategory": {
                        "title": "Vehicle category",
                        "enum": [
                            "Car",
                            "Motorbike",
                            "MotorHome",
                            "TruckOver7500",
                            "VanUpTo7500",
                            "ConstructionMachine",
                            "Trailer",
                            "AgriculturalVehicle"
                        ],
                        "type": "string",
                        "description": "Vehicle type to search: cars, motorbikes, motorhomes, trucks, vans, construction machines, trailers, or agricultural vehicles.",
                        "default": "Car"
                    },
                    "minPrice": {
                        "title": "Minimum price (€)",
                        "type": "integer",
                        "description": "Filter by minimum gross vehicle price in euros."
                    },
                    "maxPrice": {
                        "title": "Maximum price (€)",
                        "type": "integer",
                        "description": "Filter by maximum gross vehicle price in euros."
                    },
                    "minYear": {
                        "title": "Min first registration year",
                        "type": "integer",
                        "description": "Earliest first-registration (EZ) year, e.g. 2018."
                    },
                    "maxYear": {
                        "title": "Max first registration year",
                        "type": "integer",
                        "description": "Latest first-registration (EZ) year, e.g. 2023."
                    },
                    "maxMileage": {
                        "title": "Max mileage (km)",
                        "type": "integer",
                        "description": "Maximum vehicle mileage in kilometers."
                    },
                    "fuelType": {
                        "title": "Fuel type",
                        "enum": [
                            "all",
                            "PETROL",
                            "DIESEL",
                            "ELECTRICITY",
                            "HYBRID",
                            "LPG",
                            "CNG"
                        ],
                        "type": "string",
                        "description": "Filter by fuel type: petrol, diesel, electric, hybrid, LPG, or natural gas.",
                        "default": "all"
                    },
                    "transmission": {
                        "title": "Transmission / gearbox",
                        "enum": [
                            "all",
                            "MANUAL_GEAR",
                            "AUTOMATIC_GEAR",
                            "SEMIAUTOMATIC_GEAR"
                        ],
                        "type": "string",
                        "description": "Filter by gearbox: manual, automatic, or semi-automatic.",
                        "default": "all"
                    },
                    "excludeDamaged": {
                        "title": "Exclude damaged / accident vehicles",
                        "type": "boolean",
                        "description": "Skip listings marked as damaged or accident vehicles on mobile.de.",
                        "default": false
                    },
                    "sortBy": {
                        "title": "Sort results",
                        "enum": [
                            "relevance",
                            "price_asc",
                            "price_desc",
                            "newest"
                        ],
                        "type": "string",
                        "description": "Sort order for search results: relevance, price low-to-high, price high-to-low, or newest listings first.",
                        "default": "relevance"
                    },
                    "maxItems": {
                        "title": "Max listings",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum number of vehicle listings to collect per run.",
                        "default": 100
                    },
                    "scrapeDetails": {
                        "title": "Scrape full listing details",
                        "type": "boolean",
                        "description": "Fetch full vehicle detail data: 30+ specs, equipment list, description, net price & VAT, dealer name, address, phone numbers, and ratings. Disable for faster search-summary output.",
                        "default": true
                    },
                    "maxConcurrency": {
                        "title": "Max concurrent detail requests",
                        "minimum": 1,
                        "maximum": 25,
                        "type": "integer",
                        "description": "How many vehicle detail pages to fetch in parallel. Higher = faster for large runs. Default 10.",
                        "default": 10
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Optional proxy for large-volume scraping. Germany residential proxy recommended for 100+ listings on Apify Cloud."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
