Mobile.de Cars Scraper avatar

Mobile.de Cars Scraper

Pricing

Pay per event

Go to Apify Store
Mobile.de Cars Scraper

Mobile.de Cars Scraper

Search Mobile.de cars and commercial vehicles. Export normalized prices, mileage, specifications, seller or dealer details, locations, images, and retrieval timestamps.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

3 days ago

Last modified

Share

Export current mobile.de cars and commercial-vehicle search results as normalized JSON, CSV, Excel, or XML records.

Mobile.de Cars Scraper turns keyword filters or existing Mobile.de search URLs into structured vehicle listings with prices, mileage, specifications, seller or dealer details, location, images, and retrieval timestamps. It is designed for repeatable inventory research and data pipelines, not for downloading pages or media files.

What does Mobile.de Cars Scraper do?

The Actor searches Mobile.de's public vehicle inventory and saves one dataset row per unique listing.

It supports:

  • cars, motorbikes, motorhomes, and trucks;
  • free-text make, model, and variant searches;
  • gross price, registration year, mileage, fuel, and seller filters;
  • existing Mobile.de search-result URLs;
  • pagination up to the requested maxItems limit;
  • normalized EUR prices and numeric vehicle specifications;
  • public dealer names, phone numbers, locations, and ratings when available;
  • listing and image URLs without downloading the images;
  • UTC retrieval timestamps for scheduled inventory comparisons.

The default dataset works directly with Apify exports, API clients, webhooks, schedules, Google Sheets, Make, Zapier, and other downstream tools.

Who is it for?

Automotive market analysts

Compare advertised prices, mileage, registration year, fuel type, and location across a consistent result set.

Dealers and inventory teams

Schedule the same search regularly, store records by listingId, and identify additions, removals, or changed asking prices in your own database.

Vehicle buyers and sourcing teams

Build shortlists for specific makes, models, price ranges, and seller types, then group results by the reported seller location.

Data engineers

Feed normalized vehicle records into a warehouse, spreadsheet, dashboard, or lead-routing workflow without maintaining Mobile.de parsing code.

Researchers

Capture timestamped snapshots of public marketplace inventory for bounded, responsible analysis.

Why use this Actor?

  • Structured route: reads Mobile.de's public consumer search JSON instead of rendering and parsing every visible result page.
  • Lower overhead: no browser or automatic paid proxy mode is used for normal runs.
  • Normalized values: prices, mileage, power, displacement, emissions, location, and seller fields have stable names.
  • Search URL support: reuse a search you prepared on Mobile.de.
  • Filter parity: structured Actor filters are also applied to supplied search URLs.
  • Deduplication: duplicate listing IDs across searches are saved once per run.
  • Clear failures: an access challenge or invalid upstream response fails the run rather than returning a misleading empty success.
  • Monitoring-ready timestamps: every row includes retrievedAt and the normalized searchUrl.

What data can you extract?

FieldMeaning
listingIdStable Mobile.de listing ID
urlPublic vehicle-detail URL
titleAdvertised vehicle title
make, modelManufacturer and model
category, vehicleType, bodyTypeInventory and body classifications
price, currency, netPrice, vatAdvertised price information
firstRegistration, modelYearVehicle age information
mileageKmNumeric mileage in kilometers
powerKw, powerHpAdvertised power
fuelType, transmissionDrivetrain attributes
engineDisplacementCcEngine displacement
exteriorColorAdvertised color
emissionClass, co2EmissionsGKm, consumptionAvailable emissions and consumption data
country, postalCode, citySeller location
sellerType, sellerName, sellerPhonePublic seller details
sellerRating, sellerRatingCountAvailable seller rating information
imageUrl, imageUrlsPublic thumbnail URLs
priceRatingMobile.de price assessment when available
listingTypeSearch-result placement type
searchUrlSearch that produced the record
retrievedAtUTC retrieval timestamp

Fields can be null when a seller does not provide the corresponding value. imageUrls is an empty array when images are disabled or unavailable.

How to scrape Mobile.de cars in 4 steps

  1. Open the Actor and click Try for free.
  2. Enter a keyword such as BMW, or paste one or more Mobile.de search URLs.
  3. Add filters and set Maximum listings to the volume you need.
  4. Start the run, then open Vehicle listings to download or integrate the dataset.

A small starting input:

{
"query": "BMW",
"vehicleType": "Car",
"priceTo": 30000,
"maxItems": 10
}

Input parameters

InputTypeDefaultDescription
startUrlsarrayemptyMobile.de search-result URLs to process
querystringemptyMake, model, variant, or other free-text search
vehicleTypestringCarCar, Motorbike, Motorhome, or Truck
priceFromintegeremptyMinimum gross price in EUR
priceTointegeremptyMaximum gross price in EUR
yearFromintegeremptyOldest first-registration year
yearTointegeremptyNewest first-registration year
mileageTointegeremptyMaximum mileage in kilometers
fuelTypestringemptyMobile.de code such as PETROL, DIESEL, or ELECTRICITY
sellerTypestringemptyDEALER or PRIVATE
includeImagesbooleantrueInclude image URLs without downloading files
maxItemsinteger100Stop after 1–1,300 unique listings

If startUrls is empty, the Actor builds one search from the structured fields. If URLs are supplied, each URL is processed and any structured fields you set override or add to that URL's query.

Use an existing Mobile.de search URL

You can configure a search on Mobile.de and pass its result URL:

{
"startUrls": [
{
"url": "https://suchen.mobile.de/fahrzeuge/search.html?vc=Car&q=Volkswagen+Golf&p=:20000"
}
],
"maxItems": 50
}

Only public mobile.de hostnames are accepted. Vehicle detail URLs are not search inputs; use a search-result URL or structured filters.

Output example

The following abbreviated record reflects the current output shape. Values vary by seller and listing.

{
"listingId": "453354856",
"url": "https://suchen.mobile.de/fahrzeuge/details.html?id=453354856",
"title": "BMW i3 ALUFELGEN KLIMA NAVIGATION MFL AUTO",
"make": "BMW",
"model": "i3",
"category": "Kleinwagen",
"vehicleType": "Car",
"price": 12900,
"currency": "EUR",
"firstRegistration": "08/2016",
"mileageKm": 101900,
"powerKw": 125,
"powerHp": 170,
"fuelType": "Elektro",
"transmission": "Automatik",
"country": "DE",
"postalCode": "44579",
"city": "Castrop-Rauxel",
"sellerType": "DEALER",
"sellerName": "Example Autohaus GmbH",
"sellerRating": 5,
"imageUrl": "https://img.classistatic.de/api/v1/mo-prod/images/example?rule=mo-160w",
"searchUrl": "https://suchen.mobile.de/fahrzeuge/search.html?vc=Car&q=BMW&p=:30000",
"retrievedAt": "2026-08-08T12:00:00.000Z"
}

How much does it cost to extract Mobile.de vehicle listings?

The Actor uses pay-per-event pricing:

  • one start event when a run begins;
  • one item event for each unique listing saved.

Under the current BRONZE tier, the start fee is $0.0005 and each listing is $0.00088.

Saved listingsExample BRONZE charge
100.0005 + (10 × 0.00088) = 0.0093 USD
1000.0005 + (100 × 0.00088) = 0.0885 USD
1,0000.0005 + (1,000 × 0.00088) = 0.8805 USD

The Apify Console shows the active tier and maximum run charge before execution. Failed or duplicate records are not charged as items. Apify platform usage is handled according to the pricing displayed for your account.

Monitor vehicle inventory and prices

The Actor outputs snapshots; it does not maintain hidden cross-run state or claim that a listing changed.

A reliable monitoring workflow is:

  1. Save a stable search input as an Apify Task.
  2. Schedule it hourly, daily, or weekly.
  3. Send each completed dataset to your database or webhook.
  4. Match records by listingId.
  5. Compare price, mileageKm, seller fields, and presence between retrieval timestamps.
  6. Trigger your own alert only after applying your business rules.

This keeps change history transparent and under your control.

Export to spreadsheets and data pipelines

From the dataset page, export results as JSON, CSV, Excel, XML, RSS, or JSONL.

Common workflows include:

  • scheduled CSV exports to a shared reporting folder;
  • Google Sheets updates for sourcing teams;
  • webhooks that load completed datasets into BigQuery or Snowflake;
  • Make or Zapier scenarios that route listings by price and location;
  • Python or JavaScript jobs that compare daily snapshots;
  • BI dashboards grouped by make, fuel type, seller, or city.

For large recurring workflows, consume the dataset API instead of copying data manually.

Run with the Apify API using cURL

curl -X POST \
"https://api.apify.com/v2/acts/automation-lab~mobile-de-vehicle-listings-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"query": "Mercedes",
"sellerType": "DEALER",
"priceTo": 50000,
"maxItems": 20
}'

To wait for completion and receive dataset items directly, use the synchronous dataset-items endpoint documented by Apify.

Run with JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/mobile-de-vehicle-listings-scraper').call({
query: 'BMW',
vehicleType: 'Car',
priceTo: 30000,
maxItems: 100,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Run with Python

import os
from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("automation-lab/mobile-de-vehicle-listings-scraper").call(
run_input={
"query": "BMW",
"vehicleType": "Car",
"priceTo": 30000,
"maxItems": 100,
}
)
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(items)

Use Mobile.de Cars Scraper with MCP

Claude Code MCP setup

Add the Actor to Claude Code:

claude mcp add --transport http apify \
"https://mcp.apify.com?tools=automation-lab/mobile-de-vehicle-listings-scraper"

Claude Desktop, Cursor, and VS Code MCP setup

Use this equivalent HTTP MCP configuration in Claude Desktop, Cursor, or VS Code:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=automation-lab/mobile-de-vehicle-listings-scraper"
}
}
}

Example prompts for MCP

After connecting the MCP server, try:

  • “Use the Mobile.de Cars Scraper MCP tool to find up to 30 BMW cars below €25,000 and summarize median price and mileage.”
  • “Export dealer-listed Mercedes vehicles under €50,000 and group them by seller city.”
  • “Run my saved Volkswagen Golf search and group the results by registration year.”

Always inspect the proposed Actor input before approving a large MCP run.

Tips for reliable results

  • Start with 10–50 items while checking whether the source filters match your intent.
  • Use a specific make or model instead of a broad keyword when precision matters.
  • Keep the exact input stable across scheduled monitoring runs.
  • Compare by listingId, not title, because titles can change.
  • Treat price as an advertised asking price, not a completed sale price.
  • Keep includeImages disabled if your pipeline does not need image URLs.
  • Use the output city and postalCode fields for downstream location grouping.
  • Inspect nullable fields before calculations.

Limits and failure behavior

  • A run supports at most 1,300 unique listings and 50 source pages.
  • Mobile.de may reorder promoted or sponsored results between requests.
  • Search-result records do not include every field from the full detail page, such as complete descriptions or all equipment options.
  • Some sellers omit net price, VAT, phone, emissions, rating, or other fields.
  • Image URLs point to Mobile.de's image CDN and can expire or change.
  • The Actor does not download images, contact sellers, solve CAPTCHAs, log in, or access private data.
  • The Actor has no automatic residential proxy mode, so there is no hidden proxy-transfer charge path.
  • If Mobile.de returns an access challenge or malformed response, the run fails with a diagnostic error instead of silently producing zero records.
  • Naturally empty searches succeed with an empty dataset.

Troubleshooting

Why did I get no listings?

Open the normalized searchUrl from a regular browser and confirm the filters produce public inventory. Then remove one restrictive filter at a time. An empty valid search is different from an upstream failure; failures appear in the run log and run status.

Why was my URL rejected?

startUrls accepts only public Mobile.de URLs. Use a search-result URL rather than a listing detail URL or a third-party redirect.

Why is a field null?

Mobile.de and its sellers do not provide every attribute on every search card. Build integrations to accept nullable fields, as declared in the dataset schema.

Why did the run fail after retries?

Check the log for an HTTP status, access challenge, timeout, or response-shape message. Retry later only for a temporary source incident. Repeating an invalid input will not help.

Responsible use and legality

This Actor extracts public marketplace information. You are responsible for ensuring that your use complies with Mobile.de's terms, applicable laws, database rights, privacy requirements, and contractual obligations.

Use reasonable run frequencies and volumes. Do not use public seller contact data for spam, harassment, unlawful profiling, or unsolicited high-volume outreach. Avoid republishing copyrighted descriptions or images without permission. Honor deletion and correction obligations in systems where you retain personal or business contact data.

This documentation is practical guidance, not legal advice.

Use separate Actors for each marketplace instead of treating listings from different sources as interchangeable.

FAQ

Does this Actor monitor changes automatically?

It produces timestamped snapshots. Create a Task and schedule it, then compare listing IDs and values in your database or automation platform.

Can it scrape one listing detail URL?

No. This product is optimized for vehicle search and inventory export. It returns detail URLs, but does not promise full detail-page descriptions or equipment lists.

Does it use a browser or residential proxy?

No. Normal runs use Mobile.de's public consumer search JSON over direct HTTP, which keeps runtime and transfer low.

Are prices sale prices?

No. They are advertised asking prices at retrieval time.

Can I search outside Germany?

The source may contain cross-border sellers. This Actor reports seller country, city, and postal code when Mobile.de provides them, but it does not expose a country filter.

How fresh are the records?

Each row reflects the source response at retrievedAt. The Actor does not guarantee that a seller has not changed or removed a listing immediately afterward.

Can I export more than 1,300 listings?

Not in one run. Split the market into meaningful searches, such as make, model, price, year, fuel, or location ranges, while keeping request volume responsible.

Is a proxy setting required?

No. There is no proxy input and no automatic paid fallback. If the public consumer endpoint is unavailable, the run reports an error.