{"description":"Searches Gumtree, the UK's classifieds site, like its search page: title, price in GBP, location, short description, a photo and the link, for a query near a place, with a price range, distance and sort. Featured (paid) ads are dropped by default; Urgent ads are kept and marked.","effect":"read","id":"gumtree.com/search-listings","keywords":["gumtree","classifieds","for sale","second hand","used","buy","sell","bike","furniture","sofa","free","uk","london","manchester","marketplace"],"output":{"schema":{"properties":{"listings":{"items":{"properties":{"description":{"type":["string","null"]},"featured":{"description":"Paid Featured ad","type":"boolean"},"id":{"type":["string","null"]},"image":{"type":["string","null"]},"location":{"type":["string","null"]},"price_gbp":{"type":["number","null"]},"price_text":{"description":"As shown, e.g. '£120', '£15pw'","type":["string","null"]},"title":{"type":"string"},"urgent":{"type":"boolean"},"url":{"type":"string"}},"type":"object"},"type":"array"},"location":{"type":["string","null"]},"page":{"type":"integer"},"query":{"type":"string"},"total":{"description":"From the page heading ('1,779 ads for …')","type":["integer","null"]}},"required":["query","listings"],"type":"object"},"value":"let $feat = params.include_featured == `true`, $h = steps.search[0].heading || '' in {query: params.query, location: params.location || 'uk', total: contains($h, ' ad') && to_number(replace(split($h, ' ')[0], ',', '')) || `null`, page: params.page || `1`, listings: map(&(let $a = @ in let $p = $a.price && replace(replace(split($a.price, ' ')[0], '£', ''), ',', '') || '' in {id: $a.href && split($a.href, '/')[-1] || `null`, title: $a.title, price_gbp: $p && to_number($p) || `null`, price_text: $a.price || `null`, location: $a.location || `null`, description: $a.description || `null`, featured: contains($a.badges || '', 'Featured'), urgent: contains($a.badges || '', 'Urgent'), image: $a.image || `null`, url: join('', ['https://www.gumtree.com', $a.href])}), steps.search[0].ads[?href && title] || `[]`)[?$feat || !featured]}"},"params":{"additionalProperties":false,"properties":{"category":{"description":"Gumtree category; default all, or for-sale when a price range is given (Gumtree applies price filters only within a category)","enum":["all","for-sale","cars-vans-motorbikes","property","jobs","services","pets","community"],"type":"string"},"distance_miles":{"description":"Radius around the location","enum":[1,3,5,10,15,30,50,75,100],"type":"integer"},"include_featured":{"default":false,"description":"Keep Featured (paid) ads, marked","type":"boolean"},"location":{"default":"uk","description":"Town, area or postcode, e.g. 'london', 'manchester', 'SW1A 1AA'; 'uk' for everywhere","maxLength":60,"minLength":2,"type":"string"},"max_price":{"description":"GBP","minimum":0,"type":"integer"},"min_price":{"description":"GBP","minimum":0,"type":"integer"},"page":{"default":1,"maximum":20,"minimum":1,"type":"integer"},"query":{"description":"What to look for, e.g. 'road bike', 'sofa', 'iphone 13'","maxLength":100,"minLength":2,"type":"string"},"sort":{"default":"relevance","enum":["relevance","newest","price_low","price_high"],"type":"string"}},"required":["query"],"type":"object"},"provenance":{"method":"browser-inspect","notes":"gumtree.com/search?search_category=all&q=…&search_location=… is server-rendered (Emotion CSS-in-JS; <style> tags sit inside the cards, the interpreter's visible text skips them). Cards: [data-q=search-result] with a[data-q=search-result-anchor], [data-q=tile-title], [data-q=tile-price], [data-q=tile-location], [data-q=tile-description] and a badges box ('Featured' = paid placement, 'Urgent' = paid flag on a genuine ad). The page's ld+json ItemList carries only URLs. The total comes from the H1 ('1,779 ads for road bike in London'). Parameters as the search form sends them (search_category: all, for-sale, …; the price range is applied only within a category, so the recipe uses for-sale when a price is given without a category): min_price, max_price, distance, sort (date, price_lowest_first, price_highest_first), page. robots.txt has no rules for Claude-User or anthropic agents and allows /search. Servers get a bot check: after 6 requests in ~10 minutes Gumtree answered HTTP 247 (its own bot-management status), so the example passed live once from Node and the variants are untested; expect health checks from servers to be blocked (browser-only).","recorded_at":"2026-11-07T22:25:00+01:00","recorded_by":"C4"},"requires_login":false,"schema":"https://wield.run/schema/recipe/v1.json","site":{"country":"GB","id":"gumtree.com","language":"en","name":"Gumtree","origin":"https://www.gumtree.com","origins":["https://www.gumtree.com"]},"steps":[{"description":"The server-rendered search page /search with the same parameters the site's search form sends. Cards are read from their data-q attributes (the page's ld+json lists only links). The one-item foreach maps the sort.","expect":{"content_type":"html","status":[200]},"extract":{"html":{"heading":{"selector":"h1"}},"html_items":{"ads":{"fields":{"badges":{"selector":"[data-testid=\"rh-standard-card-badges\"]"},"description":{"selector":"[data-q=\"tile-description\"]"},"href":{"attr":"href","selector":"a[data-q=\"search-result-anchor\"]"},"image":{"attr":"src","selector":"img"},"location":{"selector":"[data-q=\"tile-location\"]"},"price":{"selector":"[data-q=\"tile-price\"]"},"title":{"selector":"[data-q=\"tile-title\"]"}},"max":60,"selector":"[data-q=\"search-result\"]"}}},"foreach":{"as":"f","in":"[{cat: params.category || ((params.min_price || params.max_price) && 'for-sale') || 'all', sort: (params.sort == 'newest' && 'date') || (params.sort == 'price_low' && 'price_lowest_first') || (params.sort == 'price_high' && 'price_highest_first') || `null`, page: (params.page || `1`) > `1` && to_string(params.page) || `null`}]","max":1},"id":"search","parse":"html","request":{"headers":{"Accept":"text/html"},"method":"GET","query":{"distance":"{{params.distance_miles}}","max_price":"{{params.max_price}}","min_price":"{{params.min_price}}","page":"{{f.page}}","q":"{{params.query}}","search_category":"{{f.cat}}","search_location":"{{params.location}}","sort":"{{f.sort}}"},"url":"/search"}}],"task":"Search Gumtree classifieds in the UK","tos":{"notes":"robots.txt has no AI-agent rules (no Claude-User, ClaudeBot or anthropic-ai group, no Content-Signal), checked 2026-11-07. Terms not reviewed yet for automated access. One person's search: 1 request for one results page, as the site serves it. Replies to sellers stay on gumtree.com.","reviewed":false},"verify":{"checks":["length(output.listings) > `10`","output.total > `20`","length(output.listings[?featured]) == `0`","length(output.listings[?price_gbp > `300`]) == `0`","length(output.listings[?starts_with(url, 'https://www.gumtree.com/p/') && title != `null`]) == length(output.listings)"],"example_params":{"location":"london","max_price":300,"query":"road bike","sort":"newest"},"max_ms":6000},"version":1}