{"description":"Searches Austria's largest classifieds site, the willhaben marketplace (Marktplatz), like the site's own search: title, price (and whether it is free), location with postcode and Bundesland, publish time, private or dealer, image and link. Optional price range, Bundesland and sort order.","effect":"read","id":"willhaben.at/search-marketplace","keywords":["willhaben","marktplatz","gebraucht","kaufen","flohmarkt","österreich","kleinanzeigen österreich","second hand","classifieds austria","used","marketplace"],"output":{"schema":{"properties":{"currency":{"const":"EUR"},"items":{"items":{"properties":{"description":{"description":"Description snippet","type":["string","null"]},"district":{"type":["string","null"]},"free":{"type":"boolean"},"id":{"type":"string"},"image_url":{"type":["string","null"]},"location":{"type":["string","null"]},"postcode":{"type":["string","null"]},"price_eur":{"type":["number","null"]},"price_text":{"type":["string","null"]},"private":{"description":"Private seller (false = dealer)","type":"boolean"},"published":{"description":"ISO 8601 UTC","type":["string","null"]},"state":{"type":["string","null"]},"title":{"type":"string"},"url":{"format":"uri","type":"string"}},"type":"object"},"type":"array"},"page":{"type":"integer"},"query":{"type":"string"},"total":{"description":"All matching ads","type":"integer"}},"required":["query","total","items"],"type":"object"},"value":"{query: params.query, total: steps.search[0].total, page: params.page, currency: 'EUR', items: steps.search[0].items}"},"params":{"additionalProperties":false,"properties":{"max_price":{"description":"EUR","minimum":1,"type":"integer"},"min_price":{"description":"EUR","minimum":0,"type":"integer"},"page":{"default":1,"description":"30 results per page","maximum":50,"minimum":1,"type":"integer"},"query":{"description":"What to search for, e.g. 'fahrrad', 'kinderwagen'","maxLength":100,"minLength":1,"type":"string"},"sort":{"default":7,"description":"7 = relevance, 1 = newest first, 3 = cheapest first, 4 = most expensive first","enum":[1,3,4,7],"type":"integer"},"state":{"description":"Bundesland; omit for all of Austria","enum":["Burgenland","Kärnten","Niederösterreich","Oberösterreich","Salzburg","Steiermark","Tirol","Vorarlberg","Wien"],"type":"string"}},"required":["query"],"type":"object"},"provenance":{"method":"browser-inspect","notes":"spikes/willhaben.md. Next.js pages-router SSR: script#__NEXT_DATA__ holds the full search result (30 ads/page) with each ad's attributes as name/values pairs. Filter params come from the page's own navigators: PRICE_FROM, PRICE_TO, areaId (Bundesland ids 1-8, Wien 900), sort (1 newest, 2 distance, 3 price asc, 4 price desc, 7 relevance). Answers curl without cookies; Cloudflare in front.","recorded_at":"2026-11-07T12:23:00+01:00","recorded_by":"C4"},"requires_login":false,"schema":"https://wield.run/schema/recipe/v1.json","site":{"country":"AT","id":"willhaben.at","language":"de","login_url":"https://www.willhaben.at/iad/myprofile/login","name":"willhaben","origin":"https://www.willhaben.at","origins":["https://www.willhaben.at"]},"steps":[{"description":"Server-rendered search page (Next.js pages router); the result list is in script#__NEXT_DATA__. The one-item foreach only maps the Bundesland name to willhaben's areaId.","expect":{"content_type":"html","status":[200]},"extract":{"embedded_json":{"selector":"script#__NEXT_DATA__","vars":{"items":"map(&(let $a = attributes.attribute in {id: id, title: ($a[?name=='HEADING'].values[0] | [0]), price_eur: ($a[?name=='PRICE'].values[0] | [0]) && to_number(($a[?name=='PRICE'].values[0] | [0])) || `null`, free: contains(($a[?name=='PRICE_FOR_DISPLAY'].values[0] | [0]) || '', 'verschenken'), price_text: ($a[?name=='PRICE_FOR_DISPLAY'].values[0] | [0]), location: ($a[?name=='LOCATION'].values[0] | [0]), postcode: ($a[?name=='POSTCODE'].values[0] | [0]), district: ($a[?name=='DISTRICT'].values[0] | [0]), state: ($a[?name=='STATE'].values[0] | [0]), published: ($a[?name=='PUBLISHED_String'].values[0] | [0]), private: ($a[?name=='ISPRIVATE'].values[0] | [0]) == '1', url: join('', ['https://www.willhaben.at/iad/', ($a[?name=='SEO_URL'].values[0] | [0]) || '']), image_url: advertImageList.advertImage[0].mainImageUrl || `null`, description: ($a[?name=='BODY_DYN'].values[0] | [0])}), props.pageProps.searchResult.advertSummaryList.advertSummary || `[]`)","total":"props.pageProps.searchResult.rowsFound"}}},"foreach":{"as":"loc","in":"let $s = lower(params.state || ''), $m = [['burgenland', '1'], ['kärnten', '2'], ['kaernten', '2'], ['niederösterreich', '3'], ['niederoesterreich', '3'], ['oberösterreich', '4'], ['oberoesterreich', '4'], ['salzburg', '5'], ['steiermark', '6'], ['tirol', '7'], ['vorarlberg', '8'], ['wien', '900']] in [{area: ($m[?[0] == $s] | [0][1]) || `null`}]","max":1},"id":"search","parse":"html","request":{"headers":{"Accept":"text/html"},"method":"GET","query":{"PRICE_FROM":"{{params.min_price}}","PRICE_TO":"{{params.max_price}}","areaId":"{{loc.area}}","keyword":"{{params.query}}","page":"{{params.page}}","rows":"30","sort":"{{params.sort}}"},"url":"/iad/kaufen-und-verkaufen/marktplatz"}}],"task":"Search the willhaben marketplace (Austria) for second-hand items","tos":{"notes":"willhaben's terms prohibit automated reading of ads. One user-initiated search page at a time from the user's own browser. Contacting sellers stays on willhaben.at.","reviewed":false},"verify":{"checks":["length(output.items) > `10`","output.total > `100`","length(output.items[?price_eur > `300`]) == `0`","length(output.items[?state != 'Wien']) == `0`","starts_with(output.items[0].url, 'https://www.willhaben.at/iad/')"],"example_params":{"max_price":300,"query":"fahrrad","sort":3,"state":"Wien"},"max_ms":5000},"version":1}