{"description":"Searches the Kupujem Prodajem classifieds like its results page: title, link, price with currency, location and posting date. First results page (about 30 ads). Paid priority ads are dropped. Returns an empty list when nothing matches.","effect":"read","id":"kupujemprodajem.com/search-listings","keywords":["kupujemprodajem","kupujem prodajem","kp","oglasi","classifieds","srbija","serbia","polovno","rabljeno","bicikl","laptop","nameštaj","marketplace","ads"],"output":{"schema":{"properties":{"items":{"items":{"properties":{"currency":{"description":"Currency code as the site gives it, e.g. rsd","type":["string","null"]},"location":{"type":["string","null"]},"posted":{"description":"Posting time as shown by the site, YYYY-MM-DD HH:mm:ss","type":["string","null"]},"price":{"description":"Asking price in the listing currency; null when the seller asks for an offer","type":["number","null"]},"title":{"type":"string"},"url":{"type":"string"}},"required":["title","url"],"type":"object"},"type":"array"},"query":{"type":"string"}},"required":["query","items"],"type":"object"},"value":"{query: params.query, items: steps.search.ads[?name != `null` && ad_url != `null` && is_priority != `true`].{title: name, url: join('', ['https://www.kupujemprodajem.com', ad_url]), price: price || `null`, currency: currency || `null`, location: location_name || `null`, posted: posted || `null`}}"},"params":{"additionalProperties":false,"properties":{"query":{"description":"Search keywords in Serbian or English, e.g. 'bicikl', 'laptop', 'kauč'","maxLength":100,"minLength":2,"type":"string"}},"required":["query"],"type":"object"},"provenance":{"method":"har","notes":"GET /pretraga?keywords=…: the page's __NEXT_DATA__ JSON holds the search result ads (name, price, currency, location, posted, ad_url relative to the site). Sponsored article cards are not in that list and are not read. Ads flagged as priority promotions are dropped.","recorded_at":"2026-11-08T16:34:35.000Z","recorded_by":"wield-forge (claude-haiku agent)"},"requires_login":false,"schema":"https://wield.run/schema/recipe/v1.json","site":{"country":"RS","id":"kupujemprodajem.com","language":"sr","name":"Kupujem Prodajem","origin":"https://www.kupujemprodajem.com","origins":["https://www.kupujemprodajem.com"]},"steps":[{"description":"Results page /pretraga?keywords=…, read-only GET. The page embeds the ad list in the __NEXT_DATA__ script (search.lastSearchResult.ads), so the fields are read from that JSON, not from the card markup.","expect":{"assert":"status == `200` && contains(body, '__NEXT_DATA__')","content_type":"html","status":[200]},"extract":{"embedded_json":{"required":true,"selector":"script#__NEXT_DATA__","vars":{"ads":"props.initialReduxState.search.lastSearchResult.ads"}}},"id":"search","request":{"headers":{"Accept":"text/html"},"method":"GET","query":{"keywords":"{{params.query}}"},"url":"/pretraga"}}],"task":"Search classifieds on Kupujem Prodajem","tos":{"notes":"Not reviewed. One search page per call, the same page a visitor loads. The site's terms on automated access were not checked.","reviewed":false},"verify":{"checks":["length(output.items) > `0`","length(output.items[?starts_with(url, 'https://www.kupujemprodajem.com/')]) == length(output.items)","length(output.items[?title != `null`]) == length(output.items)"],"example_params":{"query":"bicikl"},"max_ms":5000},"version":1}