Einen Gebrauchtwagen richtig zu bepreisen ist zuerst ein Datenproblem und dann ein Vertriebsproblem. Derselbe drei Jahre alte Golf GTI kann am selben Tag für 24.900 € auf Mobile.de in Deutschland, 22.400 € auf AutoScout24 in Frankreich und 21.000 € von privat auf Leboncoin inseriert sein. Und steht das Auto erst auf Ihrem Hof, hängt die Aufbereitung von Teilen ab, deren Preise genauso stark schwanken: Dieselbe Bremsen-Kit-Referenz kann auf autodoc.pl 20 % weniger kosten als auf auto-doc.fr.
Händlergruppen, Flotteneinkäufer und die Automotive-Pricing-Plattformen, die sie bedienen, brauchen alle dasselbe: eine kontinuierliche, strukturierte Sicht auf Inserate und Teilepreise über Marktplätze und Länder hinweg. Das bekommt niemand durch manuelles Aktualisieren von Suchseiten. Es braucht eine automatisierte Erfassungs-Pipeline auf Basis zuverlässiger Marktplatzdaten.
Dieser Artikel geht diese Pipeline durch: anhand eines Produktionsmusters eines unserer Kunden (eine Automotive-Pricing-Plattform, die wir nicht nennen werden), mit konkreten API-Aufrufen auf AutoScout24, Mobile.de, Leboncoin und Autodoc.
Der Use Case: eine Fahrzeug-Pricing-Plattform für Händlergruppen
Einer unserer Kunden baut Pricing-Intelligence für Autohändler und Flottenbetreiber. Das Produkt beantwortet drei Fragen, die sich jeder Gebrauchtwagen-Profi täglich stellt:
- Was ist dieses Auto gerade wert? Marktsnapshots pro Modell: Live-Inseratspreise, Kilometerstands-Bänder, Standtage, pro Land.
- Wo ist der Einkauf am günstigsten? Grenzüberschreitende Arbitrage-Alerts, wenn dasselbe Modell im Nachbarland deutlich unter dem Heimatmarktpreis gehandelt wird.
- Was kostet die Aufbereitung? Ein Teilekosten-Index pro Modell, gespeist aus Live-Preisen der Teile-Marktplätze, der einen Inzahlungnahme-Prüfbogen in ein Aufbereitungsbudget übersetzt.
Diese Fragen zu beantworten erfordert das Erfassen zehntausender Inserate pro Tag von Websites, die stark geschützt, lokalisiert und strukturell völlig unterschiedlich sind. Statt intern eine Flotte aus Headless-Browsern, Proxies und Parsern pro Website zu pflegen, läuft die Erfassung der Plattform über die Piloterr-APIs. Drei Eigenschaften des Automotive-Webs machen das zur richtigen Entscheidung:
- Jeder Marktplatz hat eine andere Form. Mobile.de liefert Next.js-Server-Components hinter aggressiven Anti-Bot-Regeln; Leboncoin mischt Händler- und Privatinserate mit eigenem Schutz; AutoScout24 erstreckt sich über ein Dutzend europäischer Domains. Eine API-Schicht normalisiert alles zu JSON.
- Preise ergeben nur lokalisiert Sinn. Eine deutsche und eine französische Suche zum selben Modell sind zwei verschiedene Märkte. Die APIs erhalten Locale, Währung und Marktkontext jedes Inserats.
- Das Volumen ist täglich, nicht einmalig. Standtage und Preissenkungs-Erkennung erfordern das tägliche Re-Scannen derselben Suchen und das Diffen der Ergebnisse: eine Infrastruktur-Last, keine Skript-Aufgabe.
Anatomie einer Automotive-Preismonitoring-Pipeline
Entdecken Normalisieren Anreichern Ausgeben
(Search-APIs) (Felder einen) (Ad-APIs) (Indizes + Alerts)
│ │ │ │
Modell-Sweeps → Preis, km, → volle Specs, → Marktsnapshot,
pro Markt Erstzulassung, Ausstattung, Arbitrage-Alerts,
Währung Verkäufertyp Teilekosten-Index
Stufe 1: Inserate mit Search-Endpoints entdecken
Alles beginnt mit Modell-Sweeps pro Markt. Für jedes Modell im Katalog fragt die Plattform den Search-Endpoint jedes abgedeckten Marktplatzes ab, in jedem relevanten Land.
Bei AutoScout24 übergeben Sie eine beliebige Such-URL von einer beliebigen europäischen Domain: Filter inklusive. Ein Aufruf liefert die Inserats-Karten mit Fahrzeugdaten, Preisen und Verkäuferinfos:
curl -G "https://api.piloterr.com/v2/autoscout24/search" \
-H "x-api-key: YOUR-API-KEY" \
--data-urlencode "query=https://www.autoscout24.fr/lst/volkswagen/golf?atype=C"
Tauschen Sie autoscout24.fr gegen autoscout24.de oder autoscout24.it, und Sie durchkämmen mit derselben Integration einen anderen nationalen Markt.
Bei Mobile.de akzeptiert die Search API eine vollständige Such-URL oder einen Marken-/Modellcode, mit einem locale-Parameter für 10 Locales und einem page-Parameter für die Paginierung:
curl -G "https://api.piloterr.com/v2/mobile/search" \
-H "x-api-key: YOUR-API-KEY" \
--data-urlencode "query=https://www.mobile.de/fr/voiture/recherche.html?ms=20100&s=Car&vc=Car"
Jede Ergebniskarte ist bereits reichhaltig: price, currency, mileage, first_registration, fuel_type, power, transmission, location, dazu price_rating: Mobile.des eigene Markteinschätzung (GOOD_PRICE usw.). Dieses Label in Ihr eigenes Pricing-Modell einzuspeisen, liefert ein kostenloses Kalibrierungssignal vom größten deutschen Marktplatz.
Bei Leboncoin nimmt die Search API jede Such- oder Kategorie-URL entgegen und liefert geparste Inserate. Hier lebt der Privatverkäufer-Markt, dessen Kleinanzeigenpreise die Händlerpreise systematisch unterbieten:
curl -G "https://api.piloterr.com/v2/leboncoin/search" \
-H "x-api-key: YOUR-API-KEY" \
--data-urlencode "query=https://www.leboncoin.fr/recherche?category=2&text=golf+gti"
Stufe 2: in ein einheitliches Inseratsmodell normalisieren
Drei Marktplätze bedeuten drei Schemata, drei Währungen und drei Schreibweisen für „Erstzulassung 03/2023". Die Normalisierungsschicht bildet alles auf einen einzigen Datensatz ab:
(marketplace, ad_id, observed_at) → { make, model, price, currency, mileage_km, first_registration, fuel, transmission, seller_type, location, url }
Zwei Regeln aus der Produktion ersparen den meisten Schmerz:
- Die rohen Marktplatzfelder neben den normalisierten aufbewahren. Wenn eine Preisanomalie auftaucht, wollen Sie exakt sehen, was die Website angezeigt hat.
- Ein verschwundenes Inserat ist ein Signal, kein Fehler. Autos werden verkauft. Das Datum, an dem ein Inserat verschwindet, macht aus einer Preisreihe eine Standtage-Metrik: der beste Nachfrageindikator im Gebrauchtwagengeschäft.
Stufe 3: die Shortlist mit Ad-Endpoints anreichern
Suchkarten reichen für Marktkurven. Für Autos, die ein Einkäufer ernsthaft in Betracht zieht, holt die Plattform das vollständige Inserat über die Ad-Endpoints: AutoScout24 Ad (volle Specs, Ausstattungsliste, Verkäuferdetails), Mobile Ad (Preise, Specs, Bilder, Ausstattung) und Leboncoin Ad (Attribute, Verkäuferinfos, Bilder):
curl -G "https://api.piloterr.com/v2/mobile/ad" \
-H "x-api-key: YOUR-API-KEY" \
--data-urlencode "query=https://www.mobile.de/fr/details.html?id=123456789"
Die Ausstattungsliste zählt mehr, als es scheint: Zwei Golfs mit identischem Kilometerstand können sich um Tausende Euro unterscheiden, weil einer eine Anhängerkupplung und einen Abstandstempomaten hat. Strukturierte Ausstattungsdaten machen den Inseratsvergleich erst ehrlich.
Stufe 4: die Aufbereitung mit Teile-Endpoints kalkulieren
Eine Inzahlungnahme ist nur ihren Wiederverkaufspreis minus Aufbereitungskosten wert. Hier kommen die Teile-Marktplätze in die Pipeline.
Die Autodoc Search API deckt mehr als 30 nationale Shops ab (autodoc.de, auto-doc.fr, autodoc.pl, autodoc.es, …) über den Parameter domain. Jedes Ergebnis enthält price, original_price, discount, die Hersteller-reference des Teils, den Verkäufer und die Verfügbarkeit:
# Bremsenteile im französischen Shop
curl -G "https://api.piloterr.com/v2/autodoc/search" \
-H "x-api-key: YOUR-API-KEY" \
--data-urlencode "query=search?keyword=frein" \
--data-urlencode "domain=auto-doc.fr"
# Derselbe Sweep im deutschen Shop: gleiche Referenzen, andere Preise
curl -G "https://api.piloterr.com/v2/autodoc/search" \
-H "x-api-key: YOUR-API-KEY" \
--data-urlencode "query=search?keyword=bremsen" \
--data-urlencode "domain=autodoc.de"
Das Hersteller-reference-Feld ist der Join-Schlüssel: Es erlaubt, exakt dasselbe Teil über Landesshops hinweg zu vergleichen, und gegen andere Quellen: Oscaro und Norauto für den französischen Markt, und Ovoko für gebrauchte OEM-Teile, die eine Aufbereitungsposition oft halbieren. Autodoc Product ergänzt Specs, EAN und Fahrzeugkompatibilität für langfristig verfolgte Teile.
Ein funktionierendes Python-Beispiel: ein Teil, fünf Länder
Das folgende Skript sucht dasselbe Teile-Keyword in mehreren Autodoc-Landesshops, joint die Ergebnisse über die Herstellerreferenz und gibt den günstigsten Shop pro Referenz aus. Es ist bewusst minimal: In Produktion würden Sie Snapshots persistieren, Verfügbarkeit verfolgen und Währungen umrechnen.
import requests
from collections import defaultdict
PILOTERR_API_KEY = "YOUR-API-KEY"
BASE = "https://api.piloterr.com/v2"
HEADERS = {"x-api-key": PILOTERR_API_KEY}
SHOPS = {
"auto-doc.fr": "frein",
"autodoc.de": "bremsen",
"autodoc.es": "freno",
"autodoc.pl": "hamulec",
"auto-doc.it": "freno",
}
def sweep_autodoc(domain: str, keyword: str) -> list[dict]:
r = requests.get(f"{BASE}/autodoc/search", headers=HEADERS,
params={"query": f"search?keyword={keyword}", "domain": domain},
timeout=60)
r.raise_for_status()
return [
{
"shop": domain,
"name": item["name"],
"reference": item.get("reference"),
"price": item.get("price"),
"original_price": item.get("original_price"),
"discount": item.get("discount"),
"availability": item.get("availability"),
"url": item.get("product_url"),
}
for item in r.json().get("results", [])
]
def main():
by_reference = defaultdict(list)
for domain, keyword in SHOPS.items():
for offer in sweep_autodoc(domain, keyword):
if offer["reference"] and offer["price"] is not None:
by_reference[offer["reference"]].append(offer)
multi_shop = {ref: offers for ref, offers in by_reference.items()
if len(offers) >= 2}
print(f"{len(by_reference)} Referenzen gesammelt, "
f"{len(multi_shop)} in 2+ Shops verfügbar\n")
for ref, offers in sorted(multi_shop.items()):
offers.sort(key=lambda offer: offer["price"])
best, worst = offers[0], offers[-1]
spread = (worst["price"] - best["price"]) / worst["price"] * 100
print(f"{ref} {best['name'][:50]}")
print(f" best: {best['price']} @ {best['shop']} "
f"worst: {worst['price']} @ {worst['shop']} "
f"spread: {spread:.0f}%\n")
if __name__ == "__main__":
main()
Dieselbe Join-auf-Referenz-Logik treibt auch die Fahrzeugseite der Pipeline an: Ersetzen Sie Shops durch Marktplätze, Referenzen durch normalisierte Buckets aus (Marke, Modell, Jahr, Kilometerband), und der Spread wird zum grenzüberschreitenden Arbitrage-Alert.
Jenseits der Inserate: Auktionen, Maschinen und der UK-Markt
Derselbe API-first-Ansatz reicht über die europäischen Kern-Marktplätze hinaus:
- Unfallwagen und Auktionen: Copart liefert Auktionslose: so bepreisen Aufkäufer beschädigter Fahrzeuge und Versicherer Totalschaden-Bestände.
- LKW und Maschinen: Mascus deckt gebrauchte Schwertechnik, Traktoren und Nutzfahrzeuge ab.
- UK- und US-Märkte: Autotrader bringt Rechtslenker- und nordamerikanische Inserate in dieselbe Pipeline.
- Mietwagen-Benchmarks: AutoEurope ergänzt Mietpreispunkte, nützlich für Mobilitätsanbieter, die Flottenauslastung modellieren.
Ist das Scrapen von Auto-Marktplätzen legal?
Fahrzeuginserate sind öffentlich angezeigte kommerzielle Angebote, und Preismonitoring auf öffentlichen Daten ist einer der etabliertesten Scraping-Anwendungsfälle: Dieselbe Praxis liegt jedem Preisvergleichsdienst zugrunde. Die üblichen Grundsätze gelten: nur öffentliche Daten sammeln, Rate Limits respektieren und bei personenbezogenen Daten in Privatinseraten vorsichtig sein (speichern, was die Analyse braucht, nicht die Telefonnummer des Verkäufers). Den größeren Rahmen finden Sie in unserem Leitfaden zur Rechtslage beim Web Scraping.
Zusammenfassung
Automotive-Pricing-Intelligence ist eine Pipeline: entdecken mit Marktplatz-Search-APIs, normalisieren in ein einheitliches Inseratsmodell, die Shortlist mit Ad-Endpoints anreichern und die Aufbereitung mit über Herstellerreferenzen gejointen Teile-APIs kalkulieren. Es gewinnen die Plattformen, deren Marktsicht frischer ist als das Bauchgefühl des Händlers. Für die länderübergreifende Mechanik von Preisunterschieden (Währungen, asynchrone Promos, Sortiment) gilt unser Leitfaden zum multiregionalen Preismonitoring für Autoteile genauso wie für Konsumgüter.
Piloterr liefert diese Erfassungsschicht als API: AutoScout24, Mobile.de, Leboncoin, Autodoc, Ovoko, Copart und der Rest der Library mit 500 Endpoints, Anti-Bot-Bypass und Browser-Rendering inklusive. Wenn Sie Automotive-Pricing-Tools bauen und die Datenqualität an Ihren eigenen Modellen testen möchten: Erstellen Sie ein kostenloses Konto (+500 Credits, ohne Kreditkarte) oder sprechen Sie mit uns über Volumenpreise und Endpoints, die wir für Ihren Use Case ergänzen können.