{"openapi":"3.1.0","info":{"title":"Apicbase Suppliers and Purchase Orders (your key) API","version":"0.1.0","description":"Apicbase Suppliers and Purchase Orders (your key) lets an AI assistant read your own Apicbase Procurement data through the Apicbase Procurement API with a key you supply (Apicbase API access token). Read-only: 7 tools (list_suppliers, list_purchase_orders, list_order_approvals, list_supplier_deliveries, list_incoming_orders, list_invoice_statuses, list_intake_reasons). The BYOK key travels with...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-apicbase-procurement.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-apicbase-procurement/docs"},"termsOfService":"https://connectorbay.com/byok-apicbase-procurement/terms"},"servers":[{"url":"https://byok-apicbase-procurement.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-apicbase-procurement/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_suppliers":{"post":{"operationId":"list_suppliers","summary":"List suppliers with name, tax number, customer number, delivery fee, order approval setting, daily order limit and city.","description":"List suppliers with name, tax number, customer number, delivery fee, order approval setting, daily order limit and city. Contact names, e-mails and phones are left out. Use for \"Which suppliers are set up in my Apicbase library\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"company_or_full_name":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only suppliers whose name matches this text.","title":"Company Or Full Name"},"ordering":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Field to sort by; prefix with - for descending.","title":"Ordering"},"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_purchase_orders":{"post":{"operationId":"list_purchase_orders","summary":"List purchase orders with number, status, supplier, outlet, order and expected delivery dates, invoice status and theore","description":"List purchase orders with number, status, supplier, outlet, order and expected delivery dates, invoice status and theoretical price. Can filter by status, supplier or outlet. Use for \"Which Apicbase purchase orders are still open\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"status":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Only orders with this status, for example IN_PROGRESS or SENT.","title":"Status"},"supplier":{"anyOf":[{"maxLength":32,"type":"string"},{"type":"null"}],"default":null,"description":"Only orders to this supplier ID.","title":"Supplier"},"outlet":{"anyOf":[{"maxLength":32,"type":"string"},{"type":"null"}],"default":null,"description":"Only orders of this outlet ID.","title":"Outlet"},"delivery_closed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for only orders whose delivery is closed, false for open ones.","title":"Delivery Closed"},"ordering":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Field to sort by; prefix with - for descending.","title":"Ordering"},"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_order_approvals":{"post":{"operationId":"list_order_approvals","summary":"List order approval requests with status, when they were submitted, amount at submission, expected delivery and the purc","description":"List order approval requests with status, when they were submitted, amount at submission, expected delivery and the purchase order. Use for \"Which Apicbase orders are waiting for approval\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"status":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Only approvals with this status, for example pending.","title":"Status"},"outlet":{"anyOf":[{"maxLength":32,"type":"string"},{"type":"null"}],"default":null,"description":"Only approvals for this outlet ID.","title":"Outlet"},"supplier":{"anyOf":[{"maxLength":32,"type":"string"},{"type":"null"}],"default":null,"description":"Only approvals for this supplier ID.","title":"Supplier"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_order_approvalsArguments","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_supplier_deliveries":{"post":{"operationId":"list_supplier_deliveries","summary":"List deliveries received from suppliers with date, draft flag, actual price, discount, returnables and the purchase orde","description":"List deliveries received from suppliers with date, draft flag, actual price, discount, returnables and the purchase order. Use for \"What deliveries arrived at my Apicbase outlets\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"outlet_id":{"anyOf":[{"maxLength":32,"type":"string"},{"type":"null"}],"default":null,"description":"Only deliveries to this outlet ID.","title":"Outlet Id"},"supplier_id":{"anyOf":[{"maxLength":32,"type":"string"},{"type":"null"}],"default":null,"description":"Only deliveries from this supplier ID.","title":"Supplier Id"},"draft":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for only draft deliveries, false for confirmed ones.","title":"Draft"},"ordering":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Field to sort by; prefix with - for descending.","title":"Ordering"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_supplier_deliveriesArguments","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_incoming_orders":{"post":{"operationId":"list_incoming_orders","summary":"List orders that outlets sent to this library's internal supplier outlets, with control and PO numbers, status, dates an","description":"List orders that outlets sent to this library's internal supplier outlets, with control and PO numbers, status, dates and theoretical price. Use for \"Which internal orders came in at my Apicbase central kitchen\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"status":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Only orders with this status, for example SENT.","title":"Status"},"supplier_outlet":{"anyOf":[{"maxLength":32,"type":"string"},{"type":"null"}],"default":null,"description":"Only orders to this supplier outlet ID.","title":"Supplier Outlet"},"ordering_outlet":{"anyOf":[{"maxLength":32,"type":"string"},{"type":"null"}],"default":null,"description":"Only orders from this ordering outlet ID.","title":"Ordering Outlet"},"ordering":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Field to sort by; prefix with - for descending.","title":"Ordering"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_incoming_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_invoice_statuses":{"post":{"operationId":"list_invoice_statuses","summary":"List the invoice status options (numeric value and text) that purchase orders can have. Use for \"What do the Apicbase in","description":"List the invoice status options (numeric value and text) that purchase orders can have. Use for \"What do the Apicbase invoice status numbers mean\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_invoice_statusesArguments","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_intake_reasons":{"post":{"operationId":"list_intake_reasons","summary":"List the intake reason codes (value, text and whether the goods were accepted) used when receiving deliveries. Use for \"","description":"List the intake reason codes (value, text and whether the goods were accepted) used when receiving deliveries. Use for \"What intake reasons can I pick in Apicbase\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_intake_reasonsArguments","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}}}}