willhaben Car Scraper

Used cars from willhaben.at as clean JSON: make, model, year, mileage, fuel, transmission and price as first-class columns. Dealer or private as a flag - seller identity and exact coordinates are never collected. Pay per result.

$1.99 / 1,000 · 90.0% success over 10 public runs in the last 30 days.

Run it on Apify → Free to try - runs bill per result on your own account.

What you give it

Every field is optional unless marked; sensible defaults do the rest.

FieldTypeWhat it doesDefault
searchQuery string Optional keyword, exactly as you would type it in the willhaben car search, e.g. "golf tdi" or "tesla model 3". Leave empty to browse the newest cars across Austria. golf
priceMinEur integer Only cars costing at least this much. -
priceMaxEur integer Only cars costing at most this much. -
sortBy string Order of results: date (newest first, best for monitoring), price_asc, price_desc, or relevance. date
postedAfter string Only listings posted on or after this date (YYYY-MM-DD or ISO timestamp). With newest-first sorting the run stops early once it reaches older listings. -
postedBefore string Only listings posted on or before this date (YYYY-MM-DD or ISO timestamp). -
maxItems integer Stop after this many cars. Free-plan runs are capped at 25 items. 500

What you get back

One JSON object per result, with exactly these fields - no seller identities, no contact data, ever.

FieldTypeMeaning
listingId string willhaben listing ID.
url string Direct link to the listing.
title string Listing title as posted.
description ['string', 'null'] Seller's listing text as shown on the result card.
make ['string', 'null'] Car make from the site's own car model data.
model ['string', 'null'] Car model from the site's own car model data.
modelSpec ['string', 'null'] Model specification line, e.g. trim and engine.
year ['integer', 'null'] Model year.
mileageKm ['integer', 'null'] Mileage in kilometers.
powerKw ['integer', 'null'] Engine power in kW.
fuel ['string', 'null'] Fuel type as resolved by the site (Diesel, Benzin, Elektro, ...).
transmission ['string', 'null'] Transmission as resolved by the site (Automatik, Schaltgetriebe).
bodyType ['string', 'null'] Body type, e.g. Limousine, Kombi, SUV, Cabrio / Roadster.
condition ['string', 'null'] Condition as resolved by the site (Gebrauchtwagen, Neuwagen, ...).
previousOwners ['integer', 'null'] Number of previous owners when stated.
seats ['integer', 'null'] Number of seats when stated.
priceCents ['integer', 'null'] Asking price in euro cents.
currency ['string', 'null'] Always EUR.
priceDisplay ['string', 'null'] Price as displayed on the site.
postedAt ['string', 'null'] When the listing was published (ISO timestamp).
city ['string', 'null'] Municipality-level location. Exact coordinates are deliberately never collected.
postcode ['string', 'null'] Postcode of the listing location.
district ['string', 'null'] District (Bezirk).
state ['string', 'null'] Austrian state (Bundesland).
sellerType string private or dealer. Seller identity is never collected.
imageUrls array Car photo URLs (up to 8).

Health

90.0% success over 10 public runs in the last 30 days. Live record, failures included: status page.

Full documentation, examples and the AI-assistant prompt live on the store page.