# Get Variant Changelog

Returns the changelog entries recorded for the Variant identified by its identifier, filtered and paged via OData query options.
## Authentication
Requires a valid API key in the `X-API-KEY` header.
## OData Query Support
Supports `$filter`, `$orderby`, `$top`, `$skip`.
`$select`, `$expand` and `$skipToken` are not supported and are ignored: every entry is always returned with all its fields.
### $filter
Filterable fields:
- `id`, `item_id`, `modified_at`.
- `author_type` (`user`, `connector`, `agent` or `api`), only with `eq`.
- `author_id`, only together with `author_type eq '…'`.
An entry with no recorded author is returned with `author_type` `unknown`, which cannot be filtered.
- `attribute_id`, only with `eq` and with a field key of this entity (e.g. `attribute_id eq 'frmt_stat'`).
- `changes` cannot be filtered.

Dates are written in ISO 8601, without quotes, e.g. `modified_at gt 2026-01-01T00:00:00`.
### $orderby
A single field: only the first clause is applied. Sortable fields: `id`, `item_id`, `modified_at`.
Without `$orderby`, the most recent entries come first.
### $top and $skip
`$top` is the page size, from 1 to 100 (default 100). `$skip` is the offset, 0 or greater.
## Response
**200 OK** — Collection of changelog entries for the specified Variant.
## Error Responses
- **400 Bad Request** — Invalid OData expression.
- **401 Unauthorized** — Missing or invalid API key. Returned by the API gateway as
`{ "message": "Unauthorized", "request_id": "d8aafa5b8f3e400b60bea0123dd33317" }`.
- **500 Internal Server Error** — Unexpected technical error.

## Example
**Request:**

```http
GET /Variants(123)/Changelog?$top=20 HTTP/1.1
X-API-KEY: your-api-key-here
```
**Response:**

```http
HTTP/1.1 200 OK
Content-Type: application/json
```

Endpoint: GET /Variants({variantIdentifier})/Changelog
Version: 2.0.0

## Description:

  - `Authentication` ()
    Requires a valid API key in the X-API-KEY header.

  - `OData Query Support` ()
    Supports $filter, $orderby, $top, $skip.$select, $expand and $skipToken are not supported and are ignored: every entry is always returned with all its fields.

  - `$filter` ()
    Filterable fields: id, item_id, modified_at.author_type (user, connector, agent or api), only with eq.author_id, only together with author_type eq '…'.An entry with no recorded author is returned with author_type unknown, which cannot be filtered.attribute_id, only with eq and with a field key of this entity (e.g. attribute_id eq 'frmt_stat').changes cannot be filtered. Dates are written in ISO 8601, without quotes, e.g. modified_at gt 2026-01-01T00:00:00.

  - `$orderby` ()
    A single field: only the first clause is applied. Sortable fields: id, item_id, modified_at.Without $orderby, the most recent entries come first.

  - `$top and $skip` ()
    $top is the page size, from 1 to 100 (default 100). $skip is the offset, 0 or greater.

  - `Response` ()
    200 OK — Collection of changelog entries for the specified Variant.

  - `Error Responses` ()
    400 Bad Request — Invalid OData expression.401 Unauthorized — Missing or invalid API key. Returned by the API gateway as{ "message": "Unauthorized", "request_id": "d8aafa5b8f3e400b60bea0123dd33317" }.500 Internal Server Error — Unexpected technical error.

  - `Example` ()
    Request: GET /Variants(123)/Changelog?$top=20 HTTP/1.1
X-API-KEY: your-api-key-here
GET /Variants(123)/Changelog?$top=20 HTTP/1.1
X-API-KEY: your-api-key-here Response: HTTP/1.1 200 OK
Content-Type: application/json
HTTP/1.1 200 OK
Content-Type: application/json

## Path parameters:

  - `variantIdentifier` (integer, required)
    Variant resource identifier

## Query parameters:

  - `$filter` (string)
    OData `$filter` expression over the fields listed in the operation description

  - `$orderby` (string)
    OData `$orderby` expression with a single field (e.g. `modified_at desc`); only the first clause is applied. Without it, the most recent entries come first

  - `$top` (integer)
    OData `$top` page size, from 1 to 100 (default 100)

  - `$skip` (integer)
    OData `$skip` offset, 0 or greater

## Header parameters:

  - `X-API-KEY` (string)
    Tenant's API key (required)

## Response 200:

  - `200` (unknown)
    OK

## Response 200 fields (application/json):

  - `@readLink` (string)

  - `@nextLink` (string)

  - `@deltaLink` (string)

  - `@context` (string)

  - `value` (any)

  - `@count` (integer)

## Response 400:

  - `400` (unknown)
    Bad Request

## Response 400 fields (application/json):

  - `validationFailures` (object)

## Response 401:

  - `401` (unknown)
    Unauthorized

## Response 401 fields (application/json):

  - `message` (string)

  - `request_id` (string)

## Response 500:

  - `500` (unknown)
    Internal Server Error

## Response 500 fields (application/json):

  - `error` (string)

  - `details` (any)

