{"description":"Searches Vinted (Nederland) second-hand listings like the site's own catalogue: title, brand, size, condition, item price, the total including Vinted's buyer protection fee, and the item link. Optional price range and cheapest-first sorting. Prices in EUR.","effect":"read","id":"vinted.nl/search-items","keywords":["vinted","vinted.nl","tweedehands","kleding","mode","kopen","verkopen","winterjas","second hand","clothes","used","marketplace"],"output":{"schema":{"properties":{"currency":{"const":"EUR"},"items":{"items":{"properties":{"brand":{"type":["string","null"]},"condition":{"type":["string","null"]},"id":{"type":"string"},"price_eur":{"type":["number","null"]},"size":{"type":["string","null"]},"title":{"type":"string"},"total_eur":{"description":"Including Vinted's buyer protection fee (shipping extra)","type":["number","null"]},"url":{"format":"uri","type":"string"}},"type":"object"},"type":"array"},"query":{"type":"string"}},"required":["query","items"],"type":"object"},"value":"{query: params.query, currency: 'EUR', items: steps.catalog.items[?href != `null` && alt != `null`].{id: replace(testid, 'product-item-id-', ''), title: contains(alt, ', Merk: ') && split(alt, ', Merk: ')[0] || split(alt, ', Staat: ')[0], brand: contains(alt, ', Merk: ') && split(split(alt, ', Merk: ')[1], ', Staat: ')[0] || `null`, condition: contains(alt, ', Staat: ') && split(split(alt, ', Staat: ')[1], ', Maat: ')[0] || `null`, size: contains(alt, ', Maat: ') && split(split(alt, ', Maat: ')[1], ', ')[0] || `null`, price_eur: price_text && to_number(replace(replace(replace(replace(replace(replace(replace(replace(replace(price_text, 'incl.', ''), 'w tym', ''), '€', ''), 'zł', ''), ' ', ''), `\"\\u00a0\"`, ''), `\"\\u202f\"`, ''), '.', ''), ',', '.')) || `null`, total_eur: total_text && to_number(replace(replace(replace(replace(replace(replace(replace(replace(replace(total_text, 'incl.', ''), 'w tym', ''), '€', ''), 'zł', ''), ' ', ''), `\"\\u00a0\"`, ''), `\"\\u202f\"`, ''), '.', ''), ',', '.')) || `null`, url: join('', ['https://www.vinted.nl', split(href, '?')[0]])}}"},"params":{"additionalProperties":false,"properties":{"order":{"default":"relevance","enum":["relevance","price_low_to_high"],"type":"string"},"price_from":{"description":"EUR","minimum":0,"type":"number"},"price_to":{"description":"EUR","minimum":1,"type":"number"},"query":{"description":"Wat zoek je, e.g. 'winterjas', 'nike air max'","maxLength":100,"minLength":2,"type":"string"}},"required":["query"],"type":"object"},"provenance":{"method":"browser-inspect","notes":"Same catalog page and cards as vinted.fr and vinted.co.uk search-items (server-rendered [data-testid^=product-item-id-] cards; title, brand, condition and size from the image alt text, which reads '<title>, Merk: …, Staat: …, Maat: …, <price>, <total>'; the brand part is missing when the seller gave none). Local labels and '€ 1,00' prices (symbol first); the total includes Vinted's buyer protection fee ('incl.'). Labels and formats taken from a live catalogue page. Answers servers. v2 (2026-11-07 22:38): tos.notes only; requests and output unchanged.","recorded_at":"2026-11-07T22:13:00+01:00","recorded_by":"C4"},"requires_login":false,"schema":"https://wield.run/schema/recipe/v1.json","site":{"country":"NL","id":"vinted.nl","language":"nl","login_url":"https://www.vinted.nl/member/signup/select_type","name":"Vinted","origin":"https://www.vinted.nl","origins":["https://www.vinted.nl"]},"steps":[{"description":"Server-rendered catalogue page (Next.js app router, ~3.6 MB). The old JSON API /api/v2/catalog/items now answers 404.","expect":{"content_type":"html","status":[200]},"extract":{"html_items":{"items":{"fields":{"alt":{"attr":"alt","selector":"img"},"href":{"attr":"href","selector":"a[href*=\"/items/\"]"},"price_text":{"selector":"[data-testid$=\"--price-text\"]"},"testid":{"attr":"data-testid","selector":":scope"},"total_text":{"selector":"[data-testid*=\"breakdown\"]"}},"max":96,"selector":"[data-testid^=\"product-item-id-\"]:not([data-testid*=\"--\"])"}}},"id":"catalog","parse":"html","request":{"headers":{"Accept":"text/html"},"method":"GET","query":{"currency":"EUR","order":"{{params.order}}","price_from":"{{params.price_from}}","price_to":"{{params.price_to}}","search_text":"{{params.query}}"},"url":"/catalog"}}],"task":"Search Vinted Nederland items by price","tos":{"notes":"Vinted.nl's robots.txt disallows ClaudeBot and sets Content-Signal ai-input=no, and Vinted's terms prohibit scraping. Wield runs it only when the user asks, in the user's own browser, one catalogue page per call: no bulk collection, no buying or messaging.","reviewed":false},"verify":{"checks":["length(output.items) > `10`","length(output.items[?price_eur > `40`]) == `0`","output.items[0].total_eur >= output.items[0].price_eur","length(output.items[?brand != `null` && condition != `null`]) > `10`","length(output.items[?starts_with(url, 'https://www.vinted.nl/items/')]) == length(output.items)","output.items[*].price_eur == sort(output.items[*].price_eur)"],"example_params":{"order":"price_low_to_high","price_to":40,"query":"winterjas"},"max_ms":6000},"version":2}