{"openapi":"3.1.0","info":{"title":"Katana (BYOK) API","version":"0.1.0","description":"Katana (BYOK) lets an AI assistant read your own Katana data through the Katana API with a key you supply (Katana API key). Read-only: 12 tools (list_sales_orders, get_sales_order, list_purchase_orders, list_products, list_materials, list_variants, list_inventory, list_inventory_signals, list_customers, list_suppliers, list_manufacturing_orders, list_locations). The BYOK key travels with each...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-katana.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-katana/docs"},"termsOfService":"https://connectorbay.com/byok-katana/terms"},"servers":[{"url":"https://byok-katana.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-katana/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/list_sales_orders":{"post":{"operationId":"list_sales_orders","summary":"List sales orders, newest first, with customer, status, totals, availability and production status. Filter by status, cu","description":"List sales orders, newest first, with customer, status, totals, availability and production status. Filter by status, customer, location, e-commerce store or dates. Use for \"Which sales orders are not yet shipped\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"status":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Order status as Katana reports it, for example NOT_SHIPPED.","title":"Status"},"order_no":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Exact order number such as SO-3.","title":"Order No"},"customer_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only orders of this customer ID.","title":"Customer Id"},"location_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only records of this location ID (see list_locations).","title":"Location Id"},"product_availability":{"anyOf":[{"enum":["IN_STOCK","EXPECTED","PICKED","NOT_AVAILABLE","NOT_APPLICABLE"],"type":"string"},{"type":"null"}],"default":null,"description":"Filter by product availability.","title":"Product Availability"},"production_status":{"anyOf":[{"enum":["NOT_STARTED","NONE","NOT_APPLICABLE","IN_PROGRESS","BLOCKED","DONE"],"type":"string"},{"type":"null"}],"default":null,"description":"Filter by production status.","title":"Production Status"},"invoicing_status":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Filter by invoicing status, for example invoiced.","title":"Invoicing Status"},"ecommerce_store_name":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only orders from this e-commerce store name.","title":"Ecommerce Store Name"},"currency":{"anyOf":[{"maxLength":3,"type":"string"},{"type":"null"}],"default":null,"description":"Three-letter currency code such as USD.","title":"Currency"},"include_deleted":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to include soft-deleted records, which are left out by default.","title":"Include Deleted"},"created_at_min":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only records created at or after this ISO 8601 time, for example 2026-09-01T00:00:00Z.","title":"Created At Min"},"created_at_max":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only records created at or before this ISO 8601 time.","title":"Created At Max"},"updated_at_min":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only records updated at or after this ISO 8601 time.","title":"Updated At Min"},"updated_at_max":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only records updated at or before this ISO 8601 time.","title":"Updated At Max"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many records to return (1 to 100; the service default is 50).","title":"Limit"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_sales_ordersArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_sales_order":{"post":{"operationId":"get_sales_order","summary":"Get one sales order by ID including its rows (variant, quantity, price, availability). Use for \"Show sales order 1 with ","description":"Get one sales order by ID including its rows (variant, quantity, price, availability). Use for \"Show sales order 1 with its line items\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"sales_order_id":{"description":"Numeric sales order ID.","title":"Sales Order Id","type":"integer"}},"required":["sales_order_id"],"title":"get_sales_orderArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_purchase_orders":{"post":{"operationId":"list_purchase_orders","summary":"List purchase orders, newest first, with supplier, status, billing status, totals and expected arrival. Filter by status","description":"List purchase orders, newest first, with supplier, status, billing status, totals and expected arrival. Filter by status, supplier, location or dates. Use for \"Which purchase orders are still waiting to be received\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"status":{"anyOf":[{"enum":["DRAFT","NOT_RECEIVED","PARTIALLY_RECEIVED","RECEIVED"],"type":"string"},{"type":"null"}],"default":null,"description":"Order status.","title":"Status"},"billing_status":{"anyOf":[{"enum":["BILLED","NOT_BILLED","PARTIALLY_BILLED"],"type":"string"},{"type":"null"}],"default":null,"description":"Billing status.","title":"Billing Status"},"order_no":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Exact order number such as PO-1.","title":"Order No"},"supplier_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only orders of this supplier ID.","title":"Supplier Id"},"location_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only records of this location ID (see list_locations).","title":"Location Id"},"entity_type":{"anyOf":[{"enum":["regular","outsourced"],"type":"string"},{"type":"null"}],"default":null,"description":"regular or outsourced purchase orders.","title":"Entity Type"},"include_deleted":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to include soft-deleted records, which are left out by default.","title":"Include Deleted"},"created_at_min":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only records created at or after this ISO 8601 time, for example 2026-09-01T00:00:00Z.","title":"Created At Min"},"created_at_max":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only records created at or before this ISO 8601 time.","title":"Created At Max"},"updated_at_min":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only records updated at or after this ISO 8601 time.","title":"Updated At Min"},"updated_at_max":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only records updated at or before this ISO 8601 time.","title":"Updated At Max"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many records to return (1 to 100; the service default is 50).","title":"Limit"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_purchase_ordersArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_products":{"post":{"operationId":"list_products","summary":"List products with unit, category, flags (sellable, producible, purchasable), default supplier and their variants (SKU, ","description":"List products with unit, category, flags (sellable, producible, purchasable), default supplier and their variants (SKU, prices). Use for \"Which products do we sell, and what are their SKUs\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Exact product name.","title":"Name"},"uom":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Unit of measure such as pcs.","title":"Uom"},"is_sellable":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for sellable products only.","title":"Is Sellable"},"is_producible":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for products made in-house only.","title":"Is Producible"},"is_purchasable":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for purchasable products only.","title":"Is Purchasable"},"default_supplier_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only products with this default supplier ID.","title":"Default Supplier Id"},"include_deleted":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to include soft-deleted records, which are left out by default.","title":"Include Deleted"},"include_archived":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to include archived records, which are left out by default.","title":"Include Archived"},"created_at_min":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only records created at or after this ISO 8601 time, for example 2026-09-01T00:00:00Z.","title":"Created At Min"},"created_at_max":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only records created at or before this ISO 8601 time.","title":"Created At Max"},"updated_at_min":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only records updated at or after this ISO 8601 time.","title":"Updated At Min"},"updated_at_max":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only records updated at or before this ISO 8601 time.","title":"Updated At Max"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many records to return (1 to 100; the service default is 50).","title":"Limit"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_productsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_materials":{"post":{"operationId":"list_materials","summary":"List raw materials with unit, category, default supplier and their variants (SKU, purchase price). Use for \"Which raw ma","description":"List raw materials with unit, category, default supplier and their variants (SKU, purchase price). Use for \"Which raw materials do we buy\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Exact material name.","title":"Name"},"uom":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Unit of measure such as pcs.","title":"Uom"},"default_supplier_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only materials with this default supplier ID.","title":"Default Supplier Id"},"include_deleted":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to include soft-deleted records, which are left out by default.","title":"Include Deleted"},"include_archived":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to include archived records, which are left out by default.","title":"Include Archived"},"created_at_min":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only records created at or after this ISO 8601 time, for example 2026-09-01T00:00:00Z.","title":"Created At Min"},"created_at_max":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only records created at or before this ISO 8601 time.","title":"Created At Max"},"updated_at_min":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only records updated at or after this ISO 8601 time.","title":"Updated At Min"},"updated_at_max":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only records updated at or before this ISO 8601 time.","title":"Updated At Max"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many records to return (1 to 100; the service default is 50).","title":"Limit"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_materialsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_variants":{"post":{"operationId":"list_variants","summary":"List product and material variants with SKU, prices, barcodes, supplier item codes and configuration attributes. Use for","description":"List product and material variants with SKU, prices, barcodes, supplier item codes and configuration attributes. Use for \"What is the price and barcode of the variants of product 1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"product_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only variants of this product ID.","title":"Product Id"},"material_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only variants of this material ID.","title":"Material Id"},"sales_price":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"default":null,"description":"Only variants with exactly this sales price.","title":"Sales Price"},"purchase_price":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"default":null,"description":"Only variants with exactly this purchase price.","title":"Purchase Price"},"internal_barcode":{"anyOf":[{"maxLength":80,"type":"string"},{"type":"null"}],"default":null,"description":"Exact internal barcode.","title":"Internal Barcode"},"registered_barcode":{"anyOf":[{"maxLength":80,"type":"string"},{"type":"null"}],"default":null,"description":"Exact registered barcode.","title":"Registered Barcode"},"include_deleted":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to include soft-deleted records, which are left out by default.","title":"Include Deleted"},"include_archived":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to include archived records, which are left out by default.","title":"Include Archived"},"created_at_min":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only records created at or after this ISO 8601 time, for example 2026-09-01T00:00:00Z.","title":"Created At Min"},"created_at_max":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only records created at or before this ISO 8601 time.","title":"Created At Max"},"updated_at_min":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only records updated at or after this ISO 8601 time.","title":"Updated At Min"},"updated_at_max":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only records updated at or before this ISO 8601 time.","title":"Updated At Max"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many records to return (1 to 100; the service default is 50).","title":"Limit"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_variantsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_inventory":{"post":{"operationId":"list_inventory","summary":"List current stock per variant and location: quantity in stock, committed, expected, potential, reorder point, average c","description":"List current stock per variant and location: quantity in stock, committed, expected, potential, reorder point, average cost and stock value. Use for \"How much stock do we have of variant 1 at each location\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"variant_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only stock of this variant ID.","title":"Variant Id"},"location_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only records of this location ID (see list_locations).","title":"Location Id"},"include_archived":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to include archived records, which are left out by default.","title":"Include Archived"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many records to return (1 to 100; the service default is 50).","title":"Limit"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_inventoryArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_inventory_signals":{"post":{"operationId":"list_inventory_signals","summary":"List replenishment signals per variant: average daily demand, days of stock left, reorder point, safety stock and stock ","description":"List replenishment signals per variant: average daily demand, days of stock left, reorder point, safety stock and stock risk (0 low, 1 high, 2 critical, 3 stockout). Variants without demand have no row. Use for \"Which variants are at critical risk of running out of stock\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"demand_window":{"anyOf":[{"maximum":90,"minimum":7,"type":"integer"},{"type":"null"}],"default":null,"description":"Demand window in days: 7, 30 (default), 60 or 90.","title":"Demand Window"},"variant_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only the signal of this variant ID.","title":"Variant Id"},"stock_risk":{"anyOf":[{"maximum":3,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Only signals at this risk level: 0 low, 1 high, 2 critical, 3 stockout.","title":"Stock Risk"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many records to return (1 to 100; the service default is 50).","title":"Limit"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_inventory_signalsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_customers":{"post":{"operationId":"list_customers","summary":"List customers with name, company, email, phone, currency, category and default address IDs. Use for \"Find the customer ","description":"List customers with name, company, email, phone, currency, category and default address IDs. Use for \"Find the customer with email luke.skywalker@example.com\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Exact customer name.","title":"Name"},"email":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Exact email address.","title":"Email"},"company":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Exact company name.","title":"Company"},"phone":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Exact phone number.","title":"Phone"},"category":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Customer category.","title":"Category"},"include_deleted":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to include soft-deleted records, which are left out by default.","title":"Include Deleted"},"created_at_min":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only records created at or after this ISO 8601 time, for example 2026-09-01T00:00:00Z.","title":"Created At Min"},"created_at_max":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only records created at or before this ISO 8601 time.","title":"Created At Max"},"updated_at_min":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only records updated at or after this ISO 8601 time.","title":"Updated At Min"},"updated_at_max":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only records updated at or before this ISO 8601 time.","title":"Updated At Max"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many records to return (1 to 100; the service default is 50).","title":"Limit"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_customersArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_suppliers":{"post":{"operationId":"list_suppliers","summary":"List suppliers with name, email, phone, currency and default address ID. Use for \"Which suppliers do we have, and what a","description":"List suppliers with name, email, phone, currency and default address ID. Use for \"Which suppliers do we have, and what are their emails\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Exact supplier name.","title":"Name"},"email":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Exact email address.","title":"Email"},"phone":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Exact phone number.","title":"Phone"},"include_deleted":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to include soft-deleted records, which are left out by default.","title":"Include Deleted"},"created_at_min":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only records created at or after this ISO 8601 time, for example 2026-09-01T00:00:00Z.","title":"Created At Min"},"created_at_max":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only records created at or before this ISO 8601 time.","title":"Created At Max"},"updated_at_min":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only records updated at or after this ISO 8601 time.","title":"Updated At Min"},"updated_at_max":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only records updated at or before this ISO 8601 time.","title":"Updated At Max"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many records to return (1 to 100; the service default is 50).","title":"Limit"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_suppliersArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_manufacturing_orders":{"post":{"operationId":"list_manufacturing_orders","summary":"List manufacturing orders with status, variant, planned and actual quantity, deadlines, ingredient availability and cost","description":"List manufacturing orders with status, variant, planned and actual quantity, deadlines, ingredient availability and cost. Use for \"Which manufacturing orders are in progress or blocked\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"status":{"anyOf":[{"enum":["NOT_STARTED","BLOCKED","IN_PROGRESS","PARTIALLY_COMPLETED","DONE"],"type":"string"},{"type":"null"}],"default":null,"description":"Order status.","title":"Status"},"order_no":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Exact order number.","title":"Order No"},"location_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only records of this location ID (see list_locations).","title":"Location Id"},"is_linked_to_sales_order":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for orders made for a sales order, false for stock orders.","title":"Is Linked To Sales Order"},"include_deleted":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to include soft-deleted records, which are left out by default.","title":"Include Deleted"},"created_at_min":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only records created at or after this ISO 8601 time, for example 2026-09-01T00:00:00Z.","title":"Created At Min"},"created_at_max":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only records created at or before this ISO 8601 time.","title":"Created At Max"},"updated_at_min":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only records updated at or after this ISO 8601 time.","title":"Updated At Min"},"updated_at_max":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only records updated at or before this ISO 8601 time.","title":"Updated At Max"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many records to return (1 to 100; the service default is 50).","title":"Limit"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_manufacturing_ordersArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_locations":{"post":{"operationId":"list_locations","summary":"List warehouses and locations with address, primary flag and whether sales, purchases and manufacturing are allowed. Use","description":"List warehouses and locations with address, primary flag and whether sales, purchases and manufacturing are allowed. Use for \"What locations does the factory have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Exact location name.","title":"Name"},"include_deleted":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to include soft-deleted records, which are left out by default.","title":"Include Deleted"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many records to return (1 to 100; the service default is 50).","title":"Limit"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_locationsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}