Sign inTry it

Search albums on laut.de.

Searches laut.de like its search page and returns the album results: album title, artist and the laut.de link. Artist, news and event results are left out. First page of results only.

No reports yetRead-only, no login
Site
laut.de, Germany
Version
v1
Runs, last 7 days
No reports yet
sha256
3574d9c33d13…

Run it with your agent

after installing Wield

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

“Search albums on laut.de.”

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

{
  "tool": "run",
  "arguments": {
    "recipe_id": "laut.de/search-titles",
    "params": {
      "query": "Kraftwerk"
    }
  }
}

Requests

sent from your browser, in order
  1. 1GET/Suche?qServer-rendered search page /Suche?q=... (read-only GET). Album tiles are li.release; the artist is the span and the album title the strong in its h3, the link is a.bottom.

Parameters

from your agent
querystringrequiredArtist, band or album name, e.g. 'Kraftwerk', 'Die Ärzte', 'Tocotronic'

Returns

to your agent
querystring
releasesobject[]artist, title, url

Where it can send

  • laut.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.releases) > `0`
  • length(output.releases[?starts_with(url, 'https://laut.de/')]) == length(output.releases)
  • length(output.releases[?title != `null`]) == length(output.releases)

Raw recipe

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

Check it yourself
curl -s https://wield.run/api/v1/recipes/laut.de/search-titles | shasum -a 256
# 3574d9c33d1374eb3435a5f6c6a984a2a40a8633caf93fbb848e1022e9c0b597
laut.de/search-titles.json, v1
{
  "description": "Searches laut.de like its search page and returns the album results: album title, artist and the laut.de link. Artist, news and event results are left out. First page of results only.",
  "effect": "read",
  "id": "laut.de/search-titles",
  "keywords": [
    "laut.de",
    "laut",
    "musik",
    "alben",
    "album",
    "band",
    "rock",
    "pop",
    "metal",
    "hip hop",
    "music",
    "albums",
    "artists",
    "germany"
  ],
  "output": {
    "schema": {
      "properties": {
        "query": {
          "type": "string"
        },
        "releases": {
          "items": {
            "properties": {
              "artist": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "title": {
                "description": "Album title",
                "type": "string"
              },
              "url": {
                "type": "string"
              }
            },
            "required": [
              "title",
              "url"
            ],
            "type": "object"
          },
          "type": "array"
        }
      },
      "required": [
        "query",
        "releases"
      ],
      "type": "object"
    },
    "value": "{query: params.query, releases: steps.search.releases[?title != `null` && href != `null`].{title: title, artist: artist || `null`, url: join('', ['https://laut.de', href])}}"
  },
  "params": {
    "additionalProperties": false,
    "properties": {
      "query": {
        "description": "Artist, band or album name, e.g. 'Kraftwerk', 'Die Ärzte', 'Tocotronic'",
        "maxLength": 100,
        "minLength": 2,
        "type": "string"
      }
    },
    "required": [
      "query"
    ],
    "type": "object"
  },
  "provenance": {
    "method": "har",
    "notes": "GET /Suche?q=..., server-rendered HTML with li.release album tiles (artist in h3.teasertitel span, album title in h3.teasertitel strong, link in a.bottom). Artist, news and event results are not returned. The page redirects nothing; the search runs on laut.de without www.",
    "recorded_at": "2026-11-08T16:14:53.000Z",
    "recorded_by": "wield-forge (claude-haiku agent)"
  },
  "requires_login": false,
  "schema": "https://wield.run/schema/recipe/v1.json",
  "site": {
    "country": "DE",
    "id": "laut.de",
    "language": "de",
    "name": "laut.de",
    "origin": "https://laut.de",
    "origins": [
      "https://laut.de"
    ]
  },
  "steps": [
    {
      "description": "Server-rendered search page /Suche?q=... (read-only GET). Album tiles are li.release; the artist is the span and the album title the strong in its h3, the link is a.bottom.",
      "expect": {
        "assert": "status == `200` && contains(body, 'search-results')",
        "content_type": "html",
        "status": [
          200
        ]
      },
      "extract": {
        "html_items": {
          "releases": {
            "fields": {
              "artist": {
                "selector": "h3.teasertitel span"
              },
              "href": {
                "attr": "href",
                "selector": "a.bottom"
              },
              "title": {
                "selector": "h3.teasertitel strong"
              }
            },
            "max": 60,
            "selector": "li.release"
          }
        }
      },
      "id": "search",
      "request": {
        "headers": {
          "Accept": "text/html"
        },
        "method": "GET",
        "query": {
          "q": "{{params.query}}"
        },
        "url": "/Suche"
      }
    }
  ],
  "task": "Search albums on laut.de",
  "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.releases) > `0`",
      "length(output.releases[?starts_with(url, 'https://laut.de/')]) == length(output.releases)",
      "length(output.releases[?title != `null`]) == length(output.releases)"
    ],
    "example_params": {
      "query": "Kraftwerk"
    },
    "max_ms": 5000
  },
  "version": 1
}