# List article versions

Fetch the version history of an article by making a GET request to
https://api.intercom.io/articles//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. Set Intercom-Version: Preview.

Endpoint: GET /articles/{article_id}/versions
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", "2.15", "Preview"

## Path parameters:

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

## Query parameters:

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

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

  - `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.
    Example: "en"

## Response 200 fields (application/json):

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

  - `pages` (object,null)
    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,null)

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

  - `pages.next.starting_after` (string,null)
    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,null)
    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,null)
    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,null)
    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,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"


