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
    • Metadata Admin API endpoints for managing Attributes, Groups, and Templates
  • We've made some performance improvements to most endpoints
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

METADATA ATTRIBUTES

Invoke the Metadata Attributes API to retrieve Metadata Attributes, and to create, read, update, and delete Metadata Attribute definitions. Metadata Attributes come in varying types, including Text, Date, Controlled Vocabulary, Tabular, and Cascading, and can be assigned to Metadata Groups and Templates.

Admin Endpoints (NEW!): Create, read, update, and delete Metadata Attributes. These endpoints require the Metadata Management admin privilege.

Operations

METADATA GROUPS

Invoke the Metadata Groups API to create, read, update, and delete Metadata Groups. A Metadata Group organizes related Metadata Attributes together for use within a Metadata Template.

Admin Endpoints (NEW!): These endpoints require the Metadata Management admin privilege.

Operations

METADATA TEMPLATES

Invoke the Metadata Templates API to create, read, update, and delete Metadata Templates, and to apply Metadata definition changes. A Metadata Template defines a set of Metadata Attributes that, when assigned to an Asset, become available for population on that Asset.

Admin Endpoints (NEW!): Create, read, update, and delete Metadata Templates. These endpoints require the Metadata Management admin privilege.

Operations

(NEW!) List Metadata Templates (Paginated)

Request

Retrieve a paginated list of metadata templates for UI consumption. Supports filtering by name, pagination via offset, and sorting via query parameters.

Each result includes the full template object with attributesDefaultValue, accessTemplates, an inUse flag indicating whether the template is currently assigned to any assets, and an indexStatus indicating whether the template is ready to be assigned to assets.

Defaults:

  • includeDenormalized defaults to false. templateDenormalized is only included in each result when includeDenormalized is true.
  • inUse is unset by default, returning templates regardless of usage.

The user submitting the request must have the Metadata Management admin privilege.

Security
ApiKeyAuth or BasicAuth
Query
searchTermstring

Partial, case-insensitive match against template name. When omitted, all templates are returned (subject to pagination).

Example: searchTerm=video
frominteger

Search offset from which results will start. Defaults to 0.

Default 0
Example: from=0
limitinteger<= 100

Number of results to return. Defaults to 100. Maximum 100 — a limit above 100 is rejected with a 400 rather than being capped.

Default 100
Example: limit=100
sortFieldstring

Field to sort by. Defaults to templateName.

Default "templateName"
Enum"templateName""createdEpoch""lastUpdatedEpoch""inUse"
orderstring

Sort direction. Defaults to asc.

Default "asc"
Enum"asc""desc"
includeDenormalizedboolean

When true, includes templateDenormalized in each result. Defaults to false, in which case templateDenormalized is omitted from the response.

Default false
inUseboolean

Filters results by usage status. When omitted, templates are returned regardless of usage. true returns only templates currently assigned to assets; false returns only templates not currently assigned to any assets.

Headers
X-API-Keystringrequired

Customer-specific API key required to invoke API.

Authorizationstringrequired

Provided by Authentication Token creation operation.

curl -i -X GET \
  'https://api.uat.tenovos.io/v1/metadata/templates?searchTerm=video&from=0&limit=100&sortField=templateName&order=asc&includeDenormalized=false&inUse=true' \
  -H 'Authorization: string' \
  -H 'X-API-Key: YOUR_API_KEY_HERE'

Responses

Paginated list of metadata templates.

Bodyapplication/json
hitCountinteger

Total number of templates matching the search criteria.

Example: 8
resultsArray of objects

Array of template objects.

Response
application/json
{ "hitCount": 2, "results": [ { … }, { … } ] }

Retrieve Metadata Templates

Request

Retrieve all metadata templates available to the requesting user

The user submitting the request must have administrator rights to view metadata templates.

Average Response Time: 492ms

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"
curl -i -X GET \
  https://api.uat.tenovos.io/v1/metadata/template \
  -H 'Authorization: string' \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: YOUR_API_KEY_HERE'

Responses

The Response Body will be a JSON array of template objects.

Bodyapplication/jsonArray [
templateobject(MetadataTemplate_template)
]
Response
application/json
[ { "template": { … } } ]

(NEW!) Create Metadata Template

Request

Create a new metadata template for admin use. The endpoint derives customerId from the authenticated user context, validates all referenced metadata groups and access templates, generates the denormalized template structure, and returns the created template object directly.

For templates with templateType including action, template-as-asset creation is triggered asynchronously after successful template creation.

Defaults:

  • templateType defaults to ["default"] when omitted
  • attributesDefaultValue defaults to [] when omitted
  • accessTemplates defaults to [] when omitted

Validation:

  • All provided groupIds must exist and be valid metadata groups for the customer
  • All provided accessTemplates must exist and be valid access templates for the customer
  • The system group is automatically included if not already provided
  • Duplicate group IDs are deduplicated while preserving order
  • Duplicate effective attributes across selected groups return 400

The user submitting the request must have the Metadata Management admin privilege.

Security
ApiKeyAuth or BasicAuth
Headers
Authorizationstringrequired

Bearer token from authentication.

X-API-Keystring

Customer-specific API key (optional).

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

JSON object defining the new metadata template.

namestringrequired

Display name of the metadata template.

Example: "Product Content"
groupIdsArray of strings(uuid)required

Ordered list of metadata group IDs to include in the template.

Example: ["52ce0235-02cc-46f6-8bdb-05238c76bf83"]
templateTypeArray of strings

Template type list. Defaults to ["default"].

Default ["default"]
Items Enum"default""asset""action"
Example: ["default"]
attributesDefaultValueArray of objects

Default metadata values for fields in the template.

Example: [{"searchField":"title","value":"Test Asset"}]
accessTemplatesArray of strings(uuid)

Access template IDs (security templates) associated to the template. Defaults to [].

Default []
Example: ["a1b2c3d4-e5f6-7890-abcd-ef1234567890"]
curl -i -X POST \
  https://api.uat.tenovos.io/v1/metadata/template \
  -H 'Authorization: string' \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: YOUR_API_KEY_HERE' \
  -d '{
    "name": "Product Content",
    "groupIds": [
      "52ce0235-02cc-46f6-8bdb-05238c76bf83"
    ],
    "templateType": [
      "default"
    ],
    "attributesDefaultValue": [
      {
        "searchField": "title",
        "value": "Test Asset"
      }
    ],
    "accessTemplates": [
      "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
    ]
  }'

Responses

The created metadata template object.

Bodyapplication/json
templateIdstring(uuid)
namestring
customerIdstring
createdBystring(uuid)
createdEpochinteger
createdDatestring(date-time)
lastUpdatedBystring(uuid)
lastUpdatedEpochinteger
lastUpdatedDatestring(date-time)
groupIdsArray of strings(uuid)
templateTypeArray of strings
attributesDefaultValueArray of objects
accessTemplatesArray of strings(uuid)
templateDenormalizedobject

System-generated denormalized template structure including resolved metadataGroups.

Response
application/json
{ "templateId": "8cd2c221-6a91-4dc6-9379-d55dca9d5313", "name": "Product Content", "customerId": "1739271540099", "createdBy": "dc63db1b-1e63-43bc-877e-418931b6895c", "createdEpoch": 1773070355217, "createdDate": "2026-03-11T14:32:35Z", "lastUpdatedBy": "dc63db1b-1e63-43bc-877e-418931b6895c", "lastUpdatedEpoch": 1773070355217, "lastUpdatedDate": "2026-03-11T14:32:35Z", "groupIds": [ "52ce0235-02cc-46f6-8bdb-05238c76bf83", "5d1f1f87-5f64-4e03-8a2b-2c7e77f85bcb" ], "templateType": [ "default" ], "attributesDefaultValue": [ { … } ], "accessTemplates": [ "a1b2c3d4-e5f6-7890-abcd-ef1234567890" ], "templateDenormalized": { "metadataGroups": [ … ] } }

Get Metadata Template

Request

"Retrieve the metadata template and its attributes list by template ID \n\nThe user submitting the request to metadata template must have the Metadata Template Management security role privilege.\n\nIn response, it will contain the metadata groups template have and each group metadata attributes list."

Average Response Time: 1406ms

Security
ApiKeyAuth or BasicAuth
Path
idstringrequired

Specify a Metadata Template 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/metadata/template/{id}' \
  -H 'Authorization: string' \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: YOUR_API_KEY_HERE'

Responses

The full metadata template object with denormalized groups and attributes. The metadataAttributes array within each group contains attribute objects whose shape varies by type:

  • text (subType: textBox) — includes length, typeahead, techMetaMapping. Max 250 chars, supports faceting.
  • text (subType: textArea) — includes length, techMetaMapping. Max 10000 chars. Cannot be facetable or typeahead.
  • controlledVocabulary — includes controlledVocabularyId, isMultipleSelect
  • date — includes dateFormat
  • tableAttribute — includes tableFieldsDenormalized, isSingleRow, isSmartTable, tableNameVisible
  • cascadeAttribute — includes cascadeMapId, cascadeFieldsDenormalized, cascadeNameVisible
Bodyapplication/json
templateIdstring(uuid)

Unique ID of the metadata template.

Example: "0a5d6320-7e8c-43f3-b32a-7a32bcf2b261"
templateNamestring

Display name of the metadata template.

Example: "Product Shot"
createdEpochinteger

Creation timestamp in Unix milliseconds.

Example: 1774035316248
lastUpdatedEpochinteger

Last updated timestamp in Unix milliseconds.

Example: 1779214564563
templateTypeArray of strings

Template type classifications.

Items Enum"default""asset""action"
Example: ["default"]
templateobject

The denormalized template structure containing metadata groups.

Response
application/json
{ "templateId": "0a5d6320-7e8c-43f3-b32a-7a32bcf2b261", "templateName": "Product Shot", "createdEpoch": 1774035316248, "lastUpdatedEpoch": 1779214564563, "templateType": [ "default" ], "template": { "metadataGroups": [ … ] } }

(NEW!) Update Metadata Template

Request

Partially update an existing metadata template. Only fields included in the request body will be updated — omitted fields remain unchanged.

Updatable Fields: name, groupIds, attributesDefaultValue, accessTemplates, templateOverride

Fields that cannot be updated: templateId, customerId, createdBy, createdEpoch, createdDate, templateType, templateDenormalized, dependencies

Key Business Rules:

  • Request body must contain at least one updatable field
  • Unknown or immutable fields are rejected with 400
  • name must be unique per customer (case-insensitive) — duplicate returns 409
  • groupIds must reference existing groups; system group is auto-appended last
  • Duplicate effective attributes across groups return 400
  • accessTemplates must reference existing access templates; can be cleared with []
  • attributesDefaultValue keys must exist in the effective template
  • templateDenormalized is regenerated on every successful update

The user submitting the request must have the Metadata Management admin privilege.

Security
ApiKeyAuth or BasicAuth
Path
idstring(uuid)required

The unique ID of the metadata template to update.

Example: 8cd2c221-6a91-4dc6-9379-d55dca9d5313
Headers
Authorizationstringrequired

Bearer token from authentication.

X-API-Keystring

Customer-specific API key (optional).

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

JSON object with fields to update. Only provided fields are applied.

namestring

Display name of the metadata template.

Example: "Updated Product Template"
groupIdsArray of strings(uuid)

Attribute groups included in the template. Replaces existing list.

Example: ["52ce0235-02cc-46f6-8bdb-05238c76bf83","5d1f1f87-5f64-4e03-8a2b-2c7e77f85bcb"]
attributesDefaultValueArray of objects

Default metadata values for fields in the template.

Example: [{"searchField":"title","value":"Test Assets"}]
accessTemplatesArray of strings(uuid)

Access template IDs. Pass [] to clear.

Example: []
templateOverrideobject

Template-level required/optional attribute overrides.

curl -i -X PATCH \
  https://api.uat.tenovos.io/v1/metadata/template/8cd2c221-6a91-4dc6-9379-d55dca9d5313 \
  -H 'Authorization: string' \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: YOUR_API_KEY_HERE' \
  -d '{
    "name": "Updated Product Template"
  }'

Responses

The full updated template object including regenerated templateDenormalized.

Bodyapplication/json
templateIdstring(uuid)
namestring
customerIdstring
createdBystring(uuid)
createdEpochinteger
createdDatestring(date-time)
lastUpdatedBystring(uuid)
lastUpdatedEpochinteger
lastUpdatedDatestring(date-time)
groupIdsArray of strings(uuid)
templateTypeArray of strings
attributesDefaultValueArray of objects
accessTemplatesArray of strings(uuid)
templateOverrideobject
templateDenormalizedobject

System-generated denormalized template structure.

Response
application/json
{ "templateId": "8cd2c221-6a91-4dc6-9379-d55dca9d5313", "name": "Updated Asset Template", "customerId": "1739271540099", "createdBy": "dc63db1b-1e63-43bc-877e-418931b6895c", "createdEpoch": 1773070355217, "createdDate": "2026-03-11T14:32:35Z", "lastUpdatedBy": "dc63db1b-1e63-43bc-877e-418931b6895c", "lastUpdatedEpoch": 1773070399999, "lastUpdatedDate": "2026-03-11T15:00:00Z", "groupIds": [ "52ce0235-02cc-46f6-8bdb-05238c76bf83" ], "templateType": [ "asset" ], "attributesDefaultValue": [ { … } ], "accessTemplates": [], "templateOverride": { "required": [ … ], "optional": [ … ] }, "templateDenormalized": { "metadataGroups": [ … ] } }

(NEW!) Delete Metadata Template

Request

Permanently delete a metadata template by its ID. Deletion is blocked if the template has dependencies (e.g., assets using this template).

Delete Rules:

  • Template must exist for the authenticated customer
  • Template ID must be a valid UUID
  • Template type must be one of default, asset, or action
  • Template cannot be deleted if it has dependencies (assets using it)
  • Related asset records are cleaned up
  • Deletion is recorded in tenovos_delete_history

This action is permanent and cannot be undone.

The user submitting the request must have the Metadata Management admin privilege.

Security
ApiKeyAuth or BasicAuth
Path
idstring(uuid)required

The unique ID of the metadata template to delete.

Example: e0d05152-9d1b-4b1e-bcb2-e762d195ec68
Headers
Authorizationstringrequired

Bearer token from authentication.

X-API-Keystring

Customer-specific API key (optional).

curl -i -X DELETE \
  https://api.uat.tenovos.io/v1/metadata/template/e0d05152-9d1b-4b1e-bcb2-e762d195ec68 \
  -H 'Authorization: string' \
  -H 'X-API-Key: YOUR_API_KEY_HERE'

Responses

No Content. The template has been permanently deleted.

Response
No content

Apply Metadata Definition Changes

Request

Apply the metadata definition changes. Use this operation after making any modification in metadata.

In response, it will contain the object of metadata definition attributes like id, name, type and search fields etc.

Average Response Time: 53ms

Security
ApiKeyAuth or BasicAuth
Headers
X-API-Keystringrequired

Customer-specific API key required to invoke API.

Authorizationstringrequired

Provided by Authentication Token creation operation

curl -i -X POST \
  https://api.uat.tenovos.io/v1/metadata/apply \
  -H 'Authorization: string' \
  -H 'X-API-Key: YOUR_API_KEY_HERE'

Responses

Changes applied successfully.

Bodyapplication/json
messagestring
Example: "Changes applied successfully"
Response
application/json
{ "message": "Changes applied successfully" }

METADATA VOCABULARIES

Invoke the Controlled Vocabularies API to create, retrieve, update, and delete Controlled Vocabularies used to constrain the values available to a Metadata Attribute.

Operations

METADATA CASCADES

Invoke the Metadata Cascades API to create, retrieve, update, and delete Cascading Attributes, a Metadata Attribute type whose available values depend on the value selected in a parent Attribute.

Operations

METADATA TABLES

Invoke the Metadata Tables API to create, retrieve, update, and delete Tabular Attributes, a Metadata Attribute type that stores structured, multi-column data on an Asset.

Operations

REQUESTS

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

Operations

SECURITY ROLES

Invoke the Security Roles API to retrieve, create, update, and delete Security Roles, and to retrieve the Permissions and Privileges that can be assigned to a Role to control what a user can see and do across the platform.

Operations

SECURITY TEMPLATES

Invoke the Security Templates API to retrieve, create, update, and delete Security Templates. A Security Template combines Security Roles and User Groups to define access to Assets and other objects in the platform.

Operations

SECURITY GROUPS

Invoke the Security User Groups API to retrieve, create, update, and delete Security User Groups used to organize users for the purpose of assigning security access.

Operations

USERS

Invoke the User API to retrieve User profile information.

Operations

STORY BOARDS

Invoke the Story Boards API to retrieve and manage Story Boards. Story Boards are curated content experiences that combine collections, saved searches, and other content blocks into a single shareable view.

Coming Soon: Additional endpoints for creating, updating, and deleting Story Boards.

Operations

WEBHOOKS

Tenovos Webhook Subscriptions

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

Operations

RIGHTS MANAGEMENT

Invoke the Rights Management API to manage rights-management associations between Projects, Agreements, Entities, and Rights.

Operations

PROOFING

Operations