{"openapi":"3.1.0","info":{"title":"Ordoro (BYOK) API","version":"0.1.0","description":"Ordoro (BYOK) lets an AI assistant read your own Ordoro data through the Ordoro API with a key you supply (API client ID). Read-only: 11 tools (get_order_counts, list_orders, get_order, list_products, get_product, list_purchase_orders, list_suppliers, list_warehouses, list_sales_channels, list_shippers, list_manufacturing_orders). The BYOK key travels with each request, is used for that one call...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-ordoro.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-ordoro/docs"},"termsOfService":"https://connectorbay.com/byok-ordoro/terms"},"servers":[{"url":"https://byok-ordoro.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-ordoro/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/get_order_counts":{"post":{"operationId":"get_order_counts","summary":"Count Ordoro orders by status: all, awaiting fulfillment, shipped, cancelled, dropship requested and shipped-but-unprint","description":"Count Ordoro orders by status: all, awaiting fulfillment, shipped, cancelled, dropship requested and shipped-but-unprinted. Use for \"How many orders are waiting to be fulfilled in Ordoro\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_order_countsArguments","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_orders":{"post":{"operationId":"list_orders","summary":"List orders with number, status, allocation status, dates, sales channel, warehouse, totals and tags. Buyer names and ad","description":"List orders with number, status, allocation status, dates, sales channel, warehouse, totals and tags. Buyer names and addresses are left out. Filter by status, date or search text. Use for \"Which Ordoro orders are awaiting fulfillment\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"search":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Text to search order numbers, SKUs and other order fields for.","title":"Search"},"status":{"anyOf":[{"enum":["all","awaiting_fulfillment","shipped","cancelled","dropshipment_requested"],"type":"string"},{"type":"null"}],"default":"all","description":"Order status: all, awaiting_fulfillment, shipped, cancelled or dropshipment_requested.","title":"Status"},"sku":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only orders containing this SKU.","title":"Sku"},"created_after":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only orders created after this ISO 8601 date or time, for example 2026-01-01.","title":"Created After"},"created_before":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only orders created before this ISO 8601 date or time.","title":"Created Before"},"updated_after":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only orders updated after this ISO 8601 date or time.","title":"Updated After"},"sort":{"anyOf":[{"enum":["order_placed_date","-order_placed_date","created_date","-created_date","updated_date","-updated_date","grand_total","-grand_total","order_number","-order_number","ship_date","-ship_date","status","-status"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort order, prefix with - for descending: order_placed_date, created_date, updated_date, grand_total, order_number, ship_date or status.","title":"Sort"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many results to skip, for paging.","title":"Offset"}},"title":"list_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_order":{"post":{"operationId":"get_order","summary":"Get one order by its order number with status, dates, line items (SKU, quantity, price), totals, tags and warehouse. Buy","description":"Get one order by its order number with status, dates, line items (SKU, quantity, price), totals, tags and warehouse. Buyer names and addresses are left out. Use for \"Show Ordoro order M-1234\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"order_number":{"description":"Order number as shown in Ordoro, for example 'M-1234'.","maxLength":200,"title":"Order Number","type":"string"}},"required":["order_number"],"title":"get_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_products":{"post":{"operationId":"list_products","summary":"List products with SKU, name, price, cost, category and stock figures (on hand, committed, available). Filter by active ","description":"List products with SKU, name, price, cost, category and stock figures (on hand, committed, available). Filter by active state, low inventory, tag or update date. Use for \"Which Ordoro products are low on inventory\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"search":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Text to search product names and SKUs for.","title":"Search"},"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for only active products, false for only inactive ones.","title":"Active"},"low_inventory_aoh":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for only products low on available-on-hand stock.","title":"Low Inventory Aoh"},"oversold":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for only oversold products.","title":"Oversold"},"category":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only products in this category.","title":"Category"},"updated_after":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only products updated after this ISO 8601 date or time.","title":"Updated After"},"sort":{"anyOf":[{"enum":["name","-name","sku","-sku","created","-created","total_committed","-total_committed","total_available","-total_available","total_on_hand","-total_on_hand"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort order, prefix with - for descending.","title":"Sort"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many results to skip, for paging.","title":"Offset"}},"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/get_product":{"post":{"operationId":"get_product","summary":"Get one product by its SKU with price, cost, stock figures, category, kit flag and tags. Use for \"Show the Ordoro produc","description":"Get one product by its SKU with price, cost, stock figures, category, kit flag and tags. Use for \"Show the Ordoro product with SKU TSHIRT-RED-M\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"sku":{"description":"Product SKU, for example 'TSHIRT-RED-M'.","maxLength":200,"title":"Sku","type":"string"}},"required":["sku"],"title":"get_productArguments","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 PO ID, status, dates, shipping, tax and discount amounts, supplier and warehouse. Use for \"Whi","description":"List purchase orders with PO ID, status, dates, shipping, tax and discount amounts, supplier and warehouse. Use for \"Which Ordoro purchase orders are still open\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"search":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Text to search purchase orders for.","title":"Search"},"status":{"anyOf":[{"enum":["unsent","sent","partial","received","cancelled","all"],"type":"string"},{"type":"null"}],"default":"all","description":"PO status: unsent, sent, partial, received, cancelled or all.","title":"Status"},"sku":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only purchase orders containing this SKU.","title":"Sku"},"updated_after":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only purchase orders updated after this ISO 8601 date or time.","title":"Updated After"},"sort":{"anyOf":[{"enum":["status","-status","po_id","-po_id","updated","-updated","estimated_delivery_date","-estimated_delivery_date"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort order, prefix with - for descending.","title":"Sort"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many results to skip, for paging.","title":"Offset"}},"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_suppliers":{"post":{"operationId":"list_suppliers","summary":"List suppliers with ID, address, routing channels and dates. Use for \"Which suppliers are set up in Ordoro\".","description":"List suppliers with ID, address, routing channels and dates. Use for \"Which suppliers are set up in Ordoro\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"search":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Text to search suppliers for.","title":"Search"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many results to skip, for paging.","title":"Offset"}},"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_warehouses":{"post":{"operationId":"list_warehouses","summary":"List warehouses with ID, address, default flag and whether they are set up for shipping. Use for \"What warehouses do I h","description":"List warehouses with ID, address, default flag and whether they are set up for shipping. Use for \"What warehouses do I have in Ordoro\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"search":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Text to search warehouses for.","title":"Search"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many results to skip, for paging.","title":"Offset"}},"title":"list_warehousesArguments","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_sales_channels":{"post":{"operationId":"list_sales_channels","summary":"List connected sales channels (carts such as Shopify, Amazon or BigCommerce) with name, platform, sync setting and archi","description":"List connected sales channels (carts such as Shopify, Amazon or BigCommerce) with name, platform, sync setting and archive date. Credentials are not shown. Use for \"Which sales channels are connected to Ordoro\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"search":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Text to search sales channels for.","title":"Search"},"all":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to include archived channels.","title":"All"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many results to skip, for paging.","title":"Offset"}},"title":"list_sales_channelsArguments","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_shippers":{"post":{"operationId":"list_shippers","summary":"List shipping accounts with ID, name and carrier. Credentials are not shown. Use for \"Which shipping carriers are connec","description":"List shipping accounts with ID, name and carrier. Credentials are not shown. Use for \"Which shipping carriers are connected to Ordoro\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"search":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Text to search shippers for.","title":"Search"},"all":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to include archived shippers.","title":"All"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many results to skip, for paging.","title":"Offset"}},"title":"list_shippersArguments","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 reference ID, status, warehouse, lines and dates. Use for \"Which manufacturing orders are","description":"List manufacturing orders with reference ID, status, warehouse, lines and dates. Use for \"Which manufacturing orders are active in Ordoro\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"search":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Text to search manufacturing orders for.","title":"Search"},"status":{"anyOf":[{"enum":["initiated","active","finished","cancelled"],"type":"string"},{"type":"null"}],"default":null,"description":"Order status: initiated, active, finished or cancelled.","title":"Status"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many results to skip, for paging.","title":"Offset"}},"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}}}}