Willhaben.at Scraper - Austria’s Classifieds
Pricing
Pay per usage
Willhaben.at Scraper - Austria’s Classifieds
Scrape willhaben.at — Austria's largest classifieds platform. Pull listings from any pasted search URL across every platform section with incremental change tracking that emits only new and updated items between runs.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Black Falcon Data
Maintained by CommunityActor stats
0
Bookmarked
11
Total users
2
Monthly active users
2 days ago
Last modified
Categories
Share
What does Willhaben.at Scraper do?
Willhaben.at Scraper extracts structured listing data from willhaben.at — including salary data, full descriptions, and location data. It supports keyword search, location filters, and controllable result limits, so you can run the same query consistently over time. The actor also offers detail enrichment (full descriptions and company metadata) where the source provides them.
New to Apify? Sign up free and use the included $5 monthly platform credit to test this actor.
Key features
- ♻️ Incremental mode — daily runs emit only listings that are new or whose price/condition changed since last run. Perfect for inventory-diff dashboards and competitive pricing alerts. Saves 80–95% on recurring monitoring.
- 🔔 Notifications — telegram / Slack / Discord / WhatsApp / webhook alerts on each run. Combine with incremental to ping only when prices or inventory actually move.
- 🔗 Paste-mode — paste any willhaben.at URL — single-listing pages, search-results, or category SEO URLs. Build the filter you want in the browser, copy, paste; the actor parses every query param.
- 📋 Detail enrichment — two-stage scraping — list first, then enrich each listing with the full detail-page payload. One input toggle controls the depth.
- 💵 Structured pricing — listing price parsed into
priceMin/priceMax/priceCurrencywith period (per night / per month / total) where applicable. Hidden-price flag preserved. - 📧 Email + phone extraction — best-effort regex extraction of contact emails and phone numbers from descriptions — emitted as
extractedEmails[]andextractedPhones[]on every record. - 📦 Compact mode — light payload with core fields only — comparable rows across listings without HTML or metadata overhead. Perfect for pricing dashboards.
- ✂️ Description truncation — cap description length with
descriptionMaxLengthto control LLM prompt cost and dataset size — set 0 for full descriptions, or any char-limit to trim. - 📌 Change classification — each record carries a
changeTypeof NEW / UPDATED / UNCHANGED / REAPPEARED / EXPIRED. Default emits NEW + UPDATED + REAPPEARED; opt into the others withemitUnchanged/emitExpired. Repost detection flags previously-expired listings that come back. - 📤 Export anywhere — Download the dataset as JSON, CSV, or Excel from the Apify Console, or stream live via the Apify API and integrations (Make, Zapier, Google Sheets, n8n, …).
What data can you extract from willhaben.at?
Each result includes Core listing fields (listingId, listingUuid, section, title, price, priceText, location, and district, and more), detail fields when enrichment is enabled (descriptionSnippet, immoDescription, carDescription, jobDescription, and mkDescription), apply information (jobApplyUrl), and company metadata (jobCompany, jobCompanyId, jobCompanyLogoUrl, and jobCompanyType). In standard mode, all fields are always present — unavailable data points are returned as null, never omitted. In compact mode, only core fields are returned.
Enable detail enrichment in the input to get richer fields such as full descriptions and company metadata where the source provides them.
Input
The main inputs are a search keyword, an optional location filter, and a result limit. Additional filters and options are available in the input schema.
Key parameters:
startUrls— Paste one or more willhaben.at search URLs — each runs as its own search task and results are merged round-robin so every URL contributes to the output. Section, sub-type, keyword, and filters are extracted from each URL automatically. All URLs must target the same section (jobs / immobilien / autos / marktplatz) — for mixed sections, run the actor multiple times. Each unique listing is returned only once — duplicates across pages or overlapping search URLs are removed by listing ID.searchUrl— Single-URL legacy field. Equivalent to a one-entry 'Search URLs' array — supported for backward compatibility. Other fields below override individual values if needed.section— Which part of willhaben.at to scrape. (default:"marktplatz")immoSubType— Category within the Immobilien section. Only used when section = immobilien. (default:"mietwohnungen")query— Search keyword (optional). Leave empty to get all listings in the section.location— City or district name for Marktplatz, Immobilien, and Autos searches (e.g. 'Wien'). For Jobs, use jobLocation instead.priceMin— Minimum listing price in EUR. Not applicable for Jobs.priceMax— Maximum listing price in EUR. Not applicable for Jobs.jobLocation— City or location filter for jobs (e.g. 'Wien'). Only used when section = jobs.jobRegion— Federal state or region filter (e.g. 'wien'). Only used when section = jobs.jobOperationArea— Job operation/industry area filter. Only used when section = jobs.jobEmploymentMode— Employment type filter (e.g. 'vollzeit', 'teilzeit'). Only used when section = jobs.- ...and 25 more parameters
Input examples
Basic search — Keyword-driven search with a result cap.
→ Full payload per result — all standard fields populated where the source provides them.
{"query": "fahrrad","maxResults": 50}
Incremental tracking — Only emit listings that changed since the previous run with this stateKey.
→ First run builds the baseline state. Subsequent runs emit only records that are new or whose tracked content changed. Set emitUnchanged: true to include unchanged records as well.
{"query": "fahrrad","maxResults": 200,"incrementalMode": true,"stateKey": "fahrrad-tracker"}
Compact output for AI agents — Return only core fields for AI-agent and MCP workflows.
→ Small payload with the most important fields — ideal for piping into LLMs without token overhead.
{"query": "fahrrad","maxResults": 50,"compact": true}
Output
Each run produces a dataset of structured listing records. Results can be downloaded as JSON, CSV, or Excel from the Dataset tab in Apify Console.
Example listing record
{"listingId": "9b2f69e6fad57aa036adaa5a2d6959f1a5d8b08dc1f1cc30d4b469a501e49f4e","listingUuid": "b9e46f22-c599-4e65-84eb-b34e9d305250","section": "marktplatz","title": "Match Attax EM 2024 packs","price": 20,"priceText": "€ 20","location": "Bad Sauerbrunn","district": "Mattersburg","federalState": "Burgenland","postCode": "7202","country": "Österreich","coordinates": "47.77563,16.32758","imageUrl": "https://cache.willhaben.at/mmo/4/137/055/8764_-1549737357.jpg","imageUrls": ["https://cache.willhaben.at/mmo/4/137/055/8764_-1549737357.jpg","https://cache.willhaben.at/mmo/4/137/055/8764_590665760.jpg"],"descriptionSnippet": "20€ Bündel Preis. Einzelnverkauf bei 1,5€ pro Pack. Bei Fragen oder angeboten schreiben.","isPrivateSeller": true,"sellerType": "Privat","sellerId": "35913701","sellerName": "Catoy","sellerAddress": null,"isBumped": null,"publishedAt": "2026-04-01T01:20:00Z","portalUrl": "https://www.willhaben.at/iad/kaufen-und-verkaufen/d/match-attax-em-2024-packs-1370558764/","scrapedAt": "2026-03-31T23:21:18.599Z","changeType": null,"immoType": null,"immoRooms": null,"immoLivingArea": null,"immoRentPerMonth": null,"immoFloor": null,"immoOutdoorArea": null,"immoPlotSize": null,"immoFeatures": null,"immoOwnageType": null,"immoDeposit": null,"immoAvailableDate": null,"immoDescription": null,"immoContactName": null,"immoContactPhone": null,"immoContactEmail": null,"carMake": null,"carModel": null,"carModelSpec": null,"carYear": null,"carMileage": null,"carFuel": null,"carGearbox": null,"carType": null,"carCondition": null,"carPowerKw": null,"carDoors": null,"carSeats": null,"carColor": null,"carWheelDrive": null,"carEngineCC": null,"carOwnerCount": null,"carEquipment": null,"carWarranty": null,"carDescription": null,"jobCompany": null,"jobCompanyId": null,"jobCompanyLogoUrl": null,"jobCompanyType": null,"jobCompanyIndustry": null,"jobCompanyUrl": null,"jobCompanyAddress": null,"jobCompanyEmployeeCount": null,"jobCompanyFoundingYear": null,"jobSalary": null,"jobSalaryTimeFrame": null,"jobSalaryText": null,"jobOverpay": null,"jobEmploymentModes": null,"jobPositionLevel": null,"jobEmploymentTime": null,"jobRemote": null,"jobDescription": null,"jobLanguageSkills": null,"jobContactName": null,"jobContactEmail": null,"jobApplyUrl": null,"jobExpiryDate": null,"mkDescription": "20€ Bündel Preis. Einzelnverkauf bei 1,5€ pro Pack. Bei Fragen oder angeboten schreiben.","mkSellerName": "Catoy","mkCondition": null,"mkDelivery": null}
Incremental fields
When incremental: true, each record also carries:
changeType— one ofNEW,UPDATED,UNCHANGED,REAPPEARED,EXPIRED. Default output coversNEW/UPDATED/REAPPEARED; setemitUnchanged: trueoremitExpired: trueto opt into the others.firstSeenAt,lastSeenAt— ISO-8601 timestamps tracking the listing across runs.isRepost,repostOfId,repostDetectedAt— populated when a new listing matches the tracked content of a previously expired one. SetskipReposts: trueto drop detected reposts from the output.
How to scrape willhaben.at
- Go to Willhaben.at Scraper in Apify Console.
- Enter a search keyword and optional location filter.
- Set
maxResultsto control how many results you need. - Enable
includeDetailsif you need full descriptions. - Click Start and wait for the run to finish.
- Export the dataset as JSON, CSV, or Excel.
Use cases
- Build a unified feed across willhaben.at sections — jobs, real estate, cars, marketplace — from a single pasted search URL.
- Monitor new and changed listings on scheduled runs without processing the full dataset every time.
- Track pricing and listing-volume trends across regions and categories over time.
- Build outreach lists using contact details and apply URLs from listings.
- Use structured location data for regional analysis, mapping, and geo-targeting.
- Export clean, structured data to dashboards, spreadsheets, or data warehouses.
How much does it cost to scrape willhaben.at?
Willhaben.at Scraper is currently free to use on Apify. There is no start fee and no per-result charge during the free launch period.
- Run start: Free
- Per result: Free
You only use your normal Apify platform resources when you run the actor from your own account.
FAQ
How many results can I get from willhaben.at?
The number of results depends on the search query and available listings on willhaben.at. Use the maxResults parameter to control how many results are returned per run.
Does Willhaben.at Scraper support recurring monitoring?
Yes. Enable incremental mode to only receive new or changed listings on subsequent runs. This is ideal for scheduled monitoring where you want to track changes over time without re-processing the full dataset.
Can I integrate Willhaben.at Scraper with other apps?
Yes. Willhaben.at Scraper works with Apify's integrations to connect with tools like Zapier, Make, Google Sheets, Slack, and more. You can also use webhooks to trigger actions when a run completes.
Can I use Willhaben.at Scraper with the Apify API?
Yes. You can start runs, manage inputs, and retrieve results programmatically through the Apify API. Client libraries are available for JavaScript, Python, and other languages.
Can I use Willhaben.at Scraper through an MCP Server?
Yes. Apify provides an MCP Server that lets AI assistants and agents call this actor directly. Use compact mode and descriptionMaxLength to keep payloads manageable for LLM context windows.
Is it legal to scrape willhaben.at?
This actor extracts publicly available data from willhaben.at. Web scraping of public information is generally considered legal, but you should always review the target site's terms of service and ensure your use case complies with applicable laws and regulations, including GDPR where relevant.
Your feedback
If you have questions, need a feature, or found a bug, please open an issue on the actor's page in Apify Console. Your feedback helps us improve.
You might also like
- Actiris Brussels Job Scraper — Scrape all active job listings from actiris.brussels — official Brussels public employment service..
- Adzuna Job Scraper — Global Jobs with Salary & Coordinates — Scrape adzuna.com job listings across 19 country markets with structured salary data.
- APEC.fr Scraper - French Executive Jobs — Scrape apec.fr - French executive job listings with salary ranges, company, location, skills,.
- Arbeitsagentur Jobs Feed — German Federal Employment Agency — Extract job listings from arbeitsagentur.de — Germany's official public employment portal with 1M+.
- Arbeitsagentur Scraper - German Jobs — Scrape arbeitsagentur.de - Germany’s official employment portal with 1M+ listings. Contact data,.
- Arbetsformedlingen Job Scraper — Scrape arbetsformedlingen.se (Platsbanken) — Sweden's official employment portal. Returns 84.
- AutoScout24 Scraper — European Car Listings with Dealer Data — Scrape autoscout24.com - Europe's largest used car marketplace with 770K+ listings. Structured.
- Bayt.com Scraper — MENA Jobs with Salary & Skills Filter — Scrape bayt.com — the leading Middle East job board covering UAE, Saudi Arabia, Qatar, Egypt.
Getting started with Apify
New to Apify? Create a free account with $5 credit — no credit card required.
- Sign up — $5 platform credit included
- Open this actor and configure your input
- Click Start — export results as JSON, CSV, or Excel
Need more later? See Apify pricing.