{"openapi":"3.1.0","info":{"title":"Zuper Inventory (BYOK) API","version":"0.1.0","description":"Zuper Inventory (BYOK) lets an AI assistant read your own Zuper Inventory data through the Zuper Inventory API with a key you supply (Zuper API key). Read-only: 5 tools (list_stock_transactions, list_transfer_orders, list_low_stock_products, list_products_at_location, list_vendor_catalogs). The BYOK key travels with each request, is used for that one call only and is never stored, logged or...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-zuper-inventory.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-zuper-inventory/docs"},"termsOfService":"https://connectorbay.com/byok-zuper-inventory/terms"},"servers":[{"url":"https://byok-zuper-inventory.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-zuper-inventory/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_stock_transactions":{"post":{"operationId":"list_stock_transactions","summary":"List stock movements (inward, outward and transfer) with product, locations, quantity, type, remarks and time. Use for \"","description":"List stock movements (inward, outward and transfer) with product, locations, quantity, type, remarks and time. Use for \"What stock movements happened for Zuper product 256d0500\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"dc_region":{"description":"Your Zuper data-centre label, the part before .zuperpro.com in your base API URL (for example us-west-1c).","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Dc Region","type":"string"},"product_uid":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Only movements of this product uid.","title":"Product Uid"},"location_uid":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Only movements at this location uid.","title":"Location Uid"},"created_at_from":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Only movements created on or after this date or time.","title":"Created At From"},"created_at_to":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Only movements created on or before this date or time.","title":"Created At To"},"sort_by":{"anyOf":[{"enum":["quantity","created_at"],"type":"string"},{"type":"null"}],"default":"created_at","description":"Sort key: quantity or created_at.","title":"Sort By"},"sort":{"anyOf":[{"enum":["ASC","DESC"],"type":"string"},{"type":"null"}],"default":"DESC","description":"ASC or DESC.","title":"Sort"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"count":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many records per page (1 to 1000; keep small).","title":"Count"}},"required":["dc_region"],"title":"list_stock_transactionsArguments","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_transfer_orders":{"post":{"operationId":"list_transfer_orders","summary":"List stock transfer orders between locations with number, status, from and to location, required date, sent and received","description":"List stock transfer orders between locations with number, status, from and to location, required date, sent and received dates and line item count. Use for \"Which Zuper transfer orders are still in transit\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"dc_region":{"description":"Your Zuper data-centre label, the part before .zuperpro.com in your base API URL (for example us-west-1c).","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Dc Region","type":"string"},"keyword":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Keyword search.","title":"Keyword"},"status":{"anyOf":[{"enum":["DRAFT","IN_TRANSIT","COMPLETED","VOIDED"],"type":"string"},{"type":"null"}],"default":null,"description":"DRAFT, IN_TRANSIT, COMPLETED or VOIDED.","title":"Status"},"from_location":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Only orders leaving this location uid.","title":"From Location"},"to_location":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Only orders going to this location uid.","title":"To Location"},"over_due":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for overdue orders only.","title":"Over Due"}},"required":["dc_region"],"title":"list_transfer_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_low_stock_products":{"post":{"operationId":"list_low_stock_products","summary":"List products whose stock is at or below their minimum quantity, with quantity and minimum quantity. Use for \"Which Zupe","description":"List products whose stock is at or below their minimum quantity, with quantity and minimum quantity. Use for \"Which Zuper parts are running low on stock\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"dc_region":{"description":"Your Zuper data-centre label, the part before .zuperpro.com in your base API URL (for example us-west-1c).","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Dc Region","type":"string"},"low_stock":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":true,"description":"Only low-stock products (leave true).","title":"Low Stock"},"keyword":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Keyword search.","title":"Keyword"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"count":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many records per page (1 to 1000; keep small).","title":"Count"}},"required":["dc_region"],"title":"list_low_stock_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_products_at_location":{"post":{"operationId":"list_products_at_location","summary":"List products stocked at one location with quantity, minimum quantity and price. Use for \"What products does Zuper locat","description":"List products stocked at one location with quantity, minimum quantity and price. Use for \"What products does Zuper location 4c90d230 stock\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"dc_region":{"description":"Your Zuper data-centre label, the part before .zuperpro.com in your base API URL (for example us-west-1c).","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Dc Region","type":"string"},"location_uid":{"description":"Location uid.","maxLength":60,"title":"Location Uid","type":"string"},"keyword":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Keyword search.","title":"Keyword"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"count":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many records per page (1 to 1000; keep small).","title":"Count"}},"required":["dc_region","location_uid"],"title":"list_products_at_locationArguments","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_vendor_catalogs":{"post":{"operationId":"list_vendor_catalogs","summary":"List vendor catalog entries (which vendor supplies which product), optionally grouped by vendor or product. The answer s","description":"List vendor catalog entries (which vendor supplies which product), optionally grouped by vendor or product. The answer shape is not documented in detail, so fields are returned as sent and capped at 25 records. Use for \"Which vendors supply product category X in Zuper\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"dc_region":{"description":"Your Zuper data-centre label, the part before .zuperpro.com in your base API URL (for example us-west-1c).","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Dc Region","type":"string"},"group_by":{"anyOf":[{"enum":["VENDOR","PRODUCT"],"type":"string"},{"type":"null"}],"default":null,"description":"Group results by VENDOR or PRODUCT.","title":"Group By"},"product_type":{"anyOf":[{"enum":["PARTS","PRODUCT"],"type":"string"},{"type":"null"}],"default":null,"description":"PARTS or PRODUCT.","title":"Product Type"},"product_category":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Product category uid.","title":"Product Category"},"keyword":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Keyword search.","title":"Keyword"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"count":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many records per page (1 to 1000; keep small).","title":"Count"}},"required":["dc_region"],"title":"list_vendor_catalogsArguments","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}}}}