Sign inTry it

Find concerts and events on Ticketmaster.

Searches Ticketmaster Germany for an artist, event or venue, like its search page: upcoming events by date with the venue, city, country and address, start time, artists, status (cancelled, postponed, rescheduled, sold out, few tickets left, date to be announced) and the link to buy tickets. Optionally only events in Germany or in one city. Ticketmaster's German search also lists events abroad; each is marked. Prices are not part of the search results.

No reports yetRead-only, no login
Site
Ticketmaster Deutschland, Germany
Version
v2 of 2
Runs, last 7 days
No reports yet
sha256
e7eec8949bf1…

Run it with your agent

after installing Wield

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

“Find concerts and events on Ticketmaster.”

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

{
  "tool": "run",
  "arguments": {
    "recipe_id": "ticketmaster.de/search-events",
    "params": {
      "germany_only": true,
      "query": "rock"
    }
  }
}

Requests

sent from your browser, in order
  1. 1GET/search?page&qThe server-rendered search page; its Redux state (__NEXT_DATA__ props.pageProps.initialReduxState.api.queries, entry with endpointName 'searchEvents') holds the events. The page's own /api/search/events answers 400 to plain requests, so the page is read instead. The one-item foreach turns the page number into the 0-based index the URL uses.repeats, max 1

Parameters

from your agent
citystringOnly events in this city, e.g. 'Berlin' (matched against the venue's city on the returned page)
germany_onlybooleanOnly events in Germany = false
pageinteger20 events per page = 1
querystringrequiredArtist, event or venue, e.g. 'Coldplay', 'Rammstein', 'Lanxess Arena'

Returns

to your agent
eventsobject[]address, artists, city, country, id, in_germany, latitude, limited_availability, longitude, postcode, sold_by_partner, sold_out, start, status, timezone, title, url, venue
pageinteger
querystring
totalintegerAll matching events worldwide, before the city and Germany filters

Where it can send

  • www.ticketmaster.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.events) > `5`
  • output.total > `20`
  • length(output.events[?in_germany]) == length(output.events)
  • length(output.events[?starts_with(url, 'https://') && title != `null` && venue != `null`]) == length(output.events)
  • length(output.events[?starts_with(url, 'https://www.ticketmaster.de/')]) > `5`
  • length(output.events[?start != `null` && ends_with(start, 'Z')]) > `0`

Raw recipe

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

Check it yourself
curl -s https://wield.run/api/v1/recipes/ticketmaster.de/search-events | shasum -a 256
# e7eec8949bf19e8f75c10ba4018cf48c77fca72c9c3b5d154e062717f59d2e38
ticketmaster.de/search-events.json, v2
{
  "description": "Searches Ticketmaster Germany for an artist, event or venue, like its search page: upcoming events by date with the venue, city, country and address, start time, artists, status (cancelled, postponed, rescheduled, sold out, few tickets left, date to be announced) and the link to buy tickets. Optionally only events in Germany or in one city. Ticketmaster's German search also lists events abroad; each is marked. Prices are not part of the search results.",
  "effect": "read",
  "id": "ticketmaster.de/search-events",
  "keywords": [
    "ticketmaster",
    "tickets",
    "konzert",
    "konzerte",
    "veranstaltung",
    "event",
    "concert",
    "show",
    "festival",
    "tour",
    "karten",
    "comedy",
    "theater",
    "sport",
    "live",
    "germany",
    "berlin",
    "hamburg",
    "münchen",
    "köln"
  ],
  "output": {
    "schema": {
      "properties": {
        "events": {
          "items": {
            "properties": {
              "address": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "artists": {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "city": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "country": {
                "description": "ISO code, e.g. DE",
                "type": [
                  "string",
                  "null"
                ]
              },
              "id": {
                "type": "string"
              },
              "in_germany": {
                "type": "boolean"
              },
              "latitude": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "limited_availability": {
                "type": "boolean"
              },
              "longitude": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "postcode": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "sold_by_partner": {
                "description": "Tickets are sold by a partner site that Ticketmaster links to",
                "type": "boolean"
              },
              "sold_out": {
                "type": "boolean"
              },
              "start": {
                "description": "Start time in UTC (ISO 8601, Z); null when the date is to be announced",
                "type": [
                  "string",
                  "null"
                ]
              },
              "status": {
                "description": "scheduled, cancelled, postponed, rescheduled or tba",
                "type": "string"
              },
              "timezone": {
                "description": "The venue's time zone, e.g. Europe/Berlin",
                "type": [
                  "string",
                  "null"
                ]
              },
              "title": {
                "type": "string"
              },
              "url": {
                "description": "The event page: usually ticketmaster.de, sometimes another Ticketmaster country site or a partner platform such as Universe (sold_by_partner)",
                "type": "string"
              },
              "venue": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "type": "object"
          },
          "type": "array"
        },
        "page": {
          "type": "integer"
        },
        "query": {
          "type": "string"
        },
        "total": {
          "description": "All matching events worldwide, before the city and Germany filters",
          "type": [
            "integer",
            "null"
          ]
        }
      },
      "required": [
        "query",
        "events"
      ],
      "type": "object"
    },
    "value": "let $city = params.city && lower(params.city) || `null`, $de = params.germany_only == `true` in {query: params.query, total: steps.search[0].total || `0`, page: params.page || `1`, events: map(&(let $e = @ in {id: $e.id, title: $e.title, start: $e.dates.startDate || `null`, timezone: $e.timeZone || `null`, venue: $e.venue.name || `null`, city: $e.venue.city || `null`, country: $e.venue.countryCode || `null`, address: $e.venue.addressLineOne || `null`, postcode: $e.venue.code || `null`, latitude: $e.venue.latitude || `null`, longitude: $e.venue.longitude || `null`, artists: $e.artists[*].name || `[]`, status: ($e.cancelled && 'cancelled') || ($e.postponed && 'postponed') || ($e.rescheduled && 'rescheduled') || ($e.tba && 'tba') || 'scheduled', sold_out: $e.soldOut == `true`, limited_availability: $e.limitedAvailability == `true`, in_germany: $e.venue.countryCode == 'DE', sold_by_partner: $e.isPartner == `true` || $e.partnerEvent == `true`, url: $e.url}), steps.search[0].events || `[]`)[?(!$de || in_germany) && ($city == `null` || (city && contains(lower(city), $city)))]}"
  },
  "params": {
    "additionalProperties": false,
    "properties": {
      "city": {
        "description": "Only events in this city, e.g. 'Berlin' (matched against the venue's city on the returned page)",
        "maxLength": 60,
        "minLength": 2,
        "type": "string"
      },
      "germany_only": {
        "default": false,
        "description": "Only events in Germany",
        "type": "boolean"
      },
      "page": {
        "default": 1,
        "description": "20 events per page",
        "maximum": 20,
        "minimum": 1,
        "type": "integer"
      },
      "query": {
        "description": "Artist, event or venue, e.g. 'Coldplay', 'Rammstein', 'Lanxess Arena'",
        "maxLength": 100,
        "minLength": 2,
        "type": "string"
      }
    },
    "required": [
      "query"
    ],
    "type": "object"
  },
  "provenance": {
    "method": "browser-inspect",
    "notes": "ticketmaster.de/search?q=…&page=<0-based> is server-rendered (Next.js); __NEXT_DATA__ props.pageProps.initialReduxState.api.queries holds RTK Query entries keyed by their arguments, so the recipe picks the one whose endpointName is 'searchEvents' (originalArgs {keyword, sort: date, page}). data.total counts all matches worldwide; data.events has 20 per page with dates.startDate (UTC), timeZone, venue (name, city, countryCode, addressLineOne, code, latitude, longitude), artists, cancelled/postponed/rescheduled/tba, soldOut, limitedAvailability, isPartner. The page's own /api/search/events answers 400 without the app's headers, so it is not used. Search results carry no prices. Answers servers. v2 (2026-11-07 22:38): tos.notes only; requests and output unchanged.",
    "recorded_at": "2026-11-07T21:43:00+01:00",
    "recorded_by": "C4"
  },
  "requires_login": false,
  "schema": "https://wield.run/schema/recipe/v1.json",
  "site": {
    "country": "DE",
    "id": "ticketmaster.de",
    "language": "de",
    "name": "Ticketmaster Deutschland",
    "origin": "https://www.ticketmaster.de",
    "origins": [
      "https://www.ticketmaster.de"
    ]
  },
  "steps": [
    {
      "description": "The server-rendered search page; its Redux state (__NEXT_DATA__ props.pageProps.initialReduxState.api.queries, entry with endpointName 'searchEvents') holds the events. The page's own /api/search/events answers 400 to plain requests, so the page is read instead. The one-item foreach turns the page number into the 0-based index the URL uses.",
      "expect": {
        "content_type": "html",
        "status": [
          200
        ]
      },
      "extract": {
        "embedded_json": {
          "selector": "script#__NEXT_DATA__",
          "vars": {
            "events": "values(props.pageProps.initialReduxState.api.queries)[?endpointName == 'searchEvents'] | [0].data.events",
            "total": "values(props.pageProps.initialReduxState.api.queries)[?endpointName == 'searchEvents'] | [0].data.total"
          }
        }
      },
      "foreach": {
        "as": "f",
        "in": "[{page: to_string((params.page || `1`) - `1`)}]",
        "max": 1
      },
      "id": "search",
      "parse": "html",
      "request": {
        "headers": {
          "Accept": "text/html"
        },
        "method": "GET",
        "query": {
          "page": "{{f.page}}",
          "q": "{{params.query}}"
        },
        "url": "/search"
      }
    }
  ],
  "task": "Find concerts and events on Ticketmaster",
  "tos": {
    "notes": "Ticketmaster.de's terms prohibit robots and automated tools that retrieve or data-mine the site, and automated ticket buying. Wield runs this recipe only when the user asks, in the user's own browser, one search results page per call. It never touches anything purchase-related (no ticket selection, no basket, no checkout) and never polls availability.",
    "reviewed": true
  },
  "verify": {
    "checks": [
      "length(output.events) > `5`",
      "output.total > `20`",
      "length(output.events[?in_germany]) == length(output.events)",
      "length(output.events[?starts_with(url, 'https://') && title != `null` && venue != `null`]) == length(output.events)",
      "length(output.events[?starts_with(url, 'https://www.ticketmaster.de/')]) > `5`",
      "length(output.events[?start != `null` && ends_with(start, 'Z')]) > `0`"
    ],
    "example_params": {
      "germany_only": true,
      "query": "rock"
    },
    "max_ms": 5000
  },
  "version": 2
}