# Mobile.de Vehicle Scraper & Automotive Intelligence (`dev00/mobilede-vehicle-scraper`) Actor

Scrape Mobile.de car listings, prices, technical specifications, dealer ratings, EV battery health, and commercial vehicle data across Europe with advanced filters and AI natural language search.

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

## Pricing

from $2.00 / 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/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

## 🚗 Mobile.de Vehicle Scraper & Automotive Intelligence

[![Apify](https://img.shields.io/badge/Apify-Actor-orange?logo=apify)](https://apify.com/dev00/mobilede-vehicle-scraper)
[![Rating](https://img.shields.io/badge/Rating-★★★★★-yellow)](#)
[![Speed](https://img.shields.io/badge/Speed-~300ms%20Ultra--Fast-brightgreen)](#)
[![Data](https://img.shields.io/badge/Automotive-1.8M%2B%20Vehicles%20%7C%20Specs%20%7C%20Dealers%20%7C%20EV-blue)](#)

> 🚀 **The #1 Most Complete Mobile.de Automotive Market Scraper & Vehicle Valuation Engine.**
> Search and extract over **1.8 Million live vehicle listings** across Europe from Mobile.de. Extract real-time gross & net prices, technical specifications, manufacturer makes & models catalog, dealer trust ratings, EV battery health, transmission, 4x4 all-wheel drivetrain, commercial VAT status, page-by-page pagination, and AI conversational search prompts.

***

### 🚀 Overview & Key Highlights

**Mobile.de Vehicle Scraper & Automotive Intelligence** is an enterprise-grade automotive data extraction actor designed for car dealerships, automotive startups, pricing intelligence analysts, insurance appraisers, car brokers, and export specialists.

Unlike generic scrapers that struggle with dynamic pagination and CAPTCHAs, this Actor reverse-engineers Mobile.de's official search and taxonomy REST endpoints to extract rich automotive data in **sub-second latency**:

- 🔍 **Universal Search Across 9 Vehicle Categories**: Search Passenger Cars (`Car`), Motorcycles (`Motorbike`), RVs & Campers (`Motorhome`), Heavy Commercial Trucks > 7.5t (`TruckOver7500`), Light Vans (`VanUpTo7500`), Electric Bicycles (`EBike`), and Agricultural Machinery (`AgriculturalVehicle`).
- 🏷️ **Brand & Make Name Resolution**: Pass natural brand names like *Porsche*, *BMW*, *Mercedes-Benz*, *Audi*, *Tesla*, *Volkswagen*, *Ferrari*, or *MAN* directly without memorizing numeric make IDs.
- 🚘 **Smart Model Series Resolution**: Search by model names (*911*, *Taycan*, *Cayenne*, *M3*, *M5*, *Golf*, *Model Y*, *e-tron GT*) with automatic matching to official model IDs.
- 📋 **Live Brands & Models Extraction Actions**: Dedicated modes (`action="get_brands"` and `action="get_models"`) to scrape the complete catalog of all available manufacturers and model series into your dataset.
- 📄 **Page-by-Page Pagination**: Control `page` and `maxPages` to scrape exact multi-page batches of inventory without item limits.
- ⚙️ **Gearbox, Powertrain & Drivetrain**: Filter by Automatic, Manual, or Semi-Automatic gearboxes, 4x4 / All-Wheel Drive (Quattro, xDrive, 4MATIC), and EV / Hybrid / Diesel / Petrol powertrains.
- ⚡ **EV & Battery Intelligence**: Extract electric vehicle data with heat pumps, battery health certificates, and bidirectional V2G charging options.
- ⭐ **Dealership Ratings & Customer Reviews**: Extract dealer star ratings (0–5), customer reviews count, and recommendation rates.
- 💼 **VAT Deductible (MwSt.) & Export Filter**: One-click filtering for commercial VAT deductible vehicles (`vatDeductible: true`) for business fleets and export buyers.
- 🤖 **AI Natural Language Automotive Search**: Enter freeform queries like *"Electric SUV under 35000 euro with panoramic roof in Munich"* and automatically parse them into structured search filters.

***

### 🎯 High-Impact Use Cases

1. **Automotive Dealerships & Inventory Arbitrage**:
   Monitor competitor pricing across Germany, identify undervalued trade-in opportunities, and automate wholesale inventory sourcing.
2. **Car Valuation & Residual Value Algorithms**:
   Train algorithmic valuation models with live market comparables across millions of European listings.
3. **EV Market & Battery Valuation Studies**:
   Analyze depreciation rates, battery health retention, and range premiums across Tesla, Porsche Taycan, Audi e-tron, and BMW i-series models.
4. **European Vehicle Import / Export**:
   Filter VAT-deductible listings (`vatDeductible: true`) to source tax-free commercial vehicles, heavy trucks, and luxury cars for cross-border export.
5. **Auto Insurance Claim Appraisals**:
   Establish exact pre-loss market value with verified live listing comps matching exact trim, mileage, and year parameters.

***

### 🛠️ Input Parameters & Configuration

| Parameter | Type | Default | Description |
| :--- | :--- | :--- | :--- |
| `action` | String (select) | `"search"` | **Scraper Mode**: `search` (Listings), `get_brands` (All Makes), `get_models` (All Models for a Brand). |
| `brand` | String | `"Porsche"` | Vehicle brand or manufacturer name (e.g. `Porsche`, `BMW`, `Mercedes`, `Audi`, `Tesla`, `Ferrari`, `MAN`) or make ID. |
| `model` | String | `"911"` | Model name (e.g. `911`, `Taycan`, `Cayenne`, `320`, `M3`, `Golf`, `Model Y`, `e-tron`) or numeric ID. |
| `searchPrompt` | String | `""` | Optional conversational query (e.g. *"Electric SUV under 35000 euro with panoramic roof in Munich"*). |
| `vehicleClass` | String (select) | `"Car"` | Vehicle Class (`Car`, `Motorbike`, `EBike`, `Motorhome`, `TruckOver7500`, `VanUpTo7500`, `AgriculturalVehicle`, `ConstructionMachine`, `ForkliftTruck`). |
| `page` | Integer | `1` | Starting page number (1, 2, 3...). |
| `maxPages` | Integer | `1` | Maximum consecutive pages to scrape (e.g. 5 pages = 100 listings). |
| `pageSize` | Integer | `20` | Results per page (20, 50, 100). |
| `priceMin` | Integer | `null` | Lower price boundary in Euros (€). |
| `priceMax` | Integer | `null` | Upper price boundary in Euros (€). |
| `mileageMin` | Integer | `null` | Lower mileage threshold in kilometers (km). |
| `mileageMax` | Integer | `null` | Upper mileage threshold in kilometers (km). |
| `firstRegistrationMin` | Integer | `null` | Earliest year of registration (e.g. `2020`). |
| `firstRegistrationMax` | Integer | `null` | Latest year of registration (e.g. `2024`). |
| `fuelType` | String (select) | `""` | `PETROL`, `DIESEL`, `ELECTRICITY`, `HYBRID`, `HYBRID_DIESEL`, `LPG`, `CNG`, `HYDROGENIUM`. |
| `bodyType` | String (select) | `""` | `OffRoad` (SUV), `Limousine` (Sedan), `Cabrio`, `EstateCar`, `SportsCar`, `SmallCar`, `Van`. |
| `transmission` | String (select) | `""` | `AUTOMATIC`, `MANUAL`, `SEMIAUTOMATIC`. |
| `drivetrain` | String (select) | `""` | `ALL_WHEEL_DRIVE` (4x4/AWD), `FRONT_WHEEL_DRIVE`, `REAR_WHEEL_DRIVE`. |
| `condition` | String (select) | `""` | `NEW`, `USED`, `DEMONSTRATION`, `CLASSIC`. |
| `sellerType` | String (select) | `""` | `DEALER` (Commercial Dealerships) or `PRIVATE` (Private Sellers). |
| `powerMinHp` | Integer | `null` | Minimum engine horsepower (HP). |
| `powerMaxHp` | Integer | `null` | Maximum engine horsepower (HP). |
| `color` | String (select) | `""` | `BLACK`, `WHITE`, `GREY`, `SILVER`, `BLUE`, `RED`, `GREEN`, `YELLOW`, `BROWN`, `ORANGE`. |
| `doors` | String (select) | `""` | `TWO_OR_THREE`, `FOUR_OR_FIVE`, `SIX_OR_SEVEN`. |
| `features` | Array of Strings | `["NAVIGATION", "LEATHER"]` | Equipment list (`PANORAMIC_ROOF`, `HEAT_PUMP`, `BATTERY_HEALTH_CERT`, `LED_HEADLIGHTS`, `TRAILER_COUPLING`, `SEAT_HEATING`, `APPLE_CARPLAY`, `ANDROID_AUTO`, `REAR_VIEW_CAMERA`, `HEAD_UP_DISPLAY`). |
| `vatDeductible` | Boolean | `false` | Only return listings with deductible VAT (MwSt. ausweisbar). |
| `country` | String | `"DE"` | ISO country code (`DE`, `AT`, `FR`, `IT`, `NL`, `ES`, `PL`, etc.). |
| `sortBy` | String (select) | `"rel"` | `rel` (Relevance), `doc` (Newest listings), `lsr` (Lowest price), `msr` (Lowest mileage). |

***

### 📊 Sample Output Dataset Records (JSON)

#### 1. Vehicle Listing Record (`action: "search"`)

```json
{
  "ad_id": "451122241",
  "vehicle_title": "Porsche Taycan 4S Performance Battery Plus (Page 1)",
  "price_eur": 69900,
  "mileage_km": 24500,
  "first_registration": "04/2022",
  "fuel_type": "ELECTRICITY",
  "power_hp": 530,
  "power_kw": 390,
  "transmission": "AUTOMATIC",
  "drivetrain": "ALL_WHEEL_DRIVE",
  "body_type": "SportsCar",
  "location": "80331 München",
  "country": "DE",
  "seller_type": "DEALER",
  "dealer_name": "Porsche Zentrum München Süd",
  "dealer_rating": 4.8,
  "deal_rating": "GOOD_DEAL",
  "page_number": 1,
  "url": "https://suchen.mobile.de/fahrzeuge/details.html?id=451122241",
  "image_url": "https://img.classistatic.de/api/v1/mo-prod/images/45/451122241_01.jpg"
}
```

***

#### 2. Brands Catalog Record (`action: "get_brands"`)

```json
{
  "brand_id": 20100,
  "brand_name": "Porsche",
  "vehicle_class": "Car"
}
```

***

#### 3. Models Catalog Record (`action: "get_models"`)

```json
{
  "brand_id": 20100,
  "brand_name": "Porsche",
  "model_id": 18,
  "model_name": "911",
  "is_group": false,
  "parent_group_id": 40
}
```

***

### 💻 API & SDK Execution Examples

#### Apify Python SDK

```python
from apify_client import ApifyClient

## Initialize the ApifyClient with your API token
client = ApifyClient("YOUR_APIFY_TOKEN")

## Prepare the Actor input
run_input = {
    "action": "search",
    "brand": "Porsche",
    "model": "911",
    "fuelType": "PETROL",
    "transmission": "AUTOMATIC",
    "drivetrain": "ALL_WHEEL_DRIVE",
    "priceMax": 120000,
    "country": "DE",
    "page": 1,
    "maxPages": 2,
    "pageSize": 20
}

## Run the Actor and wait for it to finish
run = client.actor("dev00/mobilede-vehicle-scraper").call(run_input=run_input)

## Fetch Actor results from the run's dataset
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
```

#### Apify JavaScript / Node.js SDK

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

const client = new ApifyClient({
  token: 'YOUR_APIFY_TOKEN',
});

const input = {
  action: 'search',
  brand: 'BMW',
  model: 'M3',
  transmission: 'AUTOMATIC',
  priceMax: 85000,
  page: 1,
  maxPages: 2,
  pageSize: 20
};

const run = await client.actor('dev00/mobilede-vehicle-scraper').call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

***

### 💰 Pricing & Cost Optimization

This Actor operates under **Pay-Per-Result Pricing** ($0.001 per extracted vehicle dataset item):

- ✅ **$0.001 per Scraped Vehicle Listing** ($1.00 per 1,000 listings).
- ✅ **Zero Monthly Subscriptions**: Only pay for the exact vehicle data or taxonomy records you extract.
- ✅ **Unlimited Concurrent Runs**: Scale parallel market searches without throttling.
- ✅ **Free Taxonomy Lookups**: Fast and cost-efficient extraction of all brands and models.

***

### ❓ Frequently Asked Questions (FAQ)

##### Q: Can I scrape motorcycle and commercial truck listings?

**Yes.** Set `vehicleClass="Motorbike"` or `vehicleClass="TruckOver7500"`.

##### Q: How does the AI search prompt work?

When you provide `searchPrompt` (e.g. *"BMW M3 under 80000 euro in Munich"*), the Actor automatically parses the text into exact vehicle filters and executes the search.

##### Q: How do I get all models for BMW or Audi?

Set `action="get_models"` and `brand="BMW"`. The Actor outputs the full catalog of all 170+ BMW model codes directly into your dataset.

***

### 🔑 SEO Keywords & Search Tags

`mobile.de scraper`, `car market data api`, `automotive scraper`, `used cars api`, `vehicle valuation api`, `car prices germany`, `dealer ratings scraper`, `porsche 911 market tracker`, `bmw m3 scraper`, `ev battery health api`, `electric vehicle scraper`, `commercial trucks scraper`, `campers and motorhomes scraper`, `motorcycle prices api`, `vat deductible cars germany`, `auto market intelligence`, `european car database api`, `car inventory api`, `automotive lead generation`, `german car market scraper`, `car price drop monitor`, `fleet sourcing api`, `classic cars oldtimers api`

# Actor input Schema

## `action` (type: `string`):

Choose between searching vehicle classified listings, extracting all available vehicle brands, or extracting all model names for a brand.

## `brand` (type: `string`):

Enter any brand name (e.g. 'Porsche', 'BMW', 'Mercedes-Benz', 'Audi', 'Tesla', 'Volkswagen', 'Ferrari', 'Lamborghini', 'Toyota', 'Ford', 'Ducati', 'MAN', 'John Deere') or numeric make ID.

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

Enter any model name (e.g. '911', 'Taycan', 'Cayenne', '320', 'M3', 'M5', 'Golf', 'Model Y', 'e-tron GT', 'Mustang') or numeric model ID.

## `searchPrompt` (type: `string`):

Conversational query (e.g. 'Electric SUV under 35000 euro with panoramic roof in Munich'). Automatically overrides and fills filters.

## `vehicleClass` (type: `string`):

Select the vehicle category.

## `page` (type: `integer`):

Page number to start scraping from (e.g. 1, 2, 3...).

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

Total consecutive pages of listings to scrape (e.g. 1 page = 20 results, 5 pages = 100 results).

## `pageSize` (type: `integer`):

Number of vehicle listings per page (default: 20).

## `priceMin` (type: `integer`):

Lower price boundary in Euros.

## `priceMax` (type: `integer`):

Upper price boundary in Euros.

## `mileageMin` (type: `integer`):

Lower mileage threshold in kilometers.

## `mileageMax` (type: `integer`):

Upper mileage threshold in kilometers.

## `firstRegistrationMin` (type: `integer`):

Earliest year of registration (e.g. 2018).

## `firstRegistrationMax` (type: `integer`):

Latest year of registration (e.g. 2024).

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

Select engine fuel type.

## `bodyType` (type: `string`):

Select body style configuration.

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

Gearbox configuration.

## `drivetrain` (type: `string`):

Wheel drive configuration.

## `condition` (type: `string`):

Vehicle age and usage condition.

## `sellerType` (type: `string`):

Filter by dealer or private advertiser.

## `powerMinHp` (type: `integer`):

Minimum engine horsepower.

## `powerMaxHp` (type: `integer`):

Maximum engine horsepower.

## `color` (type: `string`):

Vehicle body paint color.

## `doors` (type: `string`):

Door count configuration.

## `features` (type: `array`):

Select specific vehicle equipment and premium options.

## `vatDeductible` (type: `boolean`):

Only show vehicles eligible for VAT deduction (for businesses and export).

## `country` (type: `string`):

ISO country code (DE, AT, FR, IT, NL, BE, PL, ES, etc.).

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

Sorting criteria for search results.

## Actor input object example

```json
{
  "action": "search",
  "brand": "Porsche",
  "model": "911",
  "vehicleClass": "Car",
  "page": 1,
  "maxPages": 1,
  "pageSize": 20,
  "features": [
    "NAVIGATION",
    "LEATHER"
  ],
  "country": "DE",
  "sortBy": "rel"
}
```

# Actor output Schema

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

Direct link to dataset containing extracted vehicle listings, specifications, and prices

## `keyValueStoreResult` (type: `string`):

Direct link to the key-value store output record

# 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 = {
    "brand": "Porsche",
    "model": "911"
};

// Run the Actor and wait for it to finish
const run = await client.actor("dev00/mobilede-vehicle-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 = {
    "brand": "Porsche",
    "model": "911",
}

# Run the Actor and wait for it to finish
run = client.actor("dev00/mobilede-vehicle-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 '{
  "brand": "Porsche",
  "model": "911"
}' |
apify call dev00/mobilede-vehicle-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,dev00/mobilede-vehicle-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/1vVuuV9DjqhG2oexw/builds/Qo1Ya6mtg4cVZ0MCv/openapi.json
