# Mobile.de Scraper — Germany Car Marketplace (`rastriq/mobile-de-scraper`) Actor

Scrape vehicle listings from Mobile.de, Germany's largest car marketplace with 1.4M+ listings. Extract price, brand, model, year, mileage, fuel type, dealer info, specs, and photos. Filter by any parameter. Essential for automotive market intelligence in the German market.

- **URL**: https://apify.com/rastriq/mobile-de-scraper.md
- **Developed by:** [Rastriq — Structured data from the world](https://apify.com/rastriq) (community)
- **Categories:** E-commerce, Other
- **Stats:** 11 total users, 1 monthly users, 94.3% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.90 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

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

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

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

# README

## Mobile.de Scraper — Extract Vehicle Listings from Germany's Largest Car Marketplace

![mobile de](https://www.rastriq.es/readme/auto.png)

Extract structured vehicle listings from **[Mobile.de](https://www.mobile.de)** — Germany's largest automotive marketplace with 1.4M+ car listings and 150K+ commercial vehicle listings from dealers and private sellers across Europe.

> Try it free — your first $5 of usage is on Apify. No credit card required.

### What is Mobile.de Scraper?

**Mobile.de Scraper** extracts structured listing data from Mobile.de with two data modes: **Preloaded** delivers a monthly snapshot in seconds (no scraping needed), while **Live** scrapes in real time for the freshest data. Each listing returns up to 49 fields including price, make, model, year, mileage, operating hours, condition, engine specs, seller details, and images.

Use Mobile.de Scraper to:

- 🚗 **Automotive market intelligence** — track pricing and availability across 10 vehicle categories from cars to construction machines
- 📊 **Competitive analysis** — monitor dealer inventory, pricing strategies, and geographic coverage across European markets
- 📈 **Price benchmarking** — build historical price databases for vehicle valuation and depreciation modeling
- 🏗️ **Commercial fleet sourcing** — find trucks, vans, trailers, and heavy equipment from Germany's deepest commercial vehicle pool
- 🔍 **Inventory monitoring** — detect new listings matching specific makes, models, price ranges, or year ranges
- 🔄 **Automated data pipelines** — schedule runs, set up webhooks, and keep your datasets fresh

The Apify platform gives Mobile.de Scraper built-in **scheduling**, **API access**, **proxy rotation**, and **integrations** with Make, Zapier, Google Sheets, and more — all out of the box.

### What data does Mobile.de Scraper extract?

Each listing returns a structured record with up to 49 fields. Core fields use Spanish names (FTP-28 schema) for cross-marketplace compatibility across all Rastriq scrapers:

| Field | Description |
|-------|-------------|
| `item_id` | Unique Mobile.de listing ID |
| `url` | Direct link to the listing page |
| `marca` | Manufacturer / brand (e.g., BMW, Caterpillar, Volvo) |
| `modelo` | Model name |
| `anio` | Year of manufacture |
| `valor` | Listed price (numeric) |
| `moneda` | Currency code (EUR) |
| `estado` | Condition (new / used) |
| `tipo` | Vehicle subtype within category |
| `categoria` | Vehicle category (e.g., maquinaria, camion) |
| `ubicacion` | Seller location (city + postal code) |
| `pais` | ISO country code (DE, NL, AT, etc.) |
| `tiempo_uso` | Operating hours (for machinery/trucks) |
| `km` | Mileage in kilometers (for cars/vans) |
| `compania` | Dealer / seller name |
| `telefono` | Seller phone number |
| `correo` | Seller email (when available) |
| `fecha_publicacion` | Listing publication date |
| `imagenes` | Array of listing image URLs |
| `renta_dia` | Daily rental price (if applicable) |
| `snapshot_at` | ISO 8601 extraction timestamp |
| `source` | Always `mobilede` |

Extended fields (available with `fetchDetails: true`): `ext_km_int` (numeric mileage), `ext_hours_int` (numeric hours), `ext_weight_kg`, `ext_seller_address`, `ext_seller_rating`, `ext_seller_type` (dealer/private), `ext_features` (equipment list), `ext_description` (full listing text).

### How to use Mobile.de Scraper

Extracting vehicle listings takes under two minutes:

1. **Create a free Apify account** at [apify.com](https://apify.com) — your first $5 is free
2. **Open Mobile.de Scraper** in Apify Console or click **Try for free** on this page
3. **Choose your data source** — Preloaded (instant monthly snapshot) or Live (real-time scrape)
4. **Select vehicle categories** — choose from 10 types: cars, construction machines, agricultural vehicles, trucks, trailers, and more
5. **Apply filters** — optionally narrow by make, model, price range, or year range
6. **Click Start** and wait for results
7. **Download your results** in JSON, CSV, Excel, XML, or HTML — or access them via API

#### Input example — Preloaded mode (fastest)

Get construction machines and agricultural vehicles from the monthly snapshot:

```json
{
  "data_freshness": "preloaded",
  "vehicleCategories": ["ConstructionMachine", "AgriculturalVehicle"],
  "maxItems": 500
}
```

#### Input example — Live mode with filters

Scrape BMW cars under €30,000 from 2020 or newer, with full details:

```json
{
  "data_freshness": "live",
  "vehicleCategories": ["Car"],
  "make": "BMW",
  "minYear": 2020,
  "maxPrice": 30000,
  "fetchDetails": true,
  "maxPages": 5
}
```

### Input parameters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `data_freshness` | string | `preloaded` | `preloaded`: instant monthly snapshot. `live`: real-time scrape (slower, higher cost) |
| `vehicleCategories` | string\[] | All commercial | Vehicle categories to extract (see table below) |
| `make` | string | *(all)* | Filter by manufacturer (e.g., `BMW`, `Caterpillar`, `Volvo`) |
| `model` | string | *(all)* | Filter by model name |
| `minPrice` | integer | — | Minimum price in EUR |
| `maxPrice` | integer | — | Maximum price in EUR |
| `minYear` | integer | — | Minimum year of manufacture |
| `maxYear` | integer | — | Maximum year of manufacture |
| `fetchDetails` | boolean | `false` | Fetch full listing details (ext\_ fields). Slower but richer data |
| `maxItems` | integer | `100` | Maximum total listings to return |
| `maxPages` | integer | `5` | Maximum listing pages to scrape (live mode) |
| `outputSchema` | string | *(default)* | Output field naming schema |
| `skipItems` | integer | `0` | Skip first N records (for pagination) |

#### Vehicle categories

| Category ID | Type | Volume |
|-------------|------|--------|
| `ConstructionMachine` | 🔧 Construction machines | ~11,600 listings |
| `AgriculturalVehicle` | 🌾 Agricultural vehicles | ~11,300 listings |
| `ForkliftTruck` | 📦 Forklifts | Available |
| `SemiTrailerTruck` | 🚛 Semi-trailer trucks | ~12,900 listings |
| `SemiTrailer` | 🔗 Semi-trailers | ~10,800 listings |
| `Trailer` | 🔗 Trailers | Available |
| `TruckOver7500` | 🚚 Heavy trucks (>7.5t) | Available |
| `VanUpTo7500` | 🚐 Vans & light trucks (≤7.5t) | Available |
| `Bus` | 🚌 Buses | Available |
| `Car` | 🚗 Passenger cars | 1.4M+ listings |

### Output example

Each result is a structured JSON object. Here is a sample from a real Preloaded run extracting construction machines:

```json
{
  "source": "mobilede",
  "item_id": "39693813272864",
  "snapshot_at": "2026-08-13T08:38:45+00:00",
  "categoria": "maquinaria",
  "url": "https://www.mobile.de/es/veh%C3%ADculos/detalles.html?id=39693813272864",
  "marca": "Caterpillar",
  "modelo": "950M",
  "anio": 2017,
  "estado": "used",
  "tipo": "Cargador con ruedas",
  "ubicacion": "NL-8316 GG Marknesse",
  "pais": "NL",
  "tiempo_uso": "14623 h",
  "valor": "46500",
  "moneda": "EUR",
  "compania": "Hulleman Trucks & Machinery B.V.",
  "fecha_publicacion": "2026-08-13",
  "imagenes": ["https://img.classistatic.de/api/v1/mo-prod/images/0e/0e5cab95-ccae-4036-8dd9-2915d8b6c174?rule=mo-1600"],
  "ext_hours_int": 14623,
  "ext_seller_type": "dealer",
  "precio": 46500,
  "horas": 14623,
  "_data_freshness": "preloaded"
}
```

Download results in **JSON, CSV, Excel, XML, or HTML** from the Output tab, or pull them programmatically using the [Apify API](https://docs.apify.com/api/v2).

> **Sample dataset**: Preview real output in the [mobile-de-scraper-sample](https://apify.com/rastriq/mobile-de-scraper/dataset/mobile-de-scraper-sample) dataset.

> **GDPR note** — Contact fields of private sellers and dealers (`telefono, correo, vendedor, compania, ext_seller_address`) are replaced with `"GDPR Protection"` in the public sample dataset. The live Actor returns full values — your data, your responsibility.

### See real records before you run it

[Browse sample data](https://console.apify.com/storage/datasets/I95xGwee5DSdgvdwo) extracted by this Actor — fields, format and structure, ready to inspect before your first run.

### How much does it cost to use Mobile.de Scraper?

**$1.90 per 1,000 listings** (+ $0.05 per start). Your $5 free trial credit covers ~2,600 listings.

### Technical notes

- **Preloaded mode**: Reads from a curated monthly snapshot — returns results in seconds with no scraping overhead
- **Live mode**: Real-time scraping with browser automation for the freshest data
- **Anti-bot**: Residential proxies recommended for live mode (large runs)
- **Filters**: Apply make, model, price range, and year range to narrow results before extraction
- **Fetch details**: Enable `fetchDetails` to extract extended fields (ext\_) including seller ratings, equipment features, and full descriptions
- **Pagination**: Use `skipItems` to resume from a specific offset in large extractions

### Integrations

Connect Mobile.de Scraper to your workflow:

- **API** — call programmatically via [Apify API](https://apify.com/rastriq/mobile-de-scraper/api) (Python, JavaScript, cURL)
- **Webhooks** — trigger actions when a run completes
- **Zapier / Make** — connect to 5,000+ apps
- **Google Sheets** — export directly to a spreadsheet
- **Schedule** — run daily, weekly, or monthly to track vehicle market trends

### Related Rastriq Actors — Automotive & Vehicle Marketplaces

| Actor | Description |
|-------|-------------|
| [Coches.net Scraper](https://apify.com/rastriq/cochesnet-spain) | Extract car listings from Spain's largest auto marketplace |
| [Wallapop Cars Scraper](https://apify.com/rastriq/wallapop-cars-scraper) | Extract second-hand car listings from Spain's Wallapop marketplace |
| [Collecting Cars Scraper](https://apify.com/rastriq/collecting-cars-scraper) | Extract collector and enthusiast car auction results |
| [Car and Classic Scraper](https://apify.com/rastriq/carandclassic-scraper) | Extract classic and vintage car listings from Europe |
| [Polovni Automobili Scraper](https://apify.com/rastriq/polovniautomobili-scraper) | Extract car listings from Serbia's largest auto marketplace |

### Copy to your AI assistant

Copy the Apify Store URL for this Actor and paste it into ChatGPT, Claude, or any LLM with web access:

```
https://apify.com/rastriq/mobile-de-scraper
```

The model will read the Actor description, input schema, and field list — then help you build the right API call or integration.

### About the data

This Actor is built and maintained by [Rastriq](https://www.rastriq.es), a data intelligence company specializing in structured extraction for market research and competitive analysis. Browse our full [field reference and methodology](https://www.rastriq.es/en/automotive/#campos).

### Frequently Asked Questions

#### What is Mobile.de?

Mobile.de is Germany's largest online vehicle marketplace, with over 1.4 million passenger car listings and 150,000+ commercial vehicle listings. Founded in 1996, it connects private sellers and professional dealers with buyers across Europe, covering everything from everyday cars to construction machines, agricultural vehicles, trucks, and trailers.

#### What is the difference between Preloaded and Live mode?

**Preloaded** delivers results from a curated monthly snapshot — it returns thousands of listings in seconds without scraping the website. **Live** scrapes Mobile.de in real time for the freshest data but takes longer and costs more. Use Preloaded for bulk analysis and market research; use Live for time-sensitive inventory monitoring.

#### Can I scrape all 1.4 million car listings?

Technically yes, but the Car category is very large. Use filters (`make`, `minPrice`/`maxPrice`, `minYear`/`maxYear`) to narrow your search. Start with Preloaded mode and a single category to estimate volume and cost before running a full extraction.

#### Why are field names in Spanish?

Mobile.de Scraper uses the **FTP-28 schema** — the canonical Rastriq field naming convention shared across all scrapers (`marca`, `modelo`, `valor`, `anio`). This allows seamless cross-marketplace analysis when combining data from Mobile.de with Mascus, Coches.net, Wallapop, and other Rastriq scrapers. The data values remain in their original language.

#### What are the extended (ext\_) fields?

Extended fields are available when `fetchDetails` is set to `true`. They include parsed numeric values (`ext_km_int`, `ext_hours_int`, `ext_weight_kg`), seller information (`ext_seller_address`, `ext_seller_rating`, `ext_seller_type`), and listing content (`ext_features`, `ext_description`). These require an additional page visit per listing, so they are slower to extract.

#### Is it legal to scrape Mobile.de?

Mobile.de Scraper extracts **publicly available data** from Mobile.de. As with any data collection, review the site's Terms of Service before using scraped data commercially. For guidance, see [Apify's blog on the legality of web scraping](https://blog.apify.com/is-web-scraping-legal/).

#### I found a bug or my run failed. Where do I report it?

Please open an issue in the [Issues tab](https://apify.com/rastriq/mobile-de-scraper/issues). Include your input configuration and run ID so we can investigate quickly.

# Actor input Schema

## `data_freshness` (type: `string`):

<b>Preloaded</b> delivers results in seconds from our monthly full-inventory snapshot at a lower cost.<br><br><b>Live</b> scrapes Mobile.de in real time — fresh data but slower and more expensive.

## `vehicleCategories` (type: `array`):

Select one or more vehicle categories to scrape. Uses the official mobile.de <code>vc=</code> parameter values.<br><br><b>Live default (when left empty):</b> All commercial vehicle categories (~146K listings total).<br><b>⚠️ Car:</b> 1.4M+ listings — only use with tight filters.<br><br>In Preloaded mode, leaving this empty returns the full snapshot with no category filter.

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

Manufacturer or brand. Example: <code>BMW</code>, <code>Mercedes-Benz</code>, <code>Caterpillar</code>, <code>Volvo</code>. Leave empty for all.

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

Specific model. Example: <code>3 Series</code>, <code>320d</code>. Leave empty for all models.

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

Minimum price in euros.

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

Maximum price in euros.

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

Earliest registration year.

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

Latest registration year.

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

Opens each listing page to extract full specs, description and all images.<br><br>Much slower - use only when you need complete data.

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

Maximum number of listings to collect. Each listing = one row in your dataset. 0 = unlimited (all matching records).<br><br>Use <b>50-200</b> for a quick test.

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

Number of results pages to go through. Each page typically has 20-40 listings.

## `forceRestart` (type: `boolean`):

Si es true, borra el checkpoint guardado y empieza desde pagina 1.

## `outputSchema` (type: `string`):

Select 'ftp28' to output canonical Spanish field names required for FTP-28 pipeline integration.

## `_admin_snapshot` (type: `boolean`):

Internal flag for monthly snapshot generation. Requires IS\_AUTHOR\_RUN env var.

## `_snapshot_categories` (type: `array`):

Override categories for snapshot mode. Empty = all. Example: \["SemiTrailerTruck", "TruckOver7500", "VanUpTo7500"]

## `skipItems` (type: `integer`):

Resume a partial download: skip the first N records of the snapshot and return only what follows. Skipped records are never emitted, so they are not charged. Use it when a previous run was cut short — set this to the number of records you already received.

## Actor input object example

```json
{
  "data_freshness": "preloaded",
  "vehicleCategories": [
    "ConstructionMachine",
    "AgriculturalVehicle",
    "ForkliftTruck",
    "SemiTrailerTruck",
    "SemiTrailer",
    "Trailer",
    "TruckOver7500",
    "VanUpTo7500"
  ],
  "make": "BMW",
  "minPrice": 5000,
  "maxPrice": 30000,
  "minYear": 2018,
  "fetchDetails": false,
  "maxItems": 100,
  "maxPages": 5,
  "forceRestart": false,
  "outputSchema": "english",
  "_admin_snapshot": false,
  "_snapshot_categories": [],
  "skipItems": 0
}
```

# Actor output Schema

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

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

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

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "data_freshness": "preloaded",
    "vehicleCategories": [
        "ConstructionMachine",
        "AgriculturalVehicle",
        "ForkliftTruck",
        "SemiTrailerTruck",
        "SemiTrailer",
        "Trailer",
        "TruckOver7500",
        "VanUpTo7500"
    ],
    "make": "",
    "maxItems": 20,
    "maxPages": 1,
    "outputSchema": "english"
};

// Run the Actor and wait for it to finish
const run = await client.actor("rastriq/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 = {
    "data_freshness": "preloaded",
    "vehicleCategories": [
        "ConstructionMachine",
        "AgriculturalVehicle",
        "ForkliftTruck",
        "SemiTrailerTruck",
        "SemiTrailer",
        "Trailer",
        "TruckOver7500",
        "VanUpTo7500",
    ],
    "make": "",
    "maxItems": 20,
    "maxPages": 1,
    "outputSchema": "english",
}

# Run the Actor and wait for it to finish
run = client.actor("rastriq/mobile-de-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 '{
  "data_freshness": "preloaded",
  "vehicleCategories": [
    "ConstructionMachine",
    "AgriculturalVehicle",
    "ForkliftTruck",
    "SemiTrailerTruck",
    "SemiTrailer",
    "Trailer",
    "TruckOver7500",
    "VanUpTo7500"
  ],
  "make": "",
  "maxItems": 20,
  "maxPages": 1,
  "outputSchema": "english"
}' |
apify call rastriq/mobile-de-scraper --silent --output-dataset

```

## MCP server setup

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