{"description":"Searches the Valio recipe site like its search page: recipe title, link, average rating (1 to 5) and total time. First results page only (about 20 recipes). Returns an empty list when nothing matches.","effect":"read","id":"valio.fi/search-recipes","keywords":["valio","valio.fi","reseptit","resepti","ruoka","leivonta","pannukakku","juustokakku","keittiö","recipes","finnish food","cooking","finland","suomi"],"output":{"schema":{"properties":{"query":{"type":"string"},"recipes":{"items":{"properties":{"rating":{"description":"Average stars, 0 to 5","type":["number","null"]},"title":{"type":"string"},"total_time":{"description":"Total time as shown, e.g. '1 h 15 min'","type":["string","null"]},"url":{"type":"string"}},"required":["title","url"],"type":"object"},"type":"array"}},"required":["query","recipes"],"type":"object"},"value":"{query: params.query, recipes: steps.search.recipes[?title != `null` && href != `null`].{title: title, rating: (rating && to_number(rating)) || `null`, total_time: total_time || `null`, url: (starts_with(href, 'http') && href) || join('', ['https://www.valio.fi', href])}}"},"params":{"additionalProperties":false,"properties":{"query":{"description":"Dish or ingredient in Finnish, e.g. 'pannukakku', 'lohikeitto', 'juustokakku'","maxLength":100,"minLength":2,"type":"string"}},"required":["query"],"type":"object"},"provenance":{"method":"har","notes":"GET /?s=<query> returns 200 HTML with the recipe cards (article.vl-block-recipe-card, 23 on the page). Title from h3.vl-block-recipe-card__title, link href is already absolute, rating and time are text in the card footer. The page also has JSON-LD and a site-wide menu, which are not read. No cross-site hosts are called.","recorded_at":"2026-11-08T12:10:00.000Z","recorded_by":"wield-forge (claude-haiku agent)"},"requires_login":false,"schema":"https://wield.run/schema/recipe/v1.json","site":{"country":"FI","id":"valio.fi","language":"fi","name":"Valio","origin":"https://www.valio.fi","origins":["https://www.valio.fi"]},"steps":[{"description":"Server-rendered search results page /?s=…; read-only GET. Each recipe is article.vl-block-recipe-card; its title is h3.vl-block-recipe-card__title, its link a.vl-block-recipe-card__link, its rating .vl-block-recipe-card__rating and its time .vl-block-recipe-card__time.","expect":{"content_type":"html","status":[200]},"extract":{"html_items":{"recipes":{"fields":{"href":{"attr":"href","selector":"a.vl-block-recipe-card__link"},"rating":{"selector":".vl-block-recipe-card__rating"},"title":{"selector":"h3.vl-block-recipe-card__title"},"total_time":{"selector":".vl-block-recipe-card__time"}},"max":40,"selector":"article.vl-block-recipe-card"}}},"id":"search","request":{"headers":{"Accept":"text/html"},"method":"GET","query":{"s":"{{params.query}}"},"url":"/"}}],"task":"Search recipes on Valio","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.recipes) > `0`","length(output.recipes[?starts_with(url, 'https://www.valio.fi/reseptit/')]) == length(output.recipes)","length(output.recipes[?title != `null`]) == length(output.recipes)"],"example_params":{"query":"pannukakku"},"max_ms":5000},"version":1}