Willhaben Real Estate Search
by @mihaimacarie98
Search willhaben.at real estate listings (apartments, houses) via their public webapi. No browser needed. Search any Austrian state and district with price/r...
clawhub install willhaben-realestate-search📖 About This Skill
name: willhaben-realestate-search description: 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. metadata: {"openclaw":{"emoji":"🏠","requires":{"bins":["python3"]}}}
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 300000Houses in Wels, max €350k
python3 scripts/willhaben-search.py --district wels --type house --max-price 350000With room filter and JSON output
python3 scripts/willhaben-search.py --district linz --type apartment --max-price 300000 --min-rooms 2 --format jsonWith 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:
Property Types
| CLI Type | Willhaben Category |
|----------|-------------------|
| apartment | Eigentumswohnung (buy) |
| house | Haus 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:
| District | Slug |
|----------|------|
| Schärding | schaerding |
| Ried im Innkreis | ried-im-innkreis |
| Wels (Stadt) | wels |
| Linz (Stadt) | linz |
| Linz-Land | linz-land |
| Braunau am Inn | braunau-am-inn |
| Wien | wien |
| Graz | graz |
| Salzburg | salzburg-stadt |
| Innsbruck | innsbruck |
| Klagenfurt | klagenfurt |
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
| Parameter | Description |
|-----------|-------------|
| --district | District URL slug (required for search) |
| --state | Austrian state (default: oberoesterreich) |
| --type | Property type: apartment or house |
| --max-price | Maximum price in EUR |
| --min-rooms | Minimum number of rooms |
| --max-pages | Max result pages (default: 5) |
| --with-details | Fetch heating/energy/condition for each listing |
| --detail | Get full details for a specific listing ID |
| --format | text or json |
API Details
Uses willhaben's public webapi:
GET https://www.willhaben.at/webapi/iad/search/atz/seo/immobilien/{type}/{state}/{district}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
https://www.willhaben.at/iad/{SEO_URL}💡 Examples
Search listings
# Apartments for sale in Schärding, max €300k
python3 scripts/willhaben-search.py --district schaerding --type apartment --max-price 300000Houses in Wels, max €350k
python3 scripts/willhaben-search.py --district wels --type house --max-price 350000With room filter and JSON output
python3 scripts/willhaben-search.py --district linz --type apartment --max-price 300000 --min-rooms 2 --format jsonWith 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:
⚙️ Configuration
Requires python3 with the requests library (pre-installed in most environments).
📋 Tips & Best Practices
https://www.willhaben.at/iad/{SEO_URL}