# mobile.de Scraper: Car Listings, Prices and Dealers in Germany (`themineworks/mobile-de-scraper`) Actor

Scrape mobile.de car listings by make, model, price, year, mileage, power, fuel and gearbox, or from any search link: price with net price and VAT, specs, colour, photos, equipment, description, dealer name, address and business phone. No login.

- **URL**: https://apify.com/themineworks/mobile-de-scraper.md
- **Developed by:** [The Mine Works](https://apify.com/themineworks) (community)
- **Categories:** E-commerce, Lead generation, MCP servers
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.50 / 1,000 listings

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

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

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## mobile.de Scraper: Car Listings, Prices and Dealers in Germany

[![600 mobile.de listings in 78 seconds](https://api.apify.com/v2/key-value-stores/cUXz95yxflDho41nn/records/mobile-de-scraper-hero.png)](https://console.apify.com/actors/XKpPBI7jaJBrtXRcv/input?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

From **The Mine Works**, makers of [Threads Scraper](https://apify.com/themineworks/threads-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral) and [B2B Leads Finder](https://apify.com/themineworks/b2b-leads-finder?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), with over 140,000 runs across 170+ public actors.

### Why choose this actor?

- **Every car with its price, specs and dealer.** Each listing comes with gross price, net price and VAT when the dealer shows them, mobile.de's price rating, first registration, mileage, fuel, gearbox, power in kW and hp, body, colour, doors, seats, owners, inspection date, photos, equipment, description and every technical attribute, plus the dealer's name, address, business phones, WhatsApp link and rating. Our proof run returned **600 listings (Mercedes C-Class dealer cars and the newest electric cars) in 78 seconds, every one with full details**. No mobile.de account, no cookies to paste, no proxy to set up.
- **Your filters, in your words, or mobile.de's own link.** Name a make and model the way you say it ("3 Series", "3er", "911", "C-Class"), add price, year, mileage, power, fuel, gearbox, body, seller and condition filters and an order, or paste any search link from suchen.mobile.de with every filter it carries. A Golf search for dealer estate cars, diesel, manual, 5,000 to 15,000 EUR, from 2015, under 150,000 km, from 80 kW, cheapest first came back with 20 of 20 rows inside every filter.
- **You pay only for listings delivered.** One charge per listing in your dataset plus a flat start fee per run. A search with no results, a request mobile.de refused, or a listing already delivered earlier in the run is never charged, and with "only new listings" a daily run pays only for cars that appeared since the last one.

[![Run it on Apify](https://api.apify.com/v2/key-value-stores/cUXz95yxflDho41nn/records/button-run.png)](https://console.apify.com/actors/XKpPBI7jaJBrtXRcv/input?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Part of The Mine Works E-commerce and marketplaces family:** [Ozon.ru Scraper](https://apify.com/themineworks/ozon-product-search?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [⭐ Amazon Reviews Scraper](https://apify.com/themineworks/amazon-reviews?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [Amazon Product Scraper](https://apify.com/themineworks/amazon-products?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [Etsy Listings Scraper](https://apify.com/themineworks/etsy-search-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [AliExpress Scraper](https://apify.com/themineworks/aliexpress-products?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [Kleinanzeigen.de Scraper](https://apify.com/themineworks/kleinanzeigen-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral).

### Try it in one minute

Paste this input and press Start. It returns the 20 newest BMW 3 Series listings on mobile.de, each with price, registration, mileage, power, body, colour, seller and photos, in under a minute (10 to 32 seconds in our tests):

```json
{
  "make": "BMW",
  "model": "3 Series",
  "maxListingsPerSearch": 20
}
```

You can tell the actor what to read in two plain forms, and mix them in one run:

- **Make, model and filters**: `make` and `model` as you would say them, and any of condition, seller type, price, first registration year, mileage, power in kW, fuel, gearbox, body type and order. Leave `make` empty to list every make.
- **mobile.de links** in `startUrls`: set any filters on suchen.mobile.de (or m.mobile.de), copy the address of the results page and paste it. The link keeps every filter it carries. A link to a single listing returns that listing.

On Apify's free plan every run returns the first 10 results as a preview, so you can check the data and the fields before you pay. A paid Apify plan returns every result: https://apify.com/pricing?fpr=ymnoit

#### Copy to your AI assistant

```text
themineworks/mobile-de-scraper on Apify. Returns mobile.de (Germany) car listings by make, model and filters or from mobile.de search and listing links, one row per car with listing_id, url, title, make, model, variant, price, currency, price_type, net_price, vat_rate, price_rating, condition, first_registration (YYYY-MM), year, mileage_km, fuel, gearbox, power_kw, power_hp, engine_size_cc, body_type, colour, doors, seats, previous_owners, next_inspection, emission_class, has_damage, seller_type (dealer, private or business), dealer_name, dealer_city, dealer_address, dealer_phone, dealer_phones, dealer_whatsapp, dealer_id, dealer_rating, location_city, location_zip, location_country, image_url, images, listed_at, updated_at, and with details on: description, equipment, colour_manufacturer and an attributes object. Call ApifyClient("TOKEN").actor("themineworks/mobile-de-scraper").call(run_input={"make": "BMW", "model": "3 Series", "maxListingsPerSearch": 100}), then client.dataset(run["defaultDatasetId"]).list_items().items. Required: make (with optional model), or startUrls (suchen.mobile.de links); with neither, every make is listed. Optional: condition (any, used, new), sellerType (any, dealer, private), priceFrom, priceTo, yearFrom, yearTo, mileageFrom, mileageTo, powerFromKw, powerToKw, fuelTypes, gearbox, bodyTypes, excludeDamaged (default true), sortBy (newest, relevance, price_lowest, price_highest, mileage_lowest, year_newest; default newest), maxListingsPerSearch (20 to 2,000, default 100), includeDetails (default true), language (en or de, default en), onlyNewListings (default false). Skip rows that have "_type": "info". Full spec: GET https://api.apify.com/v2/acts/themineworks~mobile-de-scraper/builds/default (Bearer TOKEN), which returns inputSchema and readme. Token: https://console.apify.com/account/integrations?fpr=ymnoit&utm_source=apify-readme&utm_medium=referral
```

### Key features

- **About 60 fields per car** with details on: identity (id, link, title, make, model, version), price (gross, net, VAT rate, fixed or negotiable, mobile.de's price rating), the car (condition, first registration, year, mileage, fuel, gearbox, power in kW and hp, engine size, body, colour, manufacturer colour, doors, seats, owners, next inspection, emission class, damage flags), photos, equipment, description, and an `attributes` object with every technical fact mobile.de shows (climate control, parking sensors, airbags, interior, consumption, CO2 and more).
- **Dealer contact as published**: dealer name, street and postcode, city, business phones in international format (fax left out), WhatsApp link, mobile.de dealer id and page, rating out of 5, number of reviews and coordinates.
- **mobile.de's own filters**: make, model or series, price, registration year, mileage, power, fuel, gearbox, body, seller type, condition, damaged cars and six orders from the input, and any other filter through a pasted link.
- **Up to 2,000 listings per search**, which is as far as mobile.de goes for one search; split bigger markets by price or year. Results come 20 at a time, three requests in flight, and listing details six at a time.
- **Fast mode**: turn listing details off to read only the search results, which already carry price, registration, mileage, fuel, gearbox, power, body, colour, dealer contact and photos. Our fast run read 600 listings from a filter search and a pasted link in 15 seconds.
- **Labels in English or German**, and monitoring on a schedule: "only new listings" remembers what earlier runs with the same input delivered and returns only cars that are new to you.

### How to use it

#### Basic: one model, newest first

```json
{
  "make": "Volkswagen",
  "model": "Golf",
  "maxListingsPerSearch": 100
}
```

#### Several searches at once

The filter search and every pasted link each run with their own limit. This returns up to 300 listings: 100 Porsche 911s from the input, 100 from an Audi link and 100 from a link for electric cars.

```json
{
  "make": "Porsche",
  "model": "911",
  "startUrls": [
    "https://suchen.mobile.de/fahrzeuge/search.html?isSearchRequest=true&ms=1900%3B%3B%3B&s=Car&vc=Car",
    "https://suchen.mobile.de/fahrzeuge/search.html?isSearchRequest=true&ft=ELECTRICITY&s=Car&vc=Car"
  ],
  "maxListingsPerSearch": 100
}
```

#### Price check: one model, used, by year and mileage

Dealers, leasing firms and car buyers compare asking prices for the same car. Narrow by registration year, mileage, fuel and gearbox, order by price, and read `price`, `net_price`, `year`, `mileage_km`, `power_hp` and `price_rating` from each row.

```json
{
  "make": "BMW",
  "model": "3 Series",
  "condition": "used",
  "yearFrom": 2019,
  "yearTo": 2022,
  "mileageTo": 100000,
  "fuelTypes": ["diesel"],
  "gearbox": ["automatic"],
  "sortBy": "price_lowest",
  "maxListingsPerSearch": 500
}
```

#### Dealer list: who sells this make, with phones

Parts suppliers, finance and insurance partners and marketing agencies build lists of car dealers. Ask for dealers only; every row carries the dealer's name, address, business phones, WhatsApp link, rating and mobile.de id. Remove repeated dealers on `dealer_id` in your sheet.

```json
{
  "make": "Mercedes-Benz",
  "model": "C-Class",
  "sellerType": "dealer",
  "includeDetails": false,
  "maxListingsPerSearch": 2000
}
```

#### Daily alert: new listings for your search

Turn on "only new listings" and put the run on an Apify schedule once a day. Each run returns only cars that earlier runs with the same input have not delivered, so you pay only for new ones.

```json
{
  "make": "Porsche",
  "model": "911",
  "priceTo": 80000,
  "sortBy": "newest",
  "maxListingsPerSearch": 100,
  "onlyNewListings": true
}
```

#### Any filter mobile.de has: paste a link

Set the filters on suchen.mobile.de (radius around a postcode, equipment, colour, number of owners, VAT shown and the rest), copy the results address and paste it. A link to one listing works too.

```json
{
  "startUrls": [
    "https://suchen.mobile.de/fahrzeuge/search.html?dam=false&isSearchRequest=true&ms=1900%3B%3B%3B&p=%3A20000&ref=quickSearch&s=Car&vc=Car",
    "https://suchen.mobile.de/auto-inserat/bmw-525i-a-sport-neustadt-weinstra%C3%9Fe/440764105.html"
  ],
  "maxListingsPerSearch": 150
}
```

### Input parameters

| Parameter | Type | Default | What it does |
|---|---|---|---|
| `make` | string | empty | Car make as mobile.de names it (BMW, Volkswagen, Mercedes-Benz). Empty lists every make, or only the links run when you give links. |
| `model` | string | empty | Model (320, Golf, Model 3) or series (3 Series, 3er, 911, C-Class), matched against mobile.de's list for the make. Needs `make`. |
| `condition` | string | `any` | `any`, `used` or `new`. |
| `sellerType` | string | `any` | `any`, `dealer` or `private`. |
| `priceFrom` | integer | empty | Lowest price in EUR. |
| `priceTo` | integer | empty | Highest price in EUR. |
| `yearFrom` | integer | empty | Earliest first registration year. |
| `yearTo` | integer | empty | Latest first registration year. |
| `mileageFrom` | integer | empty | Lowest mileage in km. |
| `mileageTo` | integer | empty | Highest mileage in km. |
| `powerFromKw` | integer | empty | Lowest power in kW. |
| `powerToKw` | integer | empty | Highest power in kW. |
| `fuelTypes` | array | empty | Any of `petrol`, `diesel`, `electric`, `hybrid_petrol`, `hybrid_diesel`, `lpg`, `cng`, `hydrogen`, `ethanol`, `other`. |
| `gearbox` | array | empty | Any of `manual`, `automatic`, `semi_automatic`. |
| `bodyTypes` | array | empty | Any of `small_car`, `sedan`, `estate`, `suv`, `sports_coupe`, `convertible`, `van`, `other`. |
| `excludeDamaged` | boolean | `true` | Leave out cars listed with unrepaired damage. |
| `sortBy` | string | `newest` | `newest`, `relevance`, `price_lowest`, `price_highest`, `mileage_lowest` or `year_newest`. |
| `startUrls` | array | empty | suchen.mobile.de or m.mobile.de search links, or listing links. A link keeps its own filters. |
| `maxListingsPerSearch` | integer | `100` | Most listings for the filter search and for each link, 20 to 2,000. |
| `includeDetails` | boolean | `true` | Read each listing for description, equipment, manufacturer colour, dealer page and every attribute. Same price either way. |
| `language` | string | `en` | `en` or `de`: language of fuel, gearbox, body, equipment and attribute labels. |
| `onlyNewListings` | boolean | `false` | Return only listings that earlier runs with the same searches did not deliver. |

The filters apply to the search built from `make`; a pasted link keeps its own filters. When you give links and no make, only the links run. A make or model mobile.de does not know stops that search with the list of valid names, and nothing is charged.

### What data do you get?

One row per car, grouped here by what it describes:

- **The listing**: `listing_id`, `url`, `title`, `listed_at`, `updated_at`, `image_url`, `images`, `image_count`, `has_details`.
- **Price**: `price`, `currency`, `price_formatted`, `price_type` (fixed or negotiable), `net_price` and `vat_rate` when the seller shows VAT, `price_rating`.
- **The car**: `make`, `model`, `variant`, `condition`, `first_registration`, `year`, `mileage_km`, `fuel`, `gearbox`, `power_kw`, `power_hp`, `engine_size_cc`, `body_type`, `colour`, `doors`, `seats`, `previous_owners`, `next_inspection`, `emission_class`, `has_damage`, `accident_damaged`, and with details `colour_manufacturer`, `equipment`, `description` and `attributes` (every technical fact mobile.de shows, by its key).
- **Who sells and where**: `seller_type`, `location_city`, `location_zip`, `location_country`, and for dealers `dealer_name`, `dealer_city`, `dealer_address`, `dealer_phone`, `dealer_phones`, `dealer_whatsapp`, `dealer_id`, `dealer_rating`, `dealer_reviews`, `latitude`, `longitude`, and with details `dealer_page_url` and `dealer_languages`.
- **Where it came from**: `search`, `page`, `rank`, `scraped_at`.

`seller_type` is `dealer`, `private`, or `business` for a company selling its own car (mobile.de lists those apart from dealers; they are handled like private sellers). Body types come as mobile.de labels them, for example Saloon, Estate car, Small Car or SUV/Off-road Vehicle/Pickup Truck. A field mobile.de does not show for a car is left out of that row instead of being set to empty, for example `first_registration` on a new car.

#### Stable fields for automations

These fields were present in every row of our proof runs (1,501 listings with and without details, from filters and links) and are safe to build on:

| Field | Meaning |
|---|---|
| `listing_id` | mobile.de's listing id, the same across runs |
| `url` | Link to the listing |
| `title` | Make, model and version |
| `make` | Make |
| `model` | Model |
| `price` | Asking price, gross |
| `currency` | Currency of the price (EUR) |
| `price_rating` | mobile.de's price rating |
| `condition` | used or new |
| `body_type` | Body type label |
| `seller_type` | dealer, private or business |
| `location_city` | City of the car |
| `location_zip` | Postcode of the car |
| `location_country` | Country code of the car |
| `listed_at` | When the listing was created |

These names will not change. New fields may be added next to them.

#### Output examples

A Mercedes C 220 d estate from a dealer, with details (photo list, equipment, attributes and description shortened):

```json
{
  "listing_id": "49163321778464",
  "url": "https://suchen.mobile.de/auto-inserat/mercedes-benz-c-220-d-t-9g-tronic-avantgarde-ahk-pano-sthz-led-braunschweig/49163321778464.html",
  "title": "Mercedes-Benz C 220 d T 9G-Tronic Avantgarde AHK/Pano/STHZ/Led",
  "make": "Mercedes-Benz",
  "model": "C 220",
  "variant": "d T 9G-Tronic Avantgarde AHK/Pano/STHZ/Led",
  "price": 25490,
  "currency": "EUR",
  "price_formatted": "€25,490",
  "price_type": "fixed",
  "net_price": 21420.17,
  "vat_rate": 19,
  "price_rating": "very good price",
  "condition": "used",
  "first_registration": "2022-06",
  "year": 2022,
  "mileage_km": 114000,
  "fuel": "Diesel",
  "gearbox": "Automatic",
  "power_kw": 147,
  "power_hp": 200,
  "engine_size_cc": 1993,
  "body_type": "Estate car",
  "colour": "White",
  "colour_manufacturer": "Polar White",
  "doors": "4/5",
  "seats": 5,
  "previous_owners": 1,
  "emission_class": "Euro6d",
  "has_damage": false,
  "seller_type": "dealer",
  "dealer_name": "Autohaus Wenden GmbH",
  "dealer_city": "Braunschweig",
  "dealer_address": "Im Steinkampe 16, DE-38110 Braunschweig",
  "dealer_phone": "+495307911750",
  "dealer_phones": [
    "+495307911750"
  ],
  "dealer_whatsapp": "https://wa.me/495307000000?ref=wa",
  "dealer_id": "7733680",
  "dealer_rating": 4.5,
  "dealer_reviews": 786,
  "location_city": "Braunschweig",
  "location_zip": "38110",
  "location_country": "DE",
  "latitude": 52.3173916,
  "longitude": 10.512932,
  "image_url": "https://img.classistatic.de/api/v1/mo-prod/images/85/85f72171-dbd7-45f2-bc6c-98c68ecd6829?rule=mo-1600.jpg",
  "images": [
    "https://img.classistatic.de/api/v1/mo-prod/images/85/85f72171-dbd7-45f2-bc6c-98c68ecd6829?rule=mo-1600.jpg"
  ],
  "image_count": 50,
  "listed_at": "2026-10-05T20:12:08.000Z",
  "updated_at": "2026-10-05T20:12:31.000Z",
  "has_details": true,
  "description": "Passive Sicherheit:\n• Fahrerairbag\n• Beifahrerairbag\n• Seitenairbag Fahrer und Beifahrer\n• Beckenairbag vorne\n• Kopfairbags vorne\n• Automatischer ...",
  "equipment": [
    "ABS",
    "Adaptive lighting",
    "Alloy wheels",
    "Ambient lighting",
    "Android Auto",
    "Apple CarPlay"
  ],
  "attributes": {
    "damageCondition": "Used vehicle",
    "category": "Estate car",
    "trimLine": "Avantgarde",
    "sku": "B-585",
    "countryVersion": "German edition",
    "mileage": "114,000 km"
  },
  "dealer_page_url": "https://home.mobile.de/home/redirect.html?customerId=7733680",
  "dealer_languages": "Deutsch, Pусский, English, Italiano, Français, Español",
  "search": "Mercedes-Benz C-Class",
  "page": 1,
  "rank": 12,
  "scraped_at": "2026-10-05T23:05:08.479Z"
}
```

A private seller in Düsseldorf, with details. No phone, name, street, coordinates or seller id are returned for private sellers, and phone numbers or e-mail addresses in their description are masked (equipment, attributes and description shortened):

```json
{
  "listing_id": "49160839031072",
  "url": "https://suchen.mobile.de/auto-inserat/dacia-spring-electric-65-extreme-extreme-top-zustand-d%C3%BCsseldorf/49160839031072.html",
  "title": "Dacia Spring Electric 65 Extreme Extreme Top Zustand!",
  "make": "Dacia",
  "model": "Spring",
  "variant": "Electric 65 Extreme Extreme Top Zustand!",
  "price": 16550,
  "currency": "EUR",
  "price_formatted": "€16,550",
  "price_type": "fixed",
  "price_rating": "good price",
  "condition": "used",
  "first_registration": "2025-09",
  "year": 2025,
  "mileage_km": 7000,
  "fuel": "Electric",
  "gearbox": "Automatic",
  "power_kw": 48,
  "power_hp": 65,
  "body_type": "Small Car",
  "colour": "Grey",
  "doors": "4/5",
  "seats": 4,
  "previous_owners": 1,
  "next_inspection": "09/2027",
  "has_damage": false,
  "accident_damaged": false,
  "seller_type": "private",
  "location_city": "Düsseldorf",
  "location_zip": "40489",
  "location_country": "DE",
  "image_url": "https://img.classistatic.de/api/v1/mo-prod/images/3d/3d5d0f30-436c-41bf-8d7a-c84a8708fa56?rule=mo-1600.jpg",
  "image_count": 6,
  "listed_at": "2026-10-05T19:51:56.000Z",
  "updated_at": "2026-10-05T19:54:09.000Z",
  "has_details": true,
  "description": "Zum Verkauf steht unser sehr gepflegter Dacia Spring in der höchsten Ausstattungslinie Extreme Electric 65 (48 kW / 65 PS). Das Fahrzeug stammt aus 1. Hand und befindet ...",
  "equipment": [
    "ABS",
    "All season tyres",
    "Android Auto",
    "Apple CarPlay"
  ],
  "attributes": {
    "damageCondition": "Used vehicle, Accident-free",
    "category": "Small Car",
    "mileage": "7,000 km",
    "power": "48 kW (65 hp)",
    "envkv.engineType": "Electric motor"
  },
  "search": "https://suchen.mobile.de/fahrzeuge/search.html?isSearchRequest=true&ft=ELECTRICITY&s=Car&vc=Car&sb=doc&od=down",
  "page": 5,
  "rank": 90,
  "scraped_at": "2026-10-05T23:05:29.430Z"
}
```

A Porsche 918 Spyder from a dealer, from a pasted link with details off (photo list left out):

```json
{
  "listing_id": "48259520301472",
  "url": "https://suchen.mobile.de/auto-inserat/porsche-918-spyder-weissach-paket-1-hand-lift-stuttgart/48259520301472.html",
  "title": "Porsche 918 Spyder, Weissach-Paket, 1. Hand, Lift",
  "make": "Porsche",
  "model": "918",
  "variant": "Spyder, Weissach-Paket, 1. Hand, Lift",
  "price": 3490000,
  "currency": "EUR",
  "price_formatted": "€3,490,000",
  "price_type": "fixed",
  "price_rating": "no rating",
  "condition": "used",
  "first_registration": "2014-06",
  "year": 2014,
  "mileage_km": 5128,
  "fuel": "Hybrid (petrol/electric)",
  "gearbox": "Automatic",
  "power_kw": 652,
  "power_hp": 886,
  "engine_size_cc": 4593,
  "body_type": "Convertible/Roadster",
  "colour": "White",
  "doors": "2/3",
  "seats": 2,
  "previous_owners": 1,
  "next_inspection": "New",
  "emission_class": "Euro5",
  "has_damage": false,
  "accident_damaged": false,
  "seller_type": "dealer",
  "dealer_name": "Stimpfig Automobile GmbH",
  "dealer_city": "Stuttgart",
  "dealer_address": "Poststraße 62-64",
  "dealer_phone": "+497115409043",
  "dealer_phones": [
    "+497115409043"
  ],
  "dealer_id": "26077169",
  "dealer_rating": 4.9,
  "dealer_reviews": 150,
  "location_city": "Stuttgart",
  "location_zip": "70190",
  "location_country": "DE",
  "latitude": 48.7943791,
  "longitude": 9.2124338,
  "image_url": "https://img.classistatic.de/api/v1/mo-prod/images/7f/7f4ccd75-7c45-495e-ae01-c0650df00748?rule=mo-1600.jpg",
  "image_count": 35,
  "listed_at": "2026-09-30T17:36:59.000Z",
  "updated_at": "2026-10-02T22:16:08.000Z",
  "has_details": false,
  "search": "https://suchen.mobile.de/fahrzeuge/search.html?isSearchRequest=true&ms=20100%3B%3B%3B&s=Car&vc=Car&sb=p&od=down",
  "page": 1,
  "rank": 3,
  "scraped_at": "2026-10-05T23:08:59.939Z"
}
```

The last row of every run is an information row. It is never charged; skip rows that have `"_type": "info"`.

### Pricing

Pay per event: you pay for each listing delivered to your dataset, plus a flat $0.005 per run, whatever memory you choose. Prices by Apify plan:

| Event | Free plan | Bronze (Starter) | Silver (Scale) | Gold and above (Business) |
|---|---|---|---|---|
| Listing delivered (`listing-scraped`), per 1,000 | $0.50 | $0.50 | $0.50 | $0.50 |
| Run start (`run-start`), once per run | $0.005 | $0.005 | $0.005 | $0.005 |

Free plan runs return up to 10 results each; paid plans have no cap.

Listing details on or off, the price per listing is the same.

What is never charged:

- Searches with no listings, and a make or model mobile.de does not know.
- Requests mobile.de refused even after retries on new connections.
- A listing already delivered earlier in the same run (a link and a filter search that overlap).
- Listings an earlier run delivered, when "only new listings" is on.
- The information row at the end of the dataset (it has `"_type": "info"`).

The proxy is included in the price; there is no separate proxy fee. To cap a run's cost, set a maximum total charge in the run options; the actor stops cleanly when it is reached.

### FAQ

**What is mobile.de, and what does this actor read?**
mobile.de is Germany's largest vehicle marketplace, with well over a million cars from dealers and private sellers. The actor reads mobile.de's public search results and listings, the same data the mobile.de apps show any visitor, and returns each car as a row.

**What do I get on the free plan?**
Each run on the free plan returns up to 10 results, enough to check the data and the fields. A paid Apify plan returns every result, with no cap: https://apify.com/pricing?fpr=ymnoit

**How many listings can I get?**
Up to 2,000 per search or link, which is as far as mobile.de pages for one search. For a bigger market, split it into several searches by price band, registration year or model, or paste several links. There is no limit on the number of links per run.

**How fresh is the data?**
Live. Every run reads mobile.de at that moment; `listed_at` and `updated_at` tell you when each listing was created and last changed. Newest first is the default order.

**Do I need a mobile.de account, cookies or an API key?**
No. Nothing to sign in to and nothing to supply. The actor reads what an anonymous visitor sees.

**Do I need to set up a proxy?**
No. The actor brings its own connection, included in the price. mobile.de turns away some connections; a refused request is tried again on a new one, so in our proof run every one of the 600 listings came through.

**What does "include listing details" change?**
With details on (the default), the actor opens each listing and adds the description, the equipment list, the manufacturer's colour name, the dealer's mobile.de page and languages, and every technical attribute. With details off it reads only the search results, which already carry price, specs, colour, body and dealer contact, and is several times faster. The price per listing is the same.

**What about private sellers?**
mobile.de shows some private sellers' phone numbers. The actor never returns them: private sellers, and companies selling their own car, come with city and postcode only, no phone, no WhatsApp, no name, no street, no coordinates and no seller id, and phone numbers or e-mail addresses written into their descriptions are masked. Dealers come with their business name, address and phones as they publish them.

**Can I get motorbikes, vans or motorhomes?**
The input fields search cars. A pasted mobile.de link for another vehicle class is passed on as it is, but the fields are named and tested for cars.

**Why is a field missing on some rows?**
mobile.de does not show it for that car or seller: new cars have no first registration, private sellers have no dealer fields, and many private sellers leave out colour, doors or engine size. Missing fields are left out of the row instead of being set to empty.

**How do make and model names work?**
They are matched against mobile.de's own lists, so "BMW" with "3 Series", "3er" or "320" all work, as do "Porsche" with "911" and "Mercedes-Benz" with "C-Class". A name it does not know stops that search with the list of valid names, and nothing is charged.

**Which export formats are there?**
JSON, CSV, Excel, XML, HTML table and RSS from the dataset, or the API.

**Can I use it from Claude, ChatGPT or Cursor (MCP)?**
Yes, through Apify's MCP server.

- Connector URL: https://mcp.apify.com/?tools=themineworks/mobile-de-scraper
- Claude: Settings > Connectors > Add custom connector, paste the URL, sign in with Apify.
- ChatGPT: developer mode, add an MCP connector with the URL, sign in with Apify.
- Cursor or VS Code: add it as an HTTP MCP server with that URL.
- Claude Code: `claude mcp add -t http mobile-de-scraper "https://mcp.apify.com/?tools=themineworks/mobile-de-scraper"`

**Is it legal to scrape mobile.de?**
The actor reads only public listings that any visitor can see, returns dealers' business contact details as they publish them, and never returns private sellers' contact details. You are responsible for how you use the data, including mobile.de's terms and data protection law such as GDPR and CCPA.

### Integrations

- **Google Sheets**: add the Google Sheets integration to the actor or a schedule, and new listings land in a sheet after each run.
- **Make, Zapier and n8n**: use the Apify app to start a run and read the dataset, for example to post each new car for your search to Slack, Telegram or email.
- **Webhooks**: call your own endpoint when a run finishes.
- **API**: start runs and read results from any language; the Python and JavaScript clients are a few lines each.
- **MCP clients**: Claude, ChatGPT, Cursor, VS Code and Claude Code, as in the FAQ above.

### More from The Mine Works

**E-commerce and marketplaces**

- [Ozon.ru Scraper](https://apify.com/themineworks/ozon-product-search?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [⭐ Amazon Reviews Scraper](https://apify.com/themineworks/amazon-reviews?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Amazon Product Scraper](https://apify.com/themineworks/amazon-products?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Etsy Listings Scraper](https://apify.com/themineworks/etsy-search-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [AliExpress Scraper](https://apify.com/themineworks/aliexpress-products?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Kleinanzeigen.de Scraper](https://apify.com/themineworks/kleinanzeigen-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Carsales.com.au Scraper](https://apify.com/themineworks/carsales-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [eBay Product Listings Scraper](https://apify.com/themineworks/ebay-search-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Shopify Store Scraper](https://apify.com/themineworks/shopify-store-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [🛒 TikTok Shop Scraper](https://apify.com/themineworks/tiktok-shop-products?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Walmart Product & Price Scraper](https://apify.com/themineworks/walmart-product-price-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Vinted Scraper](https://apify.com/themineworks/vinted-listings-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Social media and video**

- [Threads Scraper](https://apify.com/themineworks/threads-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Reddit Scraper](https://apify.com/themineworks/reddit-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Threads Search Scraper](https://apify.com/themineworks/threads-search-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Instagram Profile Scraper](https://apify.com/themineworks/instagram-profile-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Leads and business directories**

- [B2B Leads Finder](https://apify.com/themineworks/b2b-leads-finder?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Skip Trace Lookup](https://apify.com/themineworks/skip-trace-lookup?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Google Maps Email Scraper](https://apify.com/themineworks/maps-leads?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [2GIS Places Scraper](https://apify.com/themineworks/2gis-places-search?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Marketing, SEO and reviews**

- [Facebook Ad Library Scraper](https://apify.com/themineworks/meta-ad-library-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Google Ads Transparency Scraper](https://apify.com/themineworks/google-ads-transparency?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Similarweb Scraper](https://apify.com/themineworks/similarweb-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Google News Scraper](https://apify.com/themineworks/google-news?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**LinkedIn**

- [LinkedIn Company Scraper](https://apify.com/themineworks/linkedin-company-details?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [LinkedIn Post Scraper](https://apify.com/themineworks/linkedin-post-search?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [LinkedIn Employees Scraper](https://apify.com/themineworks/linkedin-employees?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [LinkedIn Profile Scraper](https://apify.com/themineworks/linkedin-profile-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Real estate**

- [Zillow Rentals Scraper](https://apify.com/themineworks/zillow-rental-listings?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Zillow Sold Comps Scraper](https://apify.com/themineworks/zillow-recently-sold?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [India Real Estate MCP](https://apify.com/themineworks/india-real-estate-mcp?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Housing.com Scraper](https://apify.com/themineworks/housing-com-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Science, health and government data**

- [Academic Research MCP](https://apify.com/themineworks/academic-research-mcp?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [CourtListener Scraper](https://apify.com/themineworks/courtlistener-court-records?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Socrata Open Data Scraper](https://apify.com/themineworks/socrata-open-data?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [OpenAlex Scraper](https://apify.com/themineworks/openalex-scholarly-works?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Jobs and hiring**

- [Foundit Monster India Jobs](https://apify.com/themineworks/foundit-jobs-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Hirist Jobs Scraper](https://apify.com/themineworks/hirist-jobs-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [India Jobs MCP](https://apify.com/themineworks/india-jobs-mcp?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Naukri Jobs Scraper](https://apify.com/themineworks/naukri-jobs?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Company and business data**

- [Company Domain Finder](https://apify.com/themineworks/company-domain-finder?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [GST Taxpayer Lookup](https://apify.com/themineworks/gst-taxpayer-lookup?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Company KYB Resolver](https://apify.com/themineworks/company-identity-resolver?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [SEC EDGAR Filings Scraper](https://apify.com/themineworks/sec-edgar-filings?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Food and local services**

- [NoBroker Scraper](https://apify.com/themineworks/nobroker-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Swiggy Restaurant Scraper](https://apify.com/themineworks/swiggy-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Zomato Scraper](https://apify.com/themineworks/zomato-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Developer and AI tools**

- [Website to Markdown Crawler](https://apify.com/themineworks/rag-crawler?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [GitHub Skill Finder](https://apify.com/themineworks/github-skill-discovery?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [GitHub Repo Scraper](https://apify.com/themineworks/github-repo-intelligence?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [GitHub Trending Scraper](https://apify.com/themineworks/github-trending-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**More tools**

- [G2 Reviews Scraper](https://apify.com/themineworks/g2-reviews-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Naver Blog Scraper](https://apify.com/themineworks/naver-blog-posts-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [WeChat Article Scraper 微信公众号文章](https://apify.com/themineworks/wechat-article-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Taobao Products Scraper 淘宝 天猫](https://apify.com/themineworks/taobao-products-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

### Support

Found a search, link or field that does not come through? Open an issue on the Issues tab and include the input you used; we answer there. For a new site or source, email dmineworks@gmail.com.

*mobile.de Scraper turns a make, a model or any mobile.de link into a clean table of German car listings with prices, specs, photos and dealer contacts, and a charge only for the listings you get.*

# Actor input Schema

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

Car make as mobile.de names it, for example BMW, Volkswagen, Mercedes-Benz, Audi, Porsche. Leave empty to list every make (newest first), or to run only the links below.

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

Optional. A model (320, Golf, Model 3) or a series (3 Series, 3er, C-Class), matched against mobile.de's own list for the make. A name it does not know stops the search with the list of valid names, nothing charged.

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

New or used cars.

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

Dealer listings carry the dealer's name, address and business phone. Private sellers' phone numbers are never returned.

## `priceFrom` (type: `integer`):

Optional.

## `priceTo` (type: `integer`):

Optional.

## `yearFrom` (type: `integer`):

Optional.

## `yearTo` (type: `integer`):

Optional.

## `mileageFrom` (type: `integer`):

Optional.

## `mileageTo` (type: `integer`):

Optional.

## `powerFromKw` (type: `integer`):

Optional. 1 kW is about 1.36 hp.

## `powerToKw` (type: `integer`):

Optional.

## `fuelTypes` (type: `array`):

Optional. Any of these.

## `gearbox` (type: `array`):

Optional. Any of these.

## `bodyTypes` (type: `array`):

Optional. Any of these.

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

On by default. Turn off to include cars listed with unrepaired damage.

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

The order mobile.de returns listings in. Newest first suits daily monitoring.

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

Optional. Search results links copied from suchen.mobile.de or m.mobile.de after setting any filters there (for example https://suchen.mobile.de/fahrzeuge/search.html?isSearchRequest=true\&ms=3500%3B%3B%3B\&s=Car\&vc=Car), or links to single listings (https://suchen.mobile.de/auto-inserat/.../123456789.html). A link keeps all its own filters; the filters above do not apply to it. When you give links and no make, only the links run.

## `maxListingsPerSearch` (type: `integer`):

Most listings to return for the filter search and for each link, 20 to 2,000. mobile.de serves 2,000 listings at most for one search; split bigger searches by price or year. You pay per listing delivered.

## `includeDetails` (type: `boolean`):

On: reads each listing for description, equipment, manufacturer colour, dealer page and every technical attribute. Off: faster, search fields only (price, make, model, version, registration, mileage, fuel, gearbox, power, body, colour, dealer name, address and phones, photos). Same price per listing either way.

## `language` (type: `string`):

Language of fuel, gearbox, equipment and attribute labels. Seller descriptions stay as written.

## `onlyNewListings` (type: `boolean`):

Deliver only listings this actor has not delivered to you before for the same search. Use it on a schedule to pay only for listings that appeared since the last run.

## Actor input object example

```json
{
  "make": "BMW",
  "model": "3 Series",
  "condition": "any",
  "sellerType": "any",
  "excludeDamaged": true,
  "sortBy": "newest",
  "maxListingsPerSearch": 40,
  "includeDetails": true,
  "language": "en",
  "onlyNewListings": false
}
```

# Actor output Schema

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

No description

## `summary` (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 = {
    "make": "BMW",
    "model": "3 Series",
    "maxListingsPerSearch": 40
};

// Run the Actor and wait for it to finish
const run = await client.actor("themineworks/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 = {
    "make": "BMW",
    "model": "3 Series",
    "maxListingsPerSearch": 40,
}

# Run the Actor and wait for it to finish
run = client.actor("themineworks/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 '{
  "make": "BMW",
  "model": "3 Series",
  "maxListingsPerSearch": 40
}' |
apify call themineworks/mobile-de-scraper --silent --output-dataset

```

## MCP server setup

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