Sign inTry it

Search recipes on Valio.

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.

No reports yetRead-only, no login
Site
Valio, Finland
Version
v1
Runs, last 7 days
No reports yet
sha256
9bcfcb7a93d4…

Run it with your agent

after installing Wield

Ask in plain words. Your agent finds this recipe and calls it:

“Search recipes on Valio.”

Read-only: it changes nothing on the site. No login needed.

{
  "tool": "run",
  "arguments": {
    "recipe_id": "valio.fi/search-recipes",
    "params": {
      "query": "pannukakku"
    }
  }
}

Requests

sent from your browser, in order
  1. 1GET/?sServer-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.

Parameters

from your agent
querystringrequiredDish or ingredient in Finnish, e.g. 'pannukakku', 'lohikeitto', 'juustokakku'

Returns

to your agent
querystring
recipesobject[]rating, title, total_time, url

Where it can send

  • www.valio.fi

Anything else is blocked by the extension.

Reads from your session

Nothing. Your browser attaches the site's cookies by itself.

Used only in requests to the addresses on the left. Never sent to wield.run or your agent.

Checks

a run passes when
  • 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)

Raw recipe

Served as canonical JSON from /api/v1/recipes/valio.fi/search-recipes, so its sha256 matches the ETag and the index.

Check it yourself
curl -s https://wield.run/api/v1/recipes/valio.fi/search-recipes | shasum -a 256
# 9bcfcb7a93d466e3452571553f84b29e640a27e7eacca3de35fa6e1a434493e4
valio.fi/search-recipes.json, v1
{
  "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
}