Mobile.de Cars Scraper
Pricing
Pay per event
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
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
3 days ago
Last modified
Categories
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
maxItemslimit; - 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
retrievedAtand the normalizedsearchUrl.
What data can you extract?
| Field | Meaning |
|---|---|
listingId | Stable Mobile.de listing ID |
url | Public vehicle-detail URL |
title | Advertised vehicle title |
make, model | Manufacturer and model |
category, vehicleType, bodyType | Inventory and body classifications |
price, currency, netPrice, vat | Advertised price information |
firstRegistration, modelYear | Vehicle age information |
mileageKm | Numeric mileage in kilometers |
powerKw, powerHp | Advertised power |
fuelType, transmission | Drivetrain attributes |
engineDisplacementCc | Engine displacement |
exteriorColor | Advertised color |
emissionClass, co2EmissionsGKm, consumption | Available emissions and consumption data |
country, postalCode, city | Seller location |
sellerType, sellerName, sellerPhone | Public seller details |
sellerRating, sellerRatingCount | Available seller rating information |
imageUrl, imageUrls | Public thumbnail URLs |
priceRating | Mobile.de price assessment when available |
listingType | Search-result placement type |
searchUrl | Search that produced the record |
retrievedAt | UTC 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
- Open the Actor and click Try for free.
- Enter a keyword such as
BMW, or paste one or more Mobile.de search URLs. - Add filters and set Maximum listings to the volume you need.
- 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
| Input | Type | Default | Description |
|---|---|---|---|
startUrls | array | empty | Mobile.de search-result URLs to process |
query | string | empty | Make, model, variant, or other free-text search |
vehicleType | string | Car | Car, Motorbike, Motorhome, or Truck |
priceFrom | integer | empty | Minimum gross price in EUR |
priceTo | integer | empty | Maximum gross price in EUR |
yearFrom | integer | empty | Oldest first-registration year |
yearTo | integer | empty | Newest first-registration year |
mileageTo | integer | empty | Maximum mileage in kilometers |
fuelType | string | empty | Mobile.de code such as PETROL, DIESEL, or ELECTRICITY |
sellerType | string | empty | DEALER or PRIVATE |
includeImages | boolean | true | Include image URLs without downloading files |
maxItems | integer | 100 | Stop 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
startevent when a run begins; - one
itemevent for each unique listing saved.
Under the current BRONZE tier, the start fee is $0.0005 and each listing is $0.00088.
| Saved listings | Example BRONZE charge |
|---|---|
| 10 | 0.0005 + (10 × 0.00088) = 0.0093 USD |
| 100 | 0.0005 + (100 × 0.00088) = 0.0885 USD |
| 1,000 | 0.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:
- Save a stable search input as an Apify Task.
- Schedule it hourly, daily, or weekly.
- Send each completed dataset to your database or webhook.
- Match records by
listingId. - Compare
price,mileageKm, seller fields, and presence between retrieval timestamps. - 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 osfrom apify_client import ApifyClientclient = 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().itemsprint(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
includeImagesdisabled if your pipeline does not need image URLs. - Use the output
cityandpostalCodefields 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.
Related Automation Lab Actors
- CarGurus Vehicle Listings Scraper for CarGurus inventory.
- Cars.com Vehicle Listings Scraper for United States vehicle listings.
- Coches.net Vehicle Listings Scraper for Spanish vehicle inventory.
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.