Changelog

In the Public API Changelog you’ll find an overview of all significant changes to our API, including new features, deprecations, and breaking changes. Our goal is to provide a clear and structured update history, helping you stay informed about improvements and necessary adjustments.

Please consult the API Versioning Strategy for more information on how we manage API versions.

Bug fixes are not listed here. If you encounter issues, please report them to the Livingdocs Customer Solutions team.

May 2025

⚠️

Kordiam Rebranding: Remove Desknet endpoints in newer versions

The public API endpoints of the version 2025-05 do not support desknet in the path anymore.

That means the following api prefixes should get changed:
/api/v1/desknet/ > /api/2025-05/kordiam/
/api/v1/desknet-integration/ > /api/2025-05/kordiam-integration/

The Desknet endpoints are supported in api versions v1 till 2025-03, but not in any versions after that:

POST /api/2025-05/desknet/element
PUT /api/2025-05/desknet/element
PUT /api/2025-05/desknet/element/:documentId
DELETE /api/2025-05/desknet/element/:documentId

We suggest to migrate to the new versions that use kordiam in the path:

POST /api/2025-05/kordiam/element
PUT /api/2025-05/kordiam/element
PUT /api/2025-05/kordiam/element/:documentId
DELETE /api/2025-05/kordiam/element/:documentId

The same goes for the legacy kordiam integration (not the global integration). Just change the path from /desknet-integration to /kordiam-integration:

POST /api/2025-05/desknet-integration/oauth/token
POST /api/2025-05/desknet-integration/statuses
PUT /api/2025-05/desknet-integration/publication
PUT /api/2025-05/desknet-integration/publication/:documentId
DELETE /api/2025-05/desknet-integration/publication/:documentId

POST /api/2025-05/kordiam-integration/oauth/token
POST /api/2025-05/kordiam-integration/statuses
PUT /api/2025-05/kordiam-integration/publication
PUT /api/2025-05/kordiam-integration/publication/:documentId
DELETE /api/2025-05/kordiam-integration/publication/:documentId

March 2025

🎁

API Versioning

We’re introducing a new API Versioning Strategy that allows us to iterate on the API without breaking existing integrations.

With the introduction of a new versioning strategy, the v1 and beta versions are now available as 2025-03 version. If you use any of those versions, you can safely change your integration to the 2025-03 version, which now contains both functionalities without any other changes.

🎁

Media Library: Serve Image

We’ve added a new public API endpoint:

/api/2025-03/mediaLibrary/serve-image/:key

This endpoint provides access to an image in its original dimensions, as long as it has not been revoked or marked as invalid. It can serve as a source for proxies or image processing services.

Please check the API reference for more details.

January 2025

🎁

Brand Conditions

Conditional components provide the ability to render a component in the delivery based on a brands or dateTime condition. The conditions are stored with the component data and can be input in the Livingdocs Editor.

To support country- or brand-specific content, we are introducing a new component condition: the brands condition. This allows downstreams to configure a set of brands, from which one or more can be selected on components to define for which brands a component should be included. This condition works alongside the already existing dateTime condition.

Brands component condition

For more information, please refer to our conditional components documentation.

The brands condition is supported by all API endpoints where the existing dateTime component condition is supported:

  • GET /api/v1/documents/:documentId/latestPublication
  • GET /api/v1/documents/latestPublications
  • GET /api/v1/documents/:documentId/latestPublication/renditions/:renditionHandles
  • GET /api/v1/publications/search
  • GET /api/v1/document-lists/:id
  • GET /api/beta/documents/:documentId/latestDraft
  • GET /api/beta/documents/:documentId/latestPublication
  • GET /api/beta/documents/latestPublications
  • POST /api/beta/composition/:documentId

November 2024

⚠️

Deprecate Menu Tool

The Menu Tool is deprecated and will be removed in release-2025-05. Please migrate your menus to data records, using the li-tree plugin and, if needed, the li-unique-id metadata plugin. For detailed instructions on setting up menus with data records, refer to our guide. We are here to assist with the migration as needed.

🎁

Document Command API: New Commands

We have extended the Document Command API with five new commands, which are also available for Assistants. Each command supports an optional oldValue parameter. When specified, the system verifies that the value being updated matches the provided oldValue. This prevents accidental overwrites that might occur due to changes made between reading a document and issuing the command. If the oldValue does not match, a conflict error is thrown.

setComponentCondition

{
  operation: 'setComponentCondition',
  componentId: 'doc-123',
  conditionName: 'dateTime',
  value: {
    gte: '2025-01-01T10:30:00.000Z',
    lt: '2025-02-02T14:30:00.000Z'
  },
  oldValue: {
    gte: '2024-01-01T10:30:00.000Z',
    lt: '2024-02-02T14:30:00.000Z'
  }
}

setComponentStyle

{
  operation: 'setComponentStyle',
  componentId: 'doc-123',
  propertyName: 'background',
  value: '#1fc47a',
  oldValue: '#000'
}

setStyleDirective

{
  operation: 'setStyleDirective',
  componentId: 'doc-123',
  directiveName: 'appearance',
  propertyName: 'background',
  value: '#1fc47a',
  oldValue: '#000'
}

setLinkDirective

{
  operation: 'setLinkDirective',
  componentId: 'doc-123',
  directiveName: 'link',
  value: {
    href: 'https://livingdocs.io/article/123',
    target: '_blank',
    $ref: 'document',
    reference: {id: '123'}
  },
  oldValue: {
    href: 'https://livingdocs.io/'
  }
}

setIncludeDirective

The setIncludeDirective command supports updating both include params and overrides. These properties depend on each other: if only params are provided, any existing overrides are removed. Conversely, specifying overrides without params is invalid and will return a validation error. To update overrides, both the params and overrides properties must be provided.

{
  operation: 'setIncludeDirective',
  componentId: 'doc-123',
  directiveName: 'related-article',
  value: {
    params: {
      teaser: {
        $ref: 'document',
        reference: {id: '3'}
      },
    },
    overrides: [{
      id: 'teaser-normal-3',
      content: {
        link: {href: 'https://livingdocs.io'},
        title: 'Changed title',
      },
      originalSnapshot: {...},
      contentProperties: [...]
    }]
  },
  oldValue: null
}

July 2024

🎁

Document Command API: New Commands

We have extended the Document Command API with two new commands, which are also available for Assistants.

removeComponent

{
  operation: 'removeComponent',
  componentId: 'doc-4a2b3g4d5'
}

unpublish

{
  operation: 'unpublish'
}