Austria's largest classifieds as JSON: marketplace, real estate and cars
The willhaben API returns Austria's largest classifieds site as clean JSON in four actions: search for the second-hand marketplace, real_estate/search for apartments and houses to rent or buy, plots and commercial property, cars/search for used cars and motorcycles, and listing for the full record of any ad.
4 active endpoints. Every call is 1 credit.
- POST/willhaben/v1/search
- POST/willhaben/v1/real_estate/search
- POST/willhaben/v1/cars/search
- POST/willhaben/v1/listing
What willhaben endpoints does ReefAPI ship?
4 live read endpoints. Read-only data API: no writes, no account actions, no dashboard access on the target site.
willhaben API
4 of 4 endpoints, ready to run
willhaben property listings for one property type: rent or purchase price, price per m², living area, rooms, floor, district, agency or private landlord, images, new-build projects with their units, and flags for prices on request or not published.
{ "ok": true, "meta": { "api": "willhaben", "endpoint": "real_estate/search", "mode": "live", "latency_ms": 478, "record_count": 30, "cache_hit": false }, "data": { "listings": [ { "ad_id": "1575194895", "title": "Neue Gründerzeit - Village im Dritten: Effizient geschnittene 2-Zimmer-Wohnung Nähe Schweizergarten & U3 fußläufig erreichbar", "url": "https://www.willhaben.at/iad/immobilien/d/mietwohnungen/wien/wien-1030-landstrasse/neue-gruenderzeit-village-im-dritten-effizient-geschnittene-2-zimmer-wohnung-naehe-schweizergarten-u3-fusslaeufig-erreichbar-1575194895/", "section": "real_estate", "status": "active", "is_reserved": false, "price": 1129, "currency": "EUR", "price_display": "€ 1.129", "is_free": false, "price_on_request": false, "price_is_from": false, "price_not_published": false, "description_preview": "Village im Dritten - Modernes Wohnen in urbaner Bestlage Das Projekt \"Neue Gründerzeit - Village im Dritten\" vereint hochwertigen Wohnkomfort, historische Architektur und urbane Lebensqualität . Es entstehen Wohnungen von 2 bis 4 Zimmern mit großzügigen...", "postcode": "1030", "location": "Wien, 03. Bezirk, Landstraße", "district": "Wien", "state": "Wien", "country": "Österreich", "address": "Billy-Wilder-Promenade 9", "latitude": 48.1871244, "longitude": 16.3967104, "published_at": "2026-09-16T15:29:00Z", "updated_at": null, "expires_at": null, "seller_id": "19761308", "seller_type": "dealer", "images": [ "https://cache.willhaben.at/mmo/5/157/519/4895_1360365794.jpg", "https://cache.willhaben.at/mmo/5/157/519/4895_-462042901.jpg", "https://cache.willhaben.at/mmo/5/157/519/4895_194589907.jpg" ], "is_top_ad": false, "is_highlighted": true, "is_bumped": true, "category_ids": [ "7276" ], "teaser": [], "image_count": 21, "property": { "property_type": "Wohnung", "living_area_m2": 47, "usable_area_m2": 56, "plot_area_m2": null, "rooms": 2, "floor": "4", "rent_per_month": 1129, "rent_net_per_month": null, "rent_total_per_month": null, "purchase_price": null, "price_per_m2": 24.0213, "free_area_type": "Balkon", "free_area_m2": 9, "is_project": true, "project_id": "1302995752", "virtual_tour_url": "https://my.matterport.com/show/?m=zodbXCYAUzh", "ownership": null, "building_type": null, "building_condition": null, "construction_year": null, "heating": null, "energy_hwb": null, "energy_hwb_class": null, "energy_fgee": null, "energy_fgee_class": null, "available_from": null, "term_limit": null, "features": null }, "units": [ { "ad_id": "2096418707", "title": "Etage 3/Top 16", "url": "https://www.willhaben.at/iad/immobilien/d/mietwohnungen/wien/wien-1030-landstrasse/neue-gruenderzeit-2-zimmer-wohnung-mit-balkon-perfekte-balance-aus-stadt-natur-2096418707/", "price": null, "price_display": "€ 1.149", "price_is_from": false, "living_area_m2": 48, "rooms": 2, "floor": "3" }, { "ad_id": "1848780609", "title": "Etage 1/Top 3", "url": "https://www.willhaben.at/iad/immobilien/d/mietwohnungen/wien/wien-1030-landstrasse/neue-gruenderzeit-village-im-dritten-effizient-geschnittene-2-zimmer-wohnung-naehe-schweizergarten-u3-fusslaeufig-erreichbar-1848780609/", "price": null, "price_display": "€ 1.049", "price_is_from": false, "living_area_m2": 46, "rooms": 2, "floor": "1" }, { "ad_id": "1382217720", "title": "Etage 2/Top 11", "url": "https://www.willhaben.at/iad/immobilien/d/mietwohnungen/wien/wien-1030-landstrasse/schnell-sichern-per-01-11-einziehen-2-zimmer-wohnung-mit-premium-ausstattung-und-freiflaechen-1382217720/", "price": null, "price_display": "€ 1.129", "price_is_from": false, "living_area_m2": 48, "rooms": 2, "floor": "2" } ] }, { "ad_id": "886965190", "title": "Hochwertige 1-Zimmer-Wohnung mit Loggia direkt bei der U3 Kendlerstraße! Ab 01.01.2027 beziehbar!", "url": "https://www.willhaben.at/iad/immobilien/d/mietwohnungen/wien/wien-1160-ottakring/hochwertige-1-zimmer-wohnung-mit-loggia-direkt-bei-der-u3-kendlerstrasse-ab-01-01-2027-beziehbar-886965190/", "section": "real_estate", "status": "active", "is_reserved": false, "price": 799, "currency": "EUR", "price_display": "€ 799", "is_free": false, "price_on_request": false, "price_is_from": false, "price_not_published": false, "description_preview": "Modernes Wohnen direkt bei der U3 Kendlerstraße mit hochwertiger Ausstattung! In zentraler Lage von Ottakring, nur wenige Schritte von der U3 Kendlerstraße entfernt, befindet sich dieses moderne Wohnhaus, das erst 2024 fertiggestellt wurde und sich durch...", "postcode": "1160", "location": "Wien, 16. Bezirk, Ottakring", "district": "Wien", "state": "Wien", "country": "Österreich", "address": "Huttengasse 39-41", "latitude": 48.20652313, "longitude": 16.30860642, "published_at": "2026-09-16T15:28:54Z", "updated_at": null, "expires_at": null, "seller_id": "19761308", "seller_type": "dealer", "images": [ "https://cache.willhaben.at/mmo/0/886/965/190_-692341958.jpg", "https://cache.willhaben.at/mmo/0/886/965/190_1646146036.jpg", "https://cache.willhaben.at/mmo/0/886/965/190_284942825.jpg" ], "is_top_ad": false, "is_highlighted": true, "is_bumped": true, "category_ids": [ "7276" ], "teaser": [], "image_count": 15, "property": { "property_type": "Wohnung", "living_area_m2": 31, "usable_area_m2": 33, "plot_area_m2": null, "rooms": 1, "floor": "5", "rent_per_month": 799, "rent_net_per_month": null, "rent_total_per_month": null, "purchase_price": null, "price_per_m2": 25.7742, "free_area_type": "Loggia", "free_area_m2": 2, "is_project": true, "project_id": "964010038", "virtual_tour_url": "https://my.matterport.com/show/?m=aXygqzNs46n", "ownership": null, "building_type": null, "building_condition": null, "construction_year": null, "heating": null, "energy_hwb": null, "energy_hwb_class": null, "energy_fgee": null, "energy_fgee_class": null, "available_from": null, "term_limit": null, "features": null }, "units": [ { "ad_id": "1363655882", "title": "Etage 5/Top 81", "url": "https://www.willhaben.at/iad/immobilien/d/mietwohnungen/wien/wien-1160-ottakring/modernes-wohnen-neu-definiert-zweitbezugs-wohnung-mit-loggia-naehe-kendlerstrasse-1363655882/", "price": null, "price_display": "€ 919", "price_is_from": false, "living_area_m2": 40, "rooms": 2, "floor": "5" }, { "ad_id": "1041937006", "title": "Etage 6/Top 88", "url": "https://www.willhaben.at/iad/immobilien/d/mietwohnungen/wien/wien-1160-ottakring/klimatisierte-wohnung-mit-terrasse-u3-in-gehweite-ab-01-11-1026-verfuegbar-1041937006/", "price": null, "price_display": "€ 998,99", "price_is_from": false, "living_area_m2": 43, "rooms": 2, "floor": "6" } ] }, { "ad_id": "1718483190", "title": "Urbaner Komfort trifft moderne Bauweise! 1-Zimmer-Wohnung mit Loggia!", "url": "https://www.willhaben.at/iad/immobilien/d/mietwohnungen/wien/wien-1160-ottakring/urbaner-komfort-trifft-moderne-bauweise-1-zimmer-wohnung-mit-loggia-1718483190/", "section": "real_estate", "status": "active", "is_reserved": false, "price": 799, "currency": "EUR", "price_display": "€ 799", "is_free": false, "price_on_request": false, "price_is_from": false, "price_not_published": false, "description_preview": "Modernes Wohnen bei der U3 Kendlerstraße - hochwertig, nachhaltig & urban In zentraler Lage von Wien-Ottakring befindet sich dieses moderne Wohnhaus, nur wenige Schritte von der U3 Kendlerstraße entfernt. Das 2024 fertiggestellte Neubauprojekt überzeugt...", "postcode": "1160", "location": "Wien, 16. Bezirk, Ottakring", "district": "Wien", "state": "Wien", "country": "Österreich", "address": "Huttengasse 39-41", "latitude": 48.2066143, "longitude": 16.3085876, "published_at": "2026-09-16T15:28:53Z", "updated_at": null, "expires_at": null, "seller_id": "19761308", "seller_type": "dealer", "images": [ "https://cache.willhaben.at/mmo/0/171/848/3190_284942825.jpg", "https://cache.willhaben.at/mmo/0/171/848/3190_-692341958.jpg", "https://cache.willhaben.at/mmo/0/171/848/3190_1646146036.jpg" ], "is_top_ad": false, "is_highlighted": true, "is_bumped": true, "category_ids": [ "7276" ], "teaser": [], "image_count": 15, "property": { "property_type": "Wohnung", "living_area_m2": 31, "usable_area_m2": 33, "plot_area_m2": null, "rooms": 1, "floor": "5", "rent_per_month": 799, "rent_net_per_month": null, "rent_total_per_month": null, "purchase_price": null, "price_per_m2": 25.7742, "free_area_type": "Loggia", "free_area_m2": 2, "is_project": true, "project_id": "1752982085", "virtual_tour_url": null, "ownership": null, "building_type": null, "building_condition": null, "construction_year": null, "heating": null, "energy_hwb": null, "energy_hwb_class": null, "energy_fgee": null, "energy_fgee_class": null, "available_from": null, "term_limit": null, "features": null }, "units": [ { "ad_id": "1746623034", "title": "Etage 5/Top 81", "url": "https://www.willhaben.at/iad/immobilien/d/mietwohnungen/wien/wien-1160-ottakring/urbanes-wohnen-mit-perfekter-u-bahn-anbindung-u3-kendlerstrasse-ab-oktober-beziehbar-1746623034/", "price": null, "price_display": "€ 919", "price_is_from": false, "living_area_m2": 40, "rooms": 2, "floor": "5" }, { "ad_id": "1941694997", "title": "Etage 6/Top 88", "url": "https://www.willhaben.at/iad/immobilien/d/mietwohnungen/wien/wien-1160-ottakring/urbanes-wohnen-mit-perfekter-u-bahn-anbindung-u3-kendlerstrasse-ab-november-beziehbar-1941694997/", "price": null, "price_display": "€ 998,99", "price_is_from": false, "living_area_m2": 43, "rooms": 2, "floor": "6" }, { "ad_id": "1004808611", "title": "Etage 4/Top 54", "url": "https://www.willhaben.at/iad/immobilien/d/mietwohnungen/wien/wien-1160-ottakring/urbaner-wohnkomfort-in-zentraler-lage-von-wien-ottakring-naehe-u3-kendlerstrasse-ab-oktober-beziehbar-1004808611/", "price": null, "price_display": "€ 789", "price_is_from": false, "living_area_m2": 31, "rooms": 1, "floor": "4" } ] } ], "count": 30, "total": 1908, "sort_applied": "published.descending", "breadcrumbs": [ "Immobilien", "Wohnung mieten", "Wien" ], "page": 1, "limit": 30, "has_more": true, "sort": null, "section": "rent_apartment" } }
How the willhaben API works
willhaben is a normal ReefAPI surface — the same four rules that hold for every other engine on the key.
No OAuth app, no request signing, no per-site account. One key covers all 252 engines.
Every route is a POST with a JSON body. Parameters are validated against the published schema before anything is charged.
Credits, not seats. Failed and blocked calls are never charged, and cache hits cost nothing.
One envelope everywhere. meta carries latency_ms, record_count and the endpoint that answered.
Two-room flats in Vienna under 1,200 EUR, then the agency behind one of them
real_estate/search narrows the market, listing opens one ad in full, and seller_id turns that ad's agency into a list of everything it advertises.
{"property_type": "rent_apartment", "state": "wien", "rooms": ["2"], "price_max": 1200}Rent, price per m², living area, district and seller type on every row; project rows carry their units. Take listings[].ad_id.
{"ad_id": "<ad_id from step 1>"}The full record: rent breakdown and text sections, energy class, construction year, all images, and seller.seller_id with the agency's company name and website.
{"property_type": "rent_apartment", "seller_id": "<seller_id from step 2>"}Every rental apartment that agency has on willhaben.
A filtered view of Vienna's rental market and the agencies supplying it, with each listing's price labelled for what it is.
curl -X POST https://api.reefapi.com/willhaben/v1/real_estate/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"property_type":"rent_apartment","state":"wien"}'{
"ok": true,
"data": { … },
"meta": {
"api": "willhaben",
"endpoint": "real_estate/search",
"mode": "live",
"latency_ms": …,
"record_count": …
},
"error": null
}Five willhaben prices that are not simply a price
A willhaben listing can be free, have its price on request, publish no price at all, show only the cheapest unit of a project, or carry a lower price that needs a dealer bonus. Each shape looks like an ordinary number or an ordinary null. This engine labels every one.
| Listing (section) | price | flag | the catch |
|---|---|---|---|
| Kids' bike, marketplace | 0 | is_free: true | 'zu verschenken' - 0 is real here, and only here; any other 0 would be returned as null |
| Family house near Korneuburg, real estate | null | price_on_request: true | The agency asks buyers to enquire; the price field holds that text, not a number |
| Office space in Innsbruck, commercial rent | null | price_not_published: true | No price at all - the listing page itself says 'Keine Angabe' |
| New-build rentals in Vienna 21st district | 988 | price_is_from: true | 'ab € 988' is the cheapest unit; the project's units come as units[] with their own prices |
| VW Golf Life TDI, dealer car | 27990 | price_with_bonus: 26490 | The lower number needs a dealer bonus; the dealer's earlier price 28990 is price_before_reduction |
Measured on 2026-09-15. In one page of 30 commercial rentals in Tirol, 10 published no price; in 60 house purchases, 5 were on request; in 60 Vienna rentals, 9 were projects showing a from-price. Classified ads come and go - the rows above are dated.
What was checked, and what willhaben leaves out
Measured on 2026-09-15: 96 live calls across the four actions with no failure, 84 controlled checks including every filter, and 15 listings compared with their own pages. Four of these lines go against us.
The second-hand marketplace, seven real-estate property types (rent and buy, plots, commercial) and used cars and motorcycles. Austria only, prices in EUR.
Each filter was run against its unfiltered total in the same minute and every returned row checked: for 'fahrrad', 96,631 ads became 13,167 in new condition and 21,181 with PayLivery; Vienna rentals, 4,783, became 1,976 with two rooms.
On 15 listings across bikes, sofas, phones, prams, Vienna rentals, houses for sale, cars and motorcycles, the title, price, currency and the price box the visitor sees matched the listing page on every one.
Free items, prices on request, listings with no published price, from-prices of new-build projects, and cars' earlier and bonus-only prices each have their own field or flag.
Median across 96 calls: a marketplace search 0.67 seconds, a real-estate search 1.4 seconds, a car search 1.1 seconds, a listing 0.55 seconds. The slowest call measured took 1.7 seconds.
A private seller's name, phone number, street and exact location are left out on purpose. Dealers and agencies are named with company, address and website.
willhaben itself offers that filter only in the marketplace and for vehicles. On real estate the request is rejected rather than ignored; every row still says who is selling.
willhaben's own page data calls 'Neuwertig' items new; the API returns like_new with willhaben's label 'Neuwertig', which is what the visitor sees. 2 of 6 compared listings showed this difference.
willhaben publishes no seller ratings or reviews. Make, mileage, year, fuel and transmission filters work for cars; motorcycles can be filtered by keyword, price, state and seller type.
What people build with willhaben
The jobs this data is most often used for.
endpoints
credit per call
Property analysts track rents and purchase prices per m² across Austria's states and Vienna's districts with real_estate/search, including new-build projects and their units.
Car dealers and valuation tools watch used-car prices, price reductions and bonus-only prices by make, mileage and year with cars/search.
Resale and pricing tools compare second-hand prices by condition and PayLivery availability, keeping free items and reserved ads apart.
Lead-generation and market-mapping teams list every ad of an agency or dealer with seller_id, without collecting private sellers' personal data.
What willhaben data costs
The cheapest call here is 1 credit, so $15/mo (Pro) buys 10,000 of them — $1.50 per 1,000 credits. Credits roll over and never expire, and failed or blocked calls are not charged.
Full pricing →- 1,000 free credits on signup, no card
- One key, all 252 APIs, one credit pool
- Failed and blocked calls are never charged
- Credits roll over and never expire
Call it in two lines
Sign up, get 1,000 credits and one key that works on every engine. Then this is the whole protocol.
curl -X POST https://api.reefapi.com/willhaben/v1/real_estate/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"property_type":"rent_apartment","state":"wien"}'import requests
r = requests.post(
"https://api.reefapi.com/willhaben/v1/real_estate/search",
headers={"x-api-key": REEF_KEY},
json={
"property_type": "rent_apartment",
"state": "wien"
},
)
print(r.json()["data"])Have a question? We got answers.
The questions people actually ask before wiring up willhaben.
Get a free key →Which parts of willhaben does the API cover?▾
The three big sections. search covers the second-hand marketplace (Kaufen & Verkaufen). real_estate/search covers apartments and houses to rent or buy, plots, and commercial property to rent or buy - seven property types, all checked live on 2026-09-15 (19,627 rental apartments and 42,324 apartments for sale that day). cars/search covers used cars and motorcycles. listing returns the full record of an ad from any section. willhaben is Austrian only; prices are in EUR.
Is a private seller's name or phone number included?▾
No. For private sellers the name, contact name, phone number, street address, exact coordinates and profile picture are left out, and e-mail addresses or phone numbers typed into a description are masked. The listing still says the seller is private and shows the postcode, town, district and state. For dealers and agencies the company name, business address and website are returned; their contact person and phone number are left out too.
How do I tell a free item, a price on request and a missing price apart?▾
By the flags on every row. A free item ('zu verschenken') has price 0 and is_free true. A listing whose price is on request has price null and price_on_request true. A listing that publishes no price at all has price null and price_not_published true. New-build projects that show only their cheapest unit have price_is_from true. A price of 0 is never returned for anything other than a free item.
Are top ads and paid placements marked?▾
Yes. is_top_ad marks willhaben's top-ad placement, is_highlighted a paid highlight and is_bumped a paid re-push to the top. The rows stay in willhaben's own order; nothing is removed. In 60 car rows on 2026-09-15, 5 were top ads and 41 were highlighted.
Do the filters really narrow the results?▾
Each one was checked live on 2026-09-15: the filtered total had to be smaller than the unfiltered one, and every returned row had to match. For 'fahrrad' in the marketplace (96,631 ads): condition new 13,167, PayLivery 21,181, dealers 2,446, Vienna 19,430. For VW Golf cars (7,841): diesel 4,064, automatic 2,057, 2018 to 2020 669. One filter willhaben does not offer is private or dealer on real estate - that request is rejected with an error instead of being silently ignored, and every real-estate row still says whether the seller is private or a company.
What is PayLivery, and what does listing return for it?▾
PayLivery is willhaben's buyer protection with shipping. search can return only PayLivery listings and every marketplace row says whether it is on. listing returns each shipping option with the carrier, the shipping price and its undiscounted price, the parcel size, weight limit, delivery time and insurance, plus the accepted payment methods - for example Post, 1.99 EUR instead of 4.40, an XS parcel up to 2 kg, 1 to 2 working days.
Can I look up an ad by its URL, and how do I get all of a seller's ads?▾
listing accepts the ad id or the full willhaben listing URL. Every row and listing carries seller_id; pass it back as seller_id on any of the three search actions to list that seller's ads - checked live for a marketplace dealer and a Vienna agency. A listing that has been taken down returns NOT_FOUND.
What does willhaben not publish?▾
Seller ratings or reviews. A phone number for most private sellers, who are reached through willhaben's messaging. A price on some real-estate listings. First registration on new vehicles. Room counts on new-build project summaries - the units carry them. There is no stock count on classifieds; status active or reserved is the only availability signal.
What is the willhaben API?▾
willhaben API is a ReefAPI endpoint group for austria's largest classifieds: marketplace, real estate and cars as json. It returns live JSON through POST requests under /willhaben/v1.
Is the willhaben API free to try?▾
Yes. ReefAPI starts with 1,000 free credits, no card required. willhaben calls use the same shared credit balance as every other ReefAPI engine.
Do I need a willhaben login or account?▾
No login to willhaben is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.
How fresh is the willhaben data?▾
The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.
How many credits does the willhaben API use?▾
willhaben actions currently cost 1 credit per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.
Can I call willhaben from an AI assistant or MCP client?▾
Yes. Connect ReefAPI once through MCP and your assistant can call willhaben actions with the same key, credit pool and JSON envelope used by normal REST requests.
16 Classifieds & Second-hand APIs on the same key
One key, one credit pool, one response envelope. If you are pulling willhaben, you are one call away from the rest of the category — no second contract, no second integration.
Need something this API does not do?
Name the endpoint, the field, or a source we do not carry yet. We ship new APIs every week and you would be first to get the key. Real people read every message and reply the same day.
Try it on your own data before you pay anything
The call above is the real endpoint, not a recording. A free key gives you 1,000 credits, the other 251 APIs, and the same envelope everywhere.
Endpoints, parameters and credit costs on this page are read from the live catalog and cannot drift from what the API accepts. Field notes were captured on 2026-09-15.