# List article versions

Fetch the version history of an article by making a GET request to
`https://api.intercom.io/articles/<article_id>/versions`. Versions are
returned newest-first as a paginated list of metadata. Use
`GET /articles/{article_id}/versions/{id}` to retrieve a single version
with its full content.
Requires the `read_articles_scope` OAuth scope.

Endpoint: GET /articles/{article_id}/versions
Version: 2.16
Security: bearerAuth

## Path parameters:

  - `article_id` (integer, required)
    The unique identifier for the article whose versions you are listing.

## Query parameters:

  - `page` (integer)
    The page of results to fetch. Defaults to the first page.

  - `per_page` (integer)
    The number of results to return per page.

  - `locale` (string)
    Filter versions to a specific locale. Use the locale identifier (for example `en`, `fr`). If the locale is not configured for the workspace, a `400` is returned.

## Header parameters:

  - `Intercom-Version` (string)

## Response 200 fields (application/json):

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

  - `pages` (object)
    Cursor-based pagination is a technique used in the Intercom API to navigate through large amounts of data.
A "cursor" or pointer is used to keep track of the current position in the result set, allowing the API to return the data in small chunks or "pages" as needed.

  - `pages.type` (string)
    the type of object `pages`.
    Enum: "pages"

  - `pages.page` (integer)
    The current page
    Example: 1

  - `pages.next` (object)

  - `pages.next.per_page` (integer)
    The number of results to fetch per page.
    Example: 2

  - `pages.next.starting_after` (string)
    The cursor to use in the next request to get the next page of results.
    Example: your-cursor-from-response

  - `pages.per_page` (integer)
    Number of results per page
    Example: 2

  - `pages.total_pages` (integer)
    Total number of pages
    Example: 13

  - `total_count` (integer)
    A count of the total number of versions.
    Example: 2

  - `data` (array)
    An array of Article version summary objects.

  - `data.type` (string)
    String representing the object's type. Always has the value `article_version`.
    Enum: "article_version"

  - `data.id` (string)
    The unique identifier for the version.
    Example: 301

  - `data.article_id` (string)
    The unique identifier of the article this version belongs to.
    Example: 123

  - `data.title` (string)
    The title of the article at this version.
    Example: This is the article title

  - `data.description` (string)
    The description of the article at this version.

  - `data.author_id` (string)
    The id of the teammate listed as the article's author at this version.
    Example: 991267502

  - `data.created_by_id` (string)
    The id of the teammate who created this version.
    Example: 5017691

  - `data.created_via` (string)
    How this version was created (for example `web`, `api`).
    Example: web

  - `data.from_version_id` (string)
    The id of the version this version was created from, or `null` if this is the first version.
    Example: 300

  - `data.state` (string)
    Whether this version is the currently published version of the article (`published`) or an earlier non-live version (`draft`).
    Enum: "published", "draft"

  - `data.created_at` (integer)
    The time the version was created, as a UTC Unix timestamp.
    Example: 1734537292

## Response 400 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 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

