{"openapi":"3.1.0","info":{"title":"Bold Commerce (BYOK) API","version":"0.1.0","description":"Bold Commerce (BYOK) lets an AI assistant read your own Bold Commerce data through the Bold Commerce API with a key you supply (API access token (private integration)). Read-only: 9 tools (get_shop_info, list_products, get_product, list_variants, list_categories, list_product_types, list_product_vendors, list_subscriptions, list_subscription_groups). The BYOK key travels with each request, is...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-bold-commerce.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-bold-commerce/docs"},"termsOfService":"https://connectorbay.com/byok-bold-commerce/terms"},"servers":[{"url":"https://byok-bold-commerce.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-bold-commerce/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_shop_info":{"post":{"operationId":"get_shop_info","summary":"Show the store connected to the token: shop identifier, store name, domain, platform, currency, time zone, locale and pl","description":"Show the store connected to the token: shop identifier, store name, domain, platform, currency, time zone, locale and plan. Owner contact details are left out. Use for \"Which store is my Bold token connected to and what is its shop identifier\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_shop_infoArguments","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 the store's products synced to Bold with name, handle, type, vendor, tags, stock and publish state, plus their vari","description":"List the store's products synced to Bold with name, handle, type, vendor, tags, stock and publish state, plus their variants and categories. Search one column with a fuzzy term or filter by update time. Use for \"Which products are synced to Bold Commerce\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"shop_identifier":{"description":"Your store's shop identifier; get_shop_info returns it as shop_identifier.","maxLength":200,"title":"Shop Identifier","type":"string"},"filtercolumn":{"anyOf":[{"maxLength":50,"type":"string"},{"type":"null"}],"default":null,"description":"Column for a fuzzy search, for example 'name' or 'type'. Use together with filtervalue.","title":"Filtercolumn"},"filtervalue":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Fuzzy search term for the filter column.","title":"Filtervalue"},"category_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Only products in this Bold category ID.","title":"Category Id"},"updated_at_min":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only products updated after this time (RFC 3339, for example 2026-01-01T00:00:00Z).","title":"Updated At Min"},"updated_at_max":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only products updated before this time (RFC 3339).","title":"Updated At Max"},"deep":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":true,"description":"True to include each product's variants, options, images and categories (larger answer).","title":"Deep"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 100).","title":"Limit"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"required":["shop_identifier"],"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 Bold product ID, with its variants, options and categories. Use for \"Show Bold product 123\".","description":"Get one product by its Bold product ID, with its variants, options and categories. Use for \"Show Bold product 123\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"shop_identifier":{"description":"Your store's shop identifier; get_shop_info returns it as shop_identifier.","maxLength":200,"title":"Shop Identifier","type":"string"},"id":{"description":"Bold product ID (numeric), as returned by list_products in product.id.","title":"Id","type":"integer"}},"required":["shop_identifier","id"],"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_variants":{"post":{"operationId":"list_variants","summary":"List all product variants of the store with SKU, price, cost, compare-at price and stock quantity. Use for \"What variant","description":"List all product variants of the store with SKU, price, cost, compare-at price and stock quantity. Use for \"What variants and prices does my Bold store have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"shop_identifier":{"description":"Your store's shop identifier; get_shop_info returns it as shop_identifier.","maxLength":200,"title":"Shop Identifier","type":"string"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 100).","title":"Limit"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"required":["shop_identifier"],"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_categories":{"post":{"operationId":"list_categories","summary":"List the store's product categories (collections) synced to Bold with name and dates. Use for \"Which product categories ","description":"List the store's product categories (collections) synced to Bold with name and dates. Use for \"Which product categories are in my Bold store\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"shop_identifier":{"description":"Your store's shop identifier; get_shop_info returns it as shop_identifier.","maxLength":200,"title":"Shop Identifier","type":"string"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 100).","title":"Limit"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"required":["shop_identifier"],"title":"list_categoriesArguments","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_product_types":{"post":{"operationId":"list_product_types","summary":"List the distinct product types used in the store. Use for \"Which product types does my Bold store use\".","description":"List the distinct product types used in the store. Use for \"Which product types does my Bold store use\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"shop_identifier":{"description":"Your store's shop identifier; get_shop_info returns it as shop_identifier.","maxLength":200,"title":"Shop Identifier","type":"string"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 100).","title":"Limit"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"required":["shop_identifier"],"title":"list_product_typesArguments","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_product_vendors":{"post":{"operationId":"list_product_vendors","summary":"List the distinct product vendors used in the store. Use for \"Which product vendors does my Bold store use\".","description":"List the distinct product vendors used in the store. Use for \"Which product vendors does my Bold store use\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"shop_identifier":{"description":"Your store's shop identifier; get_shop_info returns it as shop_identifier.","maxLength":200,"title":"Shop Identifier","type":"string"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 100).","title":"Limit"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"required":["shop_identifier"],"title":"list_product_vendorsArguments","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_subscriptions":{"post":{"operationId":"list_subscriptions","summary":"List Bold Subscriptions with status, next order and payment dates, product line items, failure reason and order counts. ","description":"List Bold Subscriptions with status, next order and payment dates, product line items, failure reason and order counts. Addresses and payment details are left out. Page with the cursor from the previous answer. Use for \"Which of my Bold subscriptions failed to renew\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"shop_identifier":{"description":"Your store's shop identifier; get_shop_info returns it as shop_identifier.","maxLength":200,"title":"Shop Identifier","type":"string"},"subscription_status":{"anyOf":[{"enum":["active","inactive","processing","scheduled","paused"],"type":"string"},{"type":"null"}],"default":null,"description":"Only subscriptions with this status: active, inactive, processing, scheduled or paused.","title":"Subscription Status"},"customer_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Only subscriptions of this Bold customer ID.","title":"Customer Id"},"cursor":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from the previous answer's pagination.next; leave out for the first page.","title":"Cursor"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 100).","title":"Limit"}},"required":["shop_identifier"],"title":"list_subscriptionsArguments","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_subscription_groups":{"post":{"operationId":"list_subscription_groups","summary":"List the subscription groups (plans) with name, type, discount, prepaid setting, enabled flag and active subscriber coun","description":"List the subscription groups (plans) with name, type, discount, prepaid setting, enabled flag and active subscriber count. Use for \"Which subscription plans do I offer through Bold and how many subscribers does each have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"shop_identifier":{"description":"Your store's shop identifier; get_shop_info returns it as shop_identifier.","maxLength":200,"title":"Shop Identifier","type":"string"}},"required":["shop_identifier"],"title":"list_subscription_groupsArguments","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}}}}