Developer Blog - API Summary in Preservica 6.9

Richard Smith | July 10th 2023
Share this post

This post provides you with a summary of the API updates we have made in Preservica 6.9.

If you've been using Preservica for a while and just want to know what changed, you can look for the relevant paragraph at the end of each section. APIs which haven't changed will no longer be listed in these posts. If you're new to the Preservica APIs then the documentation index page will take you to the technical documentation for most of our APIs. For a descriptive summary you can look through articles on this dev blog for the version the API was introduced in, or for those that have been around for a while then this article for Preservica 6.3 has the summary.

Most of our APIs also have online documentation which you can get to from this index page.

Preservica 6.9 is a release that will be made available to all customers, including on-premise, and will be a Long Term Support (LTS) release. If you are upgrading through multiple versions, you can look at the similar articles for each version since the one you are upgrading from. The next LTS/EoP release is currently expected to be in around 6 months.

Authentication API

Before you use any of our other APIs, you'll need to get an access token through this one, via /api/accesstoken/login.

Changes since 6.8

  • Completing log in with a two factor authentication code via PUT /complete-2fa will now set a cookie for that user. Send this cookie to future /login requests to skip 2FA if you already did it within the persistence time. This is most useful if you are using the API to back a user facing application.

Entity API

The Entity API is the main way we expose information about entities stored in your Preservica system.

Changes since 6.8

  • When submitting a bulk metadata action through POST actions/metadata-edits, you can now specify multiple actions for the UpdateFields, ReplaceFields and ClearFields types. If you do, all the actions must have the same schema and be of the same type. These actions will be performed together on each entity.
  • Also in bulk edit, you may specify an <AddTemplate> element within the Options, with the API ID of a template (as retrieved from GET /documents on the Admin API). If an entity is selected by the search criteria and doesn't already have a fragment in the right schema, this template will be added before performing the actions. If you do this then the template must be for the same schema as the actions.

Metadata API

This API allows you to manage the new view of descriptive metadata. There are endpoints under /forms to manage metadata forms, which are the way to define how descriptive metadata should be viewed and edited in a UI, and /groups to manage metadata groups, which let you define some descriptive metadata without specifying an XML schema.

This API is marked Provisional as we're still working on it and there may be breaking changes.

Changes since 6.8

Administration and Management API

This API allows you to perform some administrative and management tasks, which you'd normally do through the Administration menu in the main application. Endpoints on this API typically require Manager or Admin role.

Changes since 6.8

New endpoints have been added under the two-factor section to manage two factor authentication. You need Manager role to use any of these endpoints. We will continue to extend this section to allow feature parity with the existing UI.

User API

This API allows you to get information about your own user account after logging in (for example to display a Profile page in a UI), and to manage it.

Changes since 6.8

  • You can now update some parts of your user details via PUT /details.

Analytics API

This is a new API which will offer data sets that you can use for reporting or analytics beyond what you can get through our pre-built reports and the Reports API. We plan to add more data sets to this offering in future.

This API is marked Provisional as we're still working on it and there may be breaking changes.

Open API library and latest developments on GitHub

Visit the Preservica GitHub page for our extensive API library, sample code, our latest open developments and more.

Visit our GitHub

Protecting the world’s digital memory

The world's cultural, economic, social and political memory is at risk. Preservica's mission is to protect it.

Learn more about Preservica