Willhaben Real Estate Search

Research
Browser

Search willhaben.at real estate listings (apartments, houses) via their public webapi. No browser needed. Search any Austrian state and district with price/room filters. Get full listing details including heating type, building condition, energy class (HWB/fGEE), parking, and floor. Use for Austrian property searches, willhaben real estate queries, or building property reports. Triggers on "willhaben", "Austrian real estate", "Eigentumswohnung", "Haus kaufen Österreich", property search Austria.

Install

openclaw skills install @mihaimacarie98/willhaben-realestate-search

Willhaben Real Estate Search

Search and retrieve property listings from willhaben.at using their public webapi. No browser automation needed.

Prerequisites

Requires python3 with the requests library (pre-installed in most environments).

Quick Start

Search listings

# Apartments for sale in Schärding, max €300k
python3 scripts/willhaben-search.py --district schaerding --type apartment --max-price 300000

# Houses in Wels, max €350k
python3 scripts/willhaben-search.py --district wels --type house --max-price 350000

# With room filter and JSON output
python3 scripts/willhaben-search.py --district linz --type apartment --max-price 300000 --min-rooms 2 --format json

# With full details (heating, energy, condition) for each listing
python3 scripts/willhaben-search.py --district schaerding --type apartment --max-price 300000 --with-details

Get detail for a specific listing

python3 scripts/willhaben-search.py --detail 1148259428
python3 scripts/willhaben-search.py --detail 1148259428 --format json

Detail fields include:

  • HEATING (heating type): Fernwärme, Fußbodenheizung, Zentralheizung, Gasheizung, etc.
  • BUILDING_CONDITION: Erstbezug, Sehr gut/gut, Renoviert, Renovierungsbedürftig
  • YEAR_OF_BUILDING: Construction year
  • ENERGY_HWB + ENERGY_HWB_CLASS: Energy rating (kWh/m²a) + class (A-G)
  • ENERGY_FGEE + ENERGY_FGEE_CLASS: Overall energy efficiency factor
  • Parking: Extracted from listing body text (garage, stellplatz, carport, tiefgarage)

Property Types

CLI TypeWillhaben Category
apartmentEigentumswohnung (buy)
houseHaus kaufen

District Slugs

Districts use willhaben's URL slug format — the slug is taken directly from the willhaben URL path. Browse willhaben.at/iad/immobilien/ to discover slugs for any district.

Examples:

DistrictSlug
Schärdingschaerding
Ried im Innkreisried-im-innkreis
Wels (Stadt)wels
Linz (Stadt)linz
Linz-Landlinz-land
Braunau am Innbraunau-am-inn
Wienwien
Grazgraz
Salzburgsalzburg-stadt
Innsbruckinnsbruck
Klagenfurtklagenfurt

Any valid willhaben district slug works — these are just examples.

States

Default state is oberoesterreich. Override with --state:

python3 scripts/willhaben-search.py --state salzburg --district salzburg-stadt --type apartment

Available: oberoesterreich, niederoesterreich, wien, salzburg, steiermark, kaernten, tirol, vorarlberg, burgenland

Parameters

ParameterDescription
--districtDistrict URL slug (required for search)
--stateAustrian state (default: oberoesterreich)
--typeProperty type: apartment or house
--max-priceMaximum price in EUR
--min-roomsMinimum number of rooms
--max-pagesMax result pages (default: 5)
--with-detailsFetch heating/energy/condition for each listing
--detailGet full details for a specific listing ID
--formattext or json

API Details

Uses willhaben's public webapi:

  • Search: GET https://www.willhaben.at/webapi/iad/search/atz/seo/immobilien/{type}/{state}/{district}
  • Detail: GET https://www.willhaben.at/webapi/iad/atverz/{ad_id}

No authentication needed. Be respectful with request rates — add delays between detail requests (~200-300ms).

Notes

  • Listing URLs follow pattern: https://www.willhaben.at/iad/{SEO_URL}
  • Search returns: id, title, price, rooms, area, location, district, postcode, published date
  • Detail adds: heating, building condition, year built, HWB/fGEE energy ratings, parking
  • Parking is extracted from the listing body text when not in structured fields