Mobile.de Scraper: Cars, Prices, Dealers & Ratings avatar

Mobile.de Scraper: Cars, Prices, Dealers & Ratings

Pricing

from $0.47 / 1,000 listings

Go to Apify Store
Mobile.de Scraper: Cars, Prices, Dealers & Ratings

Mobile.de Scraper: Cars, Prices, Dealers & Ratings

Scrape mobile.de cars, motorbikes, vans, trucks by make, model, keyword, place, dealer or pasted links, no login, past 2,000 ads a search. Rows carry price, mobile.de price rating, mileage, registration, power, KBA codes, dealer phone. Monitor new ads and price drops; CSV or API, pay per listing.

Pricing

from $0.47 / 1,000 listings

Rating

0.0

(0)

Developer

Automation Craft

Automation Craft

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Mobile.de Scraper: Cars, Prices, Dealers & Ratings

Mobile.de Scraper turns mobile.de, the German vehicle marketplace, into clean rows: one row per ad with the price, mobile.de's own price rating and the six price thresholds behind it, mileage, first registration, power in kW and hp, fuel, gearbox, body type, colour, emission class, previous owners, HU, KBA HSN and TSN, finance plans, the place, and the seller (a dealer's name, phone and star rating). Search by make and model, keyword, place with a radius or a dealer's stock, across 13 vehicle types (cars, motorbikes, motorhomes, vans, trucks, buses, trailers, machines, e-bikes and more), paste mobile.de search links, or give ad links. No login, no browser.

Searches larger than mobile.de's 2,000 ad limit are split into price slices on their own. Turn on Listing details for the full description, equipment, every attribute and the dealer's address, opening hours and newest reviews, and Dealer profiles for up to 10 reviews, e-mail addresses, WhatsApp number, website, imprint and VAT id. Name a monitor and schedule the Actor: each run delivers and bills only ads it has not delivered before, tracks price changes and removed ads, and can send them to Telegram, Slack, Discord, WhatsApp or your webhook.

Who uses it

  • Car dealers and traders watching makes, models and regions for new stock and price drops, and checking where an ad sits against mobile.de's price rating.
  • Buyers and importers reading a model across Germany or abroad with net prices and VAT, mileage, registration and HU.
  • Lead and market teams reading a dealer's whole stock, its rating, phones and, with Dealer profiles, its e-mail addresses and reviews.
  • Analysts and data teams who need mobile.de as rows in JSON, CSV or Excel, in German or English labels, through the Apify API.

Features

FeatureSettingsEvent billed
Makes and models by name ("Volkswagen Golf", "BMW 3er Reihe (all)" for a model group) or id; makes or models to leave outmakeModels, excludeMakeModelsListing
mobile.de's own keyword searchkeywordsListing
13 vehicle types: car, motorbike, motorhome, van, truck, semi trailer truck, trailer, semi trailer, bus, construction, agricultural, forklift, e-bikevehicleTypeListing
Places: German postcodes and place names through mobile.de's own place service, places in France, Italy, Poland or Romania with their country, coordinates; a radius in whole km; the vehicle's countrylocations, radiusKm, countryListing
A dealer's whole stock, by dealer id or storefront linkdealersListing
Pasted mobile.de search links, every parameter read and checkedsearchUrlsListing
Single ads by link or id, read with their detailsadUrlsListing by URL
Named filters: fuel, gearbox, body type, colour, special categories, drive, emission class, price rating, condition, seller type, damage, VAT, doors, emission sticker, price, year, mileage, power (kW or hp), seats, engine size, previous owners, HU months, online within 1 to 14 days, dealer stars, roadworthy, pictures, reduced price, video, quality seal, leasing, export offers, equipmentsee Inputno charge
Any other mobile.de filter by its own parameter namefiltersno charge
Row filters: words to keep or leave out, an online since window, ads you already have, custom rules on any output fieldincludeKeywords, excludeKeywords, postedWithinHours, postedWithinDays, postedAfter, postedBefore, excludeAdIds, customFiltersno charge
9 sorts, caps per run, per search and in pages, a start pagesort, maxItems, maxItemsPerSearch, maxPagesPerSearch, startPageno charge
Past 2,000 ads a search: price slices from mobile.de's own price percentilessplitLargeSearches (on)no charge
The promoted top ad of page 1 (highlighted ads always come in their place)includeTopAds (on)Listing
Description, equipment, every attribute, all photos, finance plan; a dealer's address, phones, opening hours, contact person, rating breakdown and 2 newest reviewsincludeDetailsListing details
A dealer's storefront and rating pages, once per dealer per run: up to 10 reviews, e-mails, WhatsApp, website, imprint, VAT idincludeDealerProfiles, maxDealerReviewsDealer profile
A monitor: only ads new to it, run after runmonitorNameListing (new ads only) and Results page
Price and field changes, removed and reappeared adstrackChanges, trackFields (with a monitor)Listing update
Every known ad again as a full snapshot; reposts marked or left outemitUnchanged, markReposts, skipRepostsListing (snapshot rows)
Notifications: Telegram, Slack, Discord, WhatsApp Cloud API, webhook (HMAC SHA-256 signature, extra headers)see The monitor and notificationsfree
Labels in German or English; prices also in one of 15 other currencies at the European Central Bank's rate of the daylanguage, currencyincluded
Image size, description format and length, compact rows, empty fields left outimageSize, descriptionFormat, descriptionMaxLength, compactOutput, excludeEmptyFieldsincluded
A private seller's phone and exact coordinates (off by default)includePersonalDatafree
A coverage row per search, free status rows for misses, a run summary and an HTML run report (key REPORT)alwaysfree

Quick start

  1. Type a make and model (for example Volkswagen Golf, BMW 3er Reihe (all) or Mercedes-Benz C 200) and a place (Berlin, 10115, München, Bayern or 52.52, 13.40) with a radius.
  2. Optional: pick filters (fuel, gearbox, price, year, mileage, power, seller type, price rating) or a vehicle type.
  3. Set Maximum listings and press Start.
  4. Download the rows as JSON, CSV or Excel, or read them through the API.

Example input, the Actor's own prefill:

{
"makeModels": ["Volkswagen Golf"],
"locations": ["Berlin"],
"radiusKm": 50,
"maxItems": 10
}

Dealer offers of the BMW 3 series around Munich, 2020 or newer, under 60,000 km, with a good or very good price rating and the details:

{
"makeModels": ["BMW 3er Reihe (all)"],
"locations": ["München, Bayern"],
"radiusKm": 50,
"sellerType": "dealer",
"yearMin": 2020,
"mileageMax": 60000,
"priceRatings": ["very_good", "good"],
"includeDetails": true,
"maxItems": 200
}

Motorbikes across Germany, newest first, with English labels and prices also in US dollars:

{
"vehicleType": "motorbike",
"language": "en",
"currency": "USD",
"maxItems": 100
}

What you get

One row per ad (type: "listing"), one coverage row per search (type: "search"), free status rows for anything that did not end as a listing (type: "status"), with change tracking a removed row per ad a monitor no longer finds (type: "removed"), and one run summary at the end (type: "summary").

Listing fields

Fill rates were measured on a 2,000 row run on 2026-10-15 (Volkswagen Golf across Germany, newest first, 2,000 listing rows: 726 dealer, 1,273 private and 1 company car; includePersonalData off).

FieldWhat it holdsFilled
adId, url, title, subtitlemobile.de's ad id, the ad's link, the title and subtitle100 % (subtitle 99.5 %)
make, model, vehicleType, category, bodyType, conditionmake and model as mobile.de lists them, the vehicle type, body type, new or used100 % (bodyType, added after this run: 1,500 of 1,500 on a later run)
price, currency, priceNet, vat, vatReclaimable, priceNegotiable, previousPricegross price in euros, the net price and VAT where a business can reclaim it, the price before a reductionprice 100 %, net price 16.9 %, previous price 0.7 %
priceRating, priceRatingLabel, priceRatingBandsmobile.de's price rating (VERY_GOOD_PRICE to HIGH_PRICE, or NO_RATING), its label, the six thresholds in eurosfield 100 %, a rating other than NO_RATING 44.5 %, thresholds 46.5 %
mileageKm, firstRegistration, firstRegistrationYearkilometres, month and year of first registration99.8 %, 98.5 %
powerKw, powerHp, fuel, gearboxengine power, fuel and gearbox in the run's languagepower 95.2 %, fuel 98.5 %, gearbox 98.2 %
engineSizeCcm, color, doors, seats, emissionClassas the seller gives them40.6 to 44.8 %
previousOwners, hu, countryVersionprevious owners, the general inspection (HU) date or "Neu", the market version36.5 %, 83.5 %, 22.6 %
consumption, co2Emissions, co2Classwhere the search answer carries them (more with Listing details)4.1 %
kbaHsn, kbaTsnthe German type approval codes28.8 %
financePlans, monthlyFinanceRate, leasingRateMonthly, leasingmobile.de's finance plans (bank, term, rates, instalments), leasing offersfinance 1,999 of 2,000, leasing 1.6 %
sellerType, sellerTypeLabel, sellerIddealer, private or company, the seller's id (the same on every ad of one seller)100 %
dealerName, sellerPhone, dealerRating, dealerRatingCount, dealerLogoa dealer's name, phone, stars and number of ratingsname and phone on 726 of 726 dealer rows, rating on 610 of 726
postcode, city, countrythe vehicle's place100 %
imageCount, imagethe number of photos and the first one100 %, 98.1 % (median 12 photos)
placement, highlights, badges, qualitySeal, deliveryorganic, highlighted (a paid highlight in the order) or topAd; the ad's highlights and sealsplacement 100 % (118 highlighted, 1 top ad)
onlineSince, daysOnlinewhen the ad went online and days since (newest and oldest sorts)100 %
convertedwith currency: the price and net price converted, the rate, its date and sourcewith a currency other than EUR
searchKey, searchLabel, searchPage, searchSlice, searchPosition, source, monitorName, deliveryId, scrapedAtwhat found the ad (search for searches and search links, adUrl for ad links), the search, its page, price slice and position, when the row was madeset by the Actor
detailsIncluded, dealerProfileCharged, pageChargedwhether this row's details were read and billed, whether it carried the dealer's one charged profile, whether it carried its page's Results page chargeset by the Actor
change, possibleRepostOfwith a monitor: what changed since the last delivery; an earlier ad id of the same vehiclemonitor runs

Measured on 96 distinct rows with details from four runs on 2026-10-15 (51 dealer, 45 private rows).

FieldWhat it holdsFilled
description (and descriptionHtml, descriptionMarkdown by descriptionFormat)the seller's full text100 %
attributesevery attribute as {tag, label, value} (consumption, CO2, cylinders, tank, weights, last service ...)100 % (median 15)
featuresthe equipment list88.5 % (median 8)
imagesevery photo link92.7 % (median 12)
damageCondition, accidentFree, engineTypecondition, accident free flag, drive type99 to 100 %
climatisation, manufacturerColor, interior, cylindersas named67.7 %, 74.0 %, 43.8 %, 37.5 %
lastServiceDate, lastServiceMileage, batteryCapacity, electricRangewhere the seller gives them (no electric car in this sample)6 to 7 %; 0 %
financePlanDetail, partnerLinksthe finance plan in full; mobile.de's partner offers97.9 %, 58.3 %
dealername, address, postcodeAndCity, country, phones, homepageLink, latitude, longitude, languages, openingHours, contactPerson, memberSince, rating, about, latestReviewson 51 of 51 dealer rows; name, address, phones, coordinates 100 %, rating 72.5 %, opening hours 58.8 %, latest reviews 62.7 %, contact person 29.4 %
privateSellerlocation, latitude, longitude (rounded to 2 decimals with includePersonalData off), phones (only with it on)on 45 of 45 private rows

Dealer profile (includeDealerProfiles)

dealerProfile carries customerId, name, storefrontUrl, website, emails, phone, cellPhone, whatsApp, fax, address (street, postcode, city, country, coordinates), vatId, imprint, onMobileDeFor, languages, ratingScore, ratingCount, ratingsPage and reviews (up to maxDealerReviews, 10 by default: date, score, buyer's shown first name, bought a car, liked, disliked, recommends, ad matched reality, part scores, salesperson, dealer reply). Measured on one dealer in two runs on 2026-10-15: name, two e-mail addresses, phone, WhatsApp, address, VAT id, imprint and 10 reviews filled; the dealer showed no website. mobile.de serves only a handful of these pages per run (10 pages, 3 per dealer: about 3 dealers); rows past that come without the profile and without its charge, and a profile that could not be read is never billed. A dealer's profile is billed once per run and carried free on its later rows.

Removed rows (trackChanges)

adId, url, reason (notFoundByCompleteSearches), message, lastPrice, firstSeenPrice, priceChangeCount, firstSeenAt, daysTracked, monitorName, scrapedAt. Written only when every search of the run was read to its end (no ad links, no posted window, no stop); when more than half of the tracked ads (and more than 5) are missing at once, none are reported and the run says so in a free row.

Sample row (a real row of the prefill run; some fields left out)

{
"type": "listing",
"adId": "453714340",
"url": "https://suchen.mobile.de/fahrzeuge/details.html?id=453714340",
"title": "Volkswagen Golf VIII 1.5 eTSI Goal DSG LED Navi App-Connect",
"make": "Volkswagen",
"model": "Golf",
"vehicleType": "Car",
"category": "Limousine",
"condition": "used",
"price": 23950,
"currency": "EUR",
"priceNet": 20126.05,
"vat": "19% MwSt.",
"vatReclaimable": true,
"previousPrice": 24490,
"priceRating": "REASONABLE_PRICE",
"priceRatingLabel": "Fairer Preis",
"priceRatingBands": [16200, 21100, 22700, 25300, 27100, 30200],
"mileageKm": 49497,
"firstRegistration": "12/2024",
"powerKw": 85,
"powerHp": 116,
"fuel": "Benzin",
"gearbox": "Automatik",
"emissionClass": "Euro 6e",
"previousOwners": 1,
"hu": "Neu",
"monthlyFinanceRate": 230,
"sellerType": "dealer",
"sellerId": "40743285",
"dealerName": "Autoland NL Hönow",
"dealerRating": 5,
"dealerRatingCount": 15,
"sellerPhone": "+49 (0)3342 6044009",
"postcode": "15366",
"city": "Hoppegarten OT Hönow",
"country": "DE",
"imageCount": 36,
"placement": "topAd",
"onlineSince": "2026-08-09T01:06:00.000Z",
"daysOnline": 67,
"searchLabel": "Volkswagen Golf within 50 km of Berlin",
"searchPage": 1,
"searchPosition": 1,
"source": "search",
"detailsIncluded": false,
"scrapedAt": "2026-10-15T04:03:38.045Z"
}

searchKind, searchLabel, searchMakeModel, searchKeyword, searchPlace, searchRadiusKm, searchDealerId, vehicleType, sort, adsOnMobileDe (mobile.de's total), searchCap, slices, slicesWalked, adsBeyondReach, pagesRead, adsSeen, adsDelivered, alreadyDelivered, knownToMonitor, filteredOut and filteredOutBy (per filter), removedOrGone, detailsFailed, newAdsMayLieBeyond (a monitor), complete, stoppedBy, morePagesOffered and a note.

Free status rows

A setting or an item the Actor refused (invalid), a make, model or place name that matches several entries (ambiguous, with the candidates), a place mobile.de's place service does not know (unknown_place), an ad that was sold or withdrawn or an id that never existed (not_found), an ad or a page that could not be read (failed), a search whose filters mobile.de did not apply as sent (search_not_applied), an ad link a monitor already delivered (skipped), a notification that failed (notification_failed), and the reason a run stopped (limit_reached, source_unavailable, monitor_unavailable). A run writes 20 such rows plus one per paid event; past that it writes the first row of each kind and counts the rest in the summary.

How searches are read

  • Past 2,000 ads. mobile.de serves at most 100 pages of 20 ads for one search. When a search holds more and your caps want more, it is split into whole euro price slices cut at mobile.de's own price percentiles, each slice read from its first page; a slice still over 2,000 is halved again. The coverage row counts the slices and anything left beyond reach (ads without a price, or added during the walk). A platform run delivered 2,400 ads from one search of 59,021 this way.
  • Every filter checked. mobile.de answers an unknown filter value or parameter with a wider search, without a word. The Actor sends only values from mobile.de's own lists, sends places as coordinates from mobile.de's own place service, and compares mobile.de's echo of the applied search with what it sent on every page; a page that differs is billed as nothing and gets a free search_not_applied row.
  • One row per ad. An ad found by several searches in one run is delivered and billed once.
  • Access. Requests leave through one Apify residential exit in Germany per run, one at a time, at 1.5 a second by default. A refusal is asked once more on the same exit after a pause; a second refusal ends the run's reading with a free source_unavailable row.

How much does it cost to scrape mobile.de?

You pay per listing row delivered, plus a small start fee per run. Platform usage and the residential proxy are included.

EventFreeBronzeSilverGold
Listing (per 1,000 ads from searches and search links)$0.66$0.60$0.55$0.47
Results page (per 1,000 pages of up to 20 ads that delivered a paid row; in a monitor run, every page read)$2.00$1.90$1.80$1.60
Listing details (per 1,000 rows, only with includeDetails)$2.03$1.86$1.68$1.45
Listing by URL (per 1,000 ads from adUrls)$2.60$2.40$2.20$1.90
Listing update (per 1,000 changes and removed rows, monitor runs with trackChanges only)$0.66$0.60$0.55$0.47
Dealer profile (per 1,000 dealers, only with includeDealerProfiles)$25.00$24.00$22.00$20.00
Actor start (per run)$0.0075$0.0075$0.0075$0.0075

Platinum and Diamond plans pay the Gold price. The Actor start event is a flat $0.0075, charged once per run, with no plan discount. The Store pricing card shows these same prices per 1,000 events: "$0.60 / 1,000" on the Listing row means one listing costs $0.0006, and "$24.00 / 1,000" on the Dealer profile row means one dealer profile costs 2.4 cents.

  • 1,000 listings from one search fill 50 results pages of 20: 1,000 Listings + 50 Results pages + 1 Actor start. That is $0.66 + $0.10 + $0.0075 = $0.7675 on Free, $0.60 + $0.095 + $0.0075 = $0.7025 on Bronze, $0.55 + $0.09 + $0.0075 = $0.6475 on Silver and $0.47 + $0.08 + $0.0075 = $0.5575 on Gold. With Listing details on, add $1.86 on Bronze: $2.5625.
  • 100 ad links on Bronze cost 100 x $0.0024 = $0.24, plus $0.0075: $0.2475.
  • A monitor run on Bronze over 2 searches reads 3 pages each (6 x $0.0019 = $0.0114); with 12 new listings it costs $0.0114 + 12 x $0.0006 + $0.0075 = $0.0261.
  • Dealer profiles for 3 dealers on Bronze add 3 x $0.024 = $0.072 to the run.
  • What is never billed: ads left out by your filters, an ad found twice in one run, ads a monitor already delivered (unless change tracking finds a change, or you ask for a full snapshot), sold, withdrawn and unknown ads, a page whose filters mobile.de did not apply, a dealer profile that could not be read, coverage, status and summary rows, the run report and the notifications.
  • Limits: set Maximum listings (100 when left empty) and, in the run options, a maximum charge for the run: the Actor stops before it would pass either, and a row whose events do not all fit is withheld whole. Maximum listings counts listings, changes and removed rows together. A run also spends a small allowance on work that delivers nothing billable (place lookups, pages whose ads your filters leave out), USD 0.0012 plus a share of every paid event it delivers; a long list of searches that find nothing stops early with a free run row that says so.

Input

SettingWhat it does
makeModelscar makes or makes with a model as mobile.de lists them, a model group with "(all)", or ids such as 25200;14 (cars only)
keywordsfree text for mobile.de's own keyword search
vehicleTypecar (default), motorbike, motorhome, van, truck, semi_trailer_truck, trailer, semi_trailer, bus, construction, agricultural, forklift, ebike
locations, radiusKmpostcodes, place names, "Paris, FR" style places, or coordinates; a radius of 1 to 1,000 whole km (50 by default; mobile.de searches whole kilometres only)
countryonly vehicles offered in this country (two letters: DE, AT, NL ...)
dealersdealer ids (sellerId on every row) or storefront links https://home.mobile.de/<NAME>
searchUrlshttps://suchen.mobile.de/fahrzeuge/search.html?... links (the first page); a parameter the Actor does not know refuses the link with a free row
adUrlsdetails.html?id= links, .../auto-inserat/<name>/<id>.html links or ids, each billed as a Listing by URL
named filtersfuelTypes, gearbox, bodyTypes, colors, vehicleCategories, driveTypes, emissionClasses, priceRatings, condition, sellerType, damaged, vat, doors, emissionSticker, minPrice to maxPrice, yearMin to yearMax, mileageMin to mileageMax, powerMinKw to powerMaxKw or powerMinHp to powerMaxHp, seatsMin to seatsMax, engineSizeMin to engineSizeMax, previousOwnersMax, huValidMonths, onlineWithinDays, minDealerRating, roadworthyOnly, withPicturesOnly, priceReducedOnly, withVideoOnly, qualitySealOnly, leasingOnly, excludeExportOffers, features
filtersany other mobile.de parameter by name: a list of values or {"min": n, "max": n}; an unknown name or value refuses the run with a free row
row filtersincludeKeywords, excludeKeywords, customFilters, postedWithinHours, postedWithinDays, postedAfter, postedBefore (newest or oldest sort), excludeAdIds (up to 5,000)
sortnewest (default), oldest, price_low, price_high, mileage_low, mileage_high, registration_new, registration_old, relevance
maxItems, maxItemsPerSearch, maxPagesPerSearch, startPage, splitLargeSearches, includeTopAdscaps and how far each search is read
includeDetails, includeDealerProfiles, maxDealerReviewsthe two add-ons
language, currency, imageSize, descriptionFormat, descriptionMaxLength, compactOutput, excludeEmptyFieldshow rows are written
includePersonalDataa private seller's phone and exact coordinates (off by default; see Privacy)
monitor and notificationsmonitorName, trackChanges, trackFields, emitUnchanged, markReposts, skipReposts, notificationLimit, notifyOnlyChanges and the channel settings below
failIfIncomplete, requestsPerSecond, proxyConfigurationfail the run when a search was not read to its end; the pace (0.5 to 2 a second); Apify residential in Germany (default) or your own proxy links

A run holds up to 100 searches (makes and models x keywords x places x dealers, plus one per search link) and up to 5,000 ad links.

The monitor and notifications

Name a monitor (monitorName) and schedule the Actor (every hour, for example). The monitor remembers every ad it delivered in a named store this Actor creates for itself, up to 40,000 ads, so each run delivers and bills only ads it never delivered before; known ads are skipped for free. A monitor reads newest first, the newest 3 pages of 20 ads of each search by default (set maxPagesPerSearch to change it), and pays a Results page for each page it reads; when the coverage row says newAdsMayLieBeyond, raise the pages or run more often. One monitor name belongs to one set of settings: a run with other settings delivers nothing and gets a free row saying so.

  • Change tracking (trackChanges): a known ad whose price changed comes back with change (previous price, difference, first seen price, up to 6 dated prices, drop in percent since first seen), billed as a Listing update. With trackFields a change of other fields counts too (changeType: "updated", changedFields). When every search was read to its end, an ad the monitor tracks that the run did not meet gets a removed row; one that comes back is reappeared.
  • Snapshots and reposts: emitUnchanged delivers known ads again (billed as Listing); markReposts marks a new ad with the same seller, make, model, first registration, mileage and power as one the monitor delivered earlier under another id (possibleRepostOf), and skipReposts leaves it out free. Two such twins that are both new in one batch (the ads of one page, or 10 with details) are both delivered.
  • Notifications (free, with or without a monitor) after the rows were delivered and billed: Telegram (your own bot, one message per listing), Slack and Discord incoming webhooks and WhatsApp Cloud API (one message per run), each naming up to notificationLimit listings (10 by default, up to 30); a webhook (webhookUrl) gets JSON batches of 100, up to 1,000 a run, signed in the header x-signature-sha256 with webhookSecret (8 to 200 characters), with your own webhookHeaders. A failed call never fails the run: it is a free notification_failed row, without your address or token.

Privacy and personal data

Private sellers and company cars count as private persons. With includePersonalData off (the default), the phone number mobile.de shows for them is not delivered, phone numbers and e-mail addresses written into their title, subtitle and description are replaced with [phone number removed] and [e-mail removed], and the exact coordinates of the details are rounded to 2 decimals (about 1 km); their HTML description (descriptionFormat html or all) is rebuilt from the masked text, as plain paragraphs. With it on, these come as mobile.de shows them logged out. A dealer's name, address, phones, opening hours, rating and contact person are business data and are always delivered. Dealer reviews carry the reviewer's shown first name as mobile.de shows it. Photos are delivered as links; they belong to the people who posted them. You are responsible for a lawful use of personal data, GDPR included.

This Actor is not affiliated with, endorsed by or sponsored by mobile.de. mobile.de is a trademark of its owner. mobile.de's terms forbid automated extraction, and German law protects databases (the database maker's right, sections 87a to 87e of the Urheberrechtsgesetz). You are responsible for a lawful use of the data, for complying with the GDPR for any personal data, and for keeping a scheduled monitor to what you need.

What this Actor does NOT do

  • No login, no messages to sellers, no offers, no saved searches or anything else that needs a mobile.de account.
  • No private seller phone numbers or exact coordinates unless you turn on includePersonalData. Dealers' business contacts are always delivered.
  • No e-mail addresses from a dealer's own website. E-mail addresses come only as the dealer shows them on its mobile.de storefront (Dealer profiles). No other sites are read.
  • No AI summaries of an ad and no translation. Descriptions come as the seller wrote them; language sets the language of mobile.de's labels only.
  • No more than 2,000 ads from one mobile.de search page walk. Past that the search is split by price automatically (splitLargeSearches, on by default, not in a monitor); ads without a price cannot be reached that way and are counted on the coverage row.
  • No more than 10 reviews per dealer, and about 3 dealer profiles per run.
  • No radius in miles. mobile.de searches a radius in whole kilometres only; give radiusKm (1 mile is 1.609 km).
  • No export into Notion, Airtable or other apps from inside the run. Connect the dataset with Apify's integrations, using your own accounts.
  • No preloaded snapshot. Every run reads mobile.de live; the data is as fresh as the run.
  • Field names in English only. mobile.de's labels come in German or English (language).

FAQ

Does mobile.de have an API?

mobile.de's own APIs (search, ad stream, seller) are for dealers and contracted partners and answer an anonymous call with HTTP 401. This Actor reads the same public ads any visitor sees, with no login, and gives them to you as rows you can read through the Apify API (examples below).

This Actor reads only public ads without logging in, and a private seller's phone number comes only when you turn it on. mobile.de's terms forbid automated extraction and German law protects databases, so you are responsible for a lawful use of the data, the GDPR included (see Legal).

How many ads can one mobile.de search return?

mobile.de serves at most 2,000 ads (100 pages of 20) for one search. Past that, this Actor splits the search into price slices on its own and reads every slice; the coverage row gives mobile.de's total, the slices read and anything left beyond reach.

What is the mobile.de price rating?

It is mobile.de's own rating of an ad's price against the market, from very good price to high price. Every row carries it (priceRating, priceRatingLabel) with the six price thresholds mobile.de rates the vehicle against (priceRatingBands), and you can search by it (priceRatings).

How do I get alerts for new mobile.de listings?

Name a monitor and schedule the Actor, every hour for example. Each run delivers and bills only ads the monitor has not delivered before, and can send them to Telegram, Slack, Discord, WhatsApp or your webhook.

Why does this Actor run with limited permissions?

It needs nothing beyond its own storages: it reads mobile.de's public ads and writes to its own dataset and key-value store. Limited permissions keep it from touching anything else in your account. A monitor's memory is a named store the Actor creates for itself.

API

Each example starts a run and waits for its rows (the run-sync endpoint suits short runs; use maxItems to keep them short).

curl -X POST "https://api.apify.com/v2/acts/automation_craft~mobile-de-scraper/run-sync-get-dataset-items" \
-H "Authorization: Bearer <YOUR_API_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"makeModels": ["Volkswagen Golf"], "locations": ["Berlin"], "radiusKm": 50, "maxItems": 10}'
const res = await fetch('https://api.apify.com/v2/acts/automation_craft~mobile-de-scraper/run-sync-get-dataset-items', {
method: 'POST',
headers: { Authorization: 'Bearer <YOUR_API_TOKEN>', 'Content-Type': 'application/json' },
body: JSON.stringify({ makeModels: ['Volkswagen Golf'], locations: ['Berlin'], radiusKm: 50, maxItems: 10 }),
});
const rows = await res.json();
console.log(rows.filter((r) => r.type === 'listing'));
import requests
res = requests.post(
"https://api.apify.com/v2/acts/automation_craft~mobile-de-scraper/run-sync-get-dataset-items",
headers={"Authorization": "Bearer <YOUR_API_TOKEN>"},
json={"makeModels": ["Volkswagen Golf"], "locations": ["Berlin"], "radiusKm": 50, "maxItems": 10},
timeout=330,
)
listings = [r for r in res.json() if r["type"] == "listing"]

Changelog

See the Changelog tab. 0.1: first release.

More data tools by Automation Craft