{ "openapi" : "3.0.1", "info" : { "title" : "CMS Knowledge Base", "description" : "Basepom for all HubSpot Projects", "version" : "2027-03-beta", "x-hubspot-product-tier-requirements" : { "marketing" : "FREE", "sales" : "FREE", "service" : "FREE", "cms" : "FREE", "commerce" : "FREE", "crmHub" : "FREE", "dataHub" : "FREE" } }, "servers" : [ { "url" : "https://api.hubapi.com" } ], "tags" : [ { "name" : "Basic" }, { "name" : "Categories" }, { "name" : "Drafts" }, { "name" : "Tags" } ], "paths" : { "/cms/knowledge-base/2027-03-beta/articles" : { "get" : { "tags" : [ "Basic" ], "summary" : "Retrieve all articles", "description" : "Retrieve a list of articles from the knowledge base. This endpoint allows filtering and sorting articles based on creation and update timestamps, state, language, and other attributes. It supports pagination and can include additional details such as the article body and translations.", "operationId" : "get-/cms/knowledge-base/2027-03-beta/articles", "parameters" : [ { "name" : "after", "in" : "query", "description" : "A pagination cursor. Pass the value from the previous response’s paging.next.after to retrieve the next page.", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "string", "example" : null } }, { "name" : "archivedInDashboard", "in" : "query", "description" : "Filter articles based on whether they are archived in the dashboard.", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "boolean", "example" : null } }, { "name" : "categoryId", "in" : "query", "description" : "Filter to articles belonging to the specified category ID(s). Accepts multiple values, repeated as separate query parameters.", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "array", "example" : null, "items" : { "type" : "string", "example" : null } } }, { "name" : "createdAfter", "in" : "query", "description" : "Filter to articles created after the specified date-time. Accepts an ISO-8601 timestamp (e.g., 2026-09-20T00:00:00Z) or a plain date (e.g., 2026-09-20).", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "string", "format" : "date-time", "example" : null } }, { "name" : "createdAt", "in" : "query", "description" : "Filter articles to those with this exact creation timestamp. Accepts an ISO-8601 timestamp (e.g., 2026-09-20T00:00:00Z) or a plain date (e.g., 2026-09-20).", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "string", "format" : "date-time", "example" : null } }, { "name" : "createdBefore", "in" : "query", "description" : "Filter to articles created before the specified date-time. Accepts an ISO-8601 timestamp (e.g., 2026-09-20T00:00:00Z) or a plain date (e.g., 2026-09-20).", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "string", "format" : "date-time", "example" : null } }, { "name" : "includeBody", "in" : "query", "description" : "A boolean indicating whether to include each article’s HTML content (the body field) in the response. Defaults to true.", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "boolean", "example" : null } }, { "name" : "includeTranslations", "in" : "query", "description" : "A boolean indicating whether to include a summary of each article’s translations (id, title, and state per language) in the response. Defaults to true.", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "boolean", "example" : null } }, { "name" : "knowledgeBaseId", "in" : "query", "description" : "Filter to articles belonging to the specified knowledge base ID(s). Accepts multiple values, repeated as separate query parameters.", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "array", "example" : null, "items" : { "type" : "string", "example" : null } } }, { "name" : "language", "in" : "query", "description" : "Filter articles by a specific language. Accepts an ISO 639 language code (e.g., en, es), optionally with a region subtag (e.g., en-US). Accepts multiple values, repeated as separate query parameters.", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "array", "example" : null, "items" : { "type" : "string", "example" : null } } }, { "name" : "limit", "in" : "query", "description" : "The number of results to display per page. Default is 25, maximum is 100. ", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "integer", "format" : "int32", "example" : null } }, { "name" : "sort", "in" : "query", "description" : "Specify how to sort results. Accepts name, createdAt, or updatedAt; prefix a field with - for descending order (e.g., -createdAt). Defaults to createdAt descending (newest first).", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "array", "example" : null, "items" : { "type" : "string", "example" : null } } }, { "name" : "state", "in" : "query", "description" : "Filter to articles in the specified state. Accepted values are DRAFT or PUBLISHED.", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "string", "example" : null } }, { "name" : "updatedAfter", "in" : "query", "description" : "Filter to articles updated after the specified date-time. Accepts an ISO-8601 timestamp (e.g., 2026-09-20T00:00:00Z) or a plain date (e.g., 2026-09-20).", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "string", "format" : "date-time", "example" : null } }, { "name" : "updatedAt", "in" : "query", "description" : "Filter articles to those with this exact update timestamp. Accepts an ISO-8601 timestamp (e.g., 2026-09-20T00:00:00Z) or a plain date (e.g., 2026-09-20).", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "string", "format" : "date-time", "example" : null } }, { "name" : "updatedBefore", "in" : "query", "description" : "Filter to articles updated before the specified date-time. Accepts an ISO-8601 timestamp (e.g., 2026-09-20T00:00:00Z) or a plain date (e.g., 2026-09-20).", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "string", "format" : "date-time", "example" : null } } ], "responses" : { "200" : { "description" : "successful operation", "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/CollectionResponseKnowledgeArticleForwardPaging" }, "example" : null } } }, "default" : { "description" : "", "$ref" : "#/components/responses/Error" } }, "security" : [ { "oauth2" : [ "cms.knowledge_base.settings.read" ] }, { "oauth2" : [ "cms.knowledge_base.articles.publish" ] }, { "oauth2" : [ "cms.knowledge_base.articles.write" ] }, { "oauth2" : [ "cms.knowledge_base.articles.read" ] }, { "oauth2" : [ "cms.knowledge_base.settings.write" ] } ] }, "post" : { "tags" : [ "Basic" ], "summary" : "Create article", "description" : "Creates a new article under the specified knowledge base and language in a draft state. Requires knowledgeBaseId, title, and language; optionally accepts subtitle, body, categoryId, path, metaDescription, tagIds, accessType, accessGroupIds, and translationOfId (to link this article as a translation of an existing one). Returns the created article, including its assigned ID and public URL.", "operationId" : "post-/cms/knowledge-base/2027-03-beta/articles", "parameters" : [ ], "requestBody" : { "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/CreateArticleRequest" }, "example" : null } }, "required" : true }, "responses" : { "201" : { "description" : "successful operation", "headers" : { "Location" : { "description" : "URL of the newly created resource", "style" : "simple", "explode" : false, "schema" : { "type" : "string", "example" : null } } }, "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/KnowledgeArticle" }, "example" : null } } }, "default" : { "description" : "", "$ref" : "#/components/responses/Error" } }, "security" : [ { "oauth2" : [ "cms.knowledge_base.articles.publish" ] }, { "oauth2" : [ "cms.knowledge_base.articles.write" ] }, { "oauth2" : [ "cms.knowledge_base.settings.write" ] } ] } }, "/cms/knowledge-base/2027-03-beta/articles/{articleId}" : { "get" : { "tags" : [ "Basic" ], "summary" : "Retrieve article", "description" : "Retrieve a specific article from the knowledge base using its unique identifier. ", "operationId" : "get-/cms/knowledge-base/2027-03-beta/articles/{articleId}", "parameters" : [ { "name" : "articleId", "in" : "path", "description" : "The unique identifier of the article to retrieve.", "required" : true, "style" : "simple", "explode" : false, "schema" : { "type" : "string", "example" : null } }, { "name" : "includeBody", "in" : "query", "description" : "A boolean indicating whether to include the article’s HTML content (the body field) in the response. Defaults to true.", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "boolean", "example" : null, "default" : true } }, { "name" : "includeTranslations", "in" : "query", "description" : "A boolean indicating whether to include a summary of the article’s translations (id, title, and state per language) in the response. Defaults to true.", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "boolean", "example" : null, "default" : true } } ], "responses" : { "200" : { "description" : "successful operation", "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/KnowledgeArticle" }, "example" : null } } }, "default" : { "description" : "", "$ref" : "#/components/responses/Error" } }, "security" : [ { "oauth2" : [ "cms.knowledge_base.settings.read" ] }, { "oauth2" : [ "cms.knowledge_base.articles.publish" ] }, { "oauth2" : [ "cms.knowledge_base.articles.write" ] }, { "oauth2" : [ "cms.knowledge_base.articles.read" ] }, { "oauth2" : [ "cms.knowledge_base.settings.write" ] } ] }, "patch" : { "tags" : [ "Basic" ], "summary" : "Update article", "description" : "Update an existing article using its unique identifier. Only the fields included in the request are modified — omitted fields are left unchanged. Supports updating title, subtitle, body, category, tags, access settings, and metadata.\n\nArchivedInDashboard is a CMS-specific property that controls the article’s visibility in the dashboard UI and has no other effect on the article’s state.\n\nTo delete an article, set archived to true and include no other fields in the request body. This endpoint does not support restoring an archived article — setting archived to false will fail.", "operationId" : "patch-/cms/knowledge-base/2027-03-beta/articles/{articleId}", "parameters" : [ { "name" : "articleId", "in" : "path", "description" : "The unique identifier of the article to update.", "required" : true, "style" : "simple", "explode" : false, "schema" : { "type" : "string", "example" : null } } ], "requestBody" : { "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/UpdateArticleRequest" }, "example" : null } }, "required" : true }, "responses" : { "default" : { "description" : "", "$ref" : "#/components/responses/Error" } }, "security" : [ { "oauth2" : [ "cms.knowledge_base.articles.publish" ] }, { "oauth2" : [ "cms.knowledge_base.articles.write" ] }, { "oauth2" : [ "cms.knowledge_base.settings.write" ] } ] } }, "/cms/knowledge-base/2027-03-beta/articles/{articleId}/draft" : { "get" : { "tags" : [ "Drafts" ], "summary" : "Retrieve draft", "description" : "Retrieve the draft version of a specific article in the knowledge base. This endpoint allows you to access the draft content of an article, which can be useful for reviewing or editing purposes before publishing.", "operationId" : "get-/cms/knowledge-base/2027-03-beta/articles/{articleId}/draft", "parameters" : [ { "name" : "articleId", "in" : "path", "description" : "The unique identifier of the article whose draft version is being retrieved.", "required" : true, "style" : "simple", "explode" : false, "schema" : { "type" : "string", "example" : null } }, { "name" : "includeBody", "in" : "query", "description" : "A boolean indicating whether to include the article’s HTML content (the body field) in the response. Defaults to true.", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "boolean", "example" : null, "default" : true } }, { "name" : "includeTranslations", "in" : "query", "description" : "A boolean indicating whether to include a summary of the article’s translations (id, title, and state per language) in the response. Defaults to true.", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "boolean", "example" : null, "default" : true } } ], "responses" : { "200" : { "description" : "successful operation", "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/KnowledgeArticle" }, "example" : null } } }, "default" : { "description" : "", "$ref" : "#/components/responses/Error" } }, "security" : [ { "oauth2" : [ "cms.knowledge_base.settings.read" ] }, { "oauth2" : [ "cms.knowledge_base.articles.publish" ] }, { "oauth2" : [ "cms.knowledge_base.articles.write" ] }, { "oauth2" : [ "cms.knowledge_base.articles.read" ] }, { "oauth2" : [ "cms.knowledge_base.settings.write" ] } ] }, "patch" : { "tags" : [ "Drafts" ], "summary" : "Update draft", "description" : "Update the draft version of a specific knowledge base article. This endpoint allows you to modify the draft content of an article, including its title, body, and other properties. Use this endpoint to stage changes to an article before it is published live.", "operationId" : "patch-/cms/knowledge-base/2027-03-beta/articles/{articleId}/draft", "parameters" : [ { "name" : "articleId", "in" : "path", "description" : "The unique identifier of the article whose draft is to be updated.", "required" : true, "style" : "simple", "explode" : false, "schema" : { "type" : "string", "example" : null } } ], "requestBody" : { "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/UpdateArticleDraftRequest" }, "example" : null } }, "required" : true }, "responses" : { "200" : { "description" : "successful operation", "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/KnowledgeArticle" }, "example" : null } } }, "default" : { "description" : "", "$ref" : "#/components/responses/Error" } }, "security" : [ { "oauth2" : [ "cms.knowledge_base.articles.publish" ] }, { "oauth2" : [ "cms.knowledge_base.articles.write" ] }, { "oauth2" : [ "cms.knowledge_base.settings.write" ] } ] } }, "/cms/knowledge-base/2027-03-beta/articles/{articleId}/draft/push-live" : { "post" : { "tags" : [ "Drafts" ], "summary" : "Publish draft", "description" : "Push a draft version of a knowledge base article live. This operation is useful when you want to make the latest changes to an article available to the public. Ensure that the draft is finalized before performing this action.", "operationId" : "post-/cms/knowledge-base/2027-03-beta/articles/{articleId}/draft/push-live", "parameters" : [ { "name" : "articleId", "in" : "path", "description" : "The unique identifier of the article whose draft version is to be published.", "required" : true, "style" : "simple", "explode" : false, "schema" : { "type" : "string", "example" : null } } ], "responses" : { "200" : { "description" : "successful operation", "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/KnowledgeArticle" }, "example" : null } } }, "default" : { "description" : "", "$ref" : "#/components/responses/Error" } }, "security" : [ { "oauth2" : [ "cms.knowledge_base.articles.publish" ] } ] } }, "/cms/knowledge-base/2027-03-beta/articles/{articleId}/unpublish" : { "post" : { "tags" : [ "Basic" ], "summary" : "Unpublish article", "description" : "Unpublish a specific article in the knowledge base by its ID.", "operationId" : "post-/cms/knowledge-base/2027-03-beta/articles/{articleId}/unpublish", "parameters" : [ { "name" : "articleId", "in" : "path", "description" : "The unique identifier of the article to unpublish.", "required" : true, "style" : "simple", "explode" : false, "schema" : { "type" : "string", "example" : null } } ], "responses" : { "200" : { "description" : "successful operation", "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/KnowledgeArticle" }, "example" : null } } }, "default" : { "description" : "", "$ref" : "#/components/responses/Error" } }, "security" : [ { "oauth2" : [ "cms.knowledge_base.articles.publish" ] } ] } }, "/cms/knowledge-base/2027-03-beta/categories" : { "get" : { "tags" : [ "Categories" ], "summary" : "Retrieve all categories", "description" : "Retrieve a paginated list of categories from the knowledge base. Supports filtering by knowledge base ID, parent category ID, language, and creation/update timestamps, as well as sorting.", "operationId" : "get-/cms/knowledge-base/2027-03-beta/categories", "parameters" : [ { "name" : "after", "in" : "query", "description" : "A pagination cursor. Pass the value from the previous response’s paging.next.after to retrieve the next page.", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "string", "example" : null } }, { "name" : "createdAfter", "in" : "query", "description" : "Filter categories created after the specified date and time. Accepts an ISO-8601 timestamp (e.g., 2026-09-20T00:00:00Z) or a plain date (e.g., 2026-09-20).", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "string", "format" : "date-time", "example" : null } }, { "name" : "createdAt", "in" : "query", "description" : "Filter categories to those with this exact creation date and time. Accepts an ISO-8601 timestamp (e.g., 2026-09-20T00:00:00Z) or a plain date (e.g., 2026-09-20).", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "string", "format" : "date-time", "example" : null } }, { "name" : "createdBefore", "in" : "query", "description" : "Filter to categories created before the specified date and time. Accepts an ISO-8601 timestamp (e.g., 2026-09-20T00:00:00Z) or a plain date (e.g., 2026-09-20).", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "string", "format" : "date-time", "example" : null } }, { "name" : "knowledgeBaseIds", "in" : "query", "description" : "Filter categories by specific knowledge base IDs. Accepts multiple values, repeated as separate query parameters.", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "array", "example" : null, "items" : { "type" : "string", "example" : null } } }, { "name" : "language", "in" : "query", "description" : "Filter categories by a specific language. Accepts an ISO 639 language code (e.g., en, es), optionally with a region subtag (e.g., en-US).", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "string", "example" : null } }, { "name" : "limit", "in" : "query", "description" : "The number of results to display per page. Default is 25; maximum is 100.", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "integer", "format" : "int32", "example" : null } }, { "name" : "parentCategoryIds", "in" : "query", "description" : "Filter categories by specific parent category IDs. Accepts multiple values, repeated as separate query parameters.", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "array", "example" : null, "items" : { "type" : "string", "example" : null } } }, { "name" : "sort", "in" : "query", "description" : "Specify how to sort results. Accepts name, createdAt, or updatedAt; prefix a field with - for descending order (e.g., -createdAt). Defaults to createdAt descending (newest first).", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "array", "example" : null, "items" : { "type" : "string", "example" : null } } }, { "name" : "updatedAfter", "in" : "query", "description" : "Filter to categories updated after the specified date and time. Accepts an ISO-8601 timestamp (e.g., 2026-09-20T00:00:00Z) or a plain date (e.g., 2026-09-20).", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "string", "format" : "date-time", "example" : null } }, { "name" : "updatedAt", "in" : "query", "description" : "Filter categories to those with this exact update date and time. Accepts an ISO-8601 timestamp (e.g., 2026-09-20T00:00:00Z) or a plain date (e.g., 2026-09-20).", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "string", "format" : "date-time", "example" : null } }, { "name" : "updatedBefore", "in" : "query", "description" : "Filter to categories updated before the specified date and time. Accepts an ISO-8601 timestamp (e.g., 2026-09-20T00:00:00Z) or a plain date (e.g., 2026-09-20).", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "string", "format" : "date-time", "example" : null } } ], "responses" : { "200" : { "description" : "successful operation", "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/CollectionResponseCategoryForwardPaging" }, "example" : null } } }, "default" : { "description" : "", "$ref" : "#/components/responses/Error" } }, "security" : [ { "oauth2" : [ "cms.knowledge_base.settings.read" ] }, { "oauth2" : [ "cms.knowledge_base.articles.publish" ] }, { "oauth2" : [ "cms.knowledge_base.articles.write" ] }, { "oauth2" : [ "cms.knowledge_base.articles.read" ] }, { "oauth2" : [ "cms.knowledge_base.settings.write" ] } ] } }, "/cms/knowledge-base/2027-03-beta/categories/{categoryId}" : { "get" : { "tags" : [ "Categories" ], "summary" : "Retrieve a category", "description" : "Retrieve a specific category by its ID. ", "operationId" : "get-/cms/knowledge-base/2027-03-beta/categories/{categoryId}", "parameters" : [ { "name" : "categoryId", "in" : "path", "description" : "The unique identifier of the category to retrieve.", "required" : true, "style" : "simple", "explode" : false, "schema" : { "type" : "string", "example" : null } } ], "responses" : { "200" : { "description" : "successful operation", "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/Category" }, "example" : null } } }, "default" : { "description" : "", "$ref" : "#/components/responses/Error" } }, "security" : [ { "oauth2" : [ "cms.knowledge_base.settings.read" ] }, { "oauth2" : [ "cms.knowledge_base.articles.publish" ] }, { "oauth2" : [ "cms.knowledge_base.articles.write" ] }, { "oauth2" : [ "cms.knowledge_base.articles.read" ] }, { "oauth2" : [ "cms.knowledge_base.settings.write" ] } ] } }, "/cms/knowledge-base/2027-03-beta/categories/{categoryId}/featured-articles" : { "get" : { "tags" : [ "Categories" ], "summary" : "Retrieve featured articles for a category", "description" : "Retrieve the featured articles for a specific category in the knowledge base. Articles marked as featured within a given category are displayed on the Knowledge Base's homepage. ", "operationId" : "get-/cms/knowledge-base/2027-03-beta/categories/{categoryId}/featured-articles", "parameters" : [ { "name" : "categoryId", "in" : "path", "description" : "The unique identifier of the category for which to retrieve featured articles.", "required" : true, "style" : "simple", "explode" : false, "schema" : { "type" : "string", "example" : null } } ], "responses" : { "200" : { "description" : "successful operation", "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/FeaturedArticlesResponse" }, "example" : null } } }, "default" : { "description" : "", "$ref" : "#/components/responses/Error" } }, "security" : [ { "oauth2" : [ "cms.knowledge_base.settings.read" ] }, { "oauth2" : [ "cms.knowledge_base.articles.publish" ] }, { "oauth2" : [ "cms.knowledge_base.articles.write" ] }, { "oauth2" : [ "cms.knowledge_base.articles.read" ] }, { "oauth2" : [ "cms.knowledge_base.settings.write" ] } ] } }, "/cms/knowledge-base/2027-03-beta/knowledge-bases" : { "get" : { "tags" : [ "Basic" ], "summary" : "Retrieve all knowledge bases", "description" : "Retrieve a paginated list of knowledge bases in your HubSpot account. Supports filtering by creation and update timestamps, as well as sorting.", "operationId" : "get-/cms/knowledge-base/2027-03-beta/knowledge-bases", "parameters" : [ { "name" : "after", "in" : "query", "description" : "A pagination cursor. Pass the value from the previous response’s paging.next.after to retrieve the next page.", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "string", "example" : null } }, { "name" : "createdAfter", "in" : "query", "description" : "Filter to knowledge bases created after a specific date and time. Accepts an ISO-8601 timestamp (e.g., 2026-09-20T00:00:00Z) or a plain date (e.g., 2026-09-20).", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "string", "format" : "date-time", "example" : null } }, { "name" : "createdAt", "in" : "query", "description" : "Filter knowledge bases to those with this exact creation date and time. Accepts an ISO-8601 timestamp (e.g., 2026-09-20T00:00:00Z) or a plain date (e.g., 2026-09-20).", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "string", "format" : "date-time", "example" : null } }, { "name" : "createdBefore", "in" : "query", "description" : "Filter to knowledge bases created before the specified date and time. Accepts an ISO-8601 timestamp (e.g., 2026-09-20T00:00:00Z) or a plain date (e.g., 2026-09-20).", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "string", "format" : "date-time", "example" : null } }, { "name" : "limit", "in" : "query", "description" : "The maximum number of results to display per page. Default is 25, maximum is 100. ", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "integer", "format" : "int32", "example" : null } }, { "name" : "sort", "in" : "query", "description" : "Specify how to sort results. Accepts name, createdAt, or updatedAt; prefix a field with - for descending order (e.g., -createdAt). Defaults to createdAt descending (newest first).", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "array", "example" : null, "items" : { "type" : "string", "example" : null } } }, { "name" : "updatedAfter", "in" : "query", "description" : "Filter to knowledge bases updated after the specified date and time. Accepts an ISO-8601 timestamp (e.g., 2026-09-20T00:00:00Z) or a plain date (e.g., 2026-09-20).", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "string", "format" : "date-time", "example" : null } }, { "name" : "updatedAt", "in" : "query", "description" : "Filter knowledge bases to those with this exact update date and time. Accepts an ISO-8601 timestamp (e.g., 2026-09-20T00:00:00Z) or a plain date (e.g., 2026-09-20).", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "string", "format" : "date-time", "example" : null } }, { "name" : "updatedBefore", "in" : "query", "description" : "Filter to knowledge bases updated before the specified date and time. Accepts an ISO-8601 timestamp (e.g., 2026-09-20T00:00:00Z) or a plain date (e.g., 2026-09-20).", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "string", "format" : "date-time", "example" : null } } ], "responses" : { "200" : { "description" : "successful operation", "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/CollectionResponseKnowledgeBaseForwardPaging" }, "example" : null } } }, "default" : { "description" : "", "$ref" : "#/components/responses/Error" } }, "security" : [ { "oauth2" : [ "cms.knowledge_base.settings.read" ] }, { "oauth2" : [ "cms.knowledge_base.articles.publish" ] }, { "oauth2" : [ "cms.knowledge_base.articles.write" ] }, { "oauth2" : [ "cms.knowledge_base.articles.read" ] }, { "oauth2" : [ "cms.knowledge_base.settings.write" ] } ] } }, "/cms/knowledge-base/2027-03-beta/knowledge-bases/{knowledgeBaseId}" : { "get" : { "tags" : [ "Basic" ], "summary" : "Retrieve knowledge base", "description" : "Retrieve a specific knowledge base by its ID. Returns its name, language, domain, URL, access settings, language variants (translations), and related metadata.", "operationId" : "get-/cms/knowledge-base/2027-03-beta/knowledge-bases/{knowledgeBaseId}", "parameters" : [ { "name" : "knowledgeBaseId", "in" : "path", "description" : "The unique identifier of the knowledge base to retrieve.", "required" : true, "style" : "simple", "explode" : false, "schema" : { "type" : "string", "example" : null } } ], "responses" : { "200" : { "description" : "successful operation", "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/KnowledgeBase" }, "example" : null } } }, "default" : { "description" : "", "$ref" : "#/components/responses/Error" } }, "security" : [ { "oauth2" : [ "cms.knowledge_base.settings.read" ] }, { "oauth2" : [ "cms.knowledge_base.articles.publish" ] }, { "oauth2" : [ "cms.knowledge_base.articles.write" ] }, { "oauth2" : [ "cms.knowledge_base.articles.read" ] }, { "oauth2" : [ "cms.knowledge_base.settings.write" ] } ] } }, "/cms/knowledge-base/2027-03-beta/tags" : { "get" : { "tags" : [ "Tags" ], "summary" : "Retrieve all tags", "description" : "Retrieve a paginated list of knowledge base tags. Supports filtering by knowledge base ID, language, and creation/update timestamps, as well as sorting.", "operationId" : "get-/cms/knowledge-base/2027-03-beta/tags", "parameters" : [ { "name" : "after", "in" : "query", "description" : "A pagination cursor. Pass the value from the previous response’s paging.next.after to retrieve the next page.", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "string", "example" : null } }, { "name" : "createdAfter", "in" : "query", "description" : "Filter to tags created after the specified date and time. Accepts an ISO-8601 timestamp (e.g., 2026-09-20T00:00:00Z) or a plain date (e.g., 2026-09-20).", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "string", "format" : "date-time", "example" : null } }, { "name" : "createdAt", "in" : "query", "description" : "Filter tags to those with this exact creation date and time. Accepts an ISO-8601 timestamp (e.g., 2026-09-20T00:00:00Z) or a plain date (e.g., 2026-09-20).", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "string", "format" : "date-time", "example" : null } }, { "name" : "createdBefore", "in" : "query", "description" : "Filter to tags created before the specified date and time. Accepts an ISO-8601 timestamp (e.g., 2026-09-20T00:00:00Z) or a plain date (e.g., 2026-09-20).", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "string", "format" : "date-time", "example" : null } }, { "name" : "knowledgeBaseIds", "in" : "query", "description" : "Filter to tags belonging to the specified knowledge base ID(s). Accepts multiple values, repeated as separate query parameters.", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "array", "example" : null, "items" : { "type" : "string", "example" : null } } }, { "name" : "language", "in" : "query", "description" : "Filter tags by a specific language, based on the language of the Knowledge Bases it is used within. Accepts an ISO 639 language code (e.g., en, es), optionally with a region subtag (e.g., en-US). Accepts multiple values, repeated as separate query parameters.", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "array", "example" : null, "items" : { "type" : "string", "example" : null } } }, { "name" : "limit", "in" : "query", "description" : "The number of results to display per page. Default is 25, maximum is 100. ", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "integer", "format" : "int32", "example" : null } }, { "name" : "sort", "in" : "query", "description" : "Specify how to sort results. Accepts name, createdAt, or updatedAt; prefix a field with - for descending order (e.g., -createdAt). Defaults to createdAt descending (newest first).", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "array", "example" : null, "items" : { "type" : "string", "example" : null } } }, { "name" : "updatedAfter", "in" : "query", "description" : "Filter to tags updated after the specified date and time. Accepts an ISO-8601 timestamp (e.g., 2026-09-20T00:00:00Z) or a plain date (e.g., 2026-09-20).", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "string", "format" : "date-time", "example" : null } }, { "name" : "updatedAt", "in" : "query", "description" : "Filter tags to those with this exact update date and time. Accepts an ISO-8601 timestamp (e.g., 2026-09-20T00:00:00Z) or a plain date (e.g., 2026-09-20).", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "string", "format" : "date-time", "example" : null } }, { "name" : "updatedBefore", "in" : "query", "description" : "Filter to tags updated before the specified date and time.", "required" : false, "style" : "form", "explode" : true, "schema" : { "type" : "string", "format" : "date-time", "example" : null } } ], "responses" : { "200" : { "description" : "successful operation", "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/CollectionResponseTagForwardPaging" }, "example" : null } } }, "default" : { "description" : "", "$ref" : "#/components/responses/Error" } }, "security" : [ { "oauth2" : [ "cms.knowledge_base.settings.read" ] }, { "oauth2" : [ "cms.knowledge_base.articles.publish" ] }, { "oauth2" : [ "cms.knowledge_base.articles.write" ] }, { "oauth2" : [ "cms.knowledge_base.articles.read" ] }, { "oauth2" : [ "cms.knowledge_base.settings.write" ] } ] } }, "/cms/knowledge-base/2027-03-beta/tags/{tagId}" : { "get" : { "tags" : [ "Tags" ], "summary" : "Retrieve tag", "description" : "Retrieve a Knowledge Base tag by the ID in the path.", "operationId" : "get-/cms/knowledge-base/2027-03-beta/tags/{tagId}", "parameters" : [ { "name" : "tagId", "in" : "path", "description" : "The unique identifier of the Knowledge Base Tag", "required" : true, "style" : "simple", "explode" : false, "schema" : { "type" : "string", "example" : null } } ], "responses" : { "200" : { "description" : "successful operation", "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/Tag" }, "example" : null } } }, "default" : { "description" : "", "$ref" : "#/components/responses/Error" } }, "security" : [ { "oauth2" : [ "cms.knowledge_base.settings.read" ] }, { "oauth2" : [ "cms.knowledge_base.articles.publish" ] }, { "oauth2" : [ "cms.knowledge_base.articles.write" ] }, { "oauth2" : [ "cms.knowledge_base.articles.read" ] }, { "oauth2" : [ "cms.knowledge_base.settings.write" ] } ] } } }, "components" : { "schemas" : { "ArticleTranslationSummary" : { "required" : [ "id", "state", "title" ], "type" : "object", "properties" : { "id" : { "type" : "string", "description" : "The unique identifier for this article translation.", "example" : "{ \"id\": \"98765432\" }" }, "state" : { "type" : "string", "description" : "The published state of the article translation: either DRAFT or PUBLISHED.\t", "example" : "{ \"state\": \"PUBLISHED\" }", "enum" : [ "DRAFT", "PUBLISHED" ] }, "title" : { "type" : "string", "description" : "The title of the article translation.", "example" : "{ \"title\": \"Cómo restablecer tu contraseña\" }" } }, "example" : null }, "Category" : { "required" : [ "createdAt", "id", "knowledgeBaseId", "language", "name", "position", "translations", "updatedAt", "url", "visibleOnHomepage" ], "type" : "object", "properties" : { "createdAt" : { "type" : "string", "description" : "The date and time the category was created, in ISO 8601 format.", "format" : "date-time", "example" : null }, "createdByUserId" : { "type" : "string", "description" : "The ID of the user who created the category.", "example" : null }, "description" : { "type" : "string", "description" : "A brief description of the category.", "example" : "{ \"description\": \"Articles to help you get started.\" }" }, "id" : { "type" : "string", "description" : "The unique identifier for the category.", "example" : null }, "knowledgeBaseId" : { "type" : "string", "description" : "The ID of the knowledge base this category belongs to.", "example" : null }, "language" : { "type" : "string", "description" : "The category’s language, as an ISO 639 code (e.g., en, ar-eg, en-us).", "example" : null }, "name" : { "type" : "string", "description" : "The name of the category.", "example" : null }, "parentCategoryId" : { "type" : "string", "description" : "The ID of the parent category, if this category is a subcategory.", "example" : null }, "position" : { "type" : "integer", "description" : "The category’s position within its parent category or knowledge base.", "format" : "int32", "example" : null }, "translations" : { "type" : "object", "additionalProperties" : { "$ref" : "#/components/schemas/CategoryTranslation" }, "description" : "The category’s translations, keyed by language code.", "example" : "{ \"translations\": { \"es\": { \"name\": \"Primeros Pasos\" } } }" }, "updatedAt" : { "type" : "string", "description" : "The date and time when the category was last updated, in ISO 8601 format.", "format" : "date-time", "example" : null }, "updatedByUserId" : { "type" : "string", "description" : "The ID of the user who last updated the category.", "example" : null }, "url" : { "type" : "string", "description" : "The URL for this category's listing page.", "example" : null }, "visibleOnHomepage" : { "type" : "boolean", "description" : "A boolean indicating whether the category is visible on the homepage.", "example" : null } }, "example" : null }, "CategoryTranslation" : { "type" : "object", "properties" : { "description" : { "type" : "string", "description" : "The localized description of the category in this translation’s language. Omitted if not set.", "example" : null }, "name" : { "type" : "string", "description" : "The localized name of the category in this translation’s language. If this field is missing, the category needs a translation for that language — until a name is set for it in the UI, any articles assigned to this category and language cannot be published.", "example" : null } }, "example" : null }, "CollectionResponseCategoryForwardPaging" : { "required" : [ "results" ], "type" : "object", "properties" : { "paging" : { "$ref" : "#/components/schemas/ForwardPaging" }, "results" : { "type" : "array", "description" : "The categories in this page of results, as an array of Category objects.\t", "example" : null, "items" : { "$ref" : "#/components/schemas/Category" } } }, "example" : null }, "CollectionResponseKnowledgeArticleForwardPaging" : { "required" : [ "results" ], "type" : "object", "properties" : { "paging" : { "$ref" : "#/components/schemas/ForwardPaging" }, "results" : { "type" : "array", "description" : "The knowledge articles in this page of results, as an array of KnowledgeArticle objects.", "example" : null, "items" : { "$ref" : "#/components/schemas/KnowledgeArticle" } } }, "example" : null }, "CollectionResponseKnowledgeBaseForwardPaging" : { "required" : [ "results" ], "type" : "object", "properties" : { "paging" : { "$ref" : "#/components/schemas/ForwardPaging" }, "results" : { "type" : "array", "description" : "The knowledge bases in this page of results, as an array of KnowledgeBase objects.", "example" : null, "items" : { "$ref" : "#/components/schemas/KnowledgeBase" } } }, "example" : null }, "CollectionResponseTagForwardPaging" : { "required" : [ "results" ], "type" : "object", "properties" : { "paging" : { "$ref" : "#/components/schemas/ForwardPaging" }, "results" : { "type" : "array", "description" : "The knowledge tags in this page of results, as an array of KnowledgeTag objects.\t", "example" : null, "items" : { "$ref" : "#/components/schemas/Tag" } } }, "example" : null }, "CreateArticleRequest" : { "required" : [ "accessGroupIds", "knowledgeBaseId", "language", "tagIds", "title" ], "type" : "object", "properties" : { "accessGroupIds" : { "type" : "array", "description" : "The IDs of the access groups permitted to view the article. Required and non-empty only when accessType is ACCESS_GROUP_MEMBERSHIP; must be empty otherwise.", "example" : null, "items" : { "type" : "string", "example" : null } }, "accessType" : { "type" : "string", "description" : "The access level for the article: PUBLIC, SSO_LOGIN, or ACCESS_GROUP_MEMBERSHIP.\t", "example" : "{ \"accessType\": \"ACCESS_GROUP_MEMBERSHIP\" }", "enum" : [ "ACCESS_GROUP_MEMBERSHIP", "PUBLIC", "SSO_LOGIN" ] }, "body" : { "type" : "string", "description" : "The article’s HTML content.", "example" : null }, "categoryId" : { "type" : "string", "description" : "The unique identifier of the category this article belongs to.", "example" : "{ \"categoryId\": \"12345678\" }" }, "knowledgeBaseId" : { "type" : "string", "description" : "The ID of the knowledge base where the article will be created. Required.", "example" : "{ \"knowledgeBaseId\": \"23456789\" }" }, "language" : { "type" : "string", "description" : "The article’s language. Must be either the knowledge base’s primary language or one of its existing translation-variant languages. Accepts an ISO 639 language code (e.g., en, es), optionally with a region subtag (e.g., en-US). Required. ", "example" : "{ \"language\": \"en\" }" }, "metaDescription" : { "type" : "string", "description" : "A brief description of the article, used for SEO.", "example" : null }, "path" : { "type" : "string", "description" : "The URL path segment for the article.", "example" : "{ \"path\": \"how-to-reset-your-password\" }" }, "subtitle" : { "type" : "string", "description" : "The subtitle of the article.", "example" : "{ \"subtitle\": \"Step-by-step instructions\" }" }, "tagIds" : { "type" : "array", "description" : "The IDs of the tags associated with the article. ", "example" : "{ \"tagIds\": [\"34567890\"] }", "items" : { "type" : "string", "example" : null } }, "title" : { "type" : "string", "description" : "The title of the article. Required.", "example" : "{ \"title\": \"How to reset your password\" }" }, "translationOfId" : { "type" : "string", "description" : "The ID of the article this is a translation of.", "example" : "{ \"translationOfId\": \"98765432\" }" } }, "example" : null }, "Error" : { "required" : [ "category", "correlationId", "message" ], "type" : "object", "properties" : { "category" : { "type" : "string", "description" : "The error category", "example" : null }, "context" : { "type" : "object", "additionalProperties" : { "type" : "array", "example" : null, "items" : { "type" : "string", "example" : null } }, "description" : "Context about the error condition", "example" : "{invalidPropertyName=[propertyValue], missingScopes=[scope1, scope2]}" }, "correlationId" : { "type" : "string", "description" : "A unique identifier for the request. Include this value with any error reports or support tickets", "format" : "uuid", "example" : "aeb5f871-7f07-4993-9211-075dc63e7cbf" }, "errors" : { "type" : "array", "description" : "further information about the error", "example" : null, "items" : { "$ref" : "#/components/schemas/ErrorDetail" } }, "links" : { "type" : "object", "additionalProperties" : { "type" : "string", "example" : null }, "description" : "A map of link names to associated URIs containing documentation about the error or recommended remediation steps", "example" : null }, "message" : { "type" : "string", "description" : "A human readable message describing the error along with remediation steps where appropriate", "example" : "An error occurred" }, "subCategory" : { "type" : "string", "description" : "A specific category that contains more specific detail about the error", "example" : null } }, "description" : "Represents an error response returned by the API when an operation fails. This component is used in various endpoints to provide detailed information about the error encountered.", "example" : { "message" : "Invalid input (details will vary based on the error)", "correlationId" : "aeb5f871-7f07-4993-9211-075dc63e7cbf", "category" : "VALIDATION_ERROR", "links" : { "knowledge-base" : "https://www.hubspot.com/products/service/knowledge-base" } } }, "ErrorDetail" : { "required" : [ "message" ], "type" : "object", "properties" : { "code" : { "type" : "string", "description" : "The status code associated with the error detail", "example" : null }, "context" : { "type" : "object", "additionalProperties" : { "type" : "array", "example" : null, "items" : { "type" : "string", "example" : null } }, "description" : "Context about the error condition", "example" : "{missingScopes=[scope1, scope2]}" }, "in" : { "type" : "string", "description" : "The name of the field or parameter in which the error was found.", "example" : null }, "message" : { "type" : "string", "description" : "A human readable message describing the error along with remediation steps where appropriate", "example" : null }, "subCategory" : { "type" : "string", "description" : "A specific category that contains more specific detail about the error", "example" : null } }, "description" : "Represents detailed information about an error that occurred in the API. This component is used to provide additional context and specifics about errors, typically as part of an error response.", "example" : null }, "FeaturedArticle" : { "required" : [ "articleId", "featuredInCategoryId", "position" ], "type" : "object", "properties" : { "articleId" : { "type" : "string", "description" : "The unique identifier for the article being featured.", "example" : null }, "featuredInCategoryId" : { "type" : "string", "description" : "The ID of the parent category the article belongs to. Articles are only featured on a parent category, so this is always the parent category’s ID even for articles assigned to a parent subcategory. ", "example" : null }, "position" : { "type" : "integer", "description" : "The position in the parent category’s full featured-articles list. It is not re-indexed when filtered to a single subcategory, so values may not be sequential. ", "format" : "int32", "example" : null }, "subcategoryId" : { "type" : "string", "description" : "The ID of the subcategory the article is featured under. Null if the article belongs directly to the parent category with no subcategory.", "example" : null } }, "example" : null }, "FeaturedArticlesResponse" : { "required" : [ "results" ], "type" : "object", "properties" : { "results" : { "type" : "array", "description" : "A list of the category’s featured articles, as a list of FeaturedArticle objects. ", "example" : "{ \"results\": [{ \"articleId\": \"12345678\", \"position\": 0, \"featuredInCategoryId\": \"23456789\", \"subcategoryId\": \"34567890\" }, { \"articleId\": \"45678901\", \"position\": 1, \"featuredInCategoryId\": \"23456789\", \"subcategoryId\": null }] }", "items" : { "$ref" : "#/components/schemas/FeaturedArticle" } } }, "example" : null }, "ForwardPaging" : { "type" : "object", "properties" : { "next" : { "$ref" : "#/components/schemas/NextPage" } }, "example" : null }, "KnowledgeArticle" : { "required" : [ "accessGroupIds", "accessType", "archivedInDashboard", "createdAt", "id", "knowledgeBaseId", "language", "path", "state", "tagIds", "title", "updatedAt", "url" ], "type" : "object", "properties" : { "accessGroupIds" : { "type" : "array", "description" : "The IDs of the access groups that have access to the article. Used when accessType is ACCESS_GROUP_MEMBERSHIP.", "example" : null, "items" : { "type" : "string", "example" : null } }, "accessType" : { "type" : "string", "description" : "The access level for the article: PUBLIC, SSO_LOGIN, or ACCESS_GROUP_MEMBERSHIP.\t", "example" : null, "enum" : [ "ACCESS_GROUP_MEMBERSHIP", "PUBLIC", "SSO_LOGIN" ] }, "archivedInDashboard" : { "type" : "boolean", "description" : "A boolean indicating whether the article is archived in the dashboard.", "example" : null }, "body" : { "type" : "string", "description" : "The article’s HTML content. Only included when the request’s includeBody query parameter is true (which is the default value for the query). ", "example" : null }, "categoryId" : { "type" : "string", "description" : "The ID of the category this article belongs to.\t", "example" : null }, "createdAt" : { "type" : "string", "description" : "The date and time when the article was created, in ISO 8601 format.", "format" : "date-time", "example" : null }, "createdByUserId" : { "type" : "string", "description" : "The unique identifier of the user who created the article.", "example" : null }, "id" : { "type" : "string", "description" : "The unique identifier for the knowledge article.", "example" : null }, "initialPublishedAt" : { "type" : "string", "description" : "The date and time the article was first published, in ISO 8601 format. Absent if the article has never been published.", "format" : "date-time", "example" : null }, "knowledgeBaseId" : { "type" : "string", "description" : "The unique identifier of the knowledge base to which this article belongs.", "example" : null }, "language" : { "type" : "string", "description" : "The article’s language, as an ISO 639 code (e.g. en).\t", "example" : null }, "metaDescription" : { "type" : "string", "description" : "A brief description of the article, used for SEO.", "example" : null }, "path" : { "type" : "string", "description" : "The URL path segment for the article. Combined with the knowledge base’s domain, this forms the URL field.", "example" : null }, "position" : { "type" : "integer", "description" : "The position of the article within its category.", "format" : "int32", "example" : null }, "publishedAt" : { "type" : "string", "description" : "The date and time the article was last published, in ISO 8601 format. Absent if the article has never been published.", "format" : "date-time", "example" : null }, "state" : { "type" : "string", "description" : "The article’s state: either DRAFT or PUBLISHED.", "example" : null, "enum" : [ "DRAFT", "PUBLISHED" ] }, "subcategoryId" : { "type" : "string", "description" : "The subcategory this article belongs to.\t", "example" : null }, "subtitle" : { "type" : "string", "description" : "The subtitle of the knowledge article.", "example" : null }, "tagIds" : { "type" : "array", "description" : "The IDs of the tags associated with the article.", "example" : null, "items" : { "type" : "string", "example" : null } }, "title" : { "type" : "string", "description" : "The title of the knowledge article.", "example" : null }, "translationOfId" : { "type" : "string", "description" : "The ID of the article this is a translation of.", "example" : null }, "translations" : { "type" : "object", "additionalProperties" : { "$ref" : "#/components/schemas/ArticleTranslationSummary" }, "description" : "A summary of the article’s translations, keyed by language code. Only included when the request’s includeTranslations query parameter is true (which is the default value for the query). ", "example" : null }, "updatedAt" : { "type" : "string", "description" : "The date and time when the article was last updated, in ISO 8601 format.", "format" : "date-time", "example" : null }, "updatedByUserId" : { "type" : "string", "description" : "The unique identifier of the user who last updated the article.", "example" : null }, "url" : { "type" : "string", "description" : "The full URL of the article.", "example" : null } }, "example" : null }, "KnowledgeBase" : { "required" : [ "accessType", "createdAt", "domain", "id", "language", "name", "path", "relatedArticlesEnabled", "translations", "updatedAt", "url" ], "type" : "object", "properties" : { "accessType" : { "type" : "string", "description" : "The access level for the knowledge base: PUBLIC, SSO_LOGIN, or ACCESS_GROUP_MEMBERSHIP.\t", "example" : null, "enum" : [ "ACCESS_GROUP_MEMBERSHIP", "PUBLIC", "SSO_LOGIN" ] }, "createdAt" : { "type" : "string", "description" : "The date and time the knowledge base was created, in ISO 8601 format.", "format" : "date-time", "example" : null }, "createdByUserId" : { "type" : "string", "description" : "The ID of the user who created the knowledge base.", "example" : null }, "domain" : { "type" : "string", "description" : "The domain associated with the knowledge base.", "example" : null }, "id" : { "type" : "string", "description" : "The unique identifier for the knowledge base.", "example" : null }, "language" : { "type" : "string", "description" : "The knowledge base’s language, as an ISO 639 code (e.g. en).\t", "example" : null }, "metaDescription" : { "type" : "string", "description" : "A brief description of the knowledge base, used for SEO.", "example" : null }, "name" : { "type" : "string", "description" : "The name of the knowledge base.", "example" : null }, "path" : { "type" : "string", "description" : "The URL path segment for the knowledge base. Combined with domain, this forms the URL field.", "example" : null }, "relatedArticlesEnabled" : { "type" : "boolean", "description" : "A boolean indicating whether related articles are enabled for the knowledge base.", "example" : null }, "translations" : { "type" : "object", "additionalProperties" : { "$ref" : "#/components/schemas/KnowledgeBaseTranslationSummary" }, "description" : "The knowledge base’s translations, keyed by language code, with each value a KnowledgeBaseTranslationSummary.", "example" : null }, "updatedAt" : { "type" : "string", "description" : "The date and time when the knowledge base was last updated, in ISO 8601 format.", "format" : "date-time", "example" : null }, "updatedByUserId" : { "type" : "string", "description" : "The unique identifier of the user who last updated the knowledge base.", "example" : null }, "url" : { "type" : "string", "description" : "The full URL of the knowledge base.", "example" : null } }, "example" : null }, "KnowledgeBaseTranslationSummary" : { "required" : [ "domain", "name", "path", "url" ], "type" : "object", "properties" : { "domain" : { "type" : "string", "description" : "The domain associated with the knowledge base translation.", "example" : "{ \"domain\": \"ayuda-es.example.com\" }" }, "metaDescription" : { "type" : "string", "description" : "A brief description of the knowledge base translation, used for SEO. null if not set.\t", "example" : "{ \"metaDescription\": \"Aprende a usar nuestro producto.\" }" }, "name" : { "type" : "string", "description" : "The name of the knowledge base translation.", "example" : "{ \"name\": \"Guía de usuario\" }" }, "path" : { "type" : "string", "description" : "The URL path segment for the knowledge base translation. Combined with domain, this forms the URL field.\t", "example" : "{ \"path\": \"ayuda\" }" }, "url" : { "type" : "string", "description" : "The full URL of the knowledge base translation, combining domain and path.", "example" : "{ \"url\": \"https://ayuda-es.example.com/ayuda\" }" } }, "example" : null }, "NextPage" : { "required" : [ "after" ], "type" : "object", "properties" : { "after" : { "type" : "string", "description" : "An opaque, encoded cursor for the next page of results. Pass this value back as the after query parameter to retrieve the next page.", "example" : "{ \"after\": \"Mg%3D%3D\" }" }, "link" : { "type" : "string", "description" : "A ready-to-use URL for the next page of results, with the after cursor already applied.", "example" : "{ \"link\": \"https://api.hubapi.com/cms/knowledge-base/2027-03-beta/tags?after=Mg%3D%3D\" }" } }, "description" : "Specifies the paging information needed to retrieve the next set of results in a paginated API response", "example" : null }, "Tag" : { "required" : [ "createdAt", "id", "knowledgeBases", "name", "updatedAt" ], "type" : "object", "properties" : { "createdAt" : { "type" : "string", "description" : "The date and time the tag was created, in ISO 8601 format.\t", "format" : "date-time", "example" : null }, "id" : { "type" : "string", "description" : "The unique identifier for the tag.\t", "example" : null }, "knowledgeBases" : { "type" : "array", "description" : "The knowledge bases this tag is associated with, as an array of TagKnowledgeBase objects.", "example" : null, "items" : { "$ref" : "#/components/schemas/TagKnowledgeBase" } }, "name" : { "type" : "string", "description" : "The name of the tag.", "example" : null }, "updatedAt" : { "type" : "string", "description" : "The date and time when the tag was last updated, in ISO 8601 format.", "format" : "date-time", "example" : null } }, "example" : null }, "TagKnowledgeBase" : { "required" : [ "knowledgeBaseId", "languages" ], "type" : "object", "properties" : { "knowledgeBaseId" : { "type" : "string", "description" : "The unique identifier of the knowledge base this tag belongs to.", "example" : null }, "languages" : { "type" : "array", "description" : "The languages of this knowledge base that this tag is used in. ", "example" : null, "items" : { "type" : "string", "example" : null } } }, "example" : null }, "UpdateArticleDraftRequest" : { "required" : [ "accessGroupIds", "accessType", "archivedInDashboard", "body", "categoryId", "metaDescription", "path", "subtitle", "tagIds", "title" ], "type" : "object", "properties" : { "accessGroupIds" : { "type" : "object", "properties" : { }, "description" : "The IDs of the access groups that have access to the article. Used when accessType is ACCESS_GROUP_MEMBERSHIP.\t", "example" : "{ \"accessGroupIds\": [\"45678901\"] }" }, "accessType" : { "type" : "object", "properties" : { }, "description" : "The access level of the article: PUBLIC, ACCESS_GROUP_MEMBERSHIP, or SSO_LOGIN.\t", "example" : "{ \"accessType\": \"ACCESS_GROUP_MEMBERSHIP\" }" }, "archivedInDashboard" : { "type" : "object", "properties" : { }, "description" : "The visibility state for this article in the dashboard.\t", "example" : "{ \"archivedInDashboard\": true }" }, "body" : { "type" : "object", "properties" : { }, "description" : "The article’s HTML content.", "example" : "{ \"body\": \"
To reset your password, go to Settings > Security.
\" }" }, "categoryId" : { "type" : "object", "properties" : { }, "description" : "The ID of the category the article belongs to.", "example" : "{ \"categoryId\": \"12345678\" }" }, "metaDescription" : { "type" : "object", "properties" : { }, "description" : "A brief description of the article, used for SEO.", "example" : "{ \"metaDescription\": \"Learn how to reset your HubSpot account password.\" }" }, "path" : { "type" : "object", "properties" : { }, "description" : "The URL path segment for the article. This is combined with the knowledge base’s domain to form the article’s full URL (see the URL field on the response).", "example" : "{ \"path\": \"how-to-reset-your-password\" }" }, "subtitle" : { "type" : "object", "properties" : { }, "description" : "The subtitle of the article.", "example" : "{ \"subtitle\": \"Step-by-step instructions\" }" }, "tagIds" : { "type" : "object", "properties" : { }, "description" : "The IDs of tags associated with the article.\t", "example" : "{ \"tagIds\": [\"23456789\", \"34567890\"] }" }, "title" : { "type" : "object", "properties" : { }, "description" : "The title of the article.", "example" : "{ \"title\": \"How to reset your password\" }" } }, "example" : null }, "UpdateArticleRequest" : { "required" : [ "accessGroupIds", "accessType", "archived", "archivedInDashboard", "body", "categoryId", "metaDescription", "path", "subtitle", "tagIds", "title", "translationOfId" ], "type" : "object", "properties" : { "accessGroupIds" : { "type" : "object", "properties" : { }, "description" : "The IDs of the access groups that have access to the article. Used when accessType is ACCESS_GROUP_MEMBERSHIP.", "example" : "{ \"accessGroupIds\": [\"45678901\"] }" }, "accessType" : { "type" : "object", "properties" : { }, "description" : "The access level of the article: PUBLIC, ACCESS_GROUP_MEMBERSHIP, or SSO_LOGIN.", "example" : "{ \"accessType\": \"PUBLIC\" }" }, "archived" : { "type" : "object", "properties" : { }, "description" : "The deleted state of an article. To delete an article, set archived to true and include no other fields in the request body. This service does not support restoring an archived article — setting archived to false will fail.", "example" : "{ \"archived\": true }" }, "archivedInDashboard" : { "type" : "object", "properties" : { }, "description" : "The visibility state for this article in the dashboard. ", "example" : "{ \"archivedInDashboard\": false }" }, "body" : { "type" : "object", "properties" : { }, "description" : "The article’s HTML content.", "example" : "{ \"body\": \"To reset your password, go to Settings > Security.
\" }{}" }, "categoryId" : { "type" : "object", "properties" : { }, "description" : "The ID of the category the article belongs to. ", "example" : "{ \"categoryId\": \"12345678\" }" }, "metaDescription" : { "type" : "object", "properties" : { }, "description" : "A brief description of the article, used for SEO.", "example" : "{ \"metaDescription\": \"Learn how to reset your HubSpot account password.\" }" }, "path" : { "type" : "object", "properties" : { }, "description" : "The URL path segment for the article. This is combined with the knowledge base’s domain to form the article’s full URL (see the URL field on the response).", "example" : "{}{ \"path\": \"how-to-reset-your-password\" }" }, "subtitle" : { "type" : "object", "properties" : { }, "description" : "The subtitle of the article. ", "example" : "{ \"subtitle\": \"Step-by-step instructions\" }" }, "tagIds" : { "type" : "object", "properties" : { }, "description" : "The IDs of tags associated with the article.", "example" : "{ \"tagIds\": [\"23456789\", \"34567890\"] }" }, "title" : { "type" : "object", "properties" : { }, "description" : "The title of the article. ", "example" : "{ \"title\": \"How to reset your password\" }" }, "translationOfId" : { "type" : "object", "properties" : { }, "description" : "The ID of the article this is a translation of.", "example" : "{ \"translationOfId\": \"98765432\" }" } }, "example" : null } }, "responses" : { "Error" : { "description" : "An error occurred.", "content" : { "*/*" : { "schema" : { "$ref" : "#/components/schemas/Error" }, "example" : null } } } }, "securitySchemes" : { "developer_hapikey" : { "type" : "apiKey", "name" : "hapikey", "in" : "query" }, "oauth2" : { "type" : "oauth2", "flows" : { "authorizationCode" : { "authorizationUrl" : "https://app.hubspot.com/oauth/authorize", "tokenUrl" : "https://api.hubapi.com/oauth/v1/token", "scopes" : { "cms.knowledge_base.articles.publish" : "", "cms.knowledge_base.articles.read" : "", "cms.knowledge_base.articles.write" : "", "cms.knowledge_base.settings.read" : "", "cms.knowledge_base.settings.write" : "" } } } }, "private_apps" : { "type" : "apiKey", "name" : "private-app", "in" : "header" }, "private_apps_legacy" : { "type" : "apiKey", "name" : "private-app-legacy", "in" : "header" } } }, "x-hubspot-product-tier-requirements" : { "marketing" : "FREE", "sales" : "FREE", "service" : "FREE", "cms" : "FREE", "commerce" : "FREE", "crmHub" : "FREE", "dataHub" : "FREE" } }