{"description":"Searches Materiel.net like its search page: product name, link, short description, price in euros and whether the offer is a marketplace (third-party) offer. First results page (about 48 products, new and used). Returns an empty list when nothing matches.","effect":"read","id":"materiel.net/search-products","keywords":["materiel.net","materiel","high-tech","informatique","pc portable","souris gaming","webcam","ordinateur","composant pc","périphérique","électronique","france","laptop","computer hardware"],"output":{"schema":{"properties":{"products":{"items":{"properties":{"description":{"type":["string","null"]},"marketplace":{"description":"True for a third-party marketplace offer","type":"boolean"},"name":{"type":"string"},"price_eur":{"type":["number","null"]},"url":{"type":"string"}},"required":["name","url","marketplace"],"type":"object"},"type":"array"},"query":{"type":"string"}},"required":["query","products"],"type":"object"},"value":"{query: params.query, products: steps.search.products[?name != `null` && href != `null`].{name: name, description: description || `null`, price_eur: (price && to_number(join('.', [replace(split(price, '€')[0], ' ', ''), split(price, '€')[1] || '00'])) ) || `null`, marketplace: marketplace == '1', url: (starts_with(href, 'http') && href) || join('', ['https://www.materiel.net', href])}}"},"params":{"additionalProperties":false,"properties":{"query":{"description":"Product term, e.g. 'pc portable', 'souris gaming', 'webcam'","maxLength":100,"minLength":2,"type":"string"}},"required":["query"],"type":"object"},"provenance":{"method":"har","notes":"GET /recherche/<term>/ answers 200 HTML titled 'Votre recherche sur Materiel.net : <term>' with li.c-products-list__item results (48 on the first page, with a page count link). The title and link come from a.c-product__link (title attribute and absolute href /produit/...). The price text is like '719€<sup>95</sup>', which reads as 719.95 by joining the parts around the euro sign. The ?s= search on the homepage shows promotional carousels, not results, so it is not used. Only the first page is read. No cross-site hosts are called.","recorded_at":"2026-11-08T16:10:00.000Z","recorded_by":"wield-forge (claude-haiku agent)"},"requires_login":false,"schema":"https://wield.run/schema/recipe/v1.json","site":{"country":"FR","id":"materiel.net","language":"fr","name":"Materiel.net","origin":"https://www.materiel.net","origins":["https://www.materiel.net"]},"steps":[{"description":"Search results page /recherche/<term>/, server-rendered; read-only GET. Each result is li.c-products-list__item with the title and link in a.c-product__link (title attribute), the description in p.c-product__description and the price in span.o-product__price. data-is-marketplace marks third-party offers.","expect":{"content_type":"html","status":[200]},"extract":{"html_items":{"products":{"fields":{"description":{"selector":"p.c-product__description"},"href":{"attr":"href","selector":"a.c-product__link"},"marketplace":{"attr":"data-is-marketplace","selector":":scope"},"name":{"attr":"title","selector":"a.c-product__link"},"price":{"selector":"span.o-product__price"}},"max":60,"selector":"li.c-products-list__item"}}},"id":"search","request":{"headers":{"Accept":"text/html"},"method":"GET","url":"/recherche/{{ params.query | urlencode }}/"}}],"task":"Search PC hardware and high-tech 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.materiel.net/produit/')]) == length(output.products)","length(output.products[?name != `null`]) == length(output.products)"],"example_params":{"query":"pc portable"},"max_ms":5000},"version":1}