# Create an external page (or update an external page by external ID)

You can create a new external page by sending a POST request to this endpoint. If an external page already exists with the specified source_id and external_id, it will be updated instead.

Endpoint: POST /ai/external_pages
Version: Preview
Security: bearerAuth

## Header parameters:

  - `Intercom-Version` (string)
    Intercom API version.By default, it's equal to the version set in the app package.
    Enum: "1.0", "1.1", "1.2", "1.3", "1.4", "2.0", "2.1", "2.2", "2.3", "2.4", "2.5", "2.6", "2.7", "2.8", "2.9", "2.10", "2.11", "2.12", "2.13", "2.14", "Preview"

## Request fields (application/json):

  - `title` (string, required)
    The title of the external page.
    Example: "Getting started with..."

  - `html` (string, required)
    The body of the external page in HTML.
    Example: "<p>Hello world!</p>"

  - `url` (string)
    The URL of the external page. This will be used by Fin to link end users to the page it based its answer on. When a URL is not present, Fin will not reference the source.
    Example: "https://help.example.com/en/articles/1234-getting-started"

  - `ai_agent_availability` (boolean)
    Whether the external page should be used to answer questions by AI Agent. Will not default when updating an existing external page.
    Example: true

  - `ai_copilot_availability` (boolean)
    Whether the external page should be used to answer questions by AI Copilot. Will not default when updating an existing external page.
    Example: true

  - `locale` (string, required)
    Always en
    Enum: "en"

  - `source_id` (integer, required)
    The unique identifier for the source of the external page which was given by Intercom. Every external page must be associated with a Content Import Source which represents the place it comes from and from which it inherits a default audience (configured in the UI). For a new source, make a POST request to the Content Import Source endpoint and an ID for the source will be returned in the response.
    Example: 1234

  - `external_id` (string, required)
    The identifier for the external page which was given by the source. Must be unique for the source.
    Example: "5678"

## Response 200 fields (application/json):

  - `type` (string, required)
    Always external_page
    Enum: "external_page"

  - `id` (string, required)
    The unique identifier for the external page which is given by Intercom.
    Example: "1234"

  - `title` (string, required)
    The title of the external page.
    Example: "Getting started with..."

  - `html` (string, required)
    The body of the external page in HTML.
    Example: "<p>Hello world!</p>"

  - `url` (string)
    The URL of the external page. This will be used by Fin to link end users to the page it based its answer on.
    Example: "https://help.example.com/en/articles/1234-getting-started"

  - `ai_agent_availability` (boolean, required)
    Whether the external page should be used to answer questions by AI Agent.
    Example: true

  - `ai_copilot_availability` (boolean, required)
    Whether the external page should be used to answer questions by AI Copilot.
    Example: true

  - `fin_availability` (boolean)
    Deprecated. Use ai_agent_availability and ai_copilot_availability instead.
    Example: true

  - `locale` (string, required)
    Always en
    Enum: "en"

  - `source_id` (integer, required)
    The unique identifier for the source of the external page which was given by Intercom. Every external page must be associated with a Content Import Source which represents the place it comes from and from which it inherits a default audience (configured in the UI). For a new source, make a POST request to the Content Import Source endpoint and an ID for the source will be returned in the response.
    Example: 1234

  - `external_id` (string, required)
    The identifier for the external page which was given by the source. Must be unique for the source.
    Example: "5678"

  - `created_at` (integer, required)
    The time when the external page was created.
    Example: 1672928359

  - `updated_at` (integer, required)
    The time when the external page was last updated.
    Example: 1672928610

  - `last_ingested_at` (integer, required)
    The time when the external page was last ingested.
    Example: 1672928610

## Response 401 fields (application/json):

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

  - `request_id` (string,null)
    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,null)
    Optional. Human readable description of the error.
    Example: "Access Token Invalid"

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


