{"description":"Searches Publi24.ro, the Romanian classifieds site, like its search page: title, price in RON, location, short description and listing link. Promoted ('Promovat') listings are left out. First results page only.","effect":"read","id":"publi24.ro/search-listings","keywords":["publi24","publi24.ro","anunturi","anunțuri","anunturi gratuite","clasificate","vanzari","vânzări","romania","second hand","classifieds","marketplace","ieftin","bicicleta"],"output":{"schema":{"properties":{"items":{"items":{"properties":{"description":{"description":"Short text from the listing, may be truncated","type":["string","null"]},"location":{"description":"City and district, e.g. 'Sibiu, Sibiu'","type":["string","null"]},"price_ron":{"description":"Asking price in RON, null when not shown or not a number","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.listings[?title != `null` && href != `null` && promoted == `null`].{title: title, price_ron: (price && to_number(replace(replace(replace(price, 'RON', ''), ' ', ''), ' ', ''))) || `null`, location: location || `null`, description: description || `null`, url: href}}"},"params":{"additionalProperties":false,"properties":{"query":{"description":"What to look for, e.g. 'bicicleta', 'laptop', 'canapea'","maxLength":100,"minLength":2,"type":"string"}},"required":["query"],"type":"object"},"provenance":{"method":"har","notes":"GET /hirdetesek?q=<query> (the search form's action) returns 200 HTML. Regular listings are div.article-item under .article-list with title link, span.article-price (e.g. '1 500 RON'), p.article-location and p.article-description. Promoted listings sit above them with a .art-promoted badge and are dropped. The JSON-LD ItemList on the page is not valid JSON, so the HTML is read instead. Listing links are absolute.","recorded_at":"2026-11-08T16:20:00.000Z","recorded_by":"wield-forge (claude-haiku agent)"},"requires_login":false,"schema":"https://wield.run/schema/recipe/v1.json","site":{"country":"RO","id":"publi24.ro","language":"ro","name":"Publi24","origin":"https://www.publi24.ro","origins":["https://www.publi24.ro"]},"steps":[{"description":"Server-rendered search results page /hirdetesek?q=...; read-only GET. Regular listings are div.article-item inside .article-list; promoted ones carry a .art-promoted badge and are dropped.","expect":{"content_type":"html","status":[200]},"extract":{"html_items":{"listings":{"fields":{"description":{"selector":"p.article-description"},"href":{"attr":"href","selector":"h2.article-title a"},"location":{"selector":"p.article-location span"},"price":{"selector":"span.article-price"},"promoted":{"selector":".art-promoted"},"title":{"selector":"h2.article-title a"}},"max":60,"selector":".article-list .article-item"}}},"id":"search","request":{"headers":{"Accept":"text/html"},"method":"GET","query":{"q":"{{params.query}}"},"url":"/hirdetesek"}}],"task":"Search classifieds on Publi24","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[?price_ron != `null`]) > `0`","length(output.items[?starts_with(url, 'https://www.publi24.ro/')]) == length(output.items)"],"example_params":{"query":"bicicleta"},"max_ms":5000},"version":1}