Willhaben Scraper - Austrian Classifieds, Cars & Real Estate
Pricing
from $0.50 / 1,000 run start fees
Willhaben Scraper - Austrian Classifieds, Cars & Real Estate
Willhaben scraper for willhaben.at search results: marketplace items, used cars and property ads with price in euros, city, postcode, district, state, publication date, seller ID, images and every listing attribute. Search by keyword or paste a filtered URL. No login or API key.
Pricing
from $0.50 / 1,000 run start fees
Rating
0.0
(0)
Developer
SR
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
22 days ago
Last modified
Categories
Share
Willhaben Scraper
Willhaben Scraper is a willhaben scraper that turns public willhaben.at search results into structured classified ads: marketplace items, used cars and property listings with prices, locations, images, dates, seller identifiers and the complete source attribute map. Search with a German keyword or paste a filtered search URL copied from your browser. Each returned advertisement is a separate dataset row. You do not need an account on Willhaben or a source API key in the input.
Results can be downloaded from the dataset as JSON, CSV, Excel or XML, or fetched through the Apify API. The actor therefore also works as a Willhaben search API for your own scripts, spreadsheets and dashboards, without building and maintaining a scraper yourself.
Willhaben Scraper input
Provide query or url. A URL takes precedence over the keyword and section. German terms
usually describe the advertised items more directly. The query field has a fahrrad prefill
for the console example; it has no automatic default, so an empty API input produces an empty
successful run with an explanatory message.
| Field | Type | Default | Meaning |
|---|---|---|---|
query | string | none | Search keyword; optional when a URL is supplied |
url | string | none | A Willhaben search URL, including your source filters |
vertical | string | marketplace | marketplace, real_estate, cars or jobs |
price_min | integer | none | Minimum price in euros, including zero |
price_max | integer | none | Maximum price in euros, including zero |
limit | integer | 60 | Maximum listings to return, from 1 to 750 |
retries | integer | 4 | Attempts per page, from 2 to 8 |
Apply a location or category filter on Willhaben and paste the resulting search URL when you need a narrower search. Supplied price bounds override equivalent filters in the URL. The actor starts at the first result page and collects subsequent pages as needed.
Output
The following is a subset of the first actual row returned for fahrrad on 4 October 2026.
The advertisement and its availability may change after this example was captured.
{"position": 1,"ad_id": "1163875963","title": "Cube Mountainbike - hochwertig ausgestattet - Shimano XT / Formula R1","url": "https://www.willhaben.at/kaufen-und-verkaufen/d/cube-mountainbike-hochwertig-ausgestattet-shimano-xt-formula-r1-1163875963/","price": 599,"price_text": "599","currency": "EUR","city": "Wien, 22. Bezirk, Donaustadt","postcode": "1220","state": "Wien","country": "Österreich","published_at": "2026-10-04T05:04:42Z","seller_org_id": "22927350","is_private_seller": true,"query": "fahrrad"}
Every row keeps ad_id, title, description, url, price, price_text, currency,
city, postcode, district, state, country, published_at, changed_at, expires_at,
seller_org_id, is_private_seller, ad_type_id, status, image, images_count,
attributes, query and position. Missing source information is null. price is a numeric
amount in EUR, while price_text preserves the raw source string. country preserves the
source's country name, so cross-border listings can be distinguished from Austrian sellers.
Additional fields are source, fetched_at, listing_id, image_url, price_display,
brand and condition. The listing and image aliases make it easier to combine the data
with other listing sources. Brand and condition are only populated when the source provides
the corresponding descriptive attributes. The attribute map preserves multi-value attributes
as arrays, rather than joining them into a string.
The key-value store record summary includes the source result count (rowsFound),
pagesFetched, adsReturned, coverage counts for prices, locations and descriptions, and
fetchedInSeconds. Source errors are recorded separately in errors. The total number
of matches can be much larger than the requested delivery limit.
Pricing
The existing price model is unchanged: run_start costs $0.0005 per run and listing
costs $0.0017 per delivered advertisement, or $1.70 per 1,000 advertisements plus
the start fee. Listings are charged after they are delivered. A valid search with no results
has no listing charges and retains the start fee. Accounts without a paid Apify plan receive
at most ten listings per run. Paid users retain their requested limit, up to 750.
Use cases for the Willhaben scraper
- Price research. Compare asking prices within a product category, a car model or a property type, and see how prices differ between Vienna and the other federal states.
- Reselling and sourcing. Run the same search every day and join the rows on
ad_idto spot new advertisements and price changes before others do. - Dealer and seller monitoring. Group listings by
seller_org_idto follow the inventory of a car dealer, an estate agent or a shop, and useis_private_sellerto separate private sellers from businesses. - Market analysis. Count listings per city, postcode or state, or build a dataset of the second-hand market in Austria for a report or a model.
These are advertised prices, not confirmed sale prices; the data does not describe completed purchases or sales volumes.
Property searches use the same row shape as marketplace and used-car searches. Interpret property prices in the context of their source listing rather than combining rents and purchase prices indiscriminately. Descriptions are the source's result-list excerpts and may be truncated; the actor does not retrieve each advertisement's detail page.
Willhaben Scraper compared with the alternatives
| Option | What you get | Trade-off |
|---|---|---|
| Copying ads by hand | Exactly the listings you look at | Slow, and impossible to repeat daily |
| Willhaben's own seller interface | Automatic import of a business seller's own advertisements into its marketplace shop | Meant for publishing your own ads, not for reading search results |
| Open-source scripts and unofficial API wrappers | Free code to adapt | You maintain parsing, paging and failures yourself when the site changes |
| This actor | Marketplace, car and property rows with a fixed schema, the full attribute map and a run summary | Pay per delivered listing; data comes from search results, not detail pages |
Several Willhaben actors exist in the Apify Store. This one keeps its input names, output fields and price stable across updates, so scheduled runs and integrations keep working.
Limits
The source mixes promoted placements with ordinary results, and some placements can repeat across pages. The actor deduplicates by advertisement id and preserves page order. A search can therefore return fewer rows than its requested limit even when the result count is high. A source failure on a later page keeps advertisements already collected and records the failure. Empty searches and source access problems finish with explanatory empty results.
The accepted jobs option currently retains the old actor's empty result because its jobs
search route is unavailable. Use the marketplace, car or property section for populated
results. Missing job records are never replaced with invented advertisements.
FAQ
Can I use a search URL instead of a keyword?
Yes. Copy a Willhaben search URL after applying the filters you want. The URL takes priority
over query and vertical; the optional numeric price bounds can still override URL prices.
Does the actor cover cars and real estate?
Yes. Select cars or real_estate. The output retains the same listing fields, with the
source's additional car and property attributes in the complete attributes map.
Why are some fields null?
A listing may not publish a particular timestamp, location component or image. A null value means that the source did not supply the corresponding information in the result payload.
Are descriptions and prices taken from detail pages?
They come from search results. Descriptions may be shortened by Willhaben, and prices reflect
what the source returned at capture time. Use url to inspect the current listing.
What happens when my search finds nothing?
The run returns an empty dataset with a message and summary. No listing events are charged; the unchanged run start fee still applies.
Is there an official Willhaben API for search results?
Willhaben does not offer a public API for reading its search results. Its interface for business sellers imports their own advertisements into a marketplace shop. This actor gives you the public search results as structured data, and you can call it through the Apify API from any language.
Can I export Willhaben listings to CSV or Excel?
Yes. Every run stores its rows in a dataset that you can download as CSV, Excel, JSON or XML, or send to a spreadsheet, webhook or other integration on Apify.