Extract willhaben.at listings as clean JSON with zero seller personal data - prices in cents, descriptions, postcode-level locations, business-vs-private flag. Newest-first monitoring, price bands, pay per result. Built for deal watching, market research and AI pipelines.
$1.99 / 1,000 · 83.3% success over 24 public runs in the last 30 days.
Run it on Apify → Free to try - runs bill per result on your own account.
Every field is optional unless marked; sensible defaults do the rest.
| Field | Type | What it does | Default |
|---|---|---|---|
searchQuery |
string | What to search for on willhaben's Marktplatz, exactly as you would type it in the site's search box, e.g. "fahrrad" or "iphone 15". | fahrrad |
priceMinEur |
integer | Only include listings costing at least this many euros. | - |
priceMaxEur |
integer | Only include listings costing at most this many euros. | - |
sortBy |
string | Order of results: date (newest first, best for monitoring), price_asc, price_desc, or relevance. | date |
postedAfter |
string | Only include listings posted on or after this date (YYYY-MM-DD or a full ISO timestamp). With newest-first sorting the run stops early once older listings are reached. | - |
postedBefore |
string | Only include listings posted on or before this date (YYYY-MM-DD or a full ISO timestamp). | - |
maxItems |
integer | Stop after this many listings. Free-plan runs are capped at 25 items. | 1000 |
One JSON object per result, with exactly these fields - no seller identities, no contact data, ever.
| Field | Type | Meaning |
|---|---|---|
listingId |
string | willhaben listing ID. |
url |
string | Direct link to the listing. |
title |
string | Listing title as posted. |
description |
string | Listing description as returned by the search page. |
priceCents |
integer | Asking price in euro cents. Absent when the listing has no numeric price. |
currency |
string | Always EUR when a price is present. |
priceDisplay |
string | The price exactly as willhaben displays it, e.g. '€ 50' or 'zu verschenken'. |
postedAt |
string | When the listing was published (ISO timestamp). |
changedAt |
string | When the listing was last changed by the seller. |
city |
string | Listing municipality. Municipality-level only - exact coordinates are never collected. |
postcode |
string | Austrian postcode of the listing. |
district |
string | Political district (Bezirk). |
state |
string | Austrian federal state (Bundesland). |
sellerType |
string | Whether the listing comes from a business or a private seller. The only seller-related field in the output. |
imageUrls |
array | Listing photo URLs (up to 8). |
83.3% success over 24 public runs in the last 30 days. Live record, failures included: status page.
Full documentation, examples and the AI-assistant prompt live on the store page.