# Knowledge Base

## Get all knowledge bases

> Returns all knowledge bases for the organization.\
> \
> \*\*Rate limit:\*\* 60 requests per minute

```json
{"openapi":"3.0.1","info":{"title":"Pylon API.","version":"1.0.0"},"servers":[{"url":"https://api.usepylon.com"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"description":"Authorization: Bearer <token>","scheme":"bearer","type":"http"}},"schemas":{"GetKnowledgeBasesResponseBody":{"properties":{"data":{"description":"The data payload of the response.","items":{"$ref":"#/components/schemas/KnowledgeBase"},"type":"array"},"pagination":{"$ref":"#/components/schemas/Pagination"},"request_id":{"description":"The request ID for tracking.","type":"string"}},"type":"object"},"KnowledgeBase":{"properties":{"default_language":{"description":"The default language of the knowledge base.","type":"string"},"id":{"description":"The ID of the knowledge base.","type":"string"},"slug":{"description":"The slug of the knowledge base.","type":"string"},"supported_languages":{"description":"The list of supported languages for the knowledge base.","items":{"type":"string"},"type":"array"},"title":{"description":"The name of the knowledge base.","type":"string"}},"type":"object"},"Pagination":{"properties":{"cursor":{"description":"The cursor for the next page of results.","type":"string"},"has_next_page":{"description":"Indicates if there is a next page of results.","type":"boolean"}},"required":["cursor","has_next_page"],"type":"object"},"ErrorApiResponseBody":{"properties":{"errors":{"description":"The list of errors.","items":{"type":"string"},"type":"array"},"exists_id":{"description":"The ID of the object that already exists if this is a duplicate object error.","type":"string"},"request_id":{"description":"The request ID for tracking.","type":"string"}},"type":"object"}}},"paths":{"/knowledge-bases":{"get":{"description":"Returns all knowledge bases for the organization.\n\n**Rate limit:** 60 requests per minute","operationId":"GetKnowledgeBases","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetKnowledgeBasesResponseBody"}}},"description":""},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponseBody"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponseBody"}}},"description":""},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponseBody"}}},"description":""}},"summary":"Get all knowledge bases","tags":["knowledge-bases"]}}}}
```

{% openapi src="<https://static.usepylon.com/openapi.json>" path="/knowledge-bases/{id}" method="get" %}
<https://static.usepylon.com/openapi.json>
{% endopenapi %}

{% openapi src="<https://static.usepylon.com/openapi.json>" path="/knowledge-bases/{id}/collections" method="get" %}
<https://static.usepylon.com/openapi.json>
{% endopenapi %}

{% openapi src="<https://static.usepylon.com/openapi.json>" path="/knowledge-bases/{id}/collections" method="post" %}
<https://static.usepylon.com/openapi.json>
{% endopenapi %}

## Delete a collection

> Permanently deletes a collection and all articles within it from the knowledge base. Nested collections and their articles are also deleted.\
> \
> \*\*Rate limit:\*\* 10 requests per minute

```json
{"openapi":"3.0.1","info":{"title":"Pylon API.","version":"1.0.0"},"servers":[{"url":"https://api.usepylon.com"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"description":"Authorization: Bearer <token>","scheme":"bearer","type":"http"}},"schemas":{"DeleteCollectionResponseBody":{"properties":{"request_id":{"description":"The request ID for tracking.","type":"string"}},"type":"object"},"ErrorApiResponseBody":{"properties":{"errors":{"description":"The list of errors.","items":{"type":"string"},"type":"array"},"exists_id":{"description":"The ID of the object that already exists if this is a duplicate object error.","type":"string"},"request_id":{"description":"The request ID for tracking.","type":"string"}},"type":"object"}}},"paths":{"/knowledge-bases/{id}/collections/{collection_id}":{"delete":{"description":"Permanently deletes a collection and all articles within it from the knowledge base. Nested collections and their articles are also deleted.\n\n**Rate limit:** 10 requests per minute","operationId":"DeleteCollection","parameters":[{"description":"The ID of the knowledge base that the collection belongs to.","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"The ID of the collection to delete.","in":"path","name":"collection_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteCollectionResponseBody"}}},"description":""},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponseBody"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponseBody"}}},"description":""},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponseBody"}}},"description":""}},"summary":"Delete a collection","tags":["collections"]}}}}
```

## Get all articles in a knowledge base

> Returns a paginated list of articles for the specified knowledge base.\
> \
> \*\*Rate limit:\*\* 20 requests per minute

```json
{"openapi":"3.0.1","info":{"title":"Pylon API.","version":"1.0.0"},"servers":[{"url":"https://api.usepylon.com"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"description":"Authorization: Bearer <token>","scheme":"bearer","type":"http"}},"schemas":{"GetArticlesResponseBody":{"properties":{"data":{"description":"The data payload of the response.","items":{"$ref":"#/components/schemas/Article"},"type":"array"},"pagination":{"$ref":"#/components/schemas/Pagination"},"request_id":{"description":"The request ID for tracking.","type":"string"}},"type":"object"},"Article":{"properties":{"collection_id":{"description":"The ID of the collection this article belongs to, if any.","type":"string"},"current_draft_content_html":{"description":"The current draft content of the article in HTML. This is the latest version, which may differ from the published version.","type":"string"},"current_published_content_html":{"description":"The current published content of the article in HTML.","type":"string"},"id":{"description":"The ID of the article.","type":"string"},"identifier":{"description":"The identifier of the article","type":"string"},"is_published":{"description":"IsPublished indicates if the article is published.","type":"boolean"},"last_published_at":{"description":"The last published at time of the article.","type":"string"},"slug":{"description":"The slug of the article.","type":"string"},"title":{"description":"The name of the article.","type":"string"},"url":{"description":"The URL of the article.","type":"string"},"visibility_config":{"$ref":"#/components/schemas/VisibilityConfig"}},"type":"object"},"VisibilityConfig":{"properties":{"ai_agent_access":{"description":"AI agent access control for the article. Defaults to inherit from the parent scope when omitted.\n\n`inherit`: Defers the access check to the parent object (Collection or KnowledgeBase).\n\n`none`: No AI agents have access to this article.\n\n`specific_agents`: Only specific AI agents enumerated in the allowlist have access.","enum":["inherit","none","specific_agents"],"type":"string"},"allowed_agent_ids":{"description":"List of AI agent IDs that may access this article when ai_agent_access is set to \"specific_agents\".","items":{"type":"string"},"type":"array"},"customer_visibility_condition":{"$ref":"#/components/schemas/Filter"},"visibility":{"description":"The visibility setting of the article.","enum":["public","customer","internal_only"],"type":"string"}},"type":"object"},"Filter":{"properties":{"field":{"description":"The field for this filter.  For allowed fields, see the documentation for\n\nthe specific endpoint you are using.\n\nFor non-compound filters (any operators other than \"and\" or \"or\"),\n\nField must be set, along with either Value or Values, depending on the operator.","type":"string"},"operator":{"description":"The operator for this filter.\n\n`equals`: Matches objects that are exactly equal to the value in the field.\n\n`not_equals`: Matches objects that are not exactly equal to the value in the field.\n\n`contains`: For a multi-valued field, such as tags, this operator will match  objects that contain any of the values in the field.\n\n`does_not_contain`: For a multi-valued field, such as tags, this operator will match  objects that do not contain any of the values in the field.\n\n`in`: Matches objects if the field is one of several possible values,  as specified in the values array.\n\n`not_in`: Matches objects if the field is none of several possible values,  as specified in the values array.\n\n`and`: Matches objects only if all subfilters match.\n\n`or`: Matches objects if any subfilter matches.\n\n`time_is_after`: Matches objects if the field is after the given time.\n\n`time_is_before`: Matches objects if the field is before the given time.\n\n`time_range`: Matches objects if the field is between the given times.\n\n`string_contains`: Matches objects if the field contains the given string.\n\n`string_does_not_contain`: Matches objects if the field does not contain the given string.\n\n`is_set`: Matches objects if the field is set.\n\n`is_unset`: Matches objects if the field is unset.\n\n`greater_than`: Matches objects if the numeric field is greater than the given value.\n\n`less_than`: Matches objects if the numeric field is less than the given value.\n\n`greater_than_or_equals`: Matches objects if the numeric field is greater than or equal to the given value.\n\n`less_than_or_equals`: Matches objects if the numeric field is less than or equal to the given value.","enum":["equals","not_equals","contains","does_not_contain","in","not_in","and","or","time_is_after","time_is_before","time_range","string_contains","string_does_not_contain","is_set","is_unset","greater_than","less_than","greater_than_or_equals","less_than_or_equals"],"type":"string"},"subfilters":{"description":"Sub-filters for this filter.  Valid only when operator is \"and\" or \"or\".\n\nThe maximum allowed depth for a tree of filters is 3.","items":{"$ref":"#/components/schemas/Filter"},"type":"array"},"value":{"description":"The value for this filter. Only used for single-valued operators\n\n(\"equals\", \"not_equals\", \"contains\", \"does_not_contain\")","type":"string"},"values":{"description":"The values for this filter. Only used for multi-valued operators (\"in\", \"not_in\").","items":{"type":"string"},"type":"array"}},"required":["field","operator"],"type":"object"},"Pagination":{"properties":{"cursor":{"description":"The cursor for the next page of results.","type":"string"},"has_next_page":{"description":"Indicates if there is a next page of results.","type":"boolean"}},"required":["cursor","has_next_page"],"type":"object"},"ErrorApiResponseBody":{"properties":{"errors":{"description":"The list of errors.","items":{"type":"string"},"type":"array"},"exists_id":{"description":"The ID of the object that already exists if this is a duplicate object error.","type":"string"},"request_id":{"description":"The request ID for tracking.","type":"string"}},"type":"object"}}},"paths":{"/knowledge-bases/{id}/articles":{"get":{"description":"Returns a paginated list of articles for the specified knowledge base.\n\n**Rate limit:** 20 requests per minute","operationId":"GetArticles","parameters":[{"description":"The ID of the knowledge base the articles are being fetched from.","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"The cursor to use for pagination.","in":"query","name":"cursor","schema":{"type":"string"}},{"description":"The number of articles to fetch. Defaults to 100. Must be greater than 0 and less than 1000.","in":"query","name":"limit","schema":{"format":"int64","type":"integer"}},{"description":"The language code to fetch articles in. If not provided, returns the default language.","in":"query","name":"language","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetArticlesResponseBody"}}},"description":""},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponseBody"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponseBody"}}},"description":""},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponseBody"}}},"description":""}},"summary":"Get all articles in a knowledge base","tags":["articles"]}}}}
```

## Create an article

> Creates a new article within a knowledge base.\
> \
> \*\*Rate limit:\*\* 10 requests per minute

```json
{"openapi":"3.0.1","info":{"title":"Pylon API.","version":"1.0.0"},"servers":[{"url":"https://api.usepylon.com"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"description":"Authorization: Bearer <token>","scheme":"bearer","type":"http"}},"schemas":{"CreateArticleRequestBody":{"properties":{"author_user_id":{"description":"The ID of the user attributed as the author of the article.","type":"string"},"body_html":{"description":"The HTML body of the article.","type":"string"},"collection_id":{"description":"The id of the collection associated to the article","type":"string"},"is_published":{"description":"Whether the article should be published. Defaults to false.","type":"boolean"},"is_unlisted":{"description":"Whether the article can only be accessible only via direct link. Defaults to false.","type":"boolean"},"slug":{"description":"The slug of the article. Defaults to a slug based on the title.","type":"string"},"title":{"description":"The title of the article.","type":"string"},"translations":{"description":"Translations of the article content in different languages","items":{"$ref":"#/components/schemas/ArticleTranslationInput"},"type":"array"},"visibility_config":{"$ref":"#/components/schemas/VisibilityConfig"}},"required":["author_user_id","body_html","title"],"type":"object"},"ArticleTranslationInput":{"properties":{"body_html":{"description":"The translated HTML body of the article.","type":"string"},"language":{"description":"The language code of the translation. Supported language codes can be found in https://docs.usepylon.com/pylon-docs/knowledge-base/translation#supported-language-codes.","type":"string"},"title":{"description":"The translated title of the article.","type":"string"}},"required":["body_html","language","title"],"type":"object"},"VisibilityConfig":{"properties":{"ai_agent_access":{"description":"AI agent access control for the article. Defaults to inherit from the parent scope when omitted.\n\n`inherit`: Defers the access check to the parent object (Collection or KnowledgeBase).\n\n`none`: No AI agents have access to this article.\n\n`specific_agents`: Only specific AI agents enumerated in the allowlist have access.","enum":["inherit","none","specific_agents"],"type":"string"},"allowed_agent_ids":{"description":"List of AI agent IDs that may access this article when ai_agent_access is set to \"specific_agents\".","items":{"type":"string"},"type":"array"},"customer_visibility_condition":{"$ref":"#/components/schemas/Filter"},"visibility":{"description":"The visibility setting of the article.","enum":["public","customer","internal_only"],"type":"string"}},"type":"object"},"Filter":{"properties":{"field":{"description":"The field for this filter.  For allowed fields, see the documentation for\n\nthe specific endpoint you are using.\n\nFor non-compound filters (any operators other than \"and\" or \"or\"),\n\nField must be set, along with either Value or Values, depending on the operator.","type":"string"},"operator":{"description":"The operator for this filter.\n\n`equals`: Matches objects that are exactly equal to the value in the field.\n\n`not_equals`: Matches objects that are not exactly equal to the value in the field.\n\n`contains`: For a multi-valued field, such as tags, this operator will match  objects that contain any of the values in the field.\n\n`does_not_contain`: For a multi-valued field, such as tags, this operator will match  objects that do not contain any of the values in the field.\n\n`in`: Matches objects if the field is one of several possible values,  as specified in the values array.\n\n`not_in`: Matches objects if the field is none of several possible values,  as specified in the values array.\n\n`and`: Matches objects only if all subfilters match.\n\n`or`: Matches objects if any subfilter matches.\n\n`time_is_after`: Matches objects if the field is after the given time.\n\n`time_is_before`: Matches objects if the field is before the given time.\n\n`time_range`: Matches objects if the field is between the given times.\n\n`string_contains`: Matches objects if the field contains the given string.\n\n`string_does_not_contain`: Matches objects if the field does not contain the given string.\n\n`is_set`: Matches objects if the field is set.\n\n`is_unset`: Matches objects if the field is unset.\n\n`greater_than`: Matches objects if the numeric field is greater than the given value.\n\n`less_than`: Matches objects if the numeric field is less than the given value.\n\n`greater_than_or_equals`: Matches objects if the numeric field is greater than or equal to the given value.\n\n`less_than_or_equals`: Matches objects if the numeric field is less than or equal to the given value.","enum":["equals","not_equals","contains","does_not_contain","in","not_in","and","or","time_is_after","time_is_before","time_range","string_contains","string_does_not_contain","is_set","is_unset","greater_than","less_than","greater_than_or_equals","less_than_or_equals"],"type":"string"},"subfilters":{"description":"Sub-filters for this filter.  Valid only when operator is \"and\" or \"or\".\n\nThe maximum allowed depth for a tree of filters is 3.","items":{"$ref":"#/components/schemas/Filter"},"type":"array"},"value":{"description":"The value for this filter. Only used for single-valued operators\n\n(\"equals\", \"not_equals\", \"contains\", \"does_not_contain\")","type":"string"},"values":{"description":"The values for this filter. Only used for multi-valued operators (\"in\", \"not_in\").","items":{"type":"string"},"type":"array"}},"required":["field","operator"],"type":"object"},"CreateArticleResponseBody":{"properties":{"data":{"$ref":"#/components/schemas/Article"},"request_id":{"description":"The request ID for tracking.","type":"string"}},"type":"object"},"Article":{"properties":{"collection_id":{"description":"The ID of the collection this article belongs to, if any.","type":"string"},"current_draft_content_html":{"description":"The current draft content of the article in HTML. This is the latest version, which may differ from the published version.","type":"string"},"current_published_content_html":{"description":"The current published content of the article in HTML.","type":"string"},"id":{"description":"The ID of the article.","type":"string"},"identifier":{"description":"The identifier of the article","type":"string"},"is_published":{"description":"IsPublished indicates if the article is published.","type":"boolean"},"last_published_at":{"description":"The last published at time of the article.","type":"string"},"slug":{"description":"The slug of the article.","type":"string"},"title":{"description":"The name of the article.","type":"string"},"url":{"description":"The URL of the article.","type":"string"},"visibility_config":{"$ref":"#/components/schemas/VisibilityConfig"}},"type":"object"},"ErrorApiResponseBody":{"properties":{"errors":{"description":"The list of errors.","items":{"type":"string"},"type":"array"},"exists_id":{"description":"The ID of the object that already exists if this is a duplicate object error.","type":"string"},"request_id":{"description":"The request ID for tracking.","type":"string"}},"type":"object"}}},"paths":{"/knowledge-bases/{id}/articles":{"post":{"description":"Creates a new article within a knowledge base.\n\n**Rate limit:** 10 requests per minute","operationId":"CreateArticle","parameters":[{"description":"The ID of the knowledge base the article is being added to.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateArticleRequestBody"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateArticleResponseBody"}}},"description":""},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponseBody"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponseBody"}}},"description":""},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponseBody"}}},"description":""}},"summary":"Create an article","tags":["articles"]}}}}
```

## Get an article by its ID

> Returns a single article by ID within the specified knowledge base.\
> \
> \*\*Rate limit:\*\* 60 requests per minute

```json
{"openapi":"3.0.1","info":{"title":"Pylon API.","version":"1.0.0"},"servers":[{"url":"https://api.usepylon.com"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"description":"Authorization: Bearer <token>","scheme":"bearer","type":"http"}},"schemas":{"GetArticleResponseBody":{"properties":{"data":{"$ref":"#/components/schemas/Article"},"request_id":{"description":"The request ID for tracking.","type":"string"}},"type":"object"},"Article":{"properties":{"collection_id":{"description":"The ID of the collection this article belongs to, if any.","type":"string"},"current_draft_content_html":{"description":"The current draft content of the article in HTML. This is the latest version, which may differ from the published version.","type":"string"},"current_published_content_html":{"description":"The current published content of the article in HTML.","type":"string"},"id":{"description":"The ID of the article.","type":"string"},"identifier":{"description":"The identifier of the article","type":"string"},"is_published":{"description":"IsPublished indicates if the article is published.","type":"boolean"},"last_published_at":{"description":"The last published at time of the article.","type":"string"},"slug":{"description":"The slug of the article.","type":"string"},"title":{"description":"The name of the article.","type":"string"},"url":{"description":"The URL of the article.","type":"string"},"visibility_config":{"$ref":"#/components/schemas/VisibilityConfig"}},"type":"object"},"VisibilityConfig":{"properties":{"ai_agent_access":{"description":"AI agent access control for the article. Defaults to inherit from the parent scope when omitted.\n\n`inherit`: Defers the access check to the parent object (Collection or KnowledgeBase).\n\n`none`: No AI agents have access to this article.\n\n`specific_agents`: Only specific AI agents enumerated in the allowlist have access.","enum":["inherit","none","specific_agents"],"type":"string"},"allowed_agent_ids":{"description":"List of AI agent IDs that may access this article when ai_agent_access is set to \"specific_agents\".","items":{"type":"string"},"type":"array"},"customer_visibility_condition":{"$ref":"#/components/schemas/Filter"},"visibility":{"description":"The visibility setting of the article.","enum":["public","customer","internal_only"],"type":"string"}},"type":"object"},"Filter":{"properties":{"field":{"description":"The field for this filter.  For allowed fields, see the documentation for\n\nthe specific endpoint you are using.\n\nFor non-compound filters (any operators other than \"and\" or \"or\"),\n\nField must be set, along with either Value or Values, depending on the operator.","type":"string"},"operator":{"description":"The operator for this filter.\n\n`equals`: Matches objects that are exactly equal to the value in the field.\n\n`not_equals`: Matches objects that are not exactly equal to the value in the field.\n\n`contains`: For a multi-valued field, such as tags, this operator will match  objects that contain any of the values in the field.\n\n`does_not_contain`: For a multi-valued field, such as tags, this operator will match  objects that do not contain any of the values in the field.\n\n`in`: Matches objects if the field is one of several possible values,  as specified in the values array.\n\n`not_in`: Matches objects if the field is none of several possible values,  as specified in the values array.\n\n`and`: Matches objects only if all subfilters match.\n\n`or`: Matches objects if any subfilter matches.\n\n`time_is_after`: Matches objects if the field is after the given time.\n\n`time_is_before`: Matches objects if the field is before the given time.\n\n`time_range`: Matches objects if the field is between the given times.\n\n`string_contains`: Matches objects if the field contains the given string.\n\n`string_does_not_contain`: Matches objects if the field does not contain the given string.\n\n`is_set`: Matches objects if the field is set.\n\n`is_unset`: Matches objects if the field is unset.\n\n`greater_than`: Matches objects if the numeric field is greater than the given value.\n\n`less_than`: Matches objects if the numeric field is less than the given value.\n\n`greater_than_or_equals`: Matches objects if the numeric field is greater than or equal to the given value.\n\n`less_than_or_equals`: Matches objects if the numeric field is less than or equal to the given value.","enum":["equals","not_equals","contains","does_not_contain","in","not_in","and","or","time_is_after","time_is_before","time_range","string_contains","string_does_not_contain","is_set","is_unset","greater_than","less_than","greater_than_or_equals","less_than_or_equals"],"type":"string"},"subfilters":{"description":"Sub-filters for this filter.  Valid only when operator is \"and\" or \"or\".\n\nThe maximum allowed depth for a tree of filters is 3.","items":{"$ref":"#/components/schemas/Filter"},"type":"array"},"value":{"description":"The value for this filter. Only used for single-valued operators\n\n(\"equals\", \"not_equals\", \"contains\", \"does_not_contain\")","type":"string"},"values":{"description":"The values for this filter. Only used for multi-valued operators (\"in\", \"not_in\").","items":{"type":"string"},"type":"array"}},"required":["field","operator"],"type":"object"},"ErrorApiResponseBody":{"properties":{"errors":{"description":"The list of errors.","items":{"type":"string"},"type":"array"},"exists_id":{"description":"The ID of the object that already exists if this is a duplicate object error.","type":"string"},"request_id":{"description":"The request ID for tracking.","type":"string"}},"type":"object"}}},"paths":{"/knowledge-bases/{id}/articles/{article_id}":{"get":{"description":"Returns a single article by ID within the specified knowledge base.\n\n**Rate limit:** 60 requests per minute","operationId":"GetArticle","parameters":[{"description":"The KnowledgeBaseID of the article to fetch.","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"The ID of the article to fetch.","in":"path","name":"article_id","required":true,"schema":{"type":"string"}},{"description":"The language code to fetch the article in. If not provided, returns the default language.","in":"query","name":"language","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetArticleResponseBody"}}},"description":""},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponseBody"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponseBody"}}},"description":""},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponseBody"}}},"description":""}},"summary":"Get an article by its ID","tags":["articles"]}}}}
```

{% openapi src="<https://static.usepylon.com/openapi.json>" path="/knowledge-bases/{id}/articles/{article\_id}" method="patch" %}
<https://static.usepylon.com/openapi.json>
{% endopenapi %}

## Delete an article

> Permanently deletes an article from the knowledge base.\
> \
> \*\*Rate limit:\*\* 20 requests per minute

```json
{"openapi":"3.0.1","info":{"title":"Pylon API.","version":"1.0.0"},"servers":[{"url":"https://api.usepylon.com"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"description":"Authorization: Bearer <token>","scheme":"bearer","type":"http"}},"schemas":{"DeleteArticleResponseBody":{"properties":{"request_id":{"description":"The request ID for tracking.","type":"string"}},"type":"object"},"ErrorApiResponseBody":{"properties":{"errors":{"description":"The list of errors.","items":{"type":"string"},"type":"array"},"exists_id":{"description":"The ID of the object that already exists if this is a duplicate object error.","type":"string"},"request_id":{"description":"The request ID for tracking.","type":"string"}},"type":"object"}}},"paths":{"/knowledge-bases/{id}/articles/{article_id}":{"delete":{"description":"Permanently deletes an article from the knowledge base.\n\n**Rate limit:** 20 requests per minute","operationId":"DeleteArticle","parameters":[{"description":"The KnowledgeBaseID of the article to delete.","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"The ID of the article to delete.","in":"path","name":"article_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteArticleResponseBody"}}},"description":""},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponseBody"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponseBody"}}},"description":""},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponseBody"}}},"description":""}},"summary":"Delete an article","tags":["articles"]}}}}
```

{% openapi src="<https://static.usepylon.com/openapi.json>" path="/knowledge-bases/{id}/route-redirects" method="post" %}
<https://static.usepylon.com/openapi.json>
{% endopenapi %}
