{"openapi":"3.1.0","info":{"title":"Kustomer Help Center (BYOK) API","version":"0.1.0","description":"Kustomer Help Center (BYOK) lets an AI assistant read your own Kustomer Help Center data through the Kustomer Help Center API with a key you supply (Kustomer API key (Settings > Security > API Keys)). Read-only: 9 tools (list_articles, get_article, search_articles, list_categories, get_category, list_internal_categories, get_knowledge_base, list_routes, list_forms). 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-kustomer-help-center.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-kustomer-help-center/docs"},"termsOfService":"https://connectorbay.com/byok-kustomer-help-center/terms"},"servers":[{"url":"https://byok-kustomer-help-center.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-kustomer-help-center/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_articles":{"post":{"operationId":"list_articles","summary":"List knowledge base articles with title, status, scope (public or internal), tags, categories and dates. Article bodies ","description":"List knowledge base articles with title, status, scope (public or internal), tags, categories and dates. Article bodies are not requested. Use for \"Which articles are in our Kustomer knowledge base\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"Results per page (1 to 100).","title":"Page Size"}},"title":"list_articlesArguments","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_article":{"post":{"operationId":"get_article","summary":"Get one knowledge base article by id: title, status, scope, tags, categories, metadata and dates (no body). Use for \"Whe","description":"Get one knowledge base article by id: title, status, scope, tags, categories, metadata and dates (no body). Use for \"When was Kustomer article 60254e3ec413ae00571e3c96 published\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"article_id":{"description":"Id of the article (a 24-character hex string).","maxLength":200,"title":"Article Id","type":"string"}},"required":["article_id"],"title":"get_articleArguments","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/search_articles":{"post":{"operationId":"search_articles","summary":"Search knowledge base articles by term, optionally limited to public or internal scope and one language. Returns title, ","description":"Search knowledge base articles by term, optionally limited to public or internal scope and one language. Returns title, slug, status and dates (bodies are left out). Use for \"Search our Kustomer knowledge base for 'refund'\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"term":{"description":"Search term to match against article content, for example 'refund'.","maxLength":100,"title":"Term","type":"string"},"lang":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Language code, for example 'en_us'.","title":"Lang"},"scope":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Scopes to search, comma-separated: public, internal.","title":"Scope"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"Results per page (1 to 100).","title":"Page Size"},"knowledge_base_id":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Knowledge base id that scopes public results.","title":"Knowledge Base Id"}},"required":["term"],"title":"search_articlesArguments","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 public knowledge base categories with per-language titles and slugs, published flag and root flag. Use for \"What ca","description":"List public knowledge base categories with per-language titles and slugs, published flag and root flag. Use for \"What categories does our Kustomer help center have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"Results per page (1 to 100).","title":"Page Size"}},"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/get_category":{"post":{"operationId":"get_category","summary":"Get one public knowledge base category by id. Use for \"Describe Kustomer help center category 5e15fa56a07888001927f8e5\".","description":"Get one public knowledge base category by id. Use for \"Describe Kustomer help center category 5e15fa56a07888001927f8e5\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"category_id":{"description":"Id of the category (a 24-character hex string).","maxLength":200,"title":"Category Id","type":"string"}},"required":["category_id"],"title":"get_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_internal_categories":{"post":{"operationId":"list_internal_categories","summary":"List internal (agent-only) knowledge base categories with per-language titles and slugs. Use for \"What internal knowledg","description":"List internal (agent-only) knowledge base categories with per-language titles and slugs. Use for \"What internal knowledge categories does our Kustomer have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"Results per page (1 to 100).","title":"Page Size"}},"title":"list_internal_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_knowledge_base":{"post":{"operationId":"get_knowledge_base","summary":"Get one knowledge base by id: name, subdomain, base address, default language, enabled languages and search-indexing fla","description":"Get one knowledge base by id: name, subdomain, base address, default language, enabled languages and search-indexing flag. Use for \"What is the address of Kustomer knowledge base 5e15fa56a07888001927f8e5\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"knowledge_base_id":{"description":"Id of the knowledge base (a 24-character hex string).","maxLength":200,"title":"Knowledge Base Id","type":"string"}},"required":["knowledge_base_id"],"title":"get_knowledge_baseArguments","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_routes":{"post":{"operationId":"list_routes","summary":"List help center URL routes (path, what they point to) so an address can be traced to an article or category, optionally","description":"List help center URL routes (path, what they point to) so an address can be traced to an article or category, optionally filtered by URL. Use for \"Which article does the /help/articles/cool-article route point to in Kustomer\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"Results per page (1 to 100).","title":"Page Size"},"url":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only routes for this URL path, for example '/help/articles/cool-article'.","title":"Url"}},"title":"list_routesArguments","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_forms":{"post":{"operationId":"list_forms","summary":"List help center contact forms with name, slug, published flag, target object type and channel (layout details are not r","description":"List help center contact forms with name, slug, published flag, target object type and channel (layout details are not requested). Use for \"Which contact forms does our Kustomer help center have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"Results per page (1 to 100).","title":"Page Size"}},"title":"list_formsArguments","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}}}}