API

willhaben API: Anzeigen aus Österreich als JSON

willhaben ist Österreichs größter Anzeigenmarkt und bietet Entwicklern keinen offenen Zugang. Diese Schnittstelle liest, was öffentlich zu sehen ist — Anzeigen, Preise, Objektdaten — als JSON. Die drei Suchen sind getrennt, weil willhaben selbst drei getrennte Bereiche betreibt: Marktplatz, Immobilien und Fahrzeuge.

Endpunkte

endpointWas zurückkommtPflicht
searchDer Marktplatz (Kaufen & Verkaufen): Suche nach Stichwort und/oder Kategorie mit Preis und Zustand.alle optional
real_estate/searchImmobiliensuche nach Objektart — Wohnung, Haus, Grundstück, Gewerbe. Die Objektart ist Pflicht, weil Miete und Kauf nicht dasselbe beantworten.property_type
cars/searchGebrauchtwagen und Motorräder: Preis, der zuvor verlangte Händlerpreis und etwaige Bonus-Kennzeichnungen.alle optional
listingDas vollständige Inserat über ad id oder URL, in jedem Bereich: Titel, Preis (auch 'gratis' und 'auf Anfrage'), Beschreibung, Fotos und Attribute.ad_id

Jeder Aufruf wird in Credits abgerechnet. Fehlgeschlagene und blockierte Aufrufe sind kostenlos.

Funktionierendes Beispiel

Bei Fahrzeugen liefert willhaben nicht nur den aktuellen Preis, sondern auch den zuvor verlangten. Wer Preisbewegung beobachten will, braucht beide Felder und nicht nur das eine.

Anfrage
curl -X POST https://api.reefapi.com/willhaben/v1/cars/search \
  -H "x-api-key: IHR_SCHLUESSEL" \
  -H "content-type: application/json" \
  -d '{"keyword": "bmw", "price_max": 20000}'
Antwort (gekürzt)
{
  "ok": true,
  "data": {
    "results": [
      {
        "ad_id": "...",
        "title": "BMW ...",
        "price": 18900,
        "price_before_reduction": 19900,
        "year": 2017,
        "mileage_km": 128000
      }
    ]
  },
  "meta": { "record_count": 30, "cache_hit": false, "mode": "live" }
}

Statt eines eigenen willhaben-Scrapers

Einen Scraper für willhaben zu bauen funktioniert am Anfang. Was danach kommt, haben wir selbst gerade erlebt: willhaben hat eine interne Adresse abgeschaltet, auf die der alte Zugriff gestützt war, und die Suche lieferte daraufhin leere Ergebnisse statt eines Fehlers. Genau so verhält sich ein eigener Scraper auch.

Hier liegt die Pflege bei uns, und zwar nachweislich: wir haben den Weg auf die Adresse umgestellt, die die Seite selbst aufruft, und zusätzlich eine zweite Adresse als Rückfallebene hinterlegt. Eine tote Route meldet sich jetzt als Fehler und nicht mehr als 'keine Treffer'.

Für eine einmalige Suche bleibt das eigene Skript günstiger. Für eine Beobachtung, die laufen muss, zahlt man für genau diese Ausfälle.

Grenzen und ehrliche Hinweise

  • Das ist nicht die offizielle willhaben-Schnittstelle, und wir haben keine Partnerschaft mit willhaben.
  • Bei Immobilien ist die Objektart Pflicht; eine Suche über alle Objektarten hinweg gibt es nicht.
  • Bei Marktplatz-Anzeigen liefert die Trefferliste die Farbe nur als interne Zahlen-id; der Klartext steht erst im Inserat.
  • Kein Cache: jeder Aufruf zeigt den Stand zum Zeitpunkt der Anfrage.