Skip to content

API Endpoint Reference (1.5)

Tenovos has introduced version 1.5 to provide non-breaking improvements over previous versions.

Key Changes:

  • Authentication Standards now include OAuth2 code flow.
  • Client ID is no longer required to be passed when requesting an Authorization token using our Standard Auth from v1.4
  • New endpoints have been added and will continue to be added until v2 is generally available to all customers.
    • Adaptive Template endpoints
    • A new Get Asset endpoint with a simplified Response
    • A new Create Asset endpoint with simplified payloads for the Request and Response
    • A new Update Asset endpoint with simplified payloads for the Request and Response
  • We've made some performance improvements to most endpoints
Download OpenAPI description
Languages
Servers
https://api.uat.tenovos.io/v1
https://api.tenovos.io/v1

ACTIONS

Invoke the Action API to retrieve information about invoked Actions.

Operations

ADAPTIVE TEMPLATES

Invoke the API to retrieve information about invoked Actions.

Operations

ASSETS

Invoke the Asset API to create, retrieve, manipulate, and share Assets. This API also provides operations to manage Asset relationships and download Asset content.

Operations

AUTHENTICATION

Invoke the Authentication API to generate, refresh, and revoke access tokens. An access token is required to perform any authorized API operation.

Operations

CDN (Coming Soon!)

Tenovos Content Delivery Network (CDN) - Coming Soon!

Tenovos CDN: Pull Zone Overview

Tenovos CDN provides global content acceleration and optimization through a pull zone architecture, ensuring that your assets are delivered to end users with maximum speed, reliability, and efficiency. A Content Delivery Network (CDN) works by caching static content—such as images, videos, and other media—on servers distributed across the globe. When an asset is requested, the CDN serves it from the nearest edge location, reducing load times and offloading traffic from the origin server, which in this case is Tenovos DAM.

A pull zone is the core mechanism that powers this system. It automatically fetches content from the origin the first time it is requested, then caches it at the edge. Subsequent requests are served directly from the CDN cache, improving response times and reducing bandwidth consumption.

Through the Tenovos CDN API, you can create, update, and manage pull zones programmatically. Pull zones support advanced features such as global edge caching, cache purging, bandwidth controls, and real-time performance statistics like cache hit rate and geographic request distribution. Optional optimization settings allow you to enhance performance further by enabling image compression, WebP and AVIF support, and content minification.

With just a few API calls, you can fully integrate high-performance content delivery into your Tenovos workflows—no complex infrastructure required.

Operations

COLLECTIONS

Invoke the Collection API to create, retrieve, edit, and delete Collections. Collections are used to group and catalog related Assets for quick access and consumption. Collections can be configured as:

  • private: Visible only to the user who created the Collection.
  • secured: Visible to users with.

When retrieving the Assets within a Collection, the requesting user will only see the Assets that the user has access to view. For example, a librarian may see all Assets within a Collection, but a general consumer user may only see a portion of those Assets, due to limited security access.

Operations

Create Collection

Request

Create a collection and add assets to it. Assets in the collection are identified by FileID therefore collectionDocument contains File ID

The user should have View permission on assets to be added to the collection.

Average Response Time: 200ms (Private Collection)

Average Response Time: 2568ms (Shared Collection)

Security
ApiKeyAuth or BasicAuth
Headers
X-API-Keystringrequired

Customer-specific API key required to invoke API.

Authorizationstringrequired

Provided by Authentication Token creation operation

Content-Typestringrequired
Value"application/json"
Bodyapplication/jsonrequired

The Request Body must be a JSON object.

collectionTypestring
Enum"secured""private"
namestring

Name of the collection

Example: "Best of the month"
collectionDocumentArray of strings(uuid)

List of Asset IDs to be added to the Collection.

metadataTemplateIdstring(uuid)

Unique ID of the metadata template for 'secure' or 'private' collections

Example: "ea6eb24d-adef-4380-bd02-f64f567c437f"
securityTemplateIdsArray of strings(uuid)

List of Security Template IDs

Example: ["7d6f4e30-f423-11e9-8071-89c0c4052156"]
MetadataDocumentArray of MetadataStringValue (object) or MetadataRestrictedVocabularyValue (object) or MetadataDateValue (object) or MetadataMultiValue (object) or MetadataGridValue (object)

Array of metadata attributes that are required for the metadata template

curl -i -X POST \
  https://api.uat.tenovos.io/v1/collection \
  -H 'Authorization: string' \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: YOUR_API_KEY_HERE' \
  -d '{
    "collectionType": "secured",
    "name": "Best of the month",
    "collectionDocument": [
      "497f6eca-6276-4993-bfeb-53cbbbba6f08"
    ],
    "metadataTemplateId": "ea6eb24d-adef-4380-bd02-f64f567c437f",
    "securityTemplateIds": [
      "7d6f4e30-f423-11e9-8071-89c0c4052156"
    ],
    "MetadataDocument": [
      {
        "metadataDefinitionId": "dfeb57c1-b149-4b15-920f-3f40ff0b959a",
        "metadataDefinitionValue": "Photo"
      }
    ]
  }'

Responses

Successful operation

Bodyapplication/json
statusCodestring
Enum"success""error"
Example: "success"
messagestring

detailed message

Example: "Collection successfully created"
collectionIdstring(uuid)

ID of created collection if successful

Example: "4b5896b4-33e4-41ac-b251-39a4dbaa25b1"
Response
application/json
{ "statusCode": "success", "message": "Collection successfully created", "collectionId": "4b5896b4-33e4-41ac-b251-39a4dbaa25b1" }

Get Collection

Request

Retrieve a single Collection specified by Collection ID. The retrieved Collection may be either a secured Collection or a private Collection created by the User. The Collection will include the list of Assets assigned to the Collection, referenced by Asset File ID.

The User retrieving the Collection must have the Collection Security Role Privilege.

Average Response Time: 53ms

Security
ApiKeyAuth or BasicAuth
Path
idstringrequired

Specify Collection ID

Headers
X-API-Keystringrequired

Customer-specific API key required to invoke API.

Authorizationstringrequired

Provided by Authentication Token creation operation

Content-Typestringrequired
Value"application/json"
curl -i -X GET \
  'https://api.uat.tenovos.io/v1/collection/{id}' \
  -H 'Authorization: string' \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: YOUR_API_KEY_HERE'

Responses

The Response Body is a JSON object describing the collection.

Bodyapplication/json
expirationDateinteger

Expiration date in milliseconds

Example: 1613755131855
lastUpdatedEpochinteger

Last update time in milliseconds

Example: 1613755131855
shareMessagestring
Example: ""
recipientsArray of strings
downloadIdstring
Example: "NULL"
sharedstring

Shared Collection Flag (Y | N)

Enum"N""Y"
namestring

Collection Name

Example: "Best of the month"
shareDocumentArray of strings(uuid)

Array of Asset IDs for shared Collection

senderobject
createdEpochinteger

Creation time in milliseconds

Example: 1613755131855
userCognitoIdstring(uuid)

User ID who created this Collection

Example: "7d675ef0-f423-11e9-8071-89c0c4052141"
collectionTypestring

Type of Collection (secured | private)

Enum"secured""private"
collectionIdstring(uuid)

Collection ID

Example: "4dc328ce-4b3f-4f76-b7bb-1e83ad35458a"
collectionDocumentArray of strings(uuid)

Array of Asset IDs in Collection

Example: ["0176c8e6-1017-4308-be3b-2de3931cbb37"]
customerIdstring

Customer ID

Example: "1235644566523"
Response
application/json
{ "expirationDate": 1613755131855, "lastUpdatedEpoch": 1613755131855, "shareMessage": "", "recipients": [ "string" ], "downloadId": "NULL", "shared": "N", "name": "Best of the month", "shareDocument": [ "497f6eca-6276-4993-bfeb-53cbbbba6f08" ], "sender": {}, "createdEpoch": 1613755131855, "userCognitoId": "7d675ef0-f423-11e9-8071-89c0c4052141", "collectionType": "secured", "collectionId": "4dc328ce-4b3f-4f76-b7bb-1e83ad35458a", "collectionDocument": [ "0176c8e6-1017-4308-be3b-2de3931cbb37" ], "customerId": "1235644566523" }

Delete Collection

Request

User can delete the collection, but the Assets assigned to the Collection will remain and dissociate from this Collection.

The User submitting the request to delete a private Collection must have the Collection and Delete Security Role Privilege. Secured Collections may only be deleted by Users with the Purge Security Role Privilege.

Average Response Time: 81ms

Security
ApiKeyAuth or BasicAuth
Path
idstringrequired

Specify Collection ID

Headers
X-API-Keystringrequired

Customer-specific API key required to invoke API.

Authorizationstringrequired

Provided by Authentication Token creation operation

Content-Typestringrequired
Value"application/json"
curl -i -X DELETE \
  'https://api.uat.tenovos.io/v1/collection/{id}' \
  -H 'Authorization: string' \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: YOUR_API_KEY_HERE'

Responses

Successful operation

Bodyapplication/jsonArray [
statusstring
Example: "success"
messagestring
Example: "Collection delete operation succeeded"
]
Response
application/json
[ { "status": "success", "message": "Collection delete operation succeeded" } ]

Update Collection

Request

Update a Collection's attributes or assigned Assets. The list of existing assets is replaced with assets provided in the call. Assets in the collection are referenced by Asset FileID therefore the collectionDocument must contain asset's FileID.

The User editing the Collection must have the Collection Security Role Privilege. The User must have View access to the Assets that are being added to or removed from the Collection.

Average Response Time: 5070ms

Security
ApiKeyAuth or BasicAuth
Path
idstringrequired

Specify Collection ID

Headers
X-API-Keystringrequired

Customer-specific API key required to invoke API.

Authorizationstringrequired

Provided by Authentication Token creation operation

Content-Typestringrequired
Value"application/json"
Bodyapplication/jsonrequired

The Request Body must be a JSON object.

collectionTypestring

Type of the collection.

Enum"secured""private"
namestring

Name of the collection

Example: "Photo Collection"
collectionDocumentArray of strings(uuid)

List of fileIDs to be added to collection. This list will replace the current set of assets in the collection.

curl -i -X PATCH \
  'https://api.uat.tenovos.io/v1/collection/{id}' \
  -H 'Authorization: string' \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: YOUR_API_KEY_HERE' \
  -d '{
    "collectionType": "secured",
    "name": "Photo Collection",
    "collectionDocument": [
      "497f6eca-6276-4993-bfeb-53cbbbba6f08"
    ]
  }'

Responses

Successful operation

Bodyapplication/jsonArray [
messagestring
]
Response
application/json
{ "message": "Collection update was successful" }

Share Collection Contents

Request

Share the zip file of all accessible Assets in a collection and send to the specified emails in share users list. User can also send the custom share message along with request. \n\nThe user sharing the Assets must be granted the Download and Share Security Template permission on the Assets being shared.

Average Response Time: 49ms

Security
ApiKeyAuth or BasicAuth
Path
idstringrequired

Specify Collection ID

Headers
X-API-Keystringrequired

Customer-specific API key required to invoke API.

Authorizationstringrequired

Provided by Authentication Token creation operation

Content-Typestringrequired
Value"application/json"
Bodyapplication/jsonrequired

The Request Body must be a JSON object.

senderobject(Sender)
shareUsersArray of objects(Recipient)

A list of email addresses of the recipients.

shareMessagestring

A message from sender to recipient

Example: "A message from sender to recipient"
curl -i -X POST \
  'https://api.uat.tenovos.io/v1/collection/{id}/share' \
  -H 'Authorization: string' \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: YOUR_API_KEY_HERE' \
  -d '{
    "sender": {
      "name": "Michael Lee"
    },
    "shareUsers": [
      {
        "email": "john@mail.com",
        "name": "John"
      }
    ],
    "shareMessage": "A message from sender to recipient"
  }'

Responses

Successful operation

Bodyapplication/json
StatusCodeinteger
Example: 200
ExecutedVersionstring
Example: "$LATEST"
Payloadstring
Example: "{\"statusCode\":200,\"body\":\"{\\\"message\\\":\\\"Message sent successfully\\\"}\",\"headers\":{\"content-type\":\"application/json\"}}"
Response
application/json
{ "StatusCode": 200, "ExecutedVersion": "$LATEST", "Payload": "{\"statusCode\":200,\"body\":\"{\\\"message\\\":\\\"Message sent successfully\\\"}\",\"headers\":{\"content-type\":\"application/json\"}}" }

METADATA

Invoke the Metadata API to retrieve Metadata Template to be applied to Assets during Asset creation. A Metadata Template defines a set of Metadata Attributes of varying types, including Text, Date, Controlled Vocabulary, Tabular, and Cascading Attributes. When a Metadata Template is assigned to a new Asset, the corresponding Metadata Attributes will be available for population on the Asset.

Operations

REQUESTS

Invoke these API's to create new Requests and manage existing Requests.

Operations

SECURITY

Invoke the Metadata API to retrieve Security Template information to be applied to Assets during Asset creation or edit.

Operations

PEOPLE

Invoke the User API to retrieve User profile information.

Operations

WEBHOOKS

Tenovos Webhook Subscriptions

For more information about our Webhooks, see the Webhook section of our Developer Portal

Operations

PROOFING

Operations