Invoke the Action API to retrieve information about invoked Actions.
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
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.
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.
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.
- https://api.uat.tenovos.io/v1/metadata/attributes
- https://api.tenovos.io/v1/metadata/attributes
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
https://api.uat.tenovos.io/v1/metadata/attributes \
-H 'Authorization: string' \
-H 'Content-Type: application/json' \
-H 'X-API-Key: YOUR_API_KEY_HERE'The Response Body will be a JSON array of template objects.
Unique ID of the attribute (same as metadataDefinitionId)
The value assigned by Tenovos and used for search indexes. This value never changes, even if attribute name changes. Use this value to perform attribute specific searches, or to uniquely identify attributes in Requests, etc.
Identifies the type of Metadata Attribute used
[ { "id": "8a481dd2-24c1-4c54-a84f-0aded1e985e7", "name": "Program Name", "searchField": "program_name", "type": "text" } ]
- https://api.uat.tenovos.io/v1/metadata/template
- https://api.tenovos.io/v1/metadata/template
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
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'[ { "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
- https://api.uat.tenovos.io/v1/metadata/template/{id}
- https://api.tenovos.io/v1/metadata/template/{id}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
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'{ "template": { "metadataGroups": [ … ], "templateId": "196100ac-4eec-4fb6-a7f7-86c8b584771d", "templateName": "string", "createdEpoch": 1234567890123, "lastUpdatedEpoch": 1234567890123, "templateType": [ … ] } }
- https://api.uat.tenovos.io/v1/metadata/vocabulary
- https://api.tenovos.io/v1/metadata/vocabulary
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
https://api.uat.tenovos.io/v1/metadata/vocabulary \
-H 'Authorization: string' \
-H 'X-API-Key: YOUR_API_KEY_HERE'The Response Body will be a JSON-formatted list including the following properties.
- metadata: Vocabulary metadata
- values: Key/Value list
- valueId
- valueName
- searchable: Toggle searchability
- values: Key/Value list
- metadataDefinitionId
- metadataDefinitionName
- metadataDefinitionSearchField: Map search field for this metadata definition
- metadataDefinitionType: Metadata definition type
- createdEpoch: Create time in milliseconds
- lastUpdatedEpoch: Update time in milliseconds
[ { "createdEpoch": 1613877219787, "customerId": "157167185123342", "lastUpdatedEpoch": 1613877219787, "metadataDefinitionId": "6c921f5c-24c2-40b9-8718-3ad2d4a6be54", "metadataDefinitionName": "Colors", "metadataDefinitionSearchField": "colors", "metadataDefinitionType": "controlledVocabulary", "metadata": { … } } ]
Request
Create a Controlled Vocabulary. User must have permission to create a controlled vocabulary.
Response will contain the object of the metadata definition attributes, such as id, name, type and search fields, etc.
Average Response Time: 585ms
- https://api.uat.tenovos.io/v1/metadata/vocabulary
- https://api.tenovos.io/v1/metadata/vocabulary
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://api.uat.tenovos.io/v1/metadata/vocabulary \
-H 'Authorization: string' \
-H 'Content-Type: application/json' \
-H 'X-API-Key: YOUR_API_KEY_HERE' \
-d '{
"name": "Color List",
"values": [
"Red",
"Blue"
]
}'{ "createdEpoch": 1613877219787, "customerId": "157167185123342", "lastUpdatedEpoch": 1613877219787, "metadataDefinitionId": "6c921f5c-24c2-40b9-8718-3ad2d4a6be54", "metadataDefinitionName": "Colors", "metadataDefinitionSearchField": "colors", "metadataDefinitionType": "controlledVocabulary", "metadataDocument": { "values": [ … ], "searchable": true } }
- https://api.uat.tenovos.io/v1/metadata/vocabulary/{id}
- https://api.tenovos.io/v1/metadata/vocabulary/{id}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://api.uat.tenovos.io/v1/metadata/vocabulary/{id}' \
-H 'Authorization: string' \
-H 'X-API-Key: YOUR_API_KEY_HERE'{ "createdEpoch": 1613877219787, "customerId": "157167185123342", "lastUpdatedEpoch": 1613877219787, "metadataDefinitionId": "6c921f5c-24c2-40b9-8718-3ad2d4a6be54", "metadataDefinitionName": "Colors", "metadataDefinitionSearchField": "colors", "metadataDefinitionType": "controlledVocabulary", "metadataDocument": { "values": [ … ], "searchable": true } }
- https://api.uat.tenovos.io/v1/metadata/vocabulary/{id}
- https://api.tenovos.io/v1/metadata/vocabulary/{id}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X DELETE \
'https://api.uat.tenovos.io/v1/metadata/vocabulary/{id}' \
-H 'Authorization: string' \
-H 'X-API-Key: YOUR_API_KEY_HERE'{ "status": "success", "message": "Metadata Definition delete operation succeeded" }
Request
Update a Controlled Vocabulary. User must have permission to update a controlled vocabulary.
In response, it will contain the object of metadata definition attributes like id, name, type and search fields etc.
Average Response Time: 1462ms (Add Controlled Vocabulary (CV) value) Average Response Time: 716ms (Update a CV value )
The Request Body will be a JSON-formatted object including the following properties. Each property here is an operation. All of these operations can be applied in a single request. After updating the Controlled Vocabulary, execute /metadata/apply POST request to apply the new changes.
JSON Array with new values to add into the Controlled Vocabulary
Payload to update existing values by their IDs
- https://api.uat.tenovos.io/v1/metadata/vocabulary/{id}
- https://api.tenovos.io/v1/metadata/vocabulary/{id}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
- Change_Name
- Add_Values
- Update_Values
- Delete_Values
curl -i -X PATCH \
'https://api.uat.tenovos.io/v1/metadata/vocabulary/{id}' \
-H 'Authorization: string' \
-H 'Content-Type: application/json' \
-H 'X-API-Key: YOUR_API_KEY_HERE' \
-d '{
"name": "Color List"
}'{ "createdEpoch": 1613877219787, "customerId": "157167185123342", "lastUpdatedEpoch": 1613877219787, "metadataDefinitionId": "6c921f5c-24c2-40b9-8718-3ad2d4a6be54", "metadataDefinitionName": "Colors", "metadataDefinitionSearchField": "colors", "metadataDefinitionType": "controlledVocabulary", "metadataDocument": { "values": [ … ], "searchable": true } }
- https://api.uat.tenovos.io/v1/metadata/apply
- https://api.tenovos.io/v1/metadata/apply
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://api.uat.tenovos.io/v1/metadata/apply \
-H 'Authorization: string' \
-H 'X-API-Key: YOUR_API_KEY_HERE'{ "message": "Changes applied successfully" }
Tenovos Webhook Subscriptions
For more information about our Webhooks, see the Webhook section of our Developer Portal