Willhaben - Austrian Real Estate
Pricing
from $2.50 / 1,000 results
Willhaben - Austrian Real Estate
Used by Austrian real estate investors and lettings agents tracking Vienna, Graz, Linz, Salzburg, and Innsbruck. Pulls rent and sale listings with price, rooms, postcode, district, agent, balcony details and image gallery from willhaben.at.
Pricing
from $2.50 / 1,000 results
Rating
0.0
(0)
Developer
Swerve
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
Willhaben.at Scraper - Austrian Real Estate API
Extract real estate listings from willhaben.at, Austria's #1 classifieds portal for property. Returns rich structured data per listing: price, area, rooms, district, postcode, GPS, balcony details, agency, full image gallery, and publication time.
What you get per listing
listingId,url,apiUrl— unique ID, direct link, and the willhaben public API URLlistingType—saleorrentpropertyType— willhaben's label (e.g.Wohnung,Dachgeschoßwohnung,Haus)title,description— listing headline + short teaserprice(EUR, integer) andpriceText—priceTextkeeps the published precision (e.g."€ 1.063,39"),priceis rounded to whole euros for clean filteringpricePerSqmrooms,areaSqm,floorbalconyAreaSqm,balconyType— outdoor area in m² + type (Balkon, Terrasse, Garten, Loggia, …)state,district,postcode,location— Austrian Bundesland, Bezirk, PLZ, and full visible location textlatitude,longitudeagencyName,isPrivate— agency label, orisPrivate: truefor private sellerspublishedAt— ISO timestamp of publicationimageUrl,imageUrls[]— cover image + full galleryscrapedAt
How to use
Easy mode (recommended): type an Austrian city, pick listing type and category.
{"city": "Vienna","listingType": "sale","propertyCategory": "apartment","maxItems": 200}
Other examples:
{ "city": "Graz", "listingType": "rent", "propertyCategory": "apartment", "maxItems": 100 }{ "city": "Salzburg", "listingType": "sale", "propertyCategory": "apartment", "maxItems": 50 }{ "city": "Innsbruck", "listingType": "rent", "propertyCategory": "house", "maxItems": 100 }{ "city": "Linz", "listingType": "sale", "propertyCategory": "house", "maxItems": 50 }
Built-in city slugs: Vienna/Wien, Graz, Linz, Salzburg, Innsbruck, Klagenfurt, Villach, Wels, Steyr, Dornbirn, Bregenz, Feldkirch, Sankt Pölten, Eisenstadt.
Power-user mode: for finer filters (price range, rooms, sub-area, project type, etc.), set them on willhaben.at, copy the URL from the browser, paste into searchUrl. The structured inputs are bypassed.
Common use cases
- Investor monitoring — track new listings across Vienna, Graz, Linz, Salzburg, Innsbruck; snapshot rent yields.
- Agencies / brokers — pull competitor inventory + agency activity for your market.
- Market analytics — supply, average €/m² by Bezirk, balcony/Terrasse share, private-vs-agency split.
- Lead generation —
isPrivateflags FSBO sellers;agencyNameaggregates the high-volume players.
Data quality
In testing across Vienna, Graz, Linz, Salzburg, and Innsbruck (sample of 100+ listings, both sale and rent):
| Field | Fill rate |
|---|---|
| price, priceText, areaSqm, rooms | ~95-100% (rent "Preis auf Anfrage" listings legitimately have price: null) |
| location, district, postcode, state | 100% |
| latitude, longitude | 100% |
| publishedAt, agencyName, isPrivate | 100% |
| propertyType | ~95% (some commercial / Baugrundstück listings have null type) |
| imageUrl, imageUrls | ~99% |
| balconyAreaSqm, balconyType | populated when the listing has an outdoor area; null otherwise |
Pricing
Pay per result. See the Pricing tab. Failed runs cost nothing.
Notes
- The actor uses Apify's residential proxy (Austria) for reliable access. Transient errors trigger up to 2 automatic retries with a fresh proxy session.
- Pagination is automatic — set your desired
maxItemsand the actor walks through pages until it has enough or runs out. - Rent listings on willhaben sometimes carry fractional prices (e.g.
€ 1.063,39) when the rent is calculated from a service-charge split. The actor rounds these to whole euros forpriceand preserves the original inpriceText. - If the actor returns 0 listings, it fails loudly with a diagnostic message rather than silently succeeding — common causes are a less-common city slug (try the power-user
searchUrlmode) or anti-bot blocks.
Found a bug or have a feature request? Open an issue and I respond within 24h.