{"description":"Searches OnTheMarket, the UK property portal, like its list pages: homes to rent or buy in a town, area or postcode district, with title, address, price (monthly rent or asking price) and price qualifier, bedrooms, bathrooms, property type, when added or reduced, agent, map position and link. Filters: price range, minimum bedrooms, sort. Paid spotlight listings are dropped by default.","effect":"read","id":"onthemarket.com/search-properties","keywords":["onthemarket","property","to rent","for sale","flat","house","rent","buy","uk","london","estate agent","homes","rightmove alternative"],"output":{"schema":{"properties":{"channel":{"type":"string"},"location":{"type":"string"},"page":{"type":"integer"},"properties":{"items":{"properties":{"added":{"description":"As shown, e.g. 'Added yesterday', 'Reduced 3 days ago'","type":["string","null"]},"address":{"type":["string","null"]},"agent":{"type":["string","null"]},"bathrooms":{"type":["integer","null"]},"bedrooms":{"type":["integer","null"]},"id":{"type":"string"},"latitude":{"type":["number","null"]},"longitude":{"type":["number","null"]},"price_gbp":{"description":"Monthly rent or asking price","type":["number","null"]},"price_qualifier":{"description":"e.g. 'Guide price', 'Offers over'","type":["string","null"]},"price_text":{"description":"e.g. '£1,700 pcm (£392 pw)'","type":["string","null"]},"promoted":{"description":"Paid spotlight listing","type":"boolean"},"property_type":{"type":["string","null"]},"title":{"type":["string","null"]},"url":{"type":"string"}},"type":"object"},"type":"array"},"total":{"type":["integer","null"]}},"required":["location","properties"],"type":"object"},"value":"let $keep = params.include_spotlight == `true`, $s = steps.search[0] in {location: params.location, channel: params.channel || 'rent', total: $s.total || `0`, page: params.page || `1`, properties: map(&(let $p = @ in {id: $p.id, title: $p.\"property-title\" || `null`, address: $p.address || `null`, price_gbp: $p.price && to_number(replace(replace(split($p.price, ' ')[0], '£', ''), ',', '')) || `null`, price_text: $p.price || `null`, price_qualifier: $p.\"price-qualifier\" || `null`, bedrooms: $p.bedrooms || `null`, bathrooms: $p.bathrooms || `null`, property_type: $p.\"humanised-property-type\" || `null`, added: $p.\"days-since-added-reduced\" || `null`, agent: $p.agent.name || `null`, latitude: $p.location.lat || `null`, longitude: $p.location.lon || `null`, promoted: $p.\"spotlight?\" == `true`, url: $p.\"details-url\" && join('', ['https://www.onthemarket.com', $p.\"details-url\"]) || `null`}), ($s.list || `[]`)[?id != `null` && \"details-url\" != `null`])[?$keep || !promoted]}"},"params":{"additionalProperties":false,"properties":{"channel":{"default":"rent","enum":["rent","buy"],"type":"string"},"include_spotlight":{"default":false,"description":"Keep paid spotlight listings (marked promoted)","type":"boolean"},"location":{"description":"Town, area or postcode district as OnTheMarket names it, e.g. 'london', 'manchester', 'sw11', 'bristol'","maxLength":60,"minLength":2,"type":"string"},"max_price":{"description":"GBP (per month when renting)","minimum":0,"type":"integer"},"min_bedrooms":{"maximum":10,"minimum":0,"type":"integer"},"min_price":{"description":"GBP (per month when renting)","minimum":0,"type":"integer"},"page":{"default":1,"maximum":20,"minimum":1,"type":"integer"},"sort":{"default":"recommended","enum":["recommended","price_low","price_high","newest"],"type":"string"}},"required":["location"],"type":"object"},"provenance":{"method":"browser-inspect","notes":"List pages /to-rent/property/<location>/ and /for-sale/property/<location>/ with min-price, max-price, min-bedrooms, sort-field (price, update_date), direction=asc and page; the results (list of 30, totalResults) are in __NEXT_DATA__ props.pageProps.initialReduxState.results. The price is the first token of the full price text ('£400,000', '£1,700 pcm (£392 pw)'); short-price abbreviates sale prices ('£400k'). Keys are hyphenated (\"short-price\", \"spotlight?\") and quoted in JMESPath. Spotlight listings are paid placements. robots.txt gives ClaudeBot a crawl delay only. Answers servers.","recorded_at":"2026-11-07T22:33:00+01:00","recorded_by":"C4"},"requires_login":false,"schema":"https://wield.run/schema/recipe/v1.json","site":{"country":"GB","id":"onthemarket.com","language":"en","name":"OnTheMarket","origin":"https://www.onthemarket.com","origins":["https://www.onthemarket.com"]},"steps":[{"description":"The list page (server-rendered; results in the page's Redux state). The one-item foreach builds the path and sort.","expect":{"content_type":"html","status":[200]},"extract":{"embedded_json":{"selector":"script#__NEXT_DATA__","vars":{"list":"props.pageProps.initialReduxState.results.list","total":"props.pageProps.initialReduxState.results.totalResults"}}},"foreach":{"as":"f","in":"[{path: params.channel == 'buy' && 'for-sale' || 'to-rent', loc: replace(lower(trim(params.location)), ' ', '-'), field: (params.sort == 'price_low' || params.sort == 'price_high') && 'price' || (params.sort == 'newest' && 'update_date') || `null`, dir: params.sort == 'price_low' && 'asc' || `null`, page: (params.page || `1`) > `1` && to_string(params.page) || `null`}]","max":1},"id":"search","request":{"headers":{"Accept":"text/html"},"method":"GET","query":{"direction":"{{f.dir}}","max-price":"{{params.max_price}}","min-bedrooms":"{{params.min_bedrooms}}","min-price":"{{params.min_price}}","page":"{{f.page}}","sort-field":"{{f.field}}"},"url":"/{{f.path}}/property/{{f.loc | urlencode}}/"}}],"task":"Search UK homes to rent or buy on OnTheMarket","tos":{"notes":"One list page per call, the same page a visitor sees; no enquiries to agents.","reviewed":false},"verify":{"checks":["length(output.properties) > `10`","output.total > `100`","length(output.properties[?price_gbp > `2000`]) == `0`","length(output.properties[?bedrooms < `2`]) == `0`","length(output.properties[?promoted]) == `0`","length(output.properties[?starts_with(url, 'https://www.onthemarket.com/details/')]) == length(output.properties)"],"example_params":{"channel":"rent","location":"london","max_price":2000,"min_bedrooms":2},"max_ms":5000},"version":1}