{"openapi":"3.1.0","info":{"title":"Rebuy (BYOK) API","version":"0.1.0","description":"Rebuy (BYOK) lets an AI assistant read your own Rebuy data through the Rebuy API with a key you supply (Rebuy API key). Read-only: 7 tools (list_data_sources, get_top_sellers, get_trending_products, get_recommended_products, get_similar_products, get_collection_products, get_products_by_ids). 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-rebuy.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-rebuy/docs"},"termsOfService":"https://connectorbay.com/byok-rebuy/terms"},"servers":[{"url":"https://byok-rebuy.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-rebuy/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_data_sources":{"post":{"operationId":"list_data_sources","summary":"List the Rebuy data sources (product recommendation endpoints) available to the store, with their names, descriptions an","description":"List the Rebuy data sources (product recommendation endpoints) available to the store, with their names, descriptions and paths. Use for \"Which Rebuy data sources can my store use\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_data_sourcesArguments","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_top_sellers":{"post":{"operationId":"get_top_sellers","summary":"Get the store's top selling products according to Rebuy's sales data, with variants and prices. Use for \"What are my top","description":"Get the store's top selling products according to Rebuy's sales data, with variants and prices. Use for \"What are my top selling products in Rebuy\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many products to return (1 to 100).","title":"Limit"},"filter_oos":{"anyOf":[{"enum":["yes","no"],"type":"string"},{"type":"null"}],"default":"yes","description":"yes (default) leaves out products that are out of stock; no keeps them.","title":"Filter Oos"},"shopify_product_ids":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated Shopify product IDs to filter from the result set, for example '123,456'.","title":"Shopify Product Ids"},"fields":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":"id,title,handle,vendor,product_type,status,tags,variants.id,variants.title,variants.price,variants.sku,variants.inventory_quantity","description":"Comma-separated product fields to return; dot notation works for variants, for example 'id,title,handle,variants.price'.","title":"Fields"}},"title":"get_top_sellersArguments","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_trending_products":{"post":{"operationId":"get_trending_products","summary":"Get products trending in recent sales, with variants and prices. Use for \"Which products are trending in my store\".","description":"Get products trending in recent sales, with variants and prices. Use for \"Which products are trending in my store\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many products to return (1 to 100).","title":"Limit"},"filter_oos":{"anyOf":[{"enum":["yes","no"],"type":"string"},{"type":"null"}],"default":"yes","description":"yes (default) leaves out products that are out of stock; no keeps them.","title":"Filter Oos"},"fields":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":"id,title,handle,vendor,product_type,status,tags,variants.id,variants.title,variants.price,variants.sku,variants.inventory_quantity","description":"Comma-separated product fields to return; dot notation works for variants, for example 'id,title,handle,variants.price'.","title":"Fields"}},"title":"get_trending_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_recommended_products":{"post":{"operationId":"get_recommended_products","summary":"Get Rebuy's highest converting cross-sell products for a Shopify product, variant or collection. Use for \"What does Rebu","description":"Get Rebuy's highest converting cross-sell products for a Shopify product, variant or collection. Use for \"What does Rebuy recommend alongside Shopify product 123\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"shopify_product_ids":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated Shopify product IDs, for example '123,456'. See the Rebuy docs for how this data source uses them.","title":"Shopify Product Ids"},"shopify_variant_ids":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated Shopify variant IDs, for example '123,456'. See the Rebuy docs for how this data source uses them.","title":"Shopify Variant Ids"},"shopify_collection_id":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"A single Shopify collection ID to draw recommendations from.","title":"Shopify Collection Id"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many products to return (1 to 100).","title":"Limit"},"filter_oos":{"anyOf":[{"enum":["yes","no"],"type":"string"},{"type":"null"}],"default":"yes","description":"yes (default) leaves out products that are out of stock; no keeps them.","title":"Filter Oos"},"fields":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":"id,title,handle,vendor,product_type,status,tags,variants.id,variants.title,variants.price,variants.sku,variants.inventory_quantity","description":"Comma-separated product fields to return; dot notation works for variants, for example 'id,title,handle,variants.price'.","title":"Fields"}},"title":"get_recommended_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_similar_products":{"post":{"operationId":"get_similar_products","summary":"Get products similar to the given Shopify products. Use for \"Which products are similar to Shopify product 123\".","description":"Get products similar to the given Shopify products. Use for \"Which products are similar to Shopify product 123\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"shopify_product_ids":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated Shopify product IDs, for example '123,456'. See the Rebuy docs for how this data source uses them.","title":"Shopify Product Ids"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many products to return (1 to 100).","title":"Limit"},"fields":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":"id,title,handle,vendor,product_type,status,tags,variants.id,variants.title,variants.price,variants.sku,variants.inventory_quantity","description":"Comma-separated product fields to return; dot notation works for variants, for example 'id,title,handle,variants.price'.","title":"Fields"}},"title":"get_similar_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_collection_products":{"post":{"operationId":"get_collection_products","summary":"Get the products of one or more Shopify collections, optionally sorted by likelihood to convert or by top sellers. Use f","description":"Get the products of one or more Shopify collections, optionally sorted by likelihood to convert or by top sellers. Use for \"Show the products in Shopify collection 456 as Rebuy sees them\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"shopify_collection_ids":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated Shopify collection IDs, for example '123,456'. See the Rebuy docs for how this data source uses them.","title":"Shopify Collection Ids"},"smart_sort":{"anyOf":[{"enum":["yes","top_sellers"],"type":"string"},{"type":"null"}],"default":null,"description":"yes sorts by likelihood to convert; top_sellers sorts by best sellers first.","title":"Smart Sort"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many products to return (1 to 100).","title":"Limit"},"filter_oos":{"anyOf":[{"enum":["yes","no"],"type":"string"},{"type":"null"}],"default":"yes","description":"yes (default) leaves out products that are out of stock; no keeps them.","title":"Filter Oos"},"fields":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":"id,title,handle,vendor,product_type,status,tags,variants.id,variants.title,variants.price,variants.sku,variants.inventory_quantity","description":"Comma-separated product fields to return; dot notation works for variants, for example 'id,title,handle,variants.price'.","title":"Fields"}},"title":"get_collection_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_products_by_ids":{"post":{"operationId":"get_products_by_ids","summary":"Look up specific products by Shopify product IDs or handles, or the products of one collection. Use for \"Get the Shopify","description":"Look up specific products by Shopify product IDs or handles, or the products of one collection. Use for \"Get the Shopify products with handles hat and scarf from Rebuy\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"ids":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated Shopify product IDs, for example '123,456'. See the Rebuy docs for how this data source uses them.","title":"Ids"},"handles":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated product handles, for example 'hat,scarf'.","title":"Handles"},"shopify_collection_id":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"A single Shopify collection ID.","title":"Shopify Collection Id"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many products to return (1 to 100).","title":"Limit"},"filter_oos":{"anyOf":[{"enum":["yes","no"],"type":"string"},{"type":"null"}],"default":"yes","description":"yes (default) leaves out products that are out of stock; no keeps them.","title":"Filter Oos"},"fields":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":"id,title,handle,vendor,product_type,status,tags,variants.id,variants.title,variants.price,variants.sku,variants.inventory_quantity","description":"Comma-separated product fields to return; dot notation works for variants, for example 'id,title,handle,variants.price'.","title":"Fields"}},"title":"get_products_by_idsArguments","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}}}}