Monitor a Filtered Mobile.de Search on a Schedule
Paste a filtered search.html URL and re-run it on a schedule — a durable new-listing monitor for a specific spec.

Your filter, encoded in the URL, re-run whenever you schedule it. Thirdwatch's Mobile.de Scraper queries mobile.de's own search backend and returns complete listing rows — including the dealer phone number that most scrapers can't see.
Skip the setup: Run this as a ready-to-go task on Apify — pre-loaded with the configuration from this guide.
Why monitor a filtered search
The site's own saved-search alerts arrive as emails, not data. For a real monitoring pipeline you want the search re-run on a schedule with rows you can diff.
Paste the search.html URL into searchUrls; id diffs between runs show arrivals and sales.
Because it reads the search backend directly, rows include fields the HTML listing never exposes — net pricing, VAT flags, KBA type codes, dealer contact data.
How does this compare to the alternatives?
| Approach | Cost model | Coverage | Effort |
|---|---|---|---|
| Manual site browsing | Free | One page at a time | Doesn't scale |
| Dealer feed agreements | Contract negotiation | One dealer group | Months of BD |
| Thirdwatch car-marketplace Scraper | Pay per listing row | Marketplace-wide search results | One query per run |
Why this Actor
- Gross AND net price per listing, plus VAT flag — commercial-buyer detail most scrapers miss.
- Dealer phone number, rating and rating count on the row — direct lead-gen data.
- KBA
hsn/tsncodes identify the exact variant for valuation work. - Leasing rate and financing flags included where offered.
- Keyword queries or full filtered
search.htmlURLs — your filters apply exactly.
How to do it in 3 steps
Step 1: Configure the input
Set the inputs as shown below — queries takes the targets, free-text searches work, or paste a filtered searchUrls entry; minPrice, maxPrice and maxMileage bound results server-side.
Step 2: Run the Actor
Run it from the console, the API, or the linked saved task. One dataset row is written per listing.
Step 3: Use the output
Each row carries gross and net price, mileage, registration, fuel, KBA codes, and the dealer's name, rating, and phone number.
{
"searchUrls": [
"https://suchen.mobile.de/fahrzeuge/search.html?dam=false&isSearchRequest=true&ms=3500%3B9%3B%3B"
],
"maxResults": 30
}Each dataset row looks like:
{
"id": "405123456",
"title": "BMW 320d Touring Sport Line",
"url": "https://suchen.mobile.de/fahrzeuge/details.html?id=405123456",
"price": 28900,
"netPrice": 24285,
"priceFormatted": "28.900 \u20ac",
"currency": "EUR",
"vat": true,
"mileage": 62000,
"firstRegistration": "04/2021",
"fuel": "Diesel",
"gearbox": "Automatic",
"power": 140,
"kbaHsn": "0005",
"kbaTsn": "BZA",
"sellerName": "Autohaus Muster GmbH",
"sellerType": "DEALER",
"sellerPhone": "+49 30 123456",
"sellerRating": 4.7,
"location": "M\u00fcnchen",
"country": "DE"
}What to watch for
Search depth is roughly 50 pages per query — for very broad terms, narrow with price/mileage filters or a filtered URL. fetchDetail adds one call per listing; keep it off unless you need the deep fields.
Related use cases
- Snapshot German Car Prices on Mobile.de
- Scan Mobile.de Inside a Strict Price Band
- Find Low-Mileage Value Listings on Mobile.de
- Harvest Dealer Phone Numbers from Mobile.de Listings
- All Thirdwatch use-case guides
Run the Mobile.de Scraper on Apify Store — pay per result, free to try, no credit card to test.
Frequently asked questions
What's the difference between `price` and `netPrice`?
`price` is the consumer asking price including VAT; `netPrice` is the dealer's net figure where the listing is VAT-deductible — the number commercial buyers actually pay.
Do I really get the dealer's phone number?
Yes — the search backend returns `sellerPhone` for dealer listings. It's the single most useful lead-gen field on the site.
What are the KBA codes?
`kbaHsn`/`kbaTsn` are Germany's type-approval codes — they identify the exact homologated variant, which matters for valuation and insurance data joins.
Can I filter by price and mileage?
Yes — `minPrice`, `maxPrice` and `maxMileage` apply server-side, or paste a fully filtered `search.html` URL into `searchUrls`.
How many listings per search?
About 26 per page with pagination up to roughly 50 pages — `maxResults` bounds how far it walks.
What does `fetchDetail` add?
A per-listing detail call that enriches the row with fields the search index doesn't carry — slower, so leave it off for volume scans.
Related
100 free credits, no credit card.
About 30 real searches. Add the MCP to Claude or Cursor in two minutes.