API

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

endpointWas zurückkommtPflicht
searchSeitenweise Fahrzeugsuche nach Marke, Modell und Filtern über die EU-Länderausgaben, inklusive der Preisbewertung und des Super-Deal-Kennzeichens.alle optional
listingDas 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
makesDie Marken-Taxonomie von der Suchübersicht.alle optional
modelsDie Modelle einer Marke. Als Query-Parameter — der Pfad /lst/marke/modell antwortet mit 404.make
filter_optionsDie verfügbaren Filterdimensionen: Kraftstoff, Karosserie, Getriebe und weitere.alle optional
seller_listingsDer Bestand eines Händlers oder privaten Anbieters über die Kundennummer (cid).cid
browse_linksDer 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.

Anfrage
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}'
Antwort (gekürzt)
{
  "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.