mobile.de Car Scraper — Germany’s Largest Car Marketplace avatar

mobile.de Car Scraper — Germany’s Largest Car Marketplace

Pricing

from $1.00 / 1,000 results

Go to Apify Store
mobile.de Car Scraper — Germany’s Largest Car Marketplace

mobile.de Car Scraper — Germany’s Largest Car Marketplace

Scrape mobile.de — Germany’s largest car marketplace. Prices, full specifications, seller details, image galleries, and search filters. Incremental mode detects new and changed listings. Compact output for AI agents and MCP workflows.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

Black Falcon Data

Black Falcon Data

Maintained by Community

Actor stats

1

Bookmarked

7

Total users

3

Monthly active users

2 days ago

Last modified

Categories

Share

What does mobile.de Scraper do?

Extract structured car listings from mobile.de — Germany's largest used car marketplace — and turn them into clean JSON for price monitoring, dealer research, inventory feeds, and automotive analytics.

mobile.de lists 1.4 million+ vehicles from dealers and private sellers across Germany, but it does not offer a structured export. This actor closes that gap: search with typed filters, get back 44 fields per listing — including mobile.de's own price assessment, seller star ratings, transmission, body type, color, emission class, equipment highlights, and KBA type codes — in a schema that stays the same across every run.

What data can you extract from mobile.de?

Each listing returns 44 structured fields: vehicle identification (listingId, listingKey, title, make, model, subTitle), pricing (price, priceCurrency, priceType, vatDeductible, netPrice, priceRating), specs (mileageKm, firstRegistration, fuelType, powerKw, powerPs, transmission, bodyType, engineSize, color, doors, seats, condition, emissionClass), equipment (highlights), seller info (sellerName, sellerType, sellerRating, sellerReviewCount, sellerId, location, country), regulatory (kbaHsn, kbaTsn), images (imageUrls, numImages), financing (isFinancingAvailable), and metadata (canonicalUrl, sourceUrl, searchQuery, searchUrl, isSponsored, scrapedAt). The priceRating field includes mobile.de's own price assessment (Guter Preis, Fairer Preis, Sehr guter Preis) — data most scrapers don't expose. Compact mode returns 13 core fields for AI-agent and MCP workflows.

Input

Search by keyword:

{
"query": "volkswagen golf",
"maxResults": 50
}

Search with filters — no URL needed:

{
"make": "BMW",
"fuelType": "DIESEL",
"priceMax": 25000,
"yearMin": 2020,
"maxResults": 100
}

Location-based search:

{
"query": "tesla",
"zipCode": "80331",
"radiusKm": 50,
"sort": "price_asc"
}

Paste a mobile.de search URL directly when you need filters beyond what the input parameters offer, or when you've already built a search on mobile.de and want to replicate it exactly:

{
"startUrls": [
"https://suchen.mobile.de/fahrzeuge/search.html?s=Car&isSearchRequest=true&ms=25200%3B8%3B&dam=0&fr=2020%3B&ml=%3B100000"
],
"maxResults": 200
}

Tips for better results

  • Combine filters to narrow results before they reach your pipeline. Filtering by make + fuel type + price range + year is more efficient than scraping everything and filtering afterward.
  • Use maxResults to control cost. Each emitted listing is one billable event. Start small (10–50) to validate your filters, then scale up.
  • Use startUrls for edge-case filters not exposed as input parameters. Build the search on mobile.de, copy the URL, paste it in.
  • Compact mode is designed for AI pipelines. If you're feeding results into an LLM or MCP tool, enable it to cut payload size by ~60%.

Output

Each run produces a dataset of structured car listing records. Results can be downloaded as JSON, CSV, or Excel from the Dataset tab in Apify Console.

Example result record

Here's what you get for a single listing from a real search for "volkswagen golf":

{
"listingId": "7a358277a435...c19b875f",
"listingKey": "451969656",
"canonicalUrl": "https://suchen.mobile.de/fahrzeuge/details.html?id=451969656",
"title": "Volkswagen Golf GTI Performance DSG *CAM*ACC*Navi*Totwinkel",
"subTitle": "GTI Performance DSG *CAM*ACC*Navi*Totwinkel",
"make": "Volkswagen",
"model": "Golf",
"price": 20480,
"priceCurrency": "EUR",
"priceType": "FIXED",
"vatDeductible": null,
"netPrice": null,
"mileageKm": 113137,
"firstRegistration": "01/2016",
"fuelType": "Benzin",
"powerKw": 169,
"powerPs": 230,
"transmission": "Automatik",
"bodyType": "Limousine",
"engineSize": "1.984 cm³",
"color": "Weiß",
"doors": "4/5",
"seats": "5",
"condition": "Neu",
"emissionClass": "Euro6",
"highlights": ["Winter Paket", "PDCv+h", "Spiegel el anklapp."],
"priceRating": "Erhöhter Preis",
"sellerName": "WELLER Performance GmbH & Co. KG",
"sellerType": "DEALER",
"sellerRating": 4.6,
"sellerReviewCount": 37,
"sellerId": "17354219",
"location": "59067 Hamm",
"country": "DE",
"kbaHsn": "0603",
"kbaTsn": "BKM",
"isFinancingAvailable": true,
"imageUrls": [
"https://img.classistatic.de/api/v1/mo-prod/images/87/87fa770b-..."
],
"numImages": 26,
"sourceUrl": "https://suchen.mobile.de/fahrzeuge/details.html?id=451969656",
"searchQuery": "volkswagen golf",
"searchUrl": "https://suchen.mobile.de/fahrzeuge/search.html?s=Car&isSearchRequest=true&ms=25200%3B8%3B",
"isSponsored": false,
"scrapedAt": "2026-04-12T21:45:12.547Z"
}

Input reference

ParameterTypeDefaultDescription
Search
querystringFree-text search (e.g. "VW Golf GTI").
makestringCar make (e.g. "Volkswagen", "BMW").
modelstringCar model (e.g. "Golf", "3er"). Requires make.
startUrlsarrayDirect mobile.de search URLs for full filter control.
maxResultsinteger50Maximum listings to return (0 = unlimited).
maxPagesinteger5Maximum search pages per source. Each page returns ~26 listings.
Filters
conditionenumNEW, USED, EMPLOYEE_CAR, PRE_REGISTRATION, CLASSIC
fuelTypeenumDIESEL, PETROL, ELECTRIC, HYBRID, PLUG_IN_HYBRID, CNG, LPG, HYDROGEN
transmissionenumMANUAL_GEAR, AUTOMATIC_GEAR, SEMI_AUTOMATIC_GEAR
bodyTypeenumLIMOUSINE, KOMBI, KLEINWAGEN, COUPE, CABRIO, SUV, GELAENDEWAGEN, VAN, PICKUP
sellerTypeenumDEALER, PRIVATE
priceMin / priceMaxintegerPrice range in EUR
mileageMin / mileageMaxintegerMileage range in km
yearMin / yearMaxintegerFirst registration year range
powerMin / powerMaxintegerEngine power range in PS
zipCodestringGerman postal code for location search
radiusKmintegerSearch radius around ZIP code (km)
sortenum"relevance"relevance, price_asc, price_desc, mileage_asc, registration_desc, registration_asc
Output
compactbooleanfalseCore fields only — smaller payloads for AI/MCP workflows.

Output fields

Each listing is one JSON record with 44 typed fields. Core vehicle data (price, specs, power) is present on virtually every listing. Extended fields (transmission, body type, color, emission class, highlights) are extracted from mobile.de's structured data and have near-100% coverage. Seller data (rating, reviews) depends on whether the seller has sufficient review history.

FieldTypePopulationDescription
Vehicle
listingIdstring100%Deterministic SHA-256 ID
listingKeystring100%mobile.de internal listing ID
canonicalUrlstring100%Direct link to listing
titlestring100%Full listing title
subTitlestring100%Variant and equipment summary
makestring100%Car make (Volkswagen, BMW, ...)
modelstring100%Car model (Golf, 3er, ...)
Pricing
pricenumber100%Gross price in EUR
priceCurrencystring100%Always "EUR"
priceTypestring100%Price type (FIXED)
vatDeductibleboolean23%VAT deductible (commercial vehicles only)
netPricenumber10%Net price excl. VAT (commercial listings only)
priceRatingstring100%mobile.de price assessment (Guter Preis, Fairer Preis, ...)
Specs
mileageKmnumber100%Mileage in km
firstRegistrationstring100%First registration (MM/YYYY)
fuelTypestring100%Fuel type (Benzin, Diesel, Elektro, ...)
powerKwnumber100%Engine power in kW
powerPsnumber100%Engine power in PS
transmissionstring100%Automatik, Schaltgetriebe
bodyTypestring100%Limousine, Cabrio, OffRoad, Van, SportsCar, EstateCar
engineSizestring100%Engine displacement (e.g. "1.984 cm³")
colorstring100%Exterior color (Weiß, Schwarz, Rot, ...)
doorsstring100%Door count (e.g. "4/5")
seatsstring100%Seat count
conditionstring100%Neu, Gebraucht, Vorführfahrzeug
emissionClassstring96%Euro5, Euro6, Euro6d-TEMP
Equipment
highlightsstring[]86%Equipment highlights (e.g. "AHK", "Panorama", "Navi")
Seller
sellerNamestring100%Dealer or seller name
sellerTypestring100%DEALER or PRIVATE
sellerRatingnumber100%Seller star rating (1–5)
sellerReviewCountnumber100%Number of seller reviews
sellerIdstring100%mobile.de seller ID
locationstring100%Seller ZIP + city
countrystring100%Country code (DE)
Regulatory
kbaHsnstring98%KBA manufacturer code (HSN)
kbaTsnstring98%KBA type code (TSN)
Images
imageUrlsstring[]100%Listing thumbnail URLs
numImagesnumber100%Total images available
Financing
isFinancingAvailableboolean100%Whether financing is offered
Metadata
sourceUrlstring100%Detail page URL
searchQuerystring100%Query used for this result
searchUrlstring100%Search URL used
isSponsoredboolean100%Whether listing is promoted
scrapedAtstring100%ISO-8601 timestamp

Population rates measured across 50 listings from a "volkswagen golf" search.

Known limitations

  • This version extracts data from search result pages only. Full descriptions and full-resolution image galleries are available on mobile.de detail pages but are not included in v1. Equipment highlights are extracted from search results.
  • netPrice is only populated for commercial/VAT-eligible listings (~10% of results).
  • emissionClass is missing on ~4% of listings (typically older vehicles).
  • highlights coverage is 86% — not all listings have equipment highlights on the search card.
  • kbaHsn/kbaTsn are missing on ~2% of listings.
  • Images are search result thumbnails, not the full-resolution gallery from the detail page. numImages reflects the total count available on the detail page.

How much does it cost to scrape mobile.de?

This actor uses pay-per-event pricing, so you pay a small run-start fee and then only for listings that are actually emitted.

EventPriceWhen
actor-start$0.005Once per run
result$0.001Per listing emitted
ScenarioListingsCost
Quick test10$0.02
Daily price monitor50$0.06
Market scan500$0.51
Full export1,000$1.01

Use cases

Price monitoring and market intelligence

Track asking prices across makes, models, regions, and fuel types over time. The priceRating field tells you whether each listing is priced above or below market. Combine with sellerRating to distinguish high-quality dealers from the rest, or filter by fuelType to track the diesel-to-electric transition in specific regions.

Dealer inventory aggregation

Build a unified view of dealer stock across Germany. Filter by ZIP code and radius to focus on a region, sort by registration date to find fresh inventory, and feed structured records into a BI dashboard or warehouse table on a recurring schedule.

Lead generation for automotive services

Identify active dealers by region with high listing volume and strong ratings. Use sellerName, sellerRating, sellerReviewCount, and location to build qualified prospect lists. Combine with fuelType: "ELECTRIC" to target dealers active in the EV market.

Recurring data pipelines

Schedule daily or weekly runs to keep datasets fresh. Export to CSV, JSON, Google Sheets, or push directly to a warehouse. The schema is stable across runs — field names, types, and key presence don't change, so downstream consumers don't need per-run adaptation.

AI-agent and MCP usage

Compact mode returns 13 core fields per listing, keeping payloads small for LLM context windows, MCP tool calls, and classification pipelines:

{
"query": "audi a4 diesel",
"maxResults": 10,
"compact": true
}

Compact fields: listingId, title, make, model, price, priceCurrency, mileageKm, firstRegistration, fuelType, powerPs, condition, location, canonicalUrl.

Full mode returns all 29 fields. Use compact when you need volume with low overhead; use full when you need seller data, images, or price ratings.

FAQ

How fast does it run?

A typical run with maxResults: 50 completes in 10–15 seconds. Each search page takes 3–5 seconds and returns ~26 listings. Larger runs (500–1000 results) scale linearly with the number of pages.

Does it include full images and vehicle descriptions?

Each listing includes 1–5 thumbnail images from the search results. Full-resolution image galleries, detailed equipment lists, and seller descriptions are on mobile.de detail pages and are not included in this version. Detail enrichment may be added as an opt-in feature in a future release.

Can I filter by transmission or body type?

Yes — both work as search filters and are also returned as output fields (transmission, bodyType) with 100% coverage.

Why are some fields null?

Null means the data is not present on that listing's search card. condition is only set when mobile.de marks a listing as "Unfallfrei" or "Vorführfahrzeug". vatDeductible only applies to commercial vehicles. sellerRating requires sufficient review history. priceRating is not shown on every listing. Fields are always present in the schema — never missing keys — but null when the source does not provide the data.

Can I scrape multiple makes in one run?

Each run handles one query or one set of filters. To scrape multiple makes, run the actor multiple times with different inputs, or use startUrls with pre-built search URLs. Schedule multiple runs and merge datasets downstream.

What happens with very large result sets?

Use maxPages to control how deep the scraper goes. Each page returns ~26 listings. With maxPages: 50 (the maximum), you can extract up to ~1,300 listings per query. For broader coverage, run multiple queries with different filters.

Can I integrate with other apps?

Yes. Connect to Google Sheets, Slack, Make, Zapier, or any webhook endpoint using Apify integrations. Use webhooks to trigger actions when a run completes.

Can I use this as an API?

Yes. Use the Apify API to start runs, retrieve results, and manage schedules programmatically. Client libraries are available for Node.js and Python.

This actor accesses publicly available listing data. Review mobile.de's terms of service and your local regulations before using the data commercially. You should only collect personal data if you have a legitimate reason to do so.

You might also like