Mobile.de Car Scraper
Pricing
from $1.00 / 1,000 results
Mobile.de Car Scraper
Extract used car listings from mobile.de with make, model, price, mileage, year, fuel, transmission, dealer info, and photos.
Pricing
from $1.00 / 1,000 results
Rating
1.0
(1)
Developer
Crawler Bros
Maintained by CommunityActor stats
0
Bookmarked
50
Total users
1
Monthly active users
10 days ago
Last modified
Categories
Share
Extract used and new car listings from mobile.de β Germany's largest vehicle marketplace with 1.5+ million listings. Returns 38 structured fields per vehicle including make, model, year, price, mileage, power, fuel type, transmission, CO2 class, dealer contact, and preview image.
π‘ Stealth Browser Technology
Mobile.de protects its listings with Akamai Bot Manager. This actor uses a stealth browser session (Camoufox, with Patchright Chromium fallback) to pass Akamai's checks and fetch data through the same endpoint the website itself uses. It works on the Apify Free plan β no residential proxy is required, though configuring one (RESIDENTIAL, country DE) is supported and helps when Akamai flags a datacenter IP.
Features
- 38 output fields per vehicle β complete flat schema with typed defaults (zero nulls)
- 1.5M+ listings indexed β cars, vans, estate cars, sedans, SUVs, and more
- Full filter pass-through β make, model, price, mileage, year, fuel type, transmission, postal-code radius
- Pagination β walks pages automatically (up to 500 vehicles per run)
- Price ratings β each car has an "is this a good price?" rating from mobile.de's pricing engine
- Dealer details β name, postcode, city, country, phone, seller type
- Preview image per listing
- Resilient session rotation β automatically retries with fresh browser sessions and proxy configurations if mobile.de blocks an IP
- No login, no cookies β works out of the box
Requirements
| Requirement | Details |
|---|---|
| Apify Platform | Runs on the Apify platform (browser automation). |
| Residential Proxy (optional) | Apify RESIDENTIAL proxy, country DE β recommended but not required; the actor also works from datacenter IPs and rotates automatically. |
Input
| Field | Type | Required | Description |
|---|---|---|---|
startUrls | Array | No | Mobile.de spec page URLs (suchen.mobile.de/auto/*.html) or search URLs (suchen.mobile.de/fahrzeuge/search.html?...). Defaults to VW Golf listings. |
maxItems | Integer | No | Maximum vehicles to return (default 50, max 500). |
proxyConfiguration | Object | No | Optional proxy settings. Defaults to Apify RESIDENTIAL (DE) when provided; the actor tries a direct connection first and falls back to the proxy automatically. |
Example Input
{"startUrls": ["https://suchen.mobile.de/auto/volkswagen-golf.html"],"maxItems": 100,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "DE"}}
With legacy search URL and filters:
{"startUrls": ["https://suchen.mobile.de/fahrzeuge/search.html?isSearchRequest=true&s=Car&vc=Car&ms=1900;17;;;&fr=2020&ft=DIESEL&mnp=30000"],"maxItems": 200,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "DE"}}
Output
Each vehicle has 38 fields. All fields are always present with typed defaults β never null.
Identity
| Field | Type | Description |
|---|---|---|
id | Integer | Mobile.de listing ID |
url | String | Full listing URL (suchen.mobile.de/auto-inserat/...) |
title | String | Full title (make + model + variant) |
shortTitle | String | Short title (make + model only) |
subTitle | String | Variant / trim level |
make | String | Manufacturer (BMW, Audi, Volkswagen, etc.) |
model | String | Model name |
category | String | Body category (Estate car, Sedan, SUV, etc.) |
vehicleClass | String | Vehicle class code (Car) |
Price
| Field | Type | Description |
|---|---|---|
price | Integer | Gross price (native currency, integer) |
currency | String | Currency code (typically EUR) |
priceFormatted | String | Formatted price (e.g., β¬41,390) |
priceRating | String | VERY_GOOD_PRICE, GOOD_PRICE, FAIR_PRICE, INCREASED_PRICE, HIGH_PRICE |
Specifications
| Field | Type | Description |
|---|---|---|
mileageKm | Integer | Mileage in kilometers |
powerKw | Integer | Engine power in kW |
powerHp | Integer | Engine power in HP |
firstRegistration | String | First registration date (MM/YYYY) |
yearConstructed | Integer | Year of first registration |
fuelType | String | Petrol, Diesel, Electric, Hybrid, LPG, etc. |
transmission | String | Manual gearbox, Automatic, Semiautomatic |
bodyType | String | Body category (duplicate of category) |
exteriorColor | String | Exterior color |
doors | String | Door configuration (e.g., 4/5) |
seats | Integer | Seat count |
previousOwners | Integer | Number of previous owners |
emissionClass | String | German emission class (Euro 6e, Euro 5, etc.) |
co2Class | String | COβ class (A-G) |
consumption | String | Combined consumption (5.7 l/100km (comb.), etc.) |
displacementCcm | Integer | Engine displacement in ccm |
Media & Dealer
| Field | Type | Description |
|---|---|---|
numImages | Integer | Number of photos on listing |
previewImage | String | Preview image URL |
location | String | Dealer town |
postalCode | String | Dealer postal code |
country | String | Country code (DE, AT, etc.) |
dealerName | String | Dealer name |
dealerType | String | DEALER or PRIVATE |
dealerPhone | String | Dealer phone number |
Metadata
| Field | Type | Description |
|---|---|---|
scrapedAt | String | ISO 8601 scrape timestamp |
Example Output
{"id": 444796340,"url": "https://www.mobile.de/auto-inserat/bmw-m3-touring/444796340.html","title": "BMW M3 Touring M xDrive Competition LED HUD NAVI H/K","shortTitle": "BMW M3","subTitle": "Touring M xDrive Competition LED HUD NAVI H/K","make": "BMW","model": "M3","category": "Estate car","vehicleClass": "Car","price": 110000,"currency": "EUR","priceFormatted": "β¬110,000","priceRating": "GOOD_PRICE","mileageKm": 11340,"powerKw": 390,"powerHp": 530,"firstRegistration": "03/2025","yearConstructed": 2025,"fuelType": "Petrol","transmission": "Automatic","bodyType": "Estate car","exteriorColor": "Grey","doors": "4/5","seats": 5,"previousOwners": 1,"emissionClass": "Euro 6e","co2Class": "G","consumption": "10.5 l/100km (comb.)","displacementCcm": 2993,"numImages": 29,"previewImage": "https://img.classistatic.de/api/v1/mo-prod/images/3f/3fbc5257.jpg","location": "Wermelskirchen","postalCode": "42929","country": "DE","dealerName": "Autohaus Kaltenbach GmbH Co.KG BMW und MINI VertragshΓ€ndler","dealerType": "DEALER","dealerPhone": "+49 (0)2196 76796970","scrapedAt": "2026-04-11T12:05:00+00:00"}
FAQ
Q: Why do I need a stealth browser? Mobile.de uses Akamai Bot Manager to protect its listing data. Plain HTTP requests (even with cookies or TLS impersonation) get blocked with HTTP 403. This actor opens a stealth browser session (Camoufox by default, Patchright Chromium as fallback) that passes Akamai's fingerprint checks, then fetches listings through the same search-results endpoint the mobile.de website itself uses.
Q: Which Apify plan do I need? The Free plan works β the actor runs entirely on Apify's free browser-enabled compute. A residential proxy (Starter plan and above) is optional and only used as an automatic fallback when Akamai flags a datacenter IP.
Q: Can I use my own proxy?
Yes. Set proxyConfiguration to point to any residential proxy service you have access to β just make sure to use a German IP (DE) if you need DE results. For example:
{"proxyConfiguration": {"useApifyProxy": false,"proxyUrls": ["http://user:pass@your-proxy-host:port"]}}
Q: How do I construct a search URL?
Apply filters on the mobile.de website, copy the URL from your browser (suchen.mobile.de/fahrzeuge/search.html?isSearchRequest=true&s=Car&vc=Car&...), and paste it into startUrls. All filters (ms= for make/model, fr= for year, ft= for fuel type, mnp=/mxp= for price, mnlm=/mxlm= for mileage, pgn= for postcode radius) pass through verbatim. Alternatively, use a spec page URL like https://suchen.mobile.de/auto/volkswagen-golf.html.
Q: How many cars per page?
~22β26 results per page (mobile.de varies by ad mix). The scraper paginates automatically up to your maxItems (hard cap 500 vehicles per run).
Q: Why is my run returning fewer unique cars than expected? Mobile.de promotes certain "top ads" and "eyecatcher ads" that appear on every page of a given search, so pages 2+ often have ~15β20 duplicates of page 1. The scraper deduplicates by listing ID so you only get unique vehicles.
Q: How fresh is the data? The scraper hits the same data source as the mobile.de website β data is live and reflects the current state of listings at the time of the run.
Use Cases
- Used-car market research β track inventory, prices, and age distribution across makes/models
- Dealer monitoring β watch specific dealers for new inventory
- Investment analysis β find underpriced listings using the
priceRatingfield - Regional price comparisons β filter by postal code radius to compare local markets
- EV market analysis β filter
fuelType=Electricto track the EV market's growth - Price alerts β daily runs with narrow filters (make + model + max price) for deal hunting
- Data pipelines β feed structured JSON into CRMs, BI tools, or ML models without post-processing