AutoScout24 API: Fahrzeugsuche und Inserate als JSON
Diese Schnittstelle liest, was AutoScout24 öffentlich anzeigt: Inserate, Preise, Fahrzeugdaten und Händler — als JSON, ohne Händlerkonto. Ein Punkt vorweg, weil er regelmäßig falsch verstanden wird: der Parameter country wählt die Länderausgabe des Portals, nicht den Standort des Fahrzeugs. Wo das Auto steht, steht im Inserat selbst unter location.
Endpunkte
| endpoint | Was zurückkommt | Pflicht |
|---|---|---|
| search | Seitenweise Fahrzeugsuche nach Marke, Modell und Filtern über die EU-Länderausgaben, inklusive der Preisbewertung und des Super-Deal-Kennzeichens. | alle optional |
| listing | Das vollständige Inserat über URL, Pfad oder id: Beschreibung, Preise inklusive Netto-Preis und MwSt-Satz, Fahrzeugdaten, alle Bilder, Händler, Leasing und Garantie. | alle optional |
| makes | Die Marken-Taxonomie von der Suchübersicht. | alle optional |
| models | Die Modelle einer Marke. Als Query-Parameter — der Pfad /lst/marke/modell antwortet mit 404. | make |
| filter_options | Die verfügbaren Filterdimensionen: Kraftstoff, Karosserie, Getriebe und weitere. | alle optional |
| seller_listings | Der Bestand eines Händlers oder privaten Anbieters über die Kundennummer (cid). | cid |
| browse_links | Der SEO-Browse-Graph der Suchseite: Städte, Karosserieformen, Modellreihen und Top-Modelle. | alle optional |
Jeder Aufruf wird in Credits abgerechnet. Fehlgeschlagene und blockierte Aufrufe sind kostenlos.
Funktionierendes Beispiel
In der Trefferliste stehen Preis und Kilometerstand als formatierte Zeichenkette. Die Zahlenwerte und die MwSt-Angaben stehen im Inserat unter prices.public — wer rechnen will, holt sich das Inserat.
curl -X POST https://api.reefapi.com/autoscout24/v1/search \
-H "x-api-key: IHR_SCHLUESSEL" \
-H "content-type: application/json" \
-d '{"country": "de", "make": "bmw", "year_min": 2020, "mileage_max": 150000}'{
"ok": true,
"data": {
"total": 63510,
"total_pages": 200,
"listings": [
{
"id": "...",
"make": "BMW",
"model": "330",
"first_registration": "11-2021",
"mileage_km": "117 945 km",
"price_formatted": "EUR 23 880",
"location": { "countryCode": "AT", "zip": "8301", "city": "..." }
}
]
},
"meta": { "record_count": 20, "cache_hit": false, "mode": "live" }
}Statt eines eigenen AutoScout24-Scrapers
Ein eigener Crawler für AutoScout24 ist schnell geschrieben und läuft zunächst. Was später auffällt: ändert sich der Aufbau der Trefferliste, liefert der Parser leere Ergebnisse statt eines Fehlers, und bei einem größeren Lauf greift irgendwann der Bot-Schutz.
Hier übernehmen wir die Pflege: bei einer Schemaänderung reparieren wir die Engine, bei einer Blockade kommt ein Fehlercode zurück und der Aufruf wird nicht berechnet.
Für eine einmalige Auswertung bleibt das eigene Skript günstiger. Wer dauerhaft Bestände beobachtet, zahlt am Ende für die Ausfälle, nicht für den Code.
Grenzen und ehrliche Hinweise
- Das ist nicht die offizielle AutoScout24-Schnittstelle, und wir haben keine Partnerschaft mit AutoScout24.
- country ist die Länderausgabe des Portals, nicht der Fahrzeugstandort. Der Standort steht im Inserat unter location.countryCode.
- Die Trefferliste nennt Preis und Kilometerstand als Zeichenkette ('117 945 km'); die Zahlenwerte sowie Netto-Preis und MwSt-Satz liefert erst das Inserat.
- Pro Suche sind 200 Seiten zu je 20 Inseraten erreichbar, also rund 4.000 Treffer. Bei größeren Mengen muss die Suche enger geschnitten werden.
- Kein Cache: jeder Aufruf ist live.