MCP 서버

Camden Tools

com.camdentools/shop
커머스 및 리테일 공개 · 연결 가능 MCP 2025-11-25

이 MCP로 할 수 있는 일

Enables product discovery and comparison, pricing, stock checks, delivery estimates, basket links, promotions, and guest order tracking for a UK tool retailer.

check_express_eligibility
Check Website Express eligibility
Whole-basket Website Express verdict for a set of product ids and quantities: every line must be eligible (no split shipments).
읽기 전용 외부 접근 가능
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Product id from search/product tools.', 'exclusiveMinimum': 0}, 'quantity': {'type': 'integer', 'default': 1, 'maximum': 999, 'minimum': 1}}}, 'maxItems': 50, 'minItems': 1, 'description': 'Basket lines as product ids with quantities.'}, 'locale': {'type': 'string', 'maxLength': 5, 'minLength': 2, 'description': 'Storefront locale such as en-GB (default), en-US, de, fr-FR, es-ES, it-IT, nl-NL, pl. Controls product names, slugs and prices.'}}}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['enabled', 'basket_eligible', 'express', 'lines'], 'properties': {'lines': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'sku', 'eligible', 'reason'], 'properties': {'id': {'type': 'number'}, 'sku': {'type': 'string'}, 'reason': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Why a line is not eligible.'}, 'eligible': {'type': 'boolean'}}, 'additionalProperties': False}}, 'enabled': {'type': 'boolean'}, 'express': {'anyOf': [{'type': 'object', 'required': ['available', 'same_day', 'order_by_iso', 'promised_dispatch_date'], 'properties': {'same_day': {'type': 'boolean'}, 'available': {'type': 'boolean'}, 'order_by_iso': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'promised_dispatch_date': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}, {'type': 'null'}]}, 'basket_eligible': {'type': 'boolean'}}, 'additionalProperties': False}
check_shipping_availability
Check shipping availability
Whether Camden Tools ships to a country, with any restriction message.
읽기 전용 외부 접근 가능
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['country_code'], 'properties': {'locale': {'type': 'string', 'maxLength': 5, 'minLength': 2, 'description': 'Storefront locale such as en-GB (default), en-US, de, fr-FR, es-ES, it-IT, nl-NL, pl. Controls product names, slugs and prices.'}, 'country_code': {'type': 'string', 'pattern': '^[A-Za-z]{2}$', 'description': 'ISO 3166-1 alpha-2 country code, e.g. GB, IE, DE, US.'}}}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['country_code', 'available', 'message', 'deliveries_url'], 'properties': {'message': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'available': {'type': 'boolean'}, 'country_code': {'type': 'string'}, 'deliveries_url': {'type': 'string'}}, 'additionalProperties': False}
compare_products
Compare products
Side-by-side comparison of 2 to 5 products by SKU: price ex/inc VAT, stock, brand, weight and the specification bullet points, so an agent can recommend between options.
읽기 전용 외부 접근 가능
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['skus'], 'properties': {'skus': {'type': 'array', 'items': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Product SKU exactly as shown on the site.'}, 'maxItems': 5, 'minItems': 2}, 'locale': {'type': 'string', 'maxLength': 5, 'minLength': 2, 'description': 'Storefront locale such as en-GB (default), en-US, de, fr-FR, es-ES, it-IT, nl-NL, pl. Controls product names, slugs and prices.'}}}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['comparison'], 'properties': {'comparison': {'type': 'array', 'items': {'oneOf': [{'type': 'object', 'required': ['sku', 'found'], 'properties': {'sku': {'type': 'string'}, 'found': {'type': 'boolean', 'const': False}}, 'additionalProperties': False}, {'type': 'object', 'required': ['sku', 'found', 'name', 'brand', 'url', 'price', 'in_stock', 'stock_level', 'weight_kg', 'express_eligible', 'specifications', 'summary'], 'properties': {'sku': {'type': 'string'}, 'url': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'name': {'type': 'string'}, 'brand': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'found': {'type': 'boolean', 'const': True}, 'price': {'anyOf': [{'type': 'object', 'required': ['currency', 'ex_vat', 'inc_vat', 'on_sale', 'vat_rate'], 'properties': {'ex_vat': {'type': 'number'}, 'inc_vat': {'type': 'number'}, 'on_sale': {'type': 'boolean'}, 'currency': {'type': 'string'}, 'vat_rate': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'description': 'VAT rate in percent (20 = 20%). null when unknown: ex_vat then equals inc_vat.'}, 'was_ex_vat': {'type': 'number'}, 'bulk_prices': {'type': 'array', 'items': {'type': 'object', 'required': ['min_quantity', 'ex_vat', 'inc_vat'], 'properties': {'ex_vat': {'type': 'number'}, 'inc_vat': {'type': 'number'}, 'min_quantity': {'type': 'number'}}, 'additionalProperties': False}, 'description': 'Lower unit prices from min_quantity up.'}, 'was_inc_vat': {'type': 'number', 'description': 'Price before the sale; only when on_sale.'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'summary': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'in_stock': {'type': 'boolean'}, 'weight_kg': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'stock_level': {'type': 'number'}, 'specifications': {'type': 'array', 'items': {'type': 'string'}}, 'express_eligible': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}}, 'additionalProperties': False}]}}}, 'additionalProperties': False}
create_basket_link
Create a basket link
Turn product ids and quantities into one link that fills the shopper's basket on camdentools.com. Opening the link makes sure the basket holds at least those quantities (opening it twice does not double them); the shopper reviews the basket and pays at checkout themselves. The result says which lines are out of stock: those cannot be bought, so offer an alternative before sharing the link. Use it to finish a shopping conversation. Ids come from search_products, list_products or get_product.
읽기 전용 외부 접근 가능 멱등성
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Product id from search/product tools.', 'exclusiveMinimum': 0}, 'quantity': {'type': 'integer', 'default': 1, 'maximum': 999, 'minimum': 1}}}, 'maxItems': 50, 'minItems': 1, 'description': 'Basket lines as product ids with quantities.'}, 'locale': {'type': 'string', 'maxLength': 5, 'minLength': 2, 'description': 'Storefront locale such as en-GB (default), en-US, de, fr-FR, es-ES, it-IT, nl-NL, pl. Controls product names, slugs and prices.'}}}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['url', 'lines', 'unavailable_ids', 'out_of_stock_ids', 'note'], 'properties': {'url': {'type': 'string', 'description': "Fills the shopper's basket with these lines. Share it unchanged."}, 'note': {'type': 'string'}, 'lines': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'sku', 'name', 'quantity', 'unit_price', 'currency', 'in_stock', 'stock_level'], 'properties': {'id': {'type': 'number'}, 'sku': {'type': 'string'}, 'name': {'type': 'string'}, 'currency': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'in_stock': {'type': 'boolean'}, 'quantity': {'type': 'number'}, 'unit_price': {'type': 'number'}, 'stock_level': {'type': 'number'}}, 'additionalProperties': False}}, 'unavailable_ids': {'type': 'array', 'items': {'type': 'number'}, 'description': 'Product ids that were not found.'}, 'out_of_stock_ids': {'type': 'array', 'items': {'type': 'number'}}}, 'additionalProperties': False}
estimate_delivery
Estimate delivery
Delivery services, charges and transit times for a basket to a destination (country plus postcode/ZIP and city). This is an estimate using placeholder contact details; exact rates are confirmed at checkout.
읽기 전용 외부 접근 가능
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['country_code', 'items'], 'properties': {'city': {'type': 'string', 'maxLength': 80, 'description': 'Destination city.'}, 'items': {'type': 'array', 'items': {'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Product id from search/product tools.', 'exclusiveMinimum': 0}, 'quantity': {'type': 'integer', 'default': 1, 'maximum': 999, 'minimum': 1}}}, 'maxItems': 50, 'minItems': 1, 'description': 'Basket lines as product ids with quantities.'}, 'locale': {'type': 'string', 'maxLength': 5, 'minLength': 2, 'description': 'Storefront locale such as en-GB (default), en-US, de, fr-FR, es-ES, it-IT, nl-NL, pl. Controls product names, slugs and prices.'}, 'postcode': {'type': 'string', 'maxLength': 20, 'description': 'Destination postcode / ZIP.'}, 'country_code': {'type': 'string', 'pattern': '^[A-Za-z]{2}$', 'description': 'ISO 3166-1 alpha-2 country code, e.g. GB, IE, DE, US.'}}}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['country_code', 'ddp_included', 'rates', 'note'], 'properties': {'note': {'type': 'string'}, 'rates': {'type': 'array', 'items': {'type': 'object', 'required': ['service_code', 'service_name', 'total_charges', 'currency', 'estimated_transit_days', 'insured', 'express_dispatch'], 'properties': {'insured': {'type': 'boolean'}, 'currency': {'type': 'string'}, 'service_code': {'type': 'string'}, 'service_name': {'type': 'string'}, 'total_charges': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'express_dispatch': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'description': 'Website Express same-day dispatch applies to this rate.'}, 'estimated_transit_days': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'country_code': {'type': 'string'}, 'ddp_included': {'type': 'boolean', 'description': 'Duties and taxes are prepaid (DDP) in the charges.'}}, 'additionalProperties': False}
get_blog_post
Get blog post
A blog post's full text (plain text) by slug.
읽기 전용 외부 접근 가능
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'locale': {'type': 'string', 'maxLength': 5, 'minLength': 2, 'description': 'Storefront locale such as en-GB (default), en-US, de, fr-FR, es-ES, it-IT, nl-NL, pl. Controls product names, slugs and prices.'}}}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['post'], 'properties': {'post': {'type': 'object', 'required': ['id', 'title', 'slug', 'url', 'excerpt', 'published_at', 'categories', 'content'], 'properties': {'id': {'type': 'number'}, 'url': {'type': 'string'}, 'slug': {'type': 'string'}, 'title': {'type': 'string'}, 'content': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'The post body as plain text.'}, 'excerpt': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'categories': {'type': 'array', 'items': {'type': 'string'}}, 'published_at': {'type': 'string'}}, 'additionalProperties': False}}, 'additionalProperties': False}
get_brand_products
Get brand products
A brand's details, its active promotions and its products (paged) by brand slug.
읽기 전용 외부 접근 가능
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['slug'], 'properties': {'page': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Page number, starting at 1.'}, 'slug': {'type': 'string', 'maxLength': 80, 'minLength': 1, 'description': 'Brand slug from list_brands.'}, 'locale': {'type': 'string', 'maxLength': 5, 'minLength': 2, 'description': 'Storefront locale such as en-GB (default), en-US, de, fr-FR, es-ES, it-IT, nl-NL, pl. Controls product names, slugs and prices.'}, 'per_page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Results per page: 15, 30, 50 or 100 (default 15).'}}}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['brand', 'promotions', 'products', 'pagination'], 'properties': {'brand': {'anyOf': [{'type': 'object', 'required': ['name', 'slug', 'url'], 'properties': {'id': {'type': 'number'}, 'url': {'type': 'string'}, 'logo': {'type': 'string'}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'product_count': {'type': 'number'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'products': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'sku', 'name', 'slug', 'url', 'brand', 'brand_slug', 'categories', 'price', 'in_stock', 'stock_level', 'image', 'summary'], 'properties': {'id': {'type': 'number'}, 'mpn': {'type': 'string'}, 'sku': {'type': 'string'}, 'url': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'gtin': {'type': 'string'}, 'name': {'type': 'string'}, 'slug': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'brand': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'image': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'price': {'anyOf': [{'type': 'object', 'required': ['currency', 'ex_vat', 'inc_vat', 'on_sale', 'vat_rate'], 'properties': {'ex_vat': {'type': 'number'}, 'inc_vat': {'type': 'number'}, 'on_sale': {'type': 'boolean'}, 'currency': {'type': 'string'}, 'vat_rate': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'description': 'VAT rate in percent (20 = 20%). null when unknown: ex_vat then equals inc_vat.'}, 'was_ex_vat': {'type': 'number'}, 'bulk_prices': {'type': 'array', 'items': {'type': 'object', 'required': ['min_quantity', 'ex_vat', 'inc_vat'], 'properties': {'ex_vat': {'type': 'number'}, 'inc_vat': {'type': 'number'}, 'min_quantity': {'type': 'number'}}, 'additionalProperties': False}, 'description': 'Lower unit prices from min_quantity up.'}, 'was_inc_vat': {'type': 'number', 'description': 'Price before the sale; only when on_sale.'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'null when the product has no online price.'}, 'summary': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'in_stock': {'type': 'boolean'}, 'brand_slug': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'categories': {'type': 'array', 'items': {'type': 'string'}}, 'stock_level': {'type': 'number'}, 'express_eligible': {'type': 'boolean', 'description': 'Website Express (same-working-day UK dispatch); only when the listing reports it.'}}, 'additionalProperties': False}}, 'pagination': {'anyOf': [{'type': 'object', 'required': ['page', 'per_page', 'total', 'last_page'], 'properties': {'page': {'type': 'number'}, 'total': {'type': 'number'}, 'per_page': {'type': 'number'}, 'last_page': {'type': 'number'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'promotions': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'description', 'type', 'ends_at'], 'properties': {'name': {'type': 'string'}, 'type': {'type': 'string'}, 'ends_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}}}, 'additionalProperties': False}
get_cart_promotions
Get basket promotions
Evaluate a prospective basket for a destination country: whether it can be fulfilled, which promotions apply (including free-delivery style offers and free gifts) and the adjusted basket value. Same check the checkout runs.
읽기 전용 외부 접근 가능
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['country_code', 'items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Product id from search/product tools.', 'exclusiveMinimum': 0}, 'quantity': {'type': 'integer', 'default': 1, 'maximum': 999, 'minimum': 1}}}, 'maxItems': 50, 'minItems': 1, 'description': 'Basket lines as product ids with quantities.'}, 'locale': {'type': 'string', 'maxLength': 5, 'minLength': 2, 'description': 'Storefront locale such as en-GB (default), en-US, de, fr-FR, es-ES, it-IT, nl-NL, pl. Controls product names, slugs and prices.'}, 'has_tax_id': {'type': 'boolean', 'description': 'Whether the buyer has a VAT/tax id (business purchase).'}, 'country_code': {'type': 'string', 'pattern': '^[A-Za-z]{2}$', 'description': 'Destination country (ISO alpha-2).'}}}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['can_fulfill', 'message', 'basket_value', 'adjusted_value', 'promotions', 'free_gifts', 'lines'], 'properties': {'lines': {'type': 'array', 'items': {'type': 'object', 'required': ['sku', 'quantity', 'unit_price'], 'properties': {'sku': {'type': 'string'}, 'quantity': {'type': 'number'}, 'unit_price': {'type': 'number'}}, 'additionalProperties': False}}, 'message': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'free_gifts': {'type': 'array', 'items': {'type': 'object', 'required': ['sku', 'quantity'], 'properties': {'sku': {'type': 'string'}, 'quantity': {'type': 'number'}}, 'additionalProperties': False}}, 'promotions': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'description', 'type', 'discount_value'], 'properties': {'name': {'type': 'string'}, 'type': {'type': 'string'}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'discount_value': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'can_fulfill': {'type': 'boolean'}, 'basket_value': {'type': 'number'}, 'adjusted_value': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'description': 'Basket value after promotions.'}}, 'additionalProperties': False}
get_category
Get category
A category's name, description and its products (paged) by category slug.
읽기 전용 외부 접근 가능
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['slug'], 'properties': {'page': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Page number, starting at 1.'}, 'slug': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': 'Category slug from list_categories.'}, 'sort': {'type': 'string', 'maxLength': 40, 'description': 'Sort order: price_low, price_high, name_asc, name_desc or newest. Omit for the default (most popular) order.'}, 'locale': {'type': 'string', 'maxLength': 5, 'minLength': 2, 'description': 'Storefront locale such as en-GB (default), en-US, de, fr-FR, es-ES, it-IT, nl-NL, pl. Controls product names, slugs and prices.'}, 'per_page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Results per page: 15, 30, 50 or 100 (default 15).'}}}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['category', 'products', 'pagination'], 'properties': {'category': {'anyOf': [{'type': 'object', 'required': ['name', 'slug', 'url'], 'properties': {'id': {'type': 'number'}, 'url': {'type': 'string'}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}, {'type': 'null'}]}, 'products': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'sku', 'name', 'slug', 'url', 'brand', 'brand_slug', 'categories', 'price', 'in_stock', 'stock_level', 'image', 'summary'], 'properties': {'id': {'type': 'number'}, 'mpn': {'type': 'string'}, 'sku': {'type': 'string'}, 'url': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'gtin': {'type': 'string'}, 'name': {'type': 'string'}, 'slug': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'brand': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'image': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'price': {'anyOf': [{'type': 'object', 'required': ['currency', 'ex_vat', 'inc_vat', 'on_sale', 'vat_rate'], 'properties': {'ex_vat': {'type': 'number'}, 'inc_vat': {'type': 'number'}, 'on_sale': {'type': 'boolean'}, 'currency': {'type': 'string'}, 'vat_rate': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'description': 'VAT rate in percent (20 = 20%). null when unknown: ex_vat then equals inc_vat.'}, 'was_ex_vat': {'type': 'number'}, 'bulk_prices': {'type': 'array', 'items': {'type': 'object', 'required': ['min_quantity', 'ex_vat', 'inc_vat'], 'properties': {'ex_vat': {'type': 'number'}, 'inc_vat': {'type': 'number'}, 'min_quantity': {'type': 'number'}}, 'additionalProperties': False}, 'description': 'Lower unit prices from min_quantity up.'}, 'was_inc_vat': {'type': 'number', 'description': 'Price before the sale; only when on_sale.'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'null when the product has no online price.'}, 'summary': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'in_stock': {'type': 'boolean'}, 'brand_slug': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'categories': {'type': 'array', 'items': {'type': 'string'}}, 'stock_level': {'type': 'number'}, 'express_eligible': {'type': 'boolean', 'description': 'Website Express (same-working-day UK dispatch); only when the listing reports it.'}}, 'additionalProperties': False}}, 'pagination': {'anyOf': [{'type': 'object', 'required': ['page', 'per_page', 'total', 'last_page'], 'properties': {'page': {'type': 'number'}, 'total': {'type': 'number'}, 'per_page': {'type': 'number'}, 'last_page': {'type': 'number'}}, 'additionalProperties': False}, {'type': 'null'}]}}, 'additionalProperties': False}
get_collection_point_info
Get collection point info
The London Click & Collect warehouse: address, opening hours, whether it is open right now (Europe/London, bank holidays respected) and when it next opens.
읽기 전용 외부 접근 가능
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name', 'address_lines', 'opening_hours', 'timezone', 'status', 'how_it_works', 'page_url'], 'properties': {'name': {'type': 'string'}, 'status': {'type': 'object', 'required': ['is_open', 'is_bank_holiday', 'closes_at', 'next_opening'], 'properties': {'is_open': {'type': 'boolean'}, 'closes_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'e.g. Monday 17:00.'}, 'next_opening': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'is_bank_holiday': {'type': 'boolean'}}, 'additionalProperties': False}, 'page_url': {'type': 'string'}, 'timezone': {'type': 'string'}, 'how_it_works': {'type': 'string'}, 'address_lines': {'type': 'array', 'items': {'type': 'string'}}, 'opening_hours': {'type': 'array', 'items': {'type': 'object', 'required': ['days', 'hours'], 'properties': {'days': {'type': 'string'}, 'hours': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
get_express_delivery_status
Get Website Express status
Whether Website Express (free same-working-day dispatch for eligible UK orders) is available right now, the order-by cutoff and the promised dispatch date.
읽기 전용 외부 접근 가능
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'locale': {'type': 'string', 'maxLength': 5, 'minLength': 2, 'description': 'Storefront locale such as en-GB (default), en-US, de, fr-FR, es-ES, it-IT, nl-NL, pl. Controls product names, slugs and prices.'}}}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['enabled', 'available_now', 'cutoff', 'order_by_iso', 'promised_dispatch_date', 'express_products_url'], 'properties': {'cutoff': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'enabled': {'type': 'boolean'}, 'order_by_iso': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'available_now': {'type': 'boolean'}, 'express_products_url': {'type': 'string'}, 'promised_dispatch_date': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}
get_policy
Get policy text
Full text (markdown) of a store policy: delivery, returns, payment-options, faqs or contact.
읽기 전용 외부 접근 가능
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['policy'], 'properties': {'locale': {'type': 'string', 'maxLength': 5, 'minLength': 2, 'description': 'Storefront locale such as en-GB (default), en-US, de, fr-FR, es-ES, it-IT, nl-NL, pl. Controls product names, slugs and prices.'}, 'policy': {'enum': ['delivery', 'returns', 'payment-options', 'faqs', 'contact'], 'type': 'string'}}}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'title', 'url', 'markdown'], 'properties': {'id': {'enum': ['delivery', 'returns', 'payment-options', 'faqs', 'contact'], 'type': 'string'}, 'url': {'type': 'string'}, 'title': {'type': 'string'}, 'markdown': {'type': 'string'}}, 'additionalProperties': False}
get_prices_for_country
Get prices for a country
Country-specific pricing for a set of products (the checkout applies the destination country's currency and pricing). Returns unit, sale and final prices plus the subtotal.
읽기 전용 외부 접근 가능
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['shipping_country', 'items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Product id from search/product tools.', 'exclusiveMinimum': 0}, 'quantity': {'type': 'integer', 'default': 1, 'maximum': 999, 'minimum': 1}}}, 'maxItems': 50, 'minItems': 1, 'description': 'Basket lines as product ids with quantities.'}, 'locale': {'type': 'string', 'maxLength': 5, 'minLength': 2, 'description': 'Storefront locale such as en-GB (default), en-US, de, fr-FR, es-ES, it-IT, nl-NL, pl. Controls product names, slugs and prices.'}, 'shipping_country': {'type': 'string', 'pattern': '^[A-Za-z]{2}$', 'description': 'ISO 3166-1 alpha-2 country code, e.g. GB, IE, DE, US.'}}}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['shipping_country', 'pricing_country', 'currency', 'fallback_used', 'items', 'subtotal'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'quantity', 'unit_price', 'sale_price', 'final_price'], 'properties': {'id': {'type': 'number'}, 'quantity': {'type': 'number'}, 'sale_price': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'unit_price': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'final_price': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'currency': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'subtotal': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'fallback_used': {'type': 'boolean', 'description': "No prices for this country: another country's were used."}, 'pricing_country': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'shipping_country': {'type': 'string'}}, 'additionalProperties': False}
get_product
Get product
Full details for one product by slug, SKU or id: description, specifications, prices ex/inc VAT with bulk breaks, stock, variants, safety/spec documents and the canonical page URL. Provide exactly one of slug, sku or id.
읽기 전용 외부 접근 가능
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Numeric product id.', 'exclusiveMinimum': 0}, 'sku': {'type': 'string', 'maxLength': 64, 'description': 'Product SKU.'}, 'slug': {'type': 'string', 'maxLength': 200, 'description': 'Product slug from a product URL (…/product/<slug>).'}, 'locale': {'type': 'string', 'maxLength': 5, 'minLength': 2, 'description': 'Storefront locale such as en-GB (default), en-US, de, fr-FR, es-ES, it-IT, nl-NL, pl. Controls product names, slugs and prices.'}}}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['product'], 'properties': {'product': {'type': 'object', 'required': ['id', 'sku', 'name', 'slug', 'url', 'brand', 'brand_slug', 'categories', 'price', 'in_stock', 'stock_level', 'image', 'summary', 'tags', 'description', 'specifications', 'hazardous', 'has_related_products'], 'properties': {'id': {'type': 'number'}, 'mpn': {'type': 'string'}, 'sku': {'type': 'string'}, 'url': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'gtin': {'type': 'string'}, 'name': {'type': 'string'}, 'slug': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'brand': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'image': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'price': {'anyOf': [{'type': 'object', 'required': ['currency', 'ex_vat', 'inc_vat', 'on_sale', 'vat_rate'], 'properties': {'ex_vat': {'type': 'number'}, 'inc_vat': {'type': 'number'}, 'on_sale': {'type': 'boolean'}, 'currency': {'type': 'string'}, 'vat_rate': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'description': 'VAT rate in percent (20 = 20%). null when unknown: ex_vat then equals inc_vat.'}, 'was_ex_vat': {'type': 'number'}, 'bulk_prices': {'type': 'array', 'items': {'type': 'object', 'required': ['min_quantity', 'ex_vat', 'inc_vat'], 'properties': {'ex_vat': {'type': 'number'}, 'inc_vat': {'type': 'number'}, 'min_quantity': {'type': 'number'}}, 'additionalProperties': False}, 'description': 'Lower unit prices from min_quantity up.'}, 'was_inc_vat': {'type': 'number', 'description': 'Price before the sale; only when on_sale.'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'null when the product has no online price.'}, 'summary': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'in_stock': {'type': 'boolean'}, 'variants': {'type': 'array', 'items': {'type': 'object', 'required': ['sku', 'label', 'options', 'slug', 'url', 'price', 'in_stock'], 'properties': {'sku': {'type': 'string'}, 'url': {'type': 'string'}, 'slug': {'type': 'string'}, 'label': {'type': 'string'}, 'price': {'anyOf': [{'type': 'object', 'required': ['currency', 'ex_vat', 'inc_vat', 'on_sale', 'vat_rate'], 'properties': {'ex_vat': {'type': 'number'}, 'inc_vat': {'type': 'number'}, 'on_sale': {'type': 'boolean'}, 'currency': {'type': 'string'}, 'vat_rate': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'description': 'VAT rate in percent (20 = 20%). null when unknown: ex_vat then equals inc_vat.'}, 'was_ex_vat': {'type': 'number'}, 'bulk_prices': {'type': 'array', 'items': {'type': 'object', 'required': ['min_quantity', 'ex_vat', 'inc_vat'], 'properties': {'ex_vat': {'type': 'number'}, 'inc_vat': {'type': 'number'}, 'min_quantity': {'type': 'number'}}, 'additionalProperties': False}, 'description': 'Lower unit prices from min_quantity up.'}, 'was_inc_vat': {'type': 'number', 'description': 'Price before the sale; only when on_sale.'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'options': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'string'}}, 'in_stock': {'type': 'boolean'}}, 'additionalProperties': False}}, 'documents': {'type': 'array', 'items': {'type': 'object', 'required': ['type', 'url'], 'properties': {'url': {'type': 'string'}, 'type': {'type': 'string', 'description': 'safety_sheet or specification_sheet.'}}, 'additionalProperties': False}}, 'hazardous': {'type': 'boolean'}, 'weight_kg': {'type': 'number'}, 'brand_slug': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'categories': {'type': 'array', 'items': {'type': 'string'}}, 'coshh_codes': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'description'], 'properties': {'code': {'type': 'string'}, 'description': {'type': 'string'}}, 'additionalProperties': False}}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'stock_level': {'type': 'number'}, 'specifications': {'type': 'array', 'items': {'type': 'string'}}, 'express_eligible': {'type': 'boolean', 'description': 'Website Express (same-working-day UK dispatch); only when the listing reports it.'}, 'country_of_origin': {'type': 'string'}, 'has_related_products': {'type': 'boolean', 'description': 'get_related_products has variants or alternatives.'}}, 'additionalProperties': False}}, 'additionalProperties': False}
get_product_documents
Get product documents
Safety data sheets, specification sheets and COSHH hazard codes for a product (by slug or SKU). Returns document URLs.
읽기 전용 외부 접근 가능
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'sku': {'type': 'string', 'maxLength': 64, 'description': 'Product SKU.'}, 'slug': {'type': 'string', 'maxLength': 200, 'description': 'Product slug from a product URL (…/product/<slug>).'}, 'locale': {'type': 'string', 'maxLength': 5, 'minLength': 2, 'description': 'Storefront locale such as en-GB (default), en-US, de, fr-FR, es-ES, it-IT, nl-NL, pl. Controls product names, slugs and prices.'}}}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['product', 'hazardous', 'documents', 'coshh_codes'], 'properties': {'product': {'type': 'object', 'required': ['sku', 'name'], 'properties': {'sku': {'type': 'string'}, 'name': {'type': 'string'}}, 'additionalProperties': False}, 'documents': {'type': 'array', 'items': {'type': 'object', 'required': ['type', 'url'], 'properties': {'url': {'type': 'string'}, 'type': {'type': 'string', 'description': 'safety_sheet or specification_sheet.'}}, 'additionalProperties': False}}, 'hazardous': {'type': 'boolean'}, 'coshh_codes': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'description'], 'properties': {'code': {'type': 'string'}, 'description': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
get_product_promotions
Get product promotions
Active promotions that apply to one SKU (discounts, free gifts, end dates).
읽기 전용 외부 접근 가능
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['sku'], 'properties': {'sku': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Product SKU exactly as shown on the site.'}, 'locale': {'type': 'string', 'maxLength': 5, 'minLength': 2, 'description': 'Storefront locale such as en-GB (default), en-US, de, fr-FR, es-ES, it-IT, nl-NL, pl. Controls product names, slugs and prices.'}}}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['sku', 'promotions'], 'properties': {'sku': {'type': 'string'}, 'promotions': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'description', 'type', 'discount_value', 'ends_at', 'scope', 'brands', 'free_gift', 'terms_url'], 'properties': {'id': {'type': 'number'}, 'name': {'type': 'string'}, 'type': {'type': 'string', 'description': 'percentage_discount, fixed_discount or free_gift.'}, 'scope': {'type': 'string'}, 'brands': {'type': 'array', 'items': {'type': 'string'}}, 'ends_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'free_gift': {'anyOf': [{'type': 'object', 'required': ['sku', 'name'], 'properties': {'sku': {'type': 'string'}, 'name': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'terms_url': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'discount_value': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'description': 'Percent or amount off, depending on type.'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
get_products
Get several products
Look up up to 50 products at once by SKU or by numeric id. Returns compact products (name, price ex/inc VAT, stock, link).
읽기 전용 외부 접근 가능
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'ids': {'type': 'array', 'items': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'maxItems': 50, 'minItems': 1}, 'skus': {'type': 'array', 'items': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Product SKU exactly as shown on the site.'}, 'maxItems': 50, 'minItems': 1}, 'locale': {'type': 'string', 'maxLength': 5, 'minLength': 2, 'description': 'Storefront locale such as en-GB (default), en-US, de, fr-FR, es-ES, it-IT, nl-NL, pl. Controls product names, slugs and prices.'}}}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['products'], 'properties': {'products': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'sku', 'name', 'slug', 'url', 'brand', 'brand_slug', 'categories', 'price', 'in_stock', 'stock_level', 'image', 'summary'], 'properties': {'id': {'type': 'number'}, 'mpn': {'type': 'string'}, 'sku': {'type': 'string'}, 'url': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'gtin': {'type': 'string'}, 'name': {'type': 'string'}, 'slug': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'brand': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'image': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'price': {'anyOf': [{'type': 'object', 'required': ['currency', 'ex_vat', 'inc_vat', 'on_sale', 'vat_rate'], 'properties': {'ex_vat': {'type': 'number'}, 'inc_vat': {'type': 'number'}, 'on_sale': {'type': 'boolean'}, 'currency': {'type': 'string'}, 'vat_rate': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'description': 'VAT rate in percent (20 = 20%). null when unknown: ex_vat then equals inc_vat.'}, 'was_ex_vat': {'type': 'number'}, 'bulk_prices': {'type': 'array', 'items': {'type': 'object', 'required': ['min_quantity', 'ex_vat', 'inc_vat'], 'properties': {'ex_vat': {'type': 'number'}, 'inc_vat': {'type': 'number'}, 'min_quantity': {'type': 'number'}}, 'additionalProperties': False}, 'description': 'Lower unit prices from min_quantity up.'}, 'was_inc_vat': {'type': 'number', 'description': 'Price before the sale; only when on_sale.'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'null when the product has no online price.'}, 'summary': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'in_stock': {'type': 'boolean'}, 'brand_slug': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'categories': {'type': 'array', 'items': {'type': 'string'}}, 'stock_level': {'type': 'number'}, 'express_eligible': {'type': 'boolean', 'description': 'Website Express (same-working-day UK dispatch); only when the listing reports it.'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
get_related_products
Get related products
Variants, similar products, recommendations and 'you may also like' items for a product (by slug or SKU). Useful for alternatives when something is out of stock.
읽기 전용 외부 접근 가능
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'sku': {'type': 'string', 'maxLength': 64, 'description': 'Product SKU.'}, 'slug': {'type': 'string', 'maxLength': 200, 'description': 'Product slug from a product URL (…/product/<slug>).'}, 'locale': {'type': 'string', 'maxLength': 5, 'minLength': 2, 'description': 'Storefront locale such as en-GB (default), en-US, de, fr-FR, es-ES, it-IT, nl-NL, pl. Controls product names, slugs and prices.'}}}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['product', 'variants', 'similar_products', 'recommendations', 'may_like'], 'properties': {'product': {'type': 'object', 'required': ['sku', 'name'], 'properties': {'sku': {'type': 'string'}, 'name': {'type': 'string'}}, 'additionalProperties': False}, 'may_like': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'sku', 'name', 'slug', 'url', 'brand', 'brand_slug', 'categories', 'price', 'in_stock', 'stock_level', 'image', 'summary'], 'properties': {'id': {'type': 'number'}, 'mpn': {'type': 'string'}, 'sku': {'type': 'string'}, 'url': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'gtin': {'type': 'string'}, 'name': {'type': 'string'}, 'slug': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'brand': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'image': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'price': {'anyOf': [{'type': 'object', 'required': ['currency', 'ex_vat', 'inc_vat', 'on_sale', 'vat_rate'], 'properties': {'ex_vat': {'type': 'number'}, 'inc_vat': {'type': 'number'}, 'on_sale': {'type': 'boolean'}, 'currency': {'type': 'string'}, 'vat_rate': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'description': 'VAT rate in percent (20 = 20%). null when unknown: ex_vat then equals inc_vat.'}, 'was_ex_vat': {'type': 'number'}, 'bulk_prices': {'type': 'array', 'items': {'type': 'object', 'required': ['min_quantity', 'ex_vat', 'inc_vat'], 'properties': {'ex_vat': {'type': 'number'}, 'inc_vat': {'type': 'number'}, 'min_quantity': {'type': 'number'}}, 'additionalProperties': False}, 'description': 'Lower unit prices from min_quantity up.'}, 'was_inc_vat': {'type': 'number', 'description': 'Price before the sale; only when on_sale.'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'null when the product has no online price.'}, 'summary': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'in_stock': {'type': 'boolean'}, 'brand_slug': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'categories': {'type': 'array', 'items': {'type': 'string'}}, 'stock_level': {'type': 'number'}, 'express_eligible': {'type': 'boolean', 'description': 'Website Express (same-working-day UK dispatch); only when the listing reports it.'}}, 'additionalProperties': False}}, 'variants': {'type': 'array', 'items': {'type': 'object', 'required': ['sku', 'label', 'options', 'in_stock', 'url'], 'properties': {'sku': {'type': 'string'}, 'url': {'type': 'string'}, 'label': {'type': 'string'}, 'options': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'string'}}, 'in_stock': {'type': 'boolean'}}, 'additionalProperties': False}}, 'recommendations': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'sku', 'name', 'slug', 'url', 'brand', 'brand_slug', 'categories', 'price', 'in_stock', 'stock_level', 'image', 'summary'], 'properties': {'id': {'type': 'number'}, 'mpn': {'type': 'string'}, 'sku': {'type': 'string'}, 'url': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'gtin': {'type': 'string'}, 'name': {'type': 'string'}, 'slug': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'brand': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'image': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'price': {'anyOf': [{'type': 'object', 'required': ['currency', 'ex_vat', 'inc_vat', 'on_sale', 'vat_rate'], 'properties': {'ex_vat': {'type': 'number'}, 'inc_vat': {'type': 'number'}, 'on_sale': {'type': 'boolean'}, 'currency': {'type': 'string'}, 'vat_rate': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'description': 'VAT rate in percent (20 = 20%). null when unknown: ex_vat then equals inc_vat.'}, 'was_ex_vat': {'type': 'number'}, 'bulk_prices': {'type': 'array', 'items': {'type': 'object', 'required': ['min_quantity', 'ex_vat', 'inc_vat'], 'properties': {'ex_vat': {'type': 'number'}, 'inc_vat': {'type': 'number'}, 'min_quantity': {'type': 'number'}}, 'additionalProperties': False}, 'description': 'Lower unit prices from min_quantity up.'}, 'was_inc_vat': {'type': 'number', 'description': 'Price before the sale; only when on_sale.'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'null when the product has no online price.'}, 'summary': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'in_stock': {'type': 'boolean'}, 'brand_slug': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'categories': {'type': 'array', 'items': {'type': 'string'}}, 'stock_level': {'type': 'number'}, 'express_eligible': {'type': 'boolean', 'description': 'Website Express (same-working-day UK dispatch); only when the listing reports it.'}}, 'additionalProperties': False}}, 'similar_products': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'sku', 'name', 'slug', 'url', 'brand', 'brand_slug', 'categories', 'price', 'in_stock', 'stock_level', 'image', 'summary'], 'properties': {'id': {'type': 'number'}, 'mpn': {'type': 'string'}, 'sku': {'type': 'string'}, 'url': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'gtin': {'type': 'string'}, 'name': {'type': 'string'}, 'slug': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'brand': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'image': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'price': {'anyOf': [{'type': 'object', 'required': ['currency', 'ex_vat', 'inc_vat', 'on_sale', 'vat_rate'], 'properties': {'ex_vat': {'type': 'number'}, 'inc_vat': {'type': 'number'}, 'on_sale': {'type': 'boolean'}, 'currency': {'type': 'string'}, 'vat_rate': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'description': 'VAT rate in percent (20 = 20%). null when unknown: ex_vat then equals inc_vat.'}, 'was_ex_vat': {'type': 'number'}, 'bulk_prices': {'type': 'array', 'items': {'type': 'object', 'required': ['min_quantity', 'ex_vat', 'inc_vat'], 'properties': {'ex_vat': {'type': 'number'}, 'inc_vat': {'type': 'number'}, 'min_quantity': {'type': 'number'}}, 'additionalProperties': False}, 'description': 'Lower unit prices from min_quantity up.'}, 'was_inc_vat': {'type': 'number', 'description': 'Price before the sale; only when on_sale.'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'null when the product has no online price.'}, 'summary': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'in_stock': {'type': 'boolean'}, 'brand_slug': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'categories': {'type': 'array', 'items': {'type': 'string'}}, 'stock_level': {'type': 'number'}, 'express_eligible': {'type': 'boolean', 'description': 'Website Express (same-working-day UK dispatch); only when the listing reports it.'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
get_site_info
Get store information
Who Camden Tools is, how to contact them, VAT display rules, key page links, current announcements and a summary of each policy (delivery, returns, payment, FAQs). Call get_policy for the full text of a policy.
읽기 전용 외부 접근 가능
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'locale': {'type': 'string', 'maxLength': 5, 'minLength': 2, 'description': 'Storefront locale such as en-GB (default), en-US, de, fr-FR, es-ES, it-IT, nl-NL, pl. Controls product names, slugs and prices.'}}}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['store', 'collection_point', 'how_to_buy', 'pages', 'announcements', 'policies'], 'properties': {'pages': {'type': 'object', 'required': ['shop', 'offers', 'bundles', 'express_delivery', 'deliveries', 'returns_policy', 'payment_options', 'faqs', 'contact', 'track_order', 'collections', 'cart', 'developers'], 'properties': {'cart': {'type': 'string'}, 'faqs': {'type': 'string'}, 'shop': {'type': 'string'}, 'offers': {'type': 'string'}, 'bundles': {'type': 'string'}, 'contact': {'type': 'string'}, 'deliveries': {'type': 'string'}, 'developers': {'type': 'string'}, 'collections': {'type': 'string'}, 'track_order': {'type': 'string'}, 'returns_policy': {'type': 'string'}, 'payment_options': {'type': 'string'}, 'express_delivery': {'type': 'string'}}, 'additionalProperties': False}, 'store': {'type': 'object', 'required': ['name', 'legal_name', 'vat_number', 'email', 'phone', 'website', 'currency_default', 'vat_display'], 'properties': {'name': {'type': 'string'}, 'email': {'type': 'string'}, 'phone': {'type': 'string'}, 'website': {'type': 'string'}, 'legal_name': {'type': 'string'}, 'vat_number': {'type': 'string'}, 'vat_display': {'type': 'string'}, 'currency_default': {'type': 'string'}}, 'additionalProperties': False}, 'policies': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'title', 'url', 'resource_uri', 'excerpt'], 'properties': {'id': {'enum': ['delivery', 'returns', 'payment-options', 'faqs', 'contact'], 'type': 'string'}, 'url': {'type': 'string'}, 'title': {'type': 'string'}, 'excerpt': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'resource_uri': {'type': 'string'}}, 'additionalProperties': False}}, 'how_to_buy': {'type': 'string'}, 'announcements': {'type': 'array', 'items': {'type': 'object', 'required': ['title', 'message'], 'properties': {'title': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'message': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'collection_point': {'type': 'object', 'required': ['name', 'address_lines', 'opening_hours', 'timezone'], 'properties': {'name': {'type': 'string'}, 'timezone': {'type': 'string'}, 'address_lines': {'type': 'array', 'items': {'type': 'string'}}, 'opening_hours': {'type': 'array', 'items': {'type': 'object', 'required': ['days', 'hours'], 'properties': {'days': {'type': 'string'}, 'hours': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': False}}, 'additionalProperties': False}
get_stock_level
Get stock level
Live availability check for a SKU (is it available now and how many are in the London warehouse).
읽기 전용 외부 접근 가능
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['sku'], 'properties': {'sku': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Product SKU exactly as shown on the site.'}}}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['sku', 'available', 'warehouse_quantity', 'locale'], 'properties': {'sku': {'type': 'string'}, 'locale': {'type': 'string'}, 'available': {'type': 'boolean'}, 'warehouse_quantity': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'description': 'Units in the London warehouse; null when not reported.'}}, 'additionalProperties': False}
list_brands
List brands
Brands sold by Camden Tools (DeWalt, Makita, Milwaukee, Bosch, Stanley …). Without a query returns the popular brands; with a query searches brand names.
읽기 전용 외부 접근 가능
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'page': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Page number, starting at 1.'}, 'sort': {'type': 'string', 'maxLength': 40, 'description': 'Sort order: price_low, price_high, name_asc, name_desc or newest. Omit for the default (most popular) order.'}, 'query': {'type': 'string', 'maxLength': 80, 'description': 'Brand name search text.'}, 'per_page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Results per page: 15, 30, 50 or 100 (default 15).'}}}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['brands', 'pagination'], 'properties': {'brands': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'slug', 'url'], 'properties': {'id': {'type': 'number'}, 'url': {'type': 'string'}, 'logo': {'type': 'string'}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'product_count': {'type': 'number'}}, 'additionalProperties': False}}, 'pagination': {'anyOf': [{'type': 'object', 'required': ['page', 'per_page', 'total', 'last_page'], 'properties': {'page': {'type': 'number'}, 'total': {'type': 'number'}, 'per_page': {'type': 'number'}, 'last_page': {'type': 'number'}}, 'additionalProperties': False}, {'type': 'null'}]}}, 'additionalProperties': False}
list_bundles
List bundles
Curated product bundles (kits) with their items and prices.
읽기 전용 외부 접근 가능
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'locale': {'type': 'string', 'maxLength': 5, 'minLength': 2, 'description': 'Storefront locale such as en-GB (default), en-US, de, fr-FR, es-ES, it-IT, nl-NL, pl. Controls product names, slugs and prices.'}}}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['groups', 'bundles_url'], 'properties': {'groups': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'description', 'bundles'], 'properties': {'name': {'type': 'string'}, 'bundles': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'description', 'items'], 'properties': {'id': {'type': 'number'}, 'name': {'type': 'string'}, 'items': {'type': 'array', 'items': {'type': 'object', 'required': ['quantity', 'product'], 'properties': {'product': {'anyOf': [{'type': 'object', 'required': ['id', 'sku', 'name', 'slug', 'url', 'brand', 'brand_slug', 'categories', 'price', 'in_stock', 'stock_level', 'image', 'summary'], 'properties': {'id': {'type': 'number'}, 'mpn': {'type': 'string'}, 'sku': {'type': 'string'}, 'url': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'gtin': {'type': 'string'}, 'name': {'type': 'string'}, 'slug': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'brand': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'image': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'price': {'anyOf': [{'type': 'object', 'required': ['currency', 'ex_vat', 'inc_vat', 'on_sale', 'vat_rate'], 'properties': {'ex_vat': {'type': 'number'}, 'inc_vat': {'type': 'number'}, 'on_sale': {'type': 'boolean'}, 'currency': {'type': 'string'}, 'vat_rate': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'description': 'VAT rate in percent (20 = 20%). null when unknown: ex_vat then equals inc_vat.'}, 'was_ex_vat': {'type': 'number'}, 'bulk_prices': {'type': 'array', 'items': {'type': 'object', 'required': ['min_quantity', 'ex_vat', 'inc_vat'], 'properties': {'ex_vat': {'type': 'number'}, 'inc_vat': {'type': 'number'}, 'min_quantity': {'type': 'number'}}, 'additionalProperties': False}, 'description': 'Lower unit prices from min_quantity up.'}, 'was_inc_vat': {'type': 'number', 'description': 'Price before the sale; only when on_sale.'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'null when the product has no online price.'}, 'summary': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'in_stock': {'type': 'boolean'}, 'brand_slug': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'categories': {'type': 'array', 'items': {'type': 'string'}}, 'stock_level': {'type': 'number'}, 'express_eligible': {'type': 'boolean', 'description': 'Website Express (same-working-day UK dispatch); only when the listing reports it.'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'quantity': {'type': 'number'}}, 'additionalProperties': False}}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'bundles_url': {'type': 'string'}}, 'additionalProperties': False}
list_categories
List categories
Product categories with slugs and links. Use popular_only for the curated set shown on the site; otherwise the full list.
읽기 전용 외부 접근 가능
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 200, 'minimum': 1, 'description': 'Maximum categories to return (default 100).'}, 'locale': {'type': 'string', 'maxLength': 5, 'minLength': 2, 'description': 'Storefront locale such as en-GB (default), en-US, de, fr-FR, es-ES, it-IT, nl-NL, pl. Controls product names, slugs and prices.'}, 'popular_only': {'type': 'boolean', 'description': 'Only the popular categories (default false).'}}}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['categories'], 'properties': {'categories': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'slug', 'url'], 'properties': {'id': {'type': 'number'}, 'url': {'type': 'string'}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}}}, 'additionalProperties': False}
list_offers
List offers
Current storefront promotions (percentage/fixed discounts and free gifts), optionally grouped by brand or category. Also points at the /offers page.
읽기 전용 외부 접근 가능
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'locale': {'type': 'string', 'maxLength': 5, 'minLength': 2, 'description': 'Storefront locale such as en-GB (default), en-US, de, fr-FR, es-ES, it-IT, nl-NL, pl. Controls product names, slugs and prices.'}, 'group_by': {'enum': ['all', 'brand', 'category'], 'type': 'string', 'description': 'Grouping (default all).'}}}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['offers_url'], 'properties': {'groups': {'type': 'array', 'items': {'type': 'object', 'required': ['group', 'promotions'], 'properties': {'group': {'type': 'string'}, 'promotions': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'description', 'type', 'discount_value', 'ends_at', 'scope', 'brands', 'free_gift', 'terms_url'], 'properties': {'id': {'type': 'number'}, 'name': {'type': 'string'}, 'type': {'type': 'string', 'description': 'percentage_discount, fixed_discount or free_gift.'}, 'scope': {'type': 'string'}, 'brands': {'type': 'array', 'items': {'type': 'string'}}, 'ends_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'free_gift': {'anyOf': [{'type': 'object', 'required': ['sku', 'name'], 'properties': {'sku': {'type': 'string'}, 'name': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'terms_url': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'discount_value': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'description': 'Percent or amount off, depending on type.'}}, 'additionalProperties': False}}}, 'additionalProperties': False}, 'description': 'With group_by brand or category.'}, 'offers': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'description', 'type', 'discount_value', 'ends_at', 'scope', 'brands', 'free_gift', 'terms_url'], 'properties': {'id': {'type': 'number'}, 'name': {'type': 'string'}, 'type': {'type': 'string', 'description': 'percentage_discount, fixed_discount or free_gift.'}, 'scope': {'type': 'string'}, 'brands': {'type': 'array', 'items': {'type': 'string'}}, 'ends_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'free_gift': {'anyOf': [{'type': 'object', 'required': ['sku', 'name'], 'properties': {'sku': {'type': 'string'}, 'name': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'terms_url': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'discount_value': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'description': 'Percent or amount off, depending on type.'}}, 'additionalProperties': False}, 'description': 'With group_by all (the default).'}, 'offers_url': {'type': 'string'}}, 'additionalProperties': False}
list_products
List products
Browse a product collection: most popular, newest, on sale, Website Express eligible, or a category by slug (see list_categories). Supports paging, sorting and brand/price filters.
읽기 전용 외부 접근 가능
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['collection'], 'properties': {'page': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Page number, starting at 1.'}, 'sort': {'type': 'string', 'maxLength': 40, 'description': 'Sort order: price_low, price_high, name_asc, name_desc or newest. Omit for the default (most popular) order.'}, 'brand': {'type': 'string', 'maxLength': 80, 'description': 'Brand slug to filter by.'}, 'locale': {'type': 'string', 'maxLength': 5, 'minLength': 2, 'description': 'Storefront locale such as en-GB (default), en-US, de, fr-FR, es-ES, it-IT, nl-NL, pl. Controls product names, slugs and prices.'}, 'per_page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Results per page: 15, 30, 50 or 100 (default 15).'}, 'max_price': {'type': 'number', 'minimum': 0, 'description': 'Maximum price in the locale currency.'}, 'min_price': {'type': 'number', 'minimum': 0, 'description': 'Minimum price in the locale currency.'}, 'collection': {'enum': ['popular', 'new', 'on-sale', 'express', 'category'], 'type': 'string', 'description': 'Which collection to list.'}, 'min_discount': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Minimum discount percentage (on-sale listings).'}, 'category_slug': {'type': 'string', 'maxLength': 120, 'description': "Required when collection is 'category'."}}}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['collection', 'products', 'pagination'], 'properties': {'category': {'type': 'object', 'required': ['name', 'slug', 'url'], 'properties': {'id': {'type': 'number'}, 'url': {'type': 'string'}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'description': 'The category, when collection is category.', 'additionalProperties': False}, 'products': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'sku', 'name', 'slug', 'url', 'brand', 'brand_slug', 'categories', 'price', 'in_stock', 'stock_level', 'image', 'summary'], 'properties': {'id': {'type': 'number'}, 'mpn': {'type': 'string'}, 'sku': {'type': 'string'}, 'url': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'gtin': {'type': 'string'}, 'name': {'type': 'string'}, 'slug': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'brand': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'image': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'price': {'anyOf': [{'type': 'object', 'required': ['currency', 'ex_vat', 'inc_vat', 'on_sale', 'vat_rate'], 'properties': {'ex_vat': {'type': 'number'}, 'inc_vat': {'type': 'number'}, 'on_sale': {'type': 'boolean'}, 'currency': {'type': 'string'}, 'vat_rate': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'description': 'VAT rate in percent (20 = 20%). null when unknown: ex_vat then equals inc_vat.'}, 'was_ex_vat': {'type': 'number'}, 'bulk_prices': {'type': 'array', 'items': {'type': 'object', 'required': ['min_quantity', 'ex_vat', 'inc_vat'], 'properties': {'ex_vat': {'type': 'number'}, 'inc_vat': {'type': 'number'}, 'min_quantity': {'type': 'number'}}, 'additionalProperties': False}, 'description': 'Lower unit prices from min_quantity up.'}, 'was_inc_vat': {'type': 'number', 'description': 'Price before the sale; only when on_sale.'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'null when the product has no online price.'}, 'summary': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'in_stock': {'type': 'boolean'}, 'brand_slug': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'categories': {'type': 'array', 'items': {'type': 'string'}}, 'stock_level': {'type': 'number'}, 'express_eligible': {'type': 'boolean', 'description': 'Website Express (same-working-day UK dispatch); only when the listing reports it.'}}, 'additionalProperties': False}}, 'collection': {'enum': ['popular', 'new', 'on-sale', 'express', 'category'], 'type': 'string'}, 'pagination': {'anyOf': [{'type': 'object', 'required': ['page', 'per_page', 'total', 'last_page'], 'properties': {'page': {'type': 'number'}, 'total': {'type': 'number'}, 'per_page': {'type': 'number'}, 'last_page': {'type': 'number'}}, 'additionalProperties': False}, {'type': 'null'}]}}, 'additionalProperties': False}
lookup_uk_postcode
Look up a UK postcode
Addresses for a UK postcode (rate limited upstream). Returns matching addresses or suggestions when the postcode is incomplete.
읽기 전용 외부 접근 가능
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['postcode'], 'properties': {'postcode': {'type': 'string', 'maxLength': 12, 'minLength': 2, 'description': 'UK postcode, e.g. NW2 7JW.'}}}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['status', 'addresses', 'suggestions'], 'properties': {'status': {'type': 'string'}, 'addresses': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'line_1', 'line_2', 'post_town', 'county', 'postcode'], 'properties': {'label': {'type': 'string'}, 'county': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'line_1': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'line_2': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'postcode': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'post_town': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'suggestions': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Possible postcodes when the one given is incomplete.'}}, 'additionalProperties': False}
search_blog_posts
Search blog posts
Guides and articles from the Camden Tools blog (how-tos, buying guides, brand news).
읽기 전용 외부 접근 가능
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'page': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Page number, starting at 1.'}, 'query': {'type': 'string', 'maxLength': 120, 'description': 'Search text; omit for the latest posts.'}}}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['posts', 'pagination', 'blog_url'], 'properties': {'posts': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'title', 'slug', 'url', 'excerpt', 'published_at', 'categories'], 'properties': {'id': {'type': 'number'}, 'url': {'type': 'string'}, 'slug': {'type': 'string'}, 'title': {'type': 'string'}, 'excerpt': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'categories': {'type': 'array', 'items': {'type': 'string'}}, 'published_at': {'type': 'string'}}, 'additionalProperties': False}}, 'blog_url': {'type': 'string'}, 'pagination': {'anyOf': [{'type': 'object', 'required': ['page', 'per_page', 'total', 'last_page'], 'properties': {'page': {'type': 'number'}, 'total': {'type': 'number'}, 'per_page': {'type': 'number'}, 'last_page': {'type': 'number'}}, 'additionalProperties': False}, {'type': 'null'}]}}, 'additionalProperties': False}
search_products
Search products
Full-text search of the Camden Tools catalogue (hand tools, power tools, accessories, safety equipment). Returns compact products with prices ex/inc VAT, stock and a link. Use page/per_page to paginate and brand/min_price/max_price to narrow down.
읽기 전용 외부 접근 가능
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'page': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Page number, starting at 1.'}, 'sort': {'type': 'string', 'maxLength': 40, 'description': 'Sort order: price_low, price_high, name_asc, name_desc or newest. Omit for the default (most popular) order.'}, 'brand': {'type': 'string', 'maxLength': 80, 'description': 'Brand slug to filter by.'}, 'query': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': "What the shopper is looking for, e.g. 'cordless combi drill 18v'."}, 'locale': {'type': 'string', 'maxLength': 5, 'minLength': 2, 'description': 'Storefront locale such as en-GB (default), en-US, de, fr-FR, es-ES, it-IT, nl-NL, pl. Controls product names, slugs and prices.'}, 'express': {'type': 'boolean', 'description': 'Only products eligible for Website Express same-day dispatch (UK).'}, 'per_page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Results per page: 15, 30, 50 or 100 (default 15).'}, 'max_price': {'type': 'number', 'minimum': 0, 'description': 'Maximum price in the locale currency.'}, 'min_price': {'type': 'number', 'minimum': 0, 'description': 'Minimum price in the locale currency.'}}}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query', 'search_url', 'products', 'pagination'], 'properties': {'query': {'type': 'string'}, 'products': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'sku', 'name', 'slug', 'url', 'brand', 'brand_slug', 'categories', 'price', 'in_stock', 'stock_level', 'image', 'summary'], 'properties': {'id': {'type': 'number'}, 'mpn': {'type': 'string'}, 'sku': {'type': 'string'}, 'url': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'gtin': {'type': 'string'}, 'name': {'type': 'string'}, 'slug': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'brand': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'image': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'price': {'anyOf': [{'type': 'object', 'required': ['currency', 'ex_vat', 'inc_vat', 'on_sale', 'vat_rate'], 'properties': {'ex_vat': {'type': 'number'}, 'inc_vat': {'type': 'number'}, 'on_sale': {'type': 'boolean'}, 'currency': {'type': 'string'}, 'vat_rate': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'description': 'VAT rate in percent (20 = 20%). null when unknown: ex_vat then equals inc_vat.'}, 'was_ex_vat': {'type': 'number'}, 'bulk_prices': {'type': 'array', 'items': {'type': 'object', 'required': ['min_quantity', 'ex_vat', 'inc_vat'], 'properties': {'ex_vat': {'type': 'number'}, 'inc_vat': {'type': 'number'}, 'min_quantity': {'type': 'number'}}, 'additionalProperties': False}, 'description': 'Lower unit prices from min_quantity up.'}, 'was_inc_vat': {'type': 'number', 'description': 'Price before the sale; only when on_sale.'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'null when the product has no online price.'}, 'summary': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'in_stock': {'type': 'boolean'}, 'brand_slug': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'categories': {'type': 'array', 'items': {'type': 'string'}}, 'stock_level': {'type': 'number'}, 'express_eligible': {'type': 'boolean', 'description': 'Website Express (same-working-day UK dispatch); only when the listing reports it.'}}, 'additionalProperties': False}}, 'pagination': {'anyOf': [{'type': 'object', 'required': ['page', 'per_page', 'total', 'last_page'], 'properties': {'page': {'type': 'number'}, 'total': {'type': 'number'}, 'per_page': {'type': 'number'}, 'last_page': {'type': 'number'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'search_url': {'type': 'string', 'description': 'The same search on camdentools.com.'}}, 'additionalProperties': False}
track_guest_order
Track an order
Order status, tracking number/URL, shipping method and line items for any order, given the order number and the delivery postcode (no sign-in needed).
읽기 전용 외부 접근 가능
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['order_number', 'postcode'], 'properties': {'postcode': {'type': 'string', 'maxLength': 20, 'minLength': 2, 'description': 'Delivery postcode / ZIP on the order.'}, 'order_number': {'type': 'string', 'maxLength': 40, 'minLength': 3, 'description': 'Order number from the confirmation email.'}}}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['order', 'track_url'], 'properties': {'order': {'type': 'object', 'required': ['order_number', 'status', 'order_date', 'currency', 'total', 'subtotal', 'shipping_cost', 'tax', 'discount', 'shipping_method', 'tracking_number', 'tracking_url', 'shipping_company', 'shipped_at', 'paid_at', 'items', 'shipping_to'], 'properties': {'tax': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'items': {'type': 'array', 'items': {'type': 'object', 'required': ['sku', 'name', 'quantity', 'unit_price', 'line_total'], 'properties': {'sku': {'type': 'string'}, 'name': {'type': 'string'}, 'quantity': {'type': 'number'}, 'line_total': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'unit_price': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'total': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'status': {'type': 'string'}, 'paid_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'currency': {'type': 'string'}, 'discount': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'subtotal': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'is_express': {'type': 'boolean'}, 'order_date': {'type': 'string'}, 'shipped_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'shipping_to': {'anyOf': [{'type': 'object', 'required': ['city', 'postal_code', 'country_code'], 'properties': {'city': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'postal_code': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'country_code': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}, {'type': 'null'}]}, 'order_number': {'type': 'string'}, 'tracking_url': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'shipping_cost': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'shipping_method': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'tracking_number': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'shipping_company': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'express_promised_dispatch_date': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'track_url': {'type': 'string'}}, 'additionalProperties': False}
변경됨
get_blog_post
2026년 9월 27일 2:42 AM
변경됨
search_blog_posts
2026년 9월 27일 2:42 AM
변경됨
get_collection_point_info
2026년 9월 27일 2:42 AM
변경됨
get_policy
2026년 9월 27일 2:42 AM
변경됨
get_site_info
2026년 9월 27일 2:42 AM
변경됨
track_guest_order
2026년 9월 27일 2:42 AM
변경됨
create_basket_link
2026년 9월 27일 2:42 AM
변경됨
lookup_uk_postcode
2026년 9월 27일 2:42 AM
변경됨
estimate_delivery
2026년 9월 27일 2:42 AM
변경됨
get_prices_for_country
2026년 9월 27일 2:42 AM
변경됨
check_shipping_availability
2026년 9월 27일 2:42 AM
변경됨
check_express_eligibility
2026년 9월 27일 2:42 AM
변경됨
get_express_delivery_status
2026년 9월 27일 2:42 AM
변경됨
get_cart_promotions
2026년 9월 27일 2:42 AM
변경됨
list_bundles
2026년 9월 27일 2:42 AM
변경됨
get_product_promotions
2026년 9월 27일 2:42 AM
변경됨
list_offers
2026년 9월 27일 2:42 AM
변경됨
get_brand_products
2026년 9월 27일 2:42 AM
변경됨
list_brands
2026년 9월 27일 2:42 AM
변경됨
get_category
2026년 9월 27일 2:42 AM
변경됨
list_categories
2026년 9월 27일 2:42 AM
변경됨
get_product_documents
2026년 9월 27일 2:42 AM
변경됨
get_related_products
2026년 9월 27일 2:42 AM
변경됨
compare_products
2026년 9월 27일 2:42 AM
변경됨
get_stock_level
2026년 9월 27일 2:42 AM
변경됨
get_products
2026년 9월 27일 2:42 AM
변경됨
get_product
2026년 9월 27일 2:42 AM
변경됨
list_products
2026년 9월 27일 2:42 AM
변경됨
search_products
2026년 9월 27일 2:42 AM
추가됨
get_blog_post
2026년 9월 21일 2:40 AM