Invoke the Action API to retrieve information about invoked Actions.
- API v1.5 Documentation
- Payload Reference
- (NEW!) Get Metadata Attribute
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
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 manage Metadata Attributes, Groups, and Templates. 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.
Admin Endpoints (NEW!): Create, read, update, and delete Metadata Attributes and Metadata Groups. These endpoints require the Metadata Management admin privilege.
Request
Create a new metadata attribute. Supports four attribute types: textbox, textarea, date, and dropdown. Each type has a distinct request schema and returns a type-specific response.
Business Rules:
- An attribute that is
isRequired: trueorisTypeahead: truecannot havetechnicalMetadataMappingvalues. - A required attribute cannot also be sensitive (
isRequired: trueandisSensitive: truecannot both be set). isFacetable: truerequiresisSearchable: true.- Max character limit for textbox is 250 characters.
- Max character limit for textarea is 10,000 characters.
- Textarea attributes cannot be facetable or support typeahead.
The user submitting the request must have the Metadata Management admin privilege.
JSON object defining the new metadata attribute. The schema varies by attributeType:
- textbox — includes
isTypeahead,maxCharacterLength(max 250),technicalMetadataMapping - textarea — includes
maxCharacterLength(max 10000),technicalMetadataMapping. Cannot be facetable or typeahead. - date — minimal schema with shared fields only.
- dropdown — includes
vocabularyId(required),multiSelect,synonyms,technicalMetadataMapping
Tooltip helper text displayed to users. Maximum 100 characters.
Whether this attribute is required. A required attribute cannot also be sensitive, and cannot have technical metadata mappings.
Whether this attribute can be used as a search facet/filter. Requires isSearchable to be true.
Whether this attribute contains sensitive data. Cannot be true if isRequired is true.
Whether typeahead/autocomplete is enabled. A typeahead attribute cannot have technical metadata mappings.
Maximum allowed character length. Maximum value is 250 for textbox.
- https://api.uat.tenovos.io/v1/metadata/attribute
- https://api.tenovos.io/v1/metadata/attribute
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
- Textbox
- Textarea
- Date
- Dropdown
curl -i -X POST \
https://api.uat.tenovos.io/v1/metadata/attribute \
-H 'Authorization: string' \
-H 'Content-Type: application/json' \
-H 'X-API-Key: YOUR_API_KEY_HERE' \
-d '{
"attributeType": "textbox",
"name": "Asset Title",
"tooltipText": "Enter the title of the asset",
"isRequired": true,
"isSearchable": true,
"isFacetable": false,
"isReadOnly": false,
"isSensitive": false,
"isTypeahead": true,
"maxCharacterLength": 250,
"technicalMetadataMapping": []
}'The newly created metadata attribute object. The response shape matches the attributeType sent in the request:
- textbox — includes
maxCharacterLength,isTypeahead,technicalMetadataMapping - textarea — includes
maxCharacterLength,isTypeahead(always false),technicalMetadataMapping - date — shared fields only,
technicalMetadataMappingis empty array - dropdown — includes
vocabularyId,isMultiSelect,synonyms,technicalMetadataMapping
System-generated slug used for search indexing. Immutable after creation.
UUID of the user who created the attribute.
Human-readable creation date in ISO 8601 format.
UUID of the user who last updated the attribute.
Human-readable last updated date in ISO 8601 format.
- Text Box Response
- Text Area Response
- Date Response
- Dropdown Response
{ "id": "52ce0235-02cc-46f6-8bdb-05238c76bf83", "name": "Asset Title", "searchField": "asset_title", "attributeType": "textbox", "customerId": "1739271540099", "createdBy": "dc63db1b-1e63-43bc-877e-418931b6895c", "createdEpoch": 1773070355217, "lastUpdatedBy": "dc63db1b-1e63-43bc-877e-418931b6895c", "lastUpdatedEpoch": 1773070355217, "isRequired": true, "isSearchable": true, "isFacetable": false, "isReadOnly": false, "isSensitive": false, "isSystem": false, "isVisible": true, "isRestricted": false, "isFeatured": false, "isSortByHitCount": false, "tooltipText": "Enter the title of the asset", "technicalMetadataMapping": [], "maxCharacterLength": 250, "isTypeahead": true }
Request
Retrieve a single metadata attribute by its ID, returning the full attribute configuration including type-specific fields and usedIn references.
The user submitting the request must have the Metadata Management admin privilege.
- https://api.uat.tenovos.io/v1/metadata/attribute/{id}
- https://api.tenovos.io/v1/metadata/attribute/{id}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
https://api.uat.tenovos.io/v1/metadata/attribute/41fd8f16-19d9-46c3-a1c0-5ab9d8e198f2 \
-H 'Authorization: string' \
-H 'X-API-Key: YOUR_API_KEY_HERE'The full metadata attribute object. The response shape varies by attributeType:
- textbox — includes
maxCharacterLength,isTypeahead,technicalMetadataMapping,usedIn - textarea — includes
maxCharacterLength,isTypeahead(always false),technicalMetadataMapping,usedIn - date — shared fields plus
usedIn - dropdown — includes
vocabulary(object),isMultiSelect,synonyms,technicalMetadataMapping,usedIn
System-generated slug used for search indexing. Immutable after creation.
UUID of the user who created the attribute.
Human-readable creation date in ISO 8601 format.
UUID of the user who last updated the attribute.
Human-readable last updated date in ISO 8601 format.
- Text Box Response
- Text Area Response
- Date Response
- Dropdown Response
{ "id": "52ce0235-02cc-46f6-8bdb-05238c76bf83", "name": "Asset Title", "searchField": "asset_title", "attributeType": "textbox", "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", "isRequired": true, "isSearchable": true, "isFacetable": false, "isReadOnly": false, "isSensitive": false, "isSystem": false, "isVisible": true, "isRestricted": false, "isFeatured": false, "isSortByHitCount": false, "tooltipText": "Enter the title of the asset", "technicalMetadataMapping": [ "fileName", "assetName" ], "maxCharacterLength": 250, "isTypeahead": true, "usedIn": { "metadataGroups": [ … ], "metadataTemplates": [ … ], "presets": [ … ] } }
Request
Partially update an existing metadata attribute. Only fields included in the request body will be updated — omitted fields remain unchanged.
Fields that cannot be updated: attributeType, vocabularyId, searchField.
Business Rules (enforced on update):
isRequired: trueandisSensitive: truecannot both be set.isFacetable: truerequiresisSearchable: true.isRequired: trueorisTypeahead: truecannot havetechnicalMetadataMappingvalues.maxCharacterLengthcannot exceed 250 for textbox or 10,000 for textarea.- Textarea attributes cannot be set to
isFacetable: trueorisTypeahead: true. isMultiSelectcan be changed fromfalsetotrue, but NOT fromtruetofalse.
The user submitting the request must have the Metadata Management admin privilege.
JSON object with fields to update. Only provided fields are applied. The available fields depend on the attribute type:
- textbox —
name,tooltipText,isRequired,isSearchable,isFacetable,isReadOnly,isSensitive,maxCharacterLength,isTypeahead,technicalMetadataMapping - textarea —
name,tooltipText,isRequired,isSearchable,isReadOnly,isSensitive,maxCharacterLength,technicalMetadataMapping - date —
name,tooltipText,isRequired,isSearchable,isFacetable,isReadOnly,isSensitive - dropdown —
name,tooltipText,isRequired,isSearchable,isFacetable,isReadOnly,isSensitive,isMultiSelect,technicalMetadataMapping,synonyms
Partial update request for a textbox attribute. Only fields provided will be updated.
Tooltip helper text. Maximum 100 characters.
Whether this attribute is required. Cannot be true if isSensitive is true.
Whether this attribute is indexed for search. Must be true if isFacetable is true.
Whether this attribute can be used as a search facet/filter. Requires isSearchable to be true.
Whether this attribute contains sensitive data. Cannot be true if isRequired is true.
Maximum allowed character length. Cannot exceed 250 for textbox.
Whether typeahead/autocomplete is enabled. A typeahead attribute cannot have technicalMetadataMapping.
- https://api.uat.tenovos.io/v1/metadata/attribute/{id}
- https://api.tenovos.io/v1/metadata/attribute/{id}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
- Update Textbox
- Update Textarea
- Update Date
- Update Dropdown
curl -i -X PATCH \
https://api.uat.tenovos.io/v1/metadata/attribute/52ce0235-02cc-46f6-8bdb-05238c76bf83 \
-H 'Authorization: string' \
-H 'Content-Type: application/json' \
-H 'X-API-Key: YOUR_API_KEY_HERE' \
-d '{
"name": "Updated Asset Title",
"tooltipText": "Updated tooltip text",
"isTypeahead": false,
"maxCharacterLength": 100,
"technicalMetadataMapping": [
"fileName"
]
}'The full updated attribute object. The response shape matches the attribute's type:
- textbox — includes
maxCharacterLength,isTypeahead,technicalMetadataMapping - textarea — includes
maxCharacterLength,isTypeahead(always false),technicalMetadataMapping - date — shared fields only
- dropdown — includes
vocabularyId,isMultiSelect,synonyms,technicalMetadataMapping
System-generated slug used for search indexing. Immutable after creation.
UUID of the user who created the attribute.
Human-readable creation date in ISO 8601 format.
UUID of the user who last updated the attribute.
Human-readable last updated date in ISO 8601 format.
- Textbox Updated
- Textarea Updated
- Date Updated
- Dropdown Updated
{ "id": "52ce0235-02cc-46f6-8bdb-05238c76bf83", "name": "Updated Asset Title", "searchField": "asset_title", "attributeType": "textbox", "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", "isRequired": true, "isSearchable": true, "isFacetable": false, "isReadOnly": false, "isSensitive": false, "isSystem": false, "isVisible": true, "isRestricted": false, "isFeatured": false, "isSortByHitCount": false, "tooltipText": "Updated tooltip text", "technicalMetadataMapping": [ "fileName" ], "maxCharacterLength": 100, "isTypeahead": false }
Tenovos Webhook Subscriptions
For more information about our Webhooks, see the Webhook section of our Developer Portal