{"ok":true,"site":{"host":"1001parts.nl","url":"https://1001parts.nl/","type":"live","category":"Commerce","desc":"Agricultural, garden and engine replacement parts from Van der Perk.","tools":[{"name":"searchProducts","kind":"answer","impl":"imperative","description":"Search the 1001Parts catalog of agricultural & garden spare parts. The query can be a part number - a Bestelnummer (order number) or an OEM Artikelnummer (manufacturer part number), with or without separators - or free-text keywords (brand, machine, part). Returns matching parts with the shop's headline price (EUR EXCL. VAT, with price_incl_vat beside it), part numbers, stock availability (in_stock/out_of_stock, or price_on_request when the shop quotes no price) and a link. Narrow with the optional filters, order with 'sort' (relevance/price/newest), and page through results with 'offset' (the response's 'more_available' flag says whether another page exists).","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Part number or keywords, e.g. 'AL120024' or 'john deere hydrauliekfilter'."},"category":{"type":"integer","description":"categories_id from listCategories (optional)."},"min_price":{"type":"number","description":"Minimum price in EUR excl. VAT (price-on-request parts are excluded when a range is set)."},"max_price":{"type":"number","description":"Maximum price in EUR excl. VAT (price-on-request parts are excluded when a range is set)."},"in_stock":{"type":"boolean","description":"If true, only return in-stock parts."},"limit":{"type":"integer","description":"Max results, 1-24 (default 12)."},"sort":{"type":"string","enum":["relevance","price_asc","price_desc","newest"],"description":"Result order (default relevance)."},"offset":{"type":"integer","description":"Skip this many results for pagination, 0-240 (default 0)."}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"getProductDetails","kind":"answer","impl":"imperative","description":"Get full details for one 1001Parts part, looked up by numeric productId, Bestelnummer (model), or EAN barcode. Returns price, Bestelnummer (model), Artikelnummer (mpn), EAN, availability, description and link. productId and Bestelnummer are unique to 1001Parts, so each identifies exactly one part. EAN is the global barcode (GTIN) and is usually unique but can occasionally be shared - when shared, the primary match is returned. The response also includes the OEM Artikelnummer (mpn), but mpn is NOT a lookup key here because manufacturer part numbers can collide across brands and are only filled for some parts.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"productId":{"type":"integer","description":"Numeric product id (unique to 1001Parts)."},"model":{"type":"string","description":"Bestelnummer (order number), unique to this shop."},"ean":{"type":"string","description":"EAN / barcode (GTIN), digits only."}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"listCategories","kind":"answer","impl":"imperative","description":"Browse the 1001Parts category tree (Landbouw, Tuin & Park, Motoren, Aandrijftechniek, banden & wielen, bevestigingsmateriaal, olie en vetten, ...). With no argument it returns the shop's top-level sections; pass a category id as 'parent' to list its sub-categories. Each result has id, name and has_children (whether you can drill in further). Use a category id as the 'category' filter in searchProducts.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"parent":{"type":"integer","description":"Category id to list children of. Omit for the top-level sections."}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"getFilterOptions","kind":"answer","impl":"imperative","description":"Describe the filters searchProducts accepts (category, price range, in-stock) and their allowed values.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"getStoreInfo","kind":"answer","impl":"imperative","description":"Get orientation facts about the 1001Parts store: a Dutch webshop for agricultural & garden spare parts (parts for tractors, garden & park machinery and engines), where parts are identified by Bestelnummer (always present) and often an OEM Artikelnummer, that most parts ship within 1-2 working days (rush service available) AND that it has a physical counter/warehouse in Beesd, NL (right next to the A2 motorway, free parking), plus currency, homepage URL, current promotions and policy links. Read-only; no personal data.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"getCartContents","kind":"answer","impl":"imperative","description":"Return the items in THIS shopper's cart (name, chosen quantity, price incl. VAT), the item count, the subtotal, any automatic discounts that currently apply and the discounted subtotal. May also include 'offers' nudges (e.g. spend a little more to unlock a promo). Excludes shipping, which is calculated at checkout. Session-scoped; contains no personal data.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"getCheckoutUrl","kind":"answer","impl":"imperative","description":"Return the URL where the shopper completes checkout on 1001Parts (the site's own checkout page), plus the current cart summary. Use this to hand the shopper off to finish their order themselves - this tool does NOT check out and collects no address or payment details.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"addToCart","kind":"act","impl":"imperative","description":"Add a part to THIS shopper's 1001Parts cart by product id. Asks the shopper to confirm before adding anything, and returns the updated cart. Does not check out.","annotations":{"readOnlyHint":false,"destructiveHint":false},"inputSchema":{"type":"object","properties":{"productId":{"type":"integer","description":"Numeric product id from searchProducts/getProductDetails."},"quantity":{"type":"integer","description":"Quantity to add, 1-99 (default 1)."}},"required":["productId"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"siteSearch","kind":"act","impl":"declarative","description":"Open the 1001Parts search results page for a keyword, so the shopper sees the live, filterable listing of parts. This navigates the browser to the results page. To get structured product data back - price, EAN, stock availability - call searchProducts instead.","inputSchema":{"type":"object","properties":{"keyword":{"type":"string","description":"Zoek op artikelnummer, ook met streepjes of spaties"}}},"__source":"spec","__declarative":true}],"apiSurface":"spec","favicon":"/favicons/1001parts.nl.png","toolCount":9}}