mobile.de Scraper — Cars, Prices & Dealers
Pricing
from $0.90 / 1,000 listing scrapeds
mobile.de Scraper — Cars, Prices & Dealers
Scrape mobile.de car listings from any search URL or make, model and filters: price (gross/net), price rating, mileage, first registration, power, fuel, dealer, images, optional full specs.
Pricing
from $0.90 / 1,000 listing scrapeds
Rating
0.0
(0)
Developer
Trevor Ortega
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
mobile.de Scraper
Scrape car listings from mobile.de, Germany's largest car marketplace. For each car you get the title, make, model and variant, gross and net price with VAT, mobile.de's price rating ("Sehr guter Preis", "Guter Preis", ...), first registration, mileage, power in kW and PS, fuel, gearbox, body type, colour, number of previous owners, postcode and town, the seller type, and the dealer's name, address and rating. You also get every image URL and the listing URL. Start from any mobile.de search URL, or type a make, a model and filters. Turn on Include listing details to also get the description, the full equipment list, the technical data table, the accident-free status and more dealer information.
The actor reads the same JSON that mobile.de's own apps load, not the HTML page. That keeps the output complete and stable and makes runs fast: up to 100 listings come back per request, about 3,000 listings a minute. You pay only for the listings you get.
What data does mobile.de Scraper extract?
| Field | Description |
|---|---|
id, url | mobile.de listing id and the listing URL |
title, make, model, variant | e.g. "Audi A6 3.0 TDI quattro S-Line", Audi, A6, 3.0 TDI quattro S-Line |
price, currency | Asking price (gross, EUR) |
priceNet, vatRate, vatDeductible | Net price and VAT rate when the dealer shows VAT ("MwSt. ausweisbar") |
priceType | fixed or negotiable (VB) |
priceRating, priceRatingLabel | mobile.de's market price rating: VERY_GOOD_PRICE / "Sehr guter Preis", GOOD_PRICE, REASONABLE_PRICE, INCREASED_PRICE, HIGH_PRICE (null when mobile.de shows none) |
firstRegistration, firstRegistrationYear | "09/2023", 2023 |
mileageKm, powerKw, powerHp | 120765, 210, 286 |
fuel, gearbox, bodyType, colour, doors, seats, engineCapacityCcm | As shown on mobile.de (German labels, e.g. Diesel, Automatik, Kombi, Schwarz) |
previousOwners | Number of previous owners (Fahrzeughalter) |
condition, damaged, readyToDrive | used / new, unrepaired damage flag, roadworthy flag |
accidentFree, damageCondition | true when mobile.de says "Unfallfrei" (with details) |
generalInspectionUntil, emissionClass, fuelConsumption, co2Emissions, co2Class | HU date, Euro class and the consumption / CO2 data when the listing has it |
country, postcode, city, latitude, longitude | Where the car is. Private sellers' coordinates are rounded to about 1 km |
sellerType | dealer, private or company (company cars) |
dealerName, dealerAddress, dealerRating, dealerRatingCount, dealerReviewsUrl | Dealer business details and its mobile.de rating |
images, imageCount | All image URLs (1024 px) |
hsnTsn | German KBA key numbers (HSN/TSN) when the dealer provides them |
partnerSite | Set when the ad comes from a partner site (e.g. kleinanzeigen, automobile.it) |
createdAt, modifiedAt, renewedAt | When the ad was created, last changed and last renewed (ISO, UTC) |
makeId, modelId, sellerId, searchUrl, scrapedAt | mobile.de ids, the search the listing came from, and the time of the run |
With Include listing details you also get:
| Field | Description |
|---|---|
description | Full description text (line breaks kept) |
features | Complete equipment list (["ABS", "Apple CarPlay", "Sitzheizung", ...]) |
technicalData | The whole technical data table keyed by mobile.de's attribute names (mileage, firstRegistration, numberOfPreviousOwners, hu, climatisation, envkv.co2Emissions, envkv.consumptionDetails.fuel, interior, ...) |
accidentFree, damageCondition | e.g. true, "Gebrauchtfahrzeug, Unfallfrei" |
trimLine, interior, manufacturerColour, constructionYear, emissionsSticker, highlights | Trim line, upholstery, the manufacturer's colour name, construction year, emissions sticker |
dealerLanguages, dealerOnMobileSince, dealerRecommendationRate, dealerContactPerson, dealerContactRole | Dealer languages, on mobile.de since, recommendation rate, and the contact person the dealer publishes on the listing |
How to scrape mobile.de car listings
- Open suchen.mobile.de, set any filters and sort order, and copy the address from your browser. Or skip this step and fill in Make, Model and the filters in the input.
- Paste the URL into Start URLs. You can add several searches, and single listing URLs too.
- Set Max items and start the run. Download the results as JSON, CSV or Excel, or read them through the API.
The Make / Model search covers the filters most buyers use: price, first registration year, mileage, power (kW), fuel, gearbox, body type, new or used, dealer or private seller, and a German postcode or town with a radius. Any other mobile.de filter works through a search URL. That includes equipment, colour, price rating, number of owners, VAT, online since and EV range.
Input example
{"make": "BMW","model": "3er","yearFrom": 2019,"priceTo": 30000,"mileageTo": 100000,"fuelTypes": ["diesel"],"gearbox": ["automatic"],"location": "80331","radiusKm": 100,"sellerType": "dealer","sort": "newest","maxItems": 500,"includeDetails": false}
Or with search URLs:
{"startUrls": [{ "url": "https://suchen.mobile.de/fahrzeuge/search.html?isSearchRequest=true&ms=1900%3B10%3B%3B&vc=Car&dam=false&fr=2020%3A&sb=p&od=up" },{ "url": "https://suchen.mobile.de/fahrzeuge/details.html?id=422503914" }],"maxItems": 1000}
Model names follow mobile.de: 3er is the whole 3 Series (320, 330e, M3, ...), 320 is only the 320, and Golf includes the Golf Variant and Sportsvan. If a model name is not found, the run stops and lists the names mobile.de knows for that make.
Output example
{"id": "49895674843104","url": "https://suchen.mobile.de/auto-inserat/audi-a6-3-0-tdi-quattro-s-line-pano-hud-st-hz-leder-3-wertingen/49895674843104.html","title": "Audi A6 3.0 TDI quattro S-Line PANO*HuD*St.Hz*LEDER*3","make": "Audi","model": "A6","variant": "3.0 TDI quattro S-Line PANO*HuD*St.Hz*LEDER*3","price": 35850,"priceNet": 30126.05,"currency": "EUR","vatRate": 19.0,"vatDeductible": true,"priceType": "fixed","priceRating": "GOOD_PRICE","priceRatingLabel": "Guter Preis","firstRegistration": "09/2023","firstRegistrationYear": 2023,"mileageKm": 120765,"powerKw": 210,"powerHp": 286,"fuel": "Diesel","gearbox": "Automatik","bodyType": "Kombi","colour": "Schwarz","doors": "4/5","seats": 5,"engineCapacityCcm": 2967,"previousOwners": 1,"condition": "used","damaged": false,"accidentFree": true,"readyToDrive": true,"country": "DE","postcode": "86637","city": "Wertingen","latitude": 48.561834,"longitude": 10.688548,"sellerType": "dealer","sellerId": "459539","dealerName": "Autohaus Ohnheiser GmbH & Co. KG VW Agentur","dealerAddress": "Industriestrasse 4, 86637 Wertingen","dealerRating": 4.9,"dealerRatingCount": 43,"dealerReviewsUrl": "https://www.mobile.de/bewertungen/OHNHEISER","images": ["https://img.classistatic.de/api/v1/mo-prod/images/73/736d0978-8f28-4ef1-8d18-2faac9c315f2?rule=mo-1024w","https://img.classistatic.de/api/v1/mo-prod/images/d0/d0da01f0-b662-42dd-b5f7-156a4b98a53d?rule=mo-1024w"],"imageCount": 17,"createdAt": "2026-10-09T23:32:02Z","renewedAt": "2026-10-09T23:32:02Z","damageCondition": "Gebrauchtfahrzeug, Unfallfrei","features": ["ABS", "Abstandstempomat", "Abstandswarner", "Alarmanlage", "Allradantrieb", "Ambiente-Beleuchtung", "Android Auto", "Apple CarPlay"],"technicalData": {"mileage": "120.765 km","cubicCapacity": "2.967 cm³","power": "210 kW (286 PS)","fuel": "Diesel","numberOfPreviousOwners": "1","hu": "Neu","climatisation": "4-Zonen-Klimaautomatik","interior": "Vollleder, Schwarz"},"interior": "Vollleder, Schwarz","manufacturerColour": "Brillantschwarz","constructionYear": 2023,"dealerLanguages": "Deutsch, English","dealerOnMobileSince": "27.08.2002","detailsFetched": true,"scrapedAt": "2026-10-09T21:40:00Z"}
(Shortened: real items carry every field from the table above. Fields that need details are absent or null when Include listing details is off.)
How many listings can I get per search?
mobile.de serves at most 2,000 listings per search. When a search has more and Max items asks for more, the actor splits it into price bands of up to 2,000 listings each, using a few tiny count requests, and collects them all. In a test, BMW 3 Series from 2025 returned all 3,045 of 3,045 listings in 41 seconds. Results then come band by band, cheapest band first, and each band keeps your sort order. Very broad searches (all 1.5 million cars) need many bands; it is faster to split them yourself by make, model or region. Turn off Split searches over 2,000 results to stop at the first 2,000.
Does it work without login? Does it collect phone numbers?
Yes, no login and no mobile.de account are needed. The actor reads only what anyone sees on mobile.de without logging in. It does not export phone numbers, messenger links or anything else hidden behind a click. It never exports private sellers' names or street addresses: for private sellers you get the postcode, the town and coordinates rounded to about 1 km. Dealers are businesses, so their name, address, rating and the contact person they publish on the listing are included.
Do I need a proxy?
Yes. mobile.de is protected by Akamai, which turns away most datacenter IP addresses. The default proxy, Apify Residential proxy in Germany, worked on 100% of requests in our tests. Residential traffic is billed by Apify per GB, and this actor uses very little of it: about 1 MB per 1,000 listings (one request per 100 listings), or about 10 MB per 1,000 listings with details. A denied request is retried automatically on a fresh IP and browser fingerprint.
Monitor changes on a schedule
Turn on Only new or changed items to watch a search. Each run remembers what earlier runs returned and outputs only new listings and listings whose price changed. Unchanged listings are dropped before any detail request, so they are not charged. Max items then sets how many listings are checked per run; keep the "Newest first" sort, e.g. 100-200 for a make and model in your region. Save the input as a task in Apify and add a Schedule (for example every hour or daily). Give each watch its own Monitoring key if several schedules use the same search. Every output item gets changeType (new or changed), and changed items get previousValues with the old price, e.g. {"price": 24990}.
Pricing
Pay per result: you are charged for each listing saved to the dataset, plus a small extra per listing when Include listing details is on. See the Pricing tab for the current prices. There is no start fee. Platform usage is small: at the default 512 MB memory our test runs used about $0.01-0.02 per 1,000 listings without details (proxy traffic, compute and dataset writes) and about $0.10 per 1,000 with details.
Integrations and API
Run it from the Apify API or a schedule, and send the results to Google Sheets, Slack, Make, Zapier, n8n or a webhook. Use maxItems to cap the cost of each run. Typical uses are dealer stock and price monitoring, used-car market research, price comparisons by make, model and year, and lead lists of dealers.
Is it legal to scrape mobile.de?
This actor collects publicly visible listing data that anyone can see on mobile.de without logging in. It does not log in, it does not collect phone numbers or anything else behind a click, and it does not export private sellers' names or addresses. Dealer contact persons are personal data under the GDPR. You are responsible for having a legitimate purpose and a legal basis for processing them, and for respecting mobile.de's terms of use. If in doubt, ask a lawyer.
Postcode and town coordinates for the Postcode or town filter come from GeoNames (CC BY 4.0).
Support
Found a bug or need a field that is not there? Open an issue on the Issues tab with the input you used and the run link.