{"openapi":"3.1.0","info":{"title":"Klaviyo Catalogs (BYOK) API","version":"0.1.0","description":"Klaviyo Catalogs (BYOK) lets an AI assistant read your own Klaviyo Catalogs data through the Klaviyo Catalogs API with a key you supply (private API key (starts with pk_)). Read-only: 8 tools (list_catalog_items, get_catalog_item, list_item_variants, list_catalog_variants, get_catalog_variant, list_catalog_categories, get_catalog_category, list_category_items). The BYOK key travels with each...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-klaviyo-catalogs.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-klaviyo-catalogs/docs"},"termsOfService":"https://connectorbay.com/byok-klaviyo-catalogs/terms"},"servers":[{"url":"https://byok-klaviyo-catalogs.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-klaviyo-catalogs/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_catalog_items":{"post":{"operationId":"list_catalog_items","summary":"List catalog items (products) with title, description, price, URL, published flag and dates, at most 100 per page. Needs","description":"List catalog items (products) with title, description, price, URL, published flag and dates, at most 100 per page. Needs the catalogs:read scope. Use for \"Which products are in my Klaviyo catalog\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"filter":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Optional filter. Fields: ids (any), category.id (equals), title (contains), published (equals), for example contains(title,\"shirt\") or equals(published,true).","title":"Filter"},"sort":{"anyOf":[{"enum":["created","-created"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort field; prefix with - for descending. One of: created.","title":"Sort"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many results to return (1 to 100).","title":"Page Size"},"cursor":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Paging cursor: take the page[cursor] value from the query string of links.next in the previous answer; leave empty for the first page.","title":"Cursor"}},"title":"list_catalog_itemsArguments","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_catalog_item":{"post":{"operationId":"get_catalog_item","summary":"Get one catalog item by ID with title, description, price, URL, published flag and dates. Needs the catalogs:read scope.","description":"Get one catalog item by ID with title, description, price, URL, published flag and dates. Needs the catalogs:read scope. Use for \"What is the price of the Klaviyo catalog item SKU-1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"ID of the catalog item, in the form $custom:::$default:::<external id>.","maxLength":120,"title":"Id","type":"string"}},"required":["id"],"title":"get_catalog_itemArguments","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_item_variants":{"post":{"operationId":"list_item_variants","summary":"List the variants of one catalog item with SKU, price, inventory quantity and policy and published flag, at most 100 per","description":"List the variants of one catalog item with SKU, price, inventory quantity and policy and published flag, at most 100 per page. inventory_policy is 0 (do not track), 1 (track and hide when out of stock) or 2 (track and keep visible). Use for \"What variants and stock levels does the Klaviyo item SKU-1 have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"ID of the catalog item, in the form $custom:::$default:::<external id>.","maxLength":120,"title":"Id","type":"string"},"filter":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Optional filter. Fields: ids (any), item.id (equals), sku (equals), title (contains), published (equals).","title":"Filter"},"sort":{"anyOf":[{"enum":["created","-created"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort field; prefix with - for descending. One of: created.","title":"Sort"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many results to return (1 to 100).","title":"Page Size"},"cursor":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Paging cursor: take the page[cursor] value from the query string of links.next in the previous answer; leave empty for the first page.","title":"Cursor"}},"required":["id"],"title":"list_item_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_catalog_variants":{"post":{"operationId":"list_catalog_variants","summary":"List variants of all catalog items with SKU, price, inventory quantity and policy and published flag, at most 100 per pa","description":"List variants of all catalog items with SKU, price, inventory quantity and policy and published flag, at most 100 per page. inventory_policy is 0 (do not track), 1 (track and hide when out of stock) or 2 (track and keep visible). Use for \"Which Klaviyo catalog variants have the SKU SKU-1-M\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"filter":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Optional filter. Fields: ids (any), item.id (equals), sku (equals), title (contains), published (equals), for example equals(sku,\"SKU-1-M\").","title":"Filter"},"sort":{"anyOf":[{"enum":["created","-created"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort field; prefix with - for descending. One of: created.","title":"Sort"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many results to return (1 to 100).","title":"Page Size"},"cursor":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Paging cursor: take the page[cursor] value from the query string of links.next in the previous answer; leave empty for the first page.","title":"Cursor"}},"title":"list_catalog_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/get_catalog_variant":{"post":{"operationId":"get_catalog_variant","summary":"Get one catalog variant by ID with SKU, price, inventory quantity and policy, URL, published flag and dates. inventory_p","description":"Get one catalog variant by ID with SKU, price, inventory quantity and policy, URL, published flag and dates. inventory_policy is 0 (do not track), 1 (track and hide when out of stock) or 2 (track and keep visible). Use for \"How many units of the Klaviyo variant SKU-1-M are in stock\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"ID of the catalog variant, in the form $custom:::$default:::<external id>.","maxLength":120,"title":"Id","type":"string"}},"required":["id"],"title":"get_catalog_variantArguments","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_catalog_categories":{"post":{"operationId":"list_catalog_categories","summary":"List catalog categories with name and last update time, at most 100 per page. Needs the catalogs:read scope. Use for \"Wh","description":"List catalog categories with name and last update time, at most 100 per page. Needs the catalogs:read scope. Use for \"Which product categories exist in my Klaviyo catalog\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"filter":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Optional filter. Fields: ids (any), item.id (equals), name (contains), for example contains(name,\"app\").","title":"Filter"},"sort":{"anyOf":[{"enum":["created","-created"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort field; prefix with - for descending. One of: created.","title":"Sort"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many results to return (1 to 100).","title":"Page Size"},"cursor":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Paging cursor: take the page[cursor] value from the query string of links.next in the previous answer; leave empty for the first page.","title":"Cursor"}},"title":"list_catalog_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/get_catalog_category":{"post":{"operationId":"get_catalog_category","summary":"Get one catalog category by ID with its name and last update time. Use for \"What is the Klaviyo catalog category apparel","description":"Get one catalog category by ID with its name and last update time. Use for \"What is the Klaviyo catalog category apparel called\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"ID of the catalog category, in the form $custom:::$default:::<external id>.","maxLength":120,"title":"Id","type":"string"}},"required":["id"],"title":"get_catalog_categoryArguments","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_category_items":{"post":{"operationId":"list_category_items","summary":"List the catalog items in one category with title, description, price, URL, published flag and dates, at most 100 per pa","description":"List the catalog items in one category with title, description, price, URL, published flag and dates, at most 100 per page. Use for \"Which products are in the Klaviyo apparel category\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"ID of the catalog category, in the form $custom:::$default:::<external id>.","maxLength":120,"title":"Id","type":"string"},"filter":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Optional filter. Fields: ids (any), category.id (equals), title (contains), published (equals).","title":"Filter"},"sort":{"anyOf":[{"enum":["created","-created"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort field; prefix with - for descending. One of: created.","title":"Sort"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many results to return (1 to 100).","title":"Page Size"},"cursor":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Paging cursor: take the page[cursor] value from the query string of links.next in the previous answer; leave empty for the first page.","title":"Cursor"}},"required":["id"],"title":"list_category_itemsArguments","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}}}}