{"openapi":"3.1.0","info":{"title":"Document360 (BYOK) API","version":"0.1.0","description":"Document360 (BYOK) lets an AI assistant read your own Document360 data through the Document360 API with a key you supply (Document360 API token (project-scoped, read access)). Read-only: 8 tools (list_workspaces, list_languages, list_articles, list_categories, get_category, get_article, list_article_versions, search_articles). The BYOK key travels with each request, is used for that one call only...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-document360.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-document360/docs"},"termsOfService":"https://connectorbay.com/byok-document360/terms"},"servers":[{"url":"https://byok-document360.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-document360/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_workspaces":{"post":{"operationId":"list_workspaces","summary":"List the workspaces (project versions) of the knowledge base with version name, slug, public flag and dates. Workspace i","description":"List the workspaces (project versions) of the knowledge base with version name, slug, public flag and dates. Workspace ids are needed by other tools. Use for \"What workspaces does my Document360 knowledge base have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_workspacesArguments","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_languages":{"post":{"operationId":"list_languages","summary":"List the languages configured for a workspace with language code, name and which is the default. Use for \"Which language","description":"List the languages configured for a workspace with language code, name and which is the default. Use for \"Which languages is my Document360 workspace available in\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_version_id":{"description":"Workspace (project version) id; get it from list_workspaces.","maxLength":200,"title":"Project Version Id","type":"string"}},"required":["project_version_id"],"title":"list_languagesArguments","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_articles":{"post":{"operationId":"list_articles","summary":"List the articles of a workspace as a flat list with title, slug, status, versions and dates (no body text). Without pag","description":"List the articles of a workspace as a flat list with title, slug, status, versions and dates (no body text). Without paging it returns all articles up to 1000. Use for \"Which articles are in my Document360 workspace\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_version_id":{"description":"Workspace (project version) id; get it from list_workspaces.","maxLength":200,"title":"Project Version Id","type":"string"},"lang_code":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Language code such as en, fr or de-DE (see list_languages). Default is the workspace default language.","title":"Lang Code"},"hits_per_page":{"anyOf":[{"maximum":100,"minimum":0,"type":"integer"},{"type":"null"}],"default":50,"description":"Articles per page (1 to 100); 0 returns everything up to 1000.","title":"Hits Per Page"},"page":{"anyOf":[{"maximum":1000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"0-based page index, used when hits_per_page is above 0.","title":"Page"}},"required":["project_version_id"],"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/list_categories":{"post":{"operationId":"list_categories","summary":"Get the category tree of a workspace; each category has name, slug, parent, visibility and nested child categories. Arti","description":"Get the category tree of a workspace; each category has name, slug, parent, visibility and nested child categories. Articles are left out unless requested. Use for \"How is my Document360 documentation organised into categories\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_version_id":{"description":"Workspace (project version) id; get it from list_workspaces.","maxLength":200,"title":"Project Version Id","type":"string"},"lang_code":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Language code such as en, fr or de-DE (see list_languages). Default is the workspace default language.","title":"Lang Code"},"exclude_articles":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":true,"description":"True to leave articles out of the tree (smaller answer), false to include them.","title":"Exclude Articles"}},"required":["project_version_id"],"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 category with its articles and direct child categories. Use for \"What articles are in this Document360 category\"","description":"Get one category with its articles and direct child categories. Use for \"What articles are in this Document360 category\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"category_id":{"description":"Category id; get it from list_categories.","maxLength":200,"title":"Category Id","type":"string"},"lang_code":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Language code such as en, fr or de-DE (see list_languages). Default is the workspace default language.","title":"Lang Code"}},"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/get_article":{"post":{"operationId":"get_article","summary":"Get one article with title, body (markdown or HTML), status, versions, category and URL. Use for \"Show the text of this ","description":"Get one article with title, body (markdown or HTML), status, versions, category and URL. Use for \"Show the text of this Document360 article\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"article_id":{"description":"Article id; get it from list_articles.","maxLength":200,"title":"Article Id","type":"string"},"lang_code":{"description":"Language code such as en, fr or de-DE (see list_languages).","maxLength":200,"title":"Lang Code","type":"string"},"is_published":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":true,"description":"True for the latest published version, false for the latest draft.","title":"Is Published"}},"required":["article_id","lang_code"],"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/list_article_versions":{"post":{"operationId":"list_article_versions","summary":"List the versions of one article with version number, status, author name and dates. Use for \"How many versions does thi","description":"List the versions of one article with version number, status, author name and dates. Use for \"How many versions does this Document360 article have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"article_id":{"description":"Article id; get it from list_articles.","maxLength":200,"title":"Article Id","type":"string"},"lang_code":{"description":"Language code such as en, fr or de-DE (see list_languages).","maxLength":200,"title":"Lang Code","type":"string"}},"required":["article_id","lang_code"],"title":"list_article_versionsArguments","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 the articles of a workspace for a phrase; returns the matching hits with title, slug, article id and a content ex","description":"Search the articles of a workspace for a phrase; returns the matching hits with title, slug, article id and a content excerpt. Use for \"Search my Document360 docs for 'single sign-on'\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_version_id":{"description":"Workspace (project version) id; get it from list_workspaces.","maxLength":200,"title":"Project Version Id","type":"string"},"lang_code":{"description":"Language code such as en, fr or de-DE (see list_languages).","maxLength":200,"title":"Lang Code","type":"string"},"search_query":{"description":"Phrase to search for.","maxLength":200,"title":"Search Query","type":"string"},"hits_per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"Results per page (1 to 100).","title":"Hits Per Page"},"page":{"anyOf":[{"maximum":1000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"0-based page index.","title":"Page"}},"required":["project_version_id","lang_code","search_query"],"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}}}}