# Update an internal article

You can update the details of a single internal article by making a PUT request to `https://api.intercom.io/internal_articles/<id>`.

Endpoint: PUT /internal_articles/{internal_article_id}
Version: 2.16
Security: bearerAuth

## Path parameters:

  - `internal_article_id` (integer, required)
    The unique identifier for the internal article which is given by Intercom.

## Header parameters:

  - `Intercom-Version` (string)

## Request fields (application/json):

  - `title` (string)
    The title of the article.
    Example: Thanks for everything

  - `body` (string)
    The content of the article in HTML. Mutually exclusive with `body_markdown`.

  - `body_markdown` (string)
    The content of the article in markdown. An alternative to `body` — you can provide content as markdown instead of HTML. Mutually exclusive with `body`.
    Example: ## Updated

New content.


  - `author_id` (integer)
    The id of the author of the article.
    Example: 1295

  - `owner_id` (integer)
    The id of the author of the article.
    Example: 1295

  - `audience_ids` (array)
    The list of audience IDs to target this internal article to for Fin AI Agent. Omitting the field leaves existing audience memberships unchanged (PATCH semantics). Pass `[]` to clear all audience memberships. Unknown audience IDs return a `404` error with no partial commit.
    Example: [1,2]

  - `ai_chatbot_availability` (boolean)
    Whether the internal article should be available for AI Chatbot (Fin).
    Example: true

  - `ai_copilot_availability` (boolean)
    Whether the internal article should be available for AI Copilot.
    Example: true

  - `ai_sales_agent_availability` (boolean)
    Whether the internal article should be available for AI Sales Agent.
    Example: true

## Response 200 fields (application/json):

  - `type` (string)
    The type of object - `internal_article`.
    Enum: "internal_article"

  - `id` (string)
    The unique identifier for the article which is given by Intercom.
    Example: 6871119

  - `title` (string)
    The title of the article.

  - `body` (string)
    The body of the article in HTML.
    Example: Default language body in html

  - `body_markdown` (string)
    The body of the article in markdown.
    Example: # Internal Guide

Body of the article in markdown


  - `owner_id` (integer)
    The id of the owner of the article.
    Example: 5017691

  - `author_id` (integer)
    The id of the author of the article.
    Example: 5017691

  - `created_at` (integer)
    The time when the article was created.
    Example: 1672928359

  - `updated_at` (integer)
    The time when the article was last updated.
    Example: 1672928610

  - `locale` (string)
    The default locale of the article.

  - `audience_ids` (array)
    The list of audience IDs this internal article is targeted to for Fin AI Agent. Empty array means no audience targeting is set.
    Example: [1,2]

  - `ai_chatbot_availability` (boolean)
    Whether the internal article is available for AI Chatbot (Fin).
    Example: true

  - `ai_copilot_availability` (boolean)
    Whether the internal article is available for AI Copilot.
    Example: true

  - `ai_sales_agent_availability` (boolean)
    Whether the internal article is available for AI Sales Agent.
    Example: true

## Response 401 fields (application/json):

  - `type` (string, required)
    The type is error.list
    Example: error.list

  - `request_id` (string)
    Example: f93ecfa8-d08a-4325-8694-89aeb89c8f85

  - `errors` (array, required)
    An array of one or more error objects

  - `errors.code` (string, required)
    A string indicating the kind of error, used to further qualify the HTTP response code
    Example: unauthorized

  - `errors.message` (string)
    Optional. Human readable description of the error.
    Example: Access Token Invalid

  - `errors.field` (string)
    Optional. Used to identify a particular field or query parameter that was in error.
    Example: email

## Response 404 fields (application/json):

  - `type` (string, required)
    The type is error.list
    Example: error.list

  - `request_id` (string)
    Example: f93ecfa8-d08a-4325-8694-89aeb89c8f85

  - `errors` (array, required)
    An array of one or more error objects

  - `errors.code` (string, required)
    A string indicating the kind of error, used to further qualify the HTTP response code
    Example: unauthorized

  - `errors.message` (string)
    Optional. Human readable description of the error.
    Example: Access Token Invalid

  - `errors.field` (string)
    Optional. Used to identify a particular field or query parameter that was in error.
    Example: email

