mobile.de [$0.55/1K💰] Price Drops, AI Summary & Dealers
Pricing
from $0.55 / 1,000 results
mobile.de [$0.55/1K💰] Price Drops, AI Summary & Dealers
Scrape mobile.de, Germany's largest car marketplace (1.5M+ cars), by make, model, price or postcode radius. Get 120 fields: price rating with market price bands, full specs, dealer phone, WhatsApp and GPS, plus mobile.de's AI summary. No 2,000-result cap, price-drop alerts, JSON/CSV/Excel.
Pricing
from $0.55 / 1,000 results
Rating
0.0
(0)
Developer
Corvuslab
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
What does mobile.de Car Scraper do?
mobile.de Car Scraper turns mobile.de, Germany's largest vehicle marketplace, into a clean,
scheduled data feed. Give it a make and model (BMW + 3er), a keyword or a pasted mobile.de
search link, and every matching listing comes back as 120 structured fields: price,
mobile.de's own price rating and market price bands, the full spec sheet and equipment list,
GPS location, the dealer's phone, WhatsApp and rating, and mobile.de's AI summary where one
exists. It covers cars, motorbikes, vans, trucks and 12 vehicle types in total. It's no-code,
and the output is ready for JSON, CSV, Excel, the API or an AI agent.
New to Apify? Sign up free and use the included monthly platform credit to try this Actor. No credit card needed.
Why this scraper
- 📉 Price-drop monitoring built in. Scheduled runs return only new, changed and re-listed cars.
- 🧠 mobile.de's AI summary and highlights on detailed listings.
- 💶 Market price bands, not just a rating: the exact prices where "good" turns into "reasonable".
- 🚫 No 2,000-result ceiling. Big searches are read to the end.
What data can you extract from mobile.de?
Every record carries 120 fields, grouped like this:
| Group | What you get |
|---|---|
| Price & rating | Price, currency, net price, VAT rate, VAT-deductible flag, price type, mobile.de price rating (VERY_GOOD_PRICE … HIGH_PRICE) with its label, the price thresholds of each rating band and where the car sits inside its band |
| Vehicle & specs | Make, model, version, model range, trim line, category, body type, condition, mileage, first registration, power (kW + hp), engine size, fuel, gearbox, doors, seats, colour + manufacturer colour name, interior, emission class and sticker, climate control, parking assists, airbags, previous owners, next inspection, damage flags, HSN/TSN, trailer loads, the full spec sheet as a key-value map and the complete equipment list |
| Consumption & EV | Fuel or energy consumption, CO₂ emissions and class, consumption by driving cycle, battery capacity and ownership, AC and DC charging time, plug types |
| AI insight | aiSummary (mobile.de's AI-written assessment of the listing) and aiHighlights (short tags such as "First owner with TÜV", "Good price", "Top rated dealer") |
| Seller contacts & location | Seller name and type, dealer ID, phone numbers, WhatsApp, contact person, website, address, city, postcode, country, GPS latitude/longitude, rating, review count, recommendation rate, reviews link, logo, opening hours, languages, member-since date |
| Monitoring & media | Change type, previous price, price change and amount, first/last seen, re-post detection, created/modified/renewed timestamps, photo URLs, photo count, video flag, and the description as plain text, HTML and/or Markdown |
Key features
- 📉 Price-drop and new-listing monitoring. Incremental mode emits only NEW, UPDATED and REAPPEARED cars. A price move is labelled
DECREASEDorINCREASED, with the old price and the difference on the record. Sold and removed cars can be reported too. - 💶 mobile.de's own price verdict, with the numbers behind it. Every rated listing carries its rating and the six price points that bound mobile.de's bands for that exact car, so you see the fair-market range, not just a label.
- 🧠 The listing's AI summary and highlights.
aiSummary+aiHighlightscapture mobile.de's AI-written take on each car, ready for ranking or an LLM pipeline. - 🚫 Full inventory past the ~2,000-result limit. Larger searches are split automatically and read completely (6,542 of 6,542 Volvo XC60s in testing).
- 🚘 12 vehicle types. Cars, motorbikes, motorhomes, vans, trucks, semi-trailer trucks, trailers, semi-trailers, buses, agricultural vehicles, construction machines and forklifts.
- 🏷️ Make and model by name, in any spelling.
3er,3 Series,C-KlasseandClasse Call resolve. Paste a mobile.de search link and every filter in it is kept. - 🎚️ 20+ filters applied on mobile.de, including emission class, drive type, minimum seats, vehicle country and a German postcode or town name + radius. You never pay for listings you filtered out.
- 📇 Dealer lead data. Phone numbers, WhatsApp, contact person, website, address, GPS, rating, recommendation rate, opening hours and languages, plus a whole dealer's stock by dealer ID.
- ⚡ Fast, low-cost and AI-ready. Close to 2,000 listings a minute with details off, Telegram/Slack/Discord/webhook alerts, and compact or drop-empty output for LLM and MCP payloads.
🚀 How to scrape mobile.de
- Open the Actor and enter a make (e.g.
BMW) and optionally a model (3er), or paste a mobile.de search link. - Pick your filters: price, year, mileage, fuel, gearbox, location and radius.
- Set Max results (
0= everything) and choose whether to fetch full details (on by default). - Click Start. Results stream into the Output tab. Download them as JSON, CSV or Excel, or pull them from the API.
No login, no cookies, no setup. Even an empty input works: {} returns the 100 newest car
listings with full details.
Quick-start example input
{"make": "BMW","model": "3er","fuelType": ["DIESEL"],"yearMin": 2018,"priceMax": 30000,"maxResults": 100}
This returns the 100 most recently listed diesel BMW 3 Series from 2018 onwards under 30,000 €, each with its price rating, equipment list, dealer phone number and, where available, the AI summary.
Input
Configure it in the visual editor with no code, or pass JSON through the API. 52 inputs, grouped as they appear in the editor.
🔎 Search
| Field | Type | What it does |
|---|---|---|
vehicleType | enum | Car (default), Motorbike, Motorhome, VanUpTo7500, TruckOver7500, SemiTrailerTruck, Trailer, SemiTrailer, Bus, AgriculturalVehicle, ConstructionMachine, ForkliftTruck. |
make | string | Brand, e.g. BMW, Volkswagen, Mercedes-Benz. Comma-separate several. |
model | string | Model or family, e.g. 3er, Golf, C-Klasse. Comma-separate several. |
keyword | string | Free-text search inside listings, e.g. M Sport or Standheizung. |
startUrls | array | mobile.de search links (all filters kept) or single listing links. |
maxResults | integer | Listings to return (default 100, 0 = no limit). |
sort | enum | newest (default), price_asc, price_desc, mileage_asc, year_desc, power_desc, relevance. |
listedWithinDays | integer | Only listings put online in the last N days, e.g. 1 for today's new cars. |
🎚️ Filters
All filters are applied by mobile.de itself. Several values inside one filter widen the search (OR); different filters narrow it (AND).
| Field | Type | What it does |
|---|---|---|
condition | array | NEW and/or USED. |
priceMin / priceMax | integer | Price range in EUR. |
yearMin / yearMax | integer | First-registration year range. |
mileageMin / mileageMax | integer | Mileage range in km. |
powerMinPs / powerMaxPs | integer | Power range in PS (metric hp). |
fuelType | array | PETROL, DIESEL, ELECTRICITY, HYBRID, HYBRID_DIESEL, LPG, CNG, ETHANOL, HYDROGENIUM, OTHER. |
transmission | array | AUTOMATIC_GEAR, MANUAL_GEAR, SEMIAUTOMATIC_GEAR. |
bodyType | array | Cars only: SmallCar, Limousine, EstateCar, OffRoad, Van, SportsCar, Cabrio, OtherCar. |
exteriorColor | array | 13 colours, from BLACK and WHITE to GOLD and PURPLE. |
emissionClass | array | EURO7 down to EURO1, including EURO6D and EURO6D_TEMP. |
driveType | array | ALL_WHEEL, FRONT, REAR. |
minSeats | integer | At least this many seats. |
sellerType | enum | ANY, DEALER or PRIVATE. |
damageStatus | enum | ANY, NO_DAMAGE or ONLY_DAMAGED. |
vatDeductibleOnly | boolean | Only listings with VAT shown separately (deductible for businesses). |
country | array | Where the vehicle is: 20 countries including DE, AT, CH, NL, BE, FR, IT, PL, ES. |
location + radiusKm | string + integer | A German postcode (10115), town (München) or latitude,longitude, with a radius (default 50 km, up to 1,000). |
sellerId | string | One dealer's whole stock. Use the sellerId from any of their listings. |
📄 Output
| Field | Type | What it does |
|---|---|---|
includeDetails | boolean | Adds description, equipment, full spec sheet, consumption, AI summary and dealer profile (default on). |
descriptionFormat | enum | all, text, html or markdown. |
descriptionMaxLength | integer | Truncate descriptions to N characters (0 = full text). |
compact | boolean | 21 core fields only, for AI agents and MCP clients. |
excludeEmptyFields | boolean | Drop null and empty fields. |
♻️ Monitoring
| Field | Type | What it does |
|---|---|---|
incrementalMode | boolean | Emit only new, changed and re-listed cars since the last run. |
stateKey | string | Name for the tracked search. Blank = derived from your settings. |
emitUnchanged | boolean | Also emit listings that haven't changed. |
emitExpired | boolean | Emit a record for each listing that has gone (sold or removed). |
skipReposts | boolean | Suppress the same car re-posted by the same seller under a new ID. |
🔔 Notifications and ⚙️ Advanced
The alert channels (telegramToken + telegramChatId, slackWebhookUrl, discordWebhookUrl,
webhookUrl + webhookHeaders, notificationLimit) are covered in the
alerts section below. Advanced settings
(proxyConfiguration, detailConcurrency, maxRequestRetries, ignoreUrlFailures) work out of
the box and can be left alone.
More example inputs
Every electric SUV listed by dealers within 50 km of Munich:
{"fuelType": ["ELECTRICITY"],"bodyType": ["OffRoad"],"sellerType": "DEALER","location": "München","radiusKm": 50,"maxResults": 0}
A search you built on mobile.de, with full details:
{"startUrls": [{ "url": "https://suchen.mobile.de/fahrzeuge/search.html?ms=3500%3B10%3B%3B&vc=Car" }]}
Output
Each dataset item is one vehicle listing. A real record (trimmed: the Actor returns the full description, every photo, the whole equipment list and the full spec sheet):
{"id": "434925035","url": "https://suchen.mobile.de/auto-inserat/audi-q7-50-tdi-quattro-virtual-navi-bad-waldsee/434925035.html","title": "Audi Q7 50 TDI quattro Virtual Navi","make": "Audi","model": "Q7","version": "50 TDI quattro Virtual Navi","vehicleType": "Car","category": "SUV/Off-road Vehicle/Pickup Truck","condition": "USED","price": 39900.0,"currency": "EUR","priceNet": 33529.41,"vatRate": 19.0,"vatDeductible": true,"priceRating": "GOOD_PRICE","priceRatingLabel": "Good price","priceRatingThresholds": [30300.0, 39400.0, 42400.0, 47200.0, 50700.0, 56300.0],"priceRatingPosition": 16,"mileageKm": 85600,"firstRegistration": "09/2020","powerKw": 210,"powerHp": 286,"fuelType": "Diesel","transmission": "Automatic","emissionClass": "Euro6d","previousOwners": 1,"hasDamage": false,"city": "Bad Waldsee","postalCode": "88339","country": "DE","imageUrls": ["https://img.classistatic.de/api/v1/mo-prod/images/50/50443159-ecc9-4204-b409-95b78c391a59?rule=mo-1024.jpg"],"imageCount": 19,"createdAt": "2025-08-28T08:32:11+00:00","sellerType": "DEALER","sellerName": "AD-Automobile GmbH","sellerId": "453536","sellerPhones": ["+49 (0)7524 9147157", "+49 (0)178 6359466"],"sellerWhatsapp": "+49 178 6359466","sellerAddress": "Rudolf-Diesel-Straße 12, DE-88339 Bad Waldsee","latitude": 47.9405433,"longitude": 9.765612899999999,"sellerOpeningHours": ["Mon - Fri: 09:00 h - 19:00 h"],"sellerLanguages": ["Deutsch", "Pусский", "English"],"sellerSince": "2007-05-23","modelRange": "Q7 (4MG)(07.2019->)","trimLine": "50 TDI quattro basis","fuelConsumption": "6.9 l/100km","co2Emissions": "175 g/km","emissionsSticker": "4 (Green)","climatisation": "Automatic air conditioning","interior": "Cloth, Black","features": ["ABS", "Alloy wheels", "Apple CarPlay", "Bluetooth", "Central locking"],"specs": {"cubicCapacity": "2,967 ccm","parkAssists": "Front, Rear","trailerLoadBraked": "2,700 kg","fuelTankVolume": "75 l"},"aiSummary": "This vehicle stands out with a good price and features a fresh TÜV for immediate roadworthiness. Buying from an established dealer who has been active since 2007 adds strong trust. Prospective buyers should carefully verify the vehicle history and overall condition during a visit.","aiHighlights": ["Good price", "Fresh TÜV", "Experienced dealer"],"description": "Besichtigung und Probefahrt nach Terminvereinbarung möglich. …","source": "mobile.de","scrapedAt": "2026-10-14T07:12:48.150185+00:00"}
Data fields
- Always: price, rating and price bands, VAT split, vehicle identity and key specs, location, photos, timestamps, and the seller's name, phones, WhatsApp, rating, address and GPS.
- With
includeDetails(on by default): description (also asdescriptionHtml/descriptionMarkdown), equipment list, full spec sheet, consumption detail, EV charging data, AI summary and highlights, contact person, website, opening hours, languages, recommendation rate and member-since date. - With
incrementalMode:changeType,firstSeenAt/lastSeenAt,previousPrice,priceChangeandpriceChangeAmounton a price move,expiredAt, andisRepost/repostOfId.
Every field is present in standard mode (missing values are null). Compact mode returns 21
core fields, and excludeEmptyFields drops empties entirely. The Output tab ships three
views: Overview, Sellers & contacts and Changes.
♻️ How to monitor mobile.de with incremental mode
Schedule the Actor with incremental mode on. Each run compares against the previous one and emits only NEW, UPDATED (including every price drop) and REAPPEARED listings. Unchanged cars are recognised from the search results before their details are loaded, so you skip both the work and the cost. Each tracked search remembers up to about 22,000 listings.
| First run (baseline) | Next run (nothing changed) | Next run (one car cut its price) | |
|---|---|---|---|
| Listings found | all | all | all |
| Full details loaded | all | none | 1 |
| Records emitted & billed | all | none | 1, with previousPrice, priceChange: DECREASED and priceChangeAmount |
After the baseline, your cost scales with how much mobile.de changes, not with how much you watch:
| Daily churn | of 1,000 tracked | billable records | you save |
|---|---|---|---|
| 5 % | 1,000 | 50 | 95 % |
| 15 % | 1,000 | 150 | 85 % |
| 30 % | 1,000 | 300 | 70 % |
Setting up scheduled monitoring
- Configure your search, keep Sort by on Newest first and set Max results to
0. Sold/removed listings are only reported by runs that read the whole search. - Turn on Incremental mode, plus Include sold/removed listings and Skip re-listed cars if you want them.
- Run it once to seed the baseline, then add a schedule (hourly or daily) in the Schedules tab and a notification channel.
A daily price-drop watch on used Porsche 911s with a Telegram alert:
{"make": "Porsche","model": "911","condition": ["USED"],"maxResults": 0,"incrementalMode": true,"emitExpired": true,"telegramToken": "<bot token>","telegramChatId": "@your_channel"}
🔔 How to set up mobile.de alerts
Get pinged the moment a matching car is listed or drops its price. Fill in only the channels you want:
| Channel | What to configure |
|---|---|
| ✈️ Telegram | telegramToken (from @BotFather) + telegramChatId |
| 💬 Slack | slackWebhookUrl (Incoming Webhook URL) |
| 🎮 Discord | discordWebhookUrl (channel webhook URL) |
| 🪝 Webhook | webhookUrl (+ optional webhookHeaders) receives structured JSON, ideal for n8n / Make / Zapier |
Each alert lists up to notificationLimit cars (default 5, up to 20) with price, mileage, first
registration and, on a price drop, the old price. Channels fire independently, and a broken one
can't stop the scrape. Credentials are secret inputs: encrypted at rest, masked in the UI and never
written to the run log.
💡 What can you do with mobile.de data?
Catch underpriced cars before anyone else
Schedule a newest-first search with incremental mode and a Telegram alert, and filter on
priceRating: VERY_GOOD_PRICE. You hear about bargains soon after they go online, with the
dealer's phone number attached.
Used-car valuation and residual-value models
Read an entire make or model past the 2,000-result limit, with mileage, year, power, equipment and condition on every row, and mobile.de's own price bands as a market benchmark for each car.
Track price drops and days-on-market
previousPrice, priceChangeAmount, firstSeenAt and the sold/removed records show which models
are being discounted and how long they sit, which is the raw material for pricing your stock or
timing a purchase.
Dealer lead generation for automotive services
Build regional dealer lists with phone, WhatsApp, contact person, website, address, GPS, rating
and sellerId, a natural fit for financing, insurance, logistics and software vendors.
Competitor stock monitoring for dealers
Point the sellerId filter at a rival dealership and schedule it. You see every car they add,
every price change and every vehicle that sells.
Export and fleet sourcing across Europe
Filter by country, vatDeductibleOnly and emission class to source VAT-deductible vehicles in
20 European countries, then export the list straight to Excel.
💰 How much does it cost to scrape mobile.de?
This Actor uses Apify's pay-per-event model: a small fee when a run starts, plus a fee for each listing delivered. The Pricing tab shows the current numbers live.
There's no extra charge for full details, and none for the unchanged listings a monitoring run checks. Two things cut your bill further: site-side filters (listings you filtered out are never fetched or billed) and incremental mode (after the baseline you pay only for what changed, see the savings table above).
🔌 Integrations & export
Export to JSON, CSV, Excel or an HTML table, or pull from the REST API and the JavaScript / Python clients. Run it on a schedule, connect it to Google Sheets, Slack, Make, Zapier and n8n, or call it as an MCP tool from an AI agent.
Also covering European car marketplaces: AutoScout24 Scraper.
🔗 Using the API
from apify_client import ApifyClientclient = ApifyClient("<YOUR_API_TOKEN>")run = client.actor("corvuslab/mobile-de-scraper").call(run_input={"make": "Volkswagen","model": "Golf","yearMin": 2020,"maxResults": 50,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["title"], item["price"], item["priceRating"])
❓ FAQ
Do I need a mobile.de account or login? No. It reads public listings only and runs out of the box.
mobile.de only shows about 2,000 results per search. Can I get more? Yes. Set maxResults to
0 and larger searches are split and read to the end, up to 50,000 listings per run. Two
exceptions: with Listed within (days) set, results are read newest-first without splitting, so
narrow the filters if more than ~2,000 cars match; and "price on request" listings can't be placed
in a price range, so a split read may miss some of them.
What do priceRating, priceRatingThresholds and priceRatingPosition mean? priceRating
is mobile.de's market verdict: VERY_GOOD_PRICE, GOOD_PRICE, REASONABLE_PRICE,
INCREASED_PRICE or HIGH_PRICE (NO_RATING when mobile.de didn't rate the car).
priceRatingThresholds are the six prices in EUR that bound those five bands, cheapest first, so
the third and fourth values are mobile.de's fair-market range for that car. priceRatingPosition
is how far into its band the price sits (0–100).
Why are aiSummary, features or description empty? They come with full details, so keep
Fetch full details on. aiSummary is filled only where mobile.de has written one, and not
every listing has one.
Why are model, version and priceRating empty on motorbikes and trucks? mobile.de only
records the make for most non-car vehicle types and only rates car prices. The model is still in
the title, and make, category and every spec are filled as usual.
Why is sellerWhatsapp, sellerRating or imageUrls empty on some listings? Those exist only
when the seller provides them. Many dealers don't list WhatsApp, private sellers have no rating,
opening hours or website, and some imported partner listings come without photos.
Which model names work? The names you'd use on mobile.de and their common variants: 3er,
3 Series, C-Klasse, Classe C, Golf. If a name isn't a mobile.de model (e.g. 320d), that
make's listings mentioning it are searched instead. An unknown make stops the run before anything
is charged, and the status message suggests the closest names.
Can I search outside Germany? Yes. mobile.de lists vehicles across Europe; use country to
pick from 20 countries. The radius search works on German postcodes and towns, or on any
latitude,longitude.
⚖️ Is it legal to scrape mobile.de?
This Actor collects only publicly available listing data. You're responsible for how you use it, in particular any personal information such as private sellers' names and phone numbers, and for complying with mobile.de's terms and applicable law (including the GDPR where it applies). Not affiliated with, endorsed by or sponsored by mobile.de GmbH.
Keywords: mobile.de scraper · mobile.de api · scrape mobile.de · mobile.de car listings · mobile de scraper · car price scraper · used car prices Germany · car price drop alerts · car dealer leads · Germany car marketplace data · vehicle listings scraper · car market research · price rating · motorbike listings · export to CSV · export to Excel · no-code scraper · MCP tool for AI agents