Install

Search cooking recipes with rating, difficulty and preparation time.

Searches Chefkoch, Germany's largest recipe site, like the site's own search: title, short description, star rating and number of votes, difficulty, preparation time, video flag, whether it is paywalled (Chefkoch Plus), image and link. Sponsored brand recipes are dropped by default.

No reports yetRead-only, no login
Site
Chefkoch, Germany
Version
v1
Runs, last 7 days
No reports yet
sha256
743f29e04b34…

Requests

sent from your browser, in order
  1. 1GETapi.chefkoch.de/v2/search-gateway/recipes?limit&offset&queryChefkoch's public search gateway, cross-origin from www.chefkoch.de (CORS allows it). The one-item foreach only computes the offset.no cookiesrepeats, max 1

Parameters

from your agent
include_sponsoredbooleanKeep brand-campaign recipes (marked sponsored) = false
limitenum 10 | 20 | 50 = 20
pageinteger = 1
querystringrequiredDish or ingredients, e.g. 'lasagne', 'kürbissuppe', 'vegan schnell'

Returns

to your agent
pageinteger
querystring
recipesobject[]difficulty, has_video, id, image_url, plus_only, prep_time_min, rating, sponsored, subtitle, title, url, votes
totalinteger

Where it can send

  • api.chefkoch.de

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) > `5`
  • output.total > `100`
  • output.recipes[0].rating > `0`
  • starts_with(output.recipes[0].url, 'https://www.chefkoch.de/rezepte/')
  • length(output.recipes[?sponsored]) == `0`

Raw recipe

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

Check it yourself
curl -s https://wield.run/api/v1/recipes/chefkoch.de/search-recipes | shasum -a 256
# 743f29e04b34bbf5149e98d5f38e46d2c76910feb6c8b6760276ebf7ce470473
chefkoch.de/search-recipes.json, v1
{
  "description": "Searches Chefkoch, Germany's largest recipe site, like the site's own search: title, short description, star rating and number of votes, difficulty, preparation time, video flag, whether it is paywalled (Chefkoch Plus), image and link. Sponsored brand recipes are dropped by default.",
  "effect": "read",
  "id": "chefkoch.de/search-recipes",
  "keywords": [
    "chefkoch",
    "rezept",
    "rezepte",
    "kochen",
    "backen",
    "abendessen",
    "vegetarisch",
    "lasagne",
    "recipe",
    "recipes",
    "cooking",
    "what to cook",
    "dinner ideas"
  ],
  "output": {
    "schema": {
      "properties": {
        "page": {
          "type": "integer"
        },
        "query": {
          "type": "string"
        },
        "recipes": {
          "items": {
            "properties": {
              "difficulty": {
                "enum": [
                  "simple",
                  "normal",
                  "advanced",
                  null
                ]
              },
              "has_video": {
                "type": "boolean"
              },
              "id": {
                "type": "string"
              },
              "image_url": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "plus_only": {
                "description": "Full recipe needs a Chefkoch Plus subscription",
                "type": "boolean"
              },
              "prep_time_min": {
                "description": "Active preparation time in minutes",
                "type": [
                  "integer",
                  "null"
                ]
              },
              "rating": {
                "description": "0-5 stars",
                "type": [
                  "number",
                  "null"
                ]
              },
              "sponsored": {
                "type": "boolean"
              },
              "subtitle": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "title": {
                "type": "string"
              },
              "url": {
                "format": "uri",
                "type": "string"
              },
              "votes": {
                "type": "integer"
              }
            },
            "type": "object"
          },
          "type": "array"
        },
        "total": {
          "type": "integer"
        }
      },
      "required": [
        "query",
        "total",
        "recipes"
      ],
      "type": "object"
    },
    "value": "let $sp = params.include_sponsored in {query: params.query, total: steps.search[0].total, page: params.page, recipes: steps.search[0].recipes[?$sp || !sponsored]}"
  },
  "params": {
    "additionalProperties": false,
    "properties": {
      "include_sponsored": {
        "default": false,
        "description": "Keep brand-campaign recipes (marked sponsored)",
        "type": "boolean"
      },
      "limit": {
        "default": 20,
        "enum": [
          10,
          20,
          50
        ],
        "type": "integer"
      },
      "page": {
        "default": 1,
        "maximum": 20,
        "minimum": 1,
        "type": "integer"
      },
      "query": {
        "description": "Dish or ingredients, e.g. 'lasagne', 'kürbissuppe', 'vegan schnell'",
        "maxLength": 100,
        "minLength": 2,
        "type": "string"
      }
    },
    "required": [
      "query"
    ],
    "type": "object"
  },
  "provenance": {
    "method": "browser-inspect",
    "notes": "spikes/chefkoch.md. Public JSON search gateway used by chefkoch.de; CORS allows https://www.chefkoch.de (with credentials) and no cookies or tokens are needed, so credentials omit. Non-null campaign = brand-sponsored recipe; isPlus = paywalled. difficulty 1/2/3 = simpel/normal/pfiffig.",
    "recorded_at": "2026-11-07T12:27:00+01:00",
    "recorded_by": "C4"
  },
  "requires_login": false,
  "schema": "https://wield.run/schema/recipe/v1.json",
  "site": {
    "country": "DE",
    "id": "chefkoch.de",
    "language": "de",
    "login_url": "https://www.chefkoch.de/benutzer/einloggen",
    "name": "Chefkoch",
    "origin": "https://www.chefkoch.de",
    "origins": [
      "https://api.chefkoch.de"
    ]
  },
  "steps": [
    {
      "description": "Chefkoch's public search gateway, cross-origin from www.chefkoch.de (CORS allows it). The one-item foreach only computes the offset.",
      "expect": {
        "assert": "body.results != null",
        "content_type": "json",
        "status": [
          200
        ]
      },
      "extract": {
        "json": {
          "recipes": "results[].recipe.{id: id, title: title, subtitle: subtitle || `null`, rating: rating.rating || `null`, votes: rating.numVotes || `0`, difficulty: difficulty == `1` && 'simple' || (difficulty == `2` && 'normal' || (difficulty == `3` && 'advanced' || `null`)), prep_time_min: preparationTime || `null`, has_video: hasVideo == `true`, plus_only: isPlus == `true`, sponsored: campaign != `null`, image_url: previewImageUrlTemplate && replace(previewImageUrlTemplate, '<format>', 'crop-480x360') || `null`, url: siteUrl}",
          "total": "count"
        }
      },
      "foreach": {
        "as": "pg",
        "in": "[{offset: (params.page - `1`) * params.limit}]",
        "max": 1
      },
      "id": "search",
      "request": {
        "credentials": "omit",
        "headers": {
          "Accept": "application/json"
        },
        "method": "GET",
        "query": {
          "limit": "{{params.limit}}",
          "offset": "{{pg.offset}}",
          "query": "{{params.query}}"
        },
        "url": "https://api.chefkoch.de/v2/search-gateway/recipes"
      }
    }
  ],
  "task": "Search cooking recipes with rating, difficulty and preparation time",
  "tos": {
    "notes": "Chefkoch's terms restrict automated use of its content. One user-initiated search at a time from the user's browser (1 request); recipe texts stay on chefkoch.de via the link.",
    "reviewed": false
  },
  "verify": {
    "checks": [
      "length(output.recipes) > `5`",
      "output.total > `100`",
      "output.recipes[0].rating > `0`",
      "starts_with(output.recipes[0].url, 'https://www.chefkoch.de/rezepte/')",
      "length(output.recipes[?sponsored]) == `0`"
    ],
    "example_params": {
      "limit": 10,
      "query": "lasagne"
    },
    "max_ms": 3000
  },
  "version": 1
}