{"description":"Searches the Shop Apotheke online pharmacy like its search page: product name, lowest shown price in euros and link. First page of results. Sponsored ads are dropped. Returns an empty list when nothing matches.","effect":"read","id":"shop-apotheke.com/search-products","keywords":["shop apotheke","shop-apotheke","apotheke","online apotheke","arzneimittel","medikamente","nasenspray","ibuprofen","magnesium","vitamine","pharmacy","medicine","germany","gesundheit"],"output":{"schema":{"properties":{"products":{"items":{"properties":{"name":{"type":"string"},"price_eur":{"type":["number","null"]},"url":{"type":"string"}},"required":["name","url"],"type":"object"},"type":"array"},"query":{"type":"string"}},"required":["query","products"],"type":"object"},"value":"{query: params.query, products: steps.search.products[?name != `null` && starts_with(href, '/')].{name: name, price_eur: (price && contains(price, '€') && to_number(replace(replace(split(trim(split(price, '€')[1]), ' ')[0], '.', ''), ',', '.'))) || `null`, url: join('', ['https://www.shop-apotheke.com', split(href, '?')[0]])}}"},"params":{"additionalProperties":false,"properties":{"query":{"description":"Product, active ingredient or brand term, e.g. 'ibuprofen', 'nasenspray', 'magnesium'","maxLength":100,"minLength":2,"type":"string"}},"required":["query"],"type":"object"},"provenance":{"method":"har","notes":"GET /search.htm?q=…, server-rendered (the site's header search form points here). The HTML holds the first page of result entries (li[data-qa-id='result-list-entry']). Name and relative product href come from the serp-result-item-title link. The price is the entry-price block, read as the first euro amount. Sponsored entries link to an ad-tracking redirect and are dropped. Hashed CSS-in-JS classes are not used.","recorded_at":"2026-11-08T16:50:00.000Z","recorded_by":"wield-forge (claude-haiku agent)"},"requires_login":false,"schema":"https://wield.run/schema/recipe/v1.json","site":{"country":"DE","id":"shop-apotheke.com","language":"de","name":"Shop Apotheke","origin":"https://www.shop-apotheke.com","origins":["https://www.shop-apotheke.com"]},"steps":[{"description":"Server-rendered search page /search.htm?q=…; read-only GET. Result entries are li[data-qa-id='result-list-entry']. Sponsored entries link to an ad redirect and are dropped; organic entries have a relative product href. Price is the current price in the entry-price block (text 'ab € 3,99').","expect":{"content_type":"html","status":[200]},"extract":{"html_items":{"products":{"fields":{"href":{"attr":"href","selector":"[data-qa-id='serp-result-item-title']"},"name":{"selector":"[data-qa-id='serp-result-item-title']"},"price":{"selector":"[data-qa-id='entry-price']"}},"max":60,"selector":"li[data-qa-id='result-list-entry']"}}},"id":"search","request":{"headers":{"Accept":"text/html"},"method":"GET","query":{"q":"{{params.query}}"},"url":"/search.htm"}}],"task":"Search online pharmacy products","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.products) > `0`","length(output.products[?price_eur > `0`]) > `0`","length(output.products[?starts_with(url, 'https://www.shop-apotheke.com/')]) == length(output.products)","length(output.products[?name != `null`]) == length(output.products)"],"example_params":{"query":"ibuprofen"},"max_ms":8000},"version":1}