Willhaben.at Scraper — Austria Real Estate, Cars, Marketplace avatar

Willhaben.at Scraper — Austria Real Estate, Cars, Marketplace

Pricing

from $1.50 / 1,000 result items

Go to Apify Store
Willhaben.at Scraper — Austria Real Estate, Cars, Marketplace

Willhaben.at Scraper — Austria Real Estate, Cars, Marketplace

Willhaben.at scraper for analysts, dealers and AI agents: Austrian real estate (rent/buy, houses, plots, commercial), cars, motorbikes, vans and marketplace goods.

Pricing

from $1.50 / 1,000 result items

Rating

0.0

(0)

Developer

Samat Makatov

Samat Makatov

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Willhaben.at Scraper — Austria Real Estate, Cars & Marketplace

Structured listings from willhaben.at, Austria's largest classifieds site: flats and houses for rent or sale, plots, commercial property, holiday homes, used cars, motorbikes, vans, caravans and marketplace goods. Every search comes with willhaben's own filters (region down to Vienna districts, price, rooms, m², make/model, year, mileage, fuel, PayLivery, private/dealer…), price per m², publish time and coordinates. detail: true adds full description, all photos, seller details and the complete attribute sheet. A facets mode returns live hit counts per filter value, useful for market sizing.

Plain HTTP against the site's embedded page data. No proxies, no browser, no API key.

Use cases

  • Rental market reports: all Vienna flats for rent, broken down by district with median pricePerSqm, refreshed weekly.
  • Deal alerts for buyers & agents: sinceHours: 24 on a daily schedule with your price, rooms and district. Only new ads come back.
  • Used-car dealer sourcing: private-seller cars by make/model/year/mileage (sellerType: "private"), sorted by price, with first registration and equipment from detail pages.
  • Price tracking for resellers: marketplace items such as "iphone 15" with payliveryOnly, condition and category filters, to track the going price of a product.
  • Supply / competition analysis: mode: "facets" gives the number of ads per make, fuel, district, property type or price band in one request.
  • Lead lists for B2B: dealer and agency ads (sellerType: "dealer") with company name, website and published phone number (detail: true).

Input

All fields are optional. Filters that don't apply to the chosen vertical are ignored, and a warning is logged.

FieldTypeDefaultAllowed values / notes
categorystringmietwohnungenmietwohnungen, eigentumswohnung, haus-kaufen, haus-mieten, grundstuecke, gewerbeimmobilien-kaufen, gewerbeimmobilien-mieten, ferienimmobilien-kaufen, ferienimmobilien-mieten, auto, motorrad, nutzfahrzeuge, wohnwagen, marktplatz. v0.1 paths (immobilien/mietwohnungen, gebrauchtwagen/auto/gebrauchtwagenboerse…) still work.
modestringsearchsearch (listings), facets (filter values + hit counts), categories (marketplace category ids)
regionstringwienBundesland slug, district/city name, Vienna district (wien-7, 1070, Neubau) or numeric areaId. Empty = all Austria. See Reference.
areasstring[][]More districts/cities/areaIds, OR-combined with region.
keywordstringFree text.
priceFrom / priceTointeger€ (monthly rent for rental verticals).
sellerTypestringallall, private, dealer. Server-side for vehicles & marketplace, client-side for real estate.
roomsFrom / roomsTointegerReal estate.
livingAreaFrom / livingAreaTointegerm², flats/houses/holiday homes.
plotAreaFrom / plotAreaTointegerm², houses/plots.
propertyTypesstring[][]See Reference → Property types.
featuresstring[][]storage, accessible, carport, kitchen, lift, garage, cellar, parking, furnished, cabling (or the German labels).
outdoorAreasstring[][]balcony, roof-terrace, garden, loggia, terrace, winter-garden.
availableNow / newBuildOnlybooleanfalseReal estate.
make / modelstringVehicles. Matched against willhaben's live make/model list; an unknown value fails and the error lists the valid names.
yearFrom / yearTointegerFirst registration year.
mileageFrom / mileageTointegerkm.
powerKwFrom / powerKwTointegerkW.
fuelstring[][]petrol, diesel, electric, gas, hybrid, hybrid-diesel, hydrogen.
transmissionstringautomatic, manual.
wheelDrivestringawd, fwd, rwd.
bodyTypesstring[][]Cars: cabrio, compact, minibus, kombi, sedan, microcar, coupe, suv.
vehicleConditionstring[][]used, one-year, new, classic, pre-registered, accident, demo.
colorsstring[][]black, white, grey, silver, blue, red, green, brown, beige, yellow, gold, orange, bronze, purple, other.
equipmentstring[][]willhaben labels, e.g. Anhängerkupplung, Navigationssystem (see mode: "facets").
warrantyOnly / inspectionOnlybooleanfalseVehicles with warranty / §57a report.
marketCategorystringMarketplace top-level name (see Reference) or any numeric ATTRIBUTE_TREE id.
itemConditionstring[][]new, like-new, refurbished, used, defective, display.
handoverstringpickup, shipping.
payliveryOnlybooleanfalseOnly ads with willhaben PayLivery.
sortstringnewestnewest, relevance, price_asc, price_desc, area_asc/area_desc (real estate), mileage_asc/mileage_desc, year_desc/year_asc, model (vehicles).
sinceHoursintegerKeep ads published in the last N hours (server day filter + exact client check).
maxItemsinteger501–5000. Up to 100 ads per request.
maxPagesinteger20Safety cap.
detailbooleanfalseOpen each ad page (+1 request per ad).
includeTopAdsbooleanfalseKeep paid top ads (willhaben injects them even when they don't match the filters).
dedupebooleantrueDrop repeated ids.
fieldsstring[][]Output only these fields.
extraParamsobject{}Raw willhaben URL parameters, e.g. {"NO_OF_DOORS_FROM": 4}.

Reference

Regions (region, areas)

BundeslandSlugareaIdDistricts / cities (name → areaId)
Wienwien9001.–23. Bezirk → 117223–117245 (wien-1wien-23, or postcode 10101230, or name Innere Stadt, Leopoldstadt, Landstraße, Wieden, Margareten, Mariahilf, Neubau, Josefstadt, Alsergrund, Favoriten, Simmering, Meidling, Hietzing, Penzing, Rudolfsheim-Fünfhaus, Ottakring, Hernals, Währing, Döbling, Brigittenau, Floridsdorf, Donaustadt, Liesing)
Niederösterreichniederoesterreich3Amstetten 305, Baden 306, Bruck an der Leitha 307, Gänserndorf 308, Gmünd 309, Hollabrunn 310, Horn 311, Korneuburg 312, Krems an der Donau 301, Krems Land 313, Lilienfeld 314, Melk 315, Mistelbach 316, Mödling 317, Neunkirchen 318, Sankt Pölten 302, Sankt Pölten Land 319, Scheibbs 320, Tulln 321, Waidhofen an der Thaya 322, Waidhofen an der Ybbs 303, Wiener Neustadt 304, Wiener Neustadt Land 323, Zwettl 325
Oberösterreichoberoesterreich4Braunau am Inn 404, Eferding 405, Freistadt 406, Gmunden 407, Grieskirchen 408, Kirchdorf an der Krems 409, Linz 401, Linz Land 410, Perg 411, Ried im Innkreis 412, Rohrbach 413, Schärding 414, Steyr 402, Steyr-Land 415, Urfahr-Umgebung 416, Vöcklabruck 417, Wels 403, Wels-Land 418
Steiermarksteiermark6Bruck-Mürzzuschlag 621, Deutschlandsberg 603, Graz 601, Graz-Umgebung 606, Hartberg-Fürstenfeld 622, Leibnitz 610, Leoben 611, Liezen 612, Murau 614, Murtal 620, Südoststeiermark 623, Voitsberg 616, Weiz 617
Tiroltirol7Imst 702, Innsbruck 701, Innsbruck-Land 703, Kitzbühel 704, Kufstein 705, Landeck 706, Lienz 707, Reutte 708, Schwaz 709
Salzburgsalzburg5Hallein 502, Salzburg Stadt 501, Salzburg-Umgebung 503, Sankt Johann im Pongau 504, Tamsweg 505, Zell am See 506
Kärntenkaernten2Feldkirchen 210, Hermagor 203, Klagenfurt 201, Klagenfurt Land 204, Sankt Veit an der Glan 205, Spittal an der Drau 206, Villach 202, Villach Land 207, Völkermarkt 208, Wolfsberg 209
Vorarlbergvorarlberg8Bludenz 801, Bregenz 802, Dornbirn 803, Feldkirch 804
Burgenlandburgenland1Eisenstadt 101, Eisenstadt-Umgebung 103, Güssing 104, Jennersdorf 105, Mattersburg 106, Neusiedl am See 107, Oberpullendorf 108, Oberwart 109, Rust 102
Abroadausland22000

Property types (propertyTypes)

GroupValues (German label → alias)
FlatsWohnung (flat), Dachgeschoßwohnung (attic), Erdgeschoßwohnung (ground-floor), Garconniere (studio-flat), Genossenschaftswohnung (cooperative), Loft/Studio (loft), Maisonette (duplex), Penthousewohnung (penthouse), Rohdachboden (raw-attic), Zimmer/WG (room)
HousesEinfamilienhaus (detached), Doppelhaushälfte (semi-detached), Reihenhaus (terraced), Mehrfamilienhaus (multi-family), Villa, Bungalow, Bauernhaus (farmhouse), Landhaus (country-house), Almhütte/Berghütte (chalet), Gartenhaus, Genossenschaftshaus, Rohbau (shell), Schloss/Burg/Chalet (castle)
PlotsGrundstück (plot), Baugrundstück (building-plot), Gewerbegrundstück, Industriegrundstück, Kleingarten (allotment), Land-/Forstwirtschaft (agricultural)
CommercialBüro/Ordination (office), Geschäfts-/Ladenlokal (shop), Gastronomie (restaurant), Hotel/Pension (hotel), Lagerhalle (warehouse), Werkstatt (workshop), Zinshaus (investment-building), Ausstellungsfläche (showroom), Jagd-/Forstwirtschaft, Teich-/Fischwirtschaft

Marketplace categories (marketCategory)

Name (alias)ATTRIBUTE_TREE id
Antiquitäten / Kunst (antiques)6941
Baby / Kind (baby)3928
Beauty / Gesundheit / Wellness (beauty)3076
Boote / Yachten / Jetskis (boats)5007823
Bücher / Filme / Musik (books)387
Computer / Software (computer)5824
Dienstleistungen (services)537
Freizeit / Instrumente / Kulinarik (leisure)6462
Games / Konsolen (games)2785
Haus / Garten / Werkstatt (home)3541
Kameras / TV / Multimedia (cameras)6808
KFZ-Zubehör / Motorradteile (car-parts)6142
Mode / Accessoires (fashion)3275
Smartphones / Telefonie (smartphones)2691
Spielen / Spielzeug (toys)5136
Sport / Sportgeräte (sport)4390
Tiere / Tierbedarf (pets)4915
Uhren / Schmuck (watches)2409
Wohnen / Haushalt / Gastronomie (furniture)5387

For sub-categories, run {"category": "marktplatz", "mode": "categories", "marketCategory": "smartphones"}.

Examples

Vienna rental market snapshot (2–3 rooms, 50–90 m², balcony)

{ "category": "mietwohnungen", "region": "wien", "roomsFrom": 2, "roomsTo": 3, "livingAreaFrom": 50, "livingAreaTo": 90, "outdoorAreas": ["balcony"], "maxItems": 500 }

Daily alert: new houses for sale around Graz under €600k

{ "category": "haus-kaufen", "region": "Graz-Umgebung", "areas": ["Graz"], "priceTo": 600000, "sinceHours": 24, "sort": "newest", "detail": true }

Dealer sourcing: private-seller VW Golf diesels from 2018, cheapest first

{ "category": "auto", "region": "", "make": "VW", "model": "Golf", "fuel": ["diesel"], "yearFrom": 2018, "mileageTo": 150000, "sellerType": "private", "sort": "price_asc", "maxItems": 200 }

Reseller price check: iPhone 15 like-new with PayLivery

{ "category": "marktplatz", "region": "", "keyword": "iphone 15", "marketCategory": "smartphones", "itemCondition": ["like-new"], "payliveryOnly": true, "maxItems": 100, "fields": ["title", "price", "location", "publishedAt", "url"] }

Market sizing: how many flats for sale per district and property type in Graz

{ "category": "eigentumswohnung", "region": "Graz", "mode": "facets" }

Output

Example item (category: "mietwohnungen", trimmed):

{
"id": "819411514",
"url": "https://www.willhaben.at/iad/immobilien/d/mietwohnungen/wien/wien-1160-ottakring/freundliche-hausbewohner-...-819411514/",
"title": "freundliche Hausbewohner, schöner Innenhofgarten, ...",
"price": 1290,
"currency": "EUR",
"priceDisplay": "€ 1.290",
"location": "Wien, 16. Bezirk, Ottakring",
"postcode": "1160",
"state": "Wien",
"areaId": 117238,
"latitude": 48.21965,
"longitude": 16.31933,
"isPrivate": true,
"sellerType": "private",
"publishedAt": "2026-09-13T10:03:17.000Z",
"isBumped": true,
"vertical": "mietwohnungen",
"kind": "estate",
"propertyType": "Wohnung",
"rooms": 3,
"livingArea": 68,
"floor": "3",
"features": ["Keller"],
"pricePerSqm": 18.97,
"images": ["https://cache.willhaben.at/mmo/..."],
"imagesCount": 17,
"attributes": { "…": "full raw attribute map" },
"searchTotal": 4781,
"searchUrl": "https://www.willhaben.at/iad/immobilien/mietwohnungen/mietwohnung-angebote?rows=40&page=1&areaId=900",
"fetchedAt": "2026-09-13T08:13:06.759Z"
}
FieldKindsDescription
id, url, title, descriptionallwillhaben ad id (stable), ad URL, heading, teaser text
price, currency, priceDisplay, oldPriceallPrice in € (monthly rent for rentals), displayed price, previous price if reduced
location, postcode, state, district, country, areaId, latitude, longitudeallLocation
sellerName, sellerId, isPrivate, sellerTypeallprivate / dealer
publishedAt, changedAt, isBumped, isTopAdallISO timestamps; bumped = re-pushed to the top
vertical, kind, categoryLabelallestate, motor, market
propertyType, propertyTypeId, rooms, livingArea, usableArea, plotArea, floor, outdoorArea, outdoorAreaSize, features, pricePerSqm, isNewBuildProjectestatepricePerSqm comes from willhaben or is computed as price / living area
make, model, modelSpec, mileage, year, fuel, transmission, powerKw, bodyType, condition, color, warranty, owners, seats, equipment, pricePerKm, isDealerAdmotor
categoryIds, paylivery, teaser, expiresAtmarket
images, imagesCount, attributes, searchTotal, searchUrl, fetchedAtall
descriptionFull, firstPublishedAt, expiresAt, street, municipality, province, sellerRegisteredAt, sellerActiveAds, companyName, website, phone, details, shippingOptions, rentPerMonth, additionalCosts, deposit, availableFrom, buildingCondition, firstRegistration, detailAttributes, detailFetched, detailErrordetail: trueOnly fields the ad actually publishes are filled

Rows from mode: "facets" / "categories" have navigatorId, navigatorLabel, param, label, value, hits, selected, howToUse (which input to put the value into), rowsFound, searchUrl, fetchedAt.

Use it from code / agents

Apify API (curl)

curl -X POST "https://api.apify.com/v2/acts/yadroo~willhaben-at/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"category":"auto","make":"BMW","yearFrom":2020,"sellerType":"private","maxItems":50}'

JavaScript (apify-client)

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('yadroo/willhaben-at').call({ category: 'mietwohnungen', region: 'wien-7', maxItems: 100 });
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Python (apify-client)

from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("yadroo/willhaben-at").call(run_input={"category": "marktplatz", "keyword": "rennrad", "priceTo": 800})
items = client.dataset(run["defaultDatasetId"]).list_items().items

AI agents (MCP): add https://mcp.apify.com?actors=yadroo/willhaben-at to Claude, Cursor or any MCP client. The input schema descriptions are written so an agent can fill filters from a plain-language request.

Pricing

Pay per event: $0.005 per run start + $0.0015 per ad in the dataset.

  • 50 ads (default): $0.08
  • 500 ads for a market snapshot: $0.755
  • mode: "facets": the rows are filter values, charged like ads (a Graz flats-for-sale facet run returned 77 rows, about $0.12).

detail: true doesn't change the price per item. It takes longer, about 1 s per ad.

Limits & FAQ

  • Rate: about 1 search page per second and 1 detail page per second. A 500-ad run takes about 10 s without detail pages.
  • Freshness: live data at request time. publishedAt is willhaben's last publish time; bumped ads show the bump time (isBumped: true).
  • Top ads: paid top ads can ignore your filters, so they are dropped unless includeTopAds: true.
  • Real-estate seller type: willhaben has no private/agency filter for real estate. The actor filters after fetching, so you may need more pages.
  • Blocks & errors: HTTP 429/5xx are retried with backoff. If willhaben serves a 403 or challenge page on search, the run fails with a clear error. If only detail pages get blocked, the run keeps the list data and marks items with detailError.
  • Unknown values (make, model, region, fuel…) fail early with the list of valid values instead of returning an unfiltered search.
  • Roadmap: price-drop tracking across runs (compare oldPrice / previous dataset), dealer inventory mode.

Made by Yadroo. Sibling actors: Otodom.pl (Poland real estate) · Kleinanzeigen.de (Germany classifieds) · AutoScout24 cars · Marktplaats.nl · Rightmove UK · Krisha.kz