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 Attributes

Request

Retrieve all metadata attributes available to the requesting user.

The user submitting the request must have administrator privilege to Metadata Management.

Defaults:

  • sort defaults to metadataDefinitionName.
  • order defaults to asc.
  • filterFor is unset by default, applying no filter.

Business Rules:

  • filterFor narrows the response to attributes usable with a specific set of template types — listView covers default and asset templates, filterPresets covers default, asset and rights, and requestInbox covers action.
  • order is matched case-sensitively. Only lowercase asc and desc are accepted; ASC is rejected.
  • An invalid filterFor, sort, or order is rejected with a 403, not the 400 returned by the other list endpoints in this API. Values are validated in the order filterFor, sort, order, so the first invalid one determines the message.

Average Response Time: 492ms

Security
ApiKeyAuth or BasicAuth
Query
filterForstring

Narrows the response to attributes usable with a specific set of template types. listView covers default and asset templates, filterPresets covers default, asset and rights, and requestInbox covers action. Omitted applies no filter.

Enum"listView""filterPresets""requestInbox"
Example: filterFor=listView
sortstring

Field to sort results by. Defaults to metadataDefinitionName.

Default "metadataDefinitionName"
Enum"metadataDefinitionName""metadataDefinitionSearchField"
orderstring

Sort direction. Matched case-sensitively — only lowercase values are accepted. Defaults to asc.

Default "asc"
Enum"asc""desc"
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/attributes?filterFor=listView&sort=metadataDefinitionName&order=asc' \
  -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 [
idstring(uuid)

Unique ID of the attribute (same as metadataDefinitionId)

Example: "8a481dd2-24c1-4c54-a84f-0aded1e985e7"
namestring

The name given to the Metadata Attribute

Example: "Program Name"
searchFieldstring

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.

Example: "program_name"
typestring

Identifies the type of Metadata Attribute used

Enum"text""textarea""date""dropdown"
Example: "text"
]
Response
application/json
[ { "id": "8a481dd2-24c1-4c54-a84f-0aded1e985e7", "name": "Program Name", "searchField": "program_name", "type": "text" } ]

(NEW!) List Metadata Attributes (Paginated)

Request

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

This endpoint replaces the unpaginated GET /metadata/attributes for customers with large attribute libraries.

Defaults:

  • attributeType, inUse, and filterFor are unset by default, applying no filter.

Business Rules:

  • attributeType accepts one or more of textbox, textarea, date, dropdown as a comma-separated list.
  • inUse accepts a boolean (true/false — aggregate: used anywhere at all) or one of metadataCascades, metadataTables, metadataGroups, metadataTemplates, presets, filtering to attributes referenced in that specific usage category.
  • filterFor filters to attributes usable in a specific consumer context. Currently supports requestInbox, which returns only attributes that can be set as Request Inbox columns.

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

Security
ApiKeyAuth or BasicAuth
Query
searchTermstring

Partial, case-insensitive match against attribute name. When omitted or when * is passed, all attributes are returned (subject to pagination).

Example: searchTerm=title
attributeTypestring

Comma-separated list of attribute types to filter by. One or more of textbox, textarea, date, dropdown. Omitted returns attributes of any type.

Example: attributeType=textbox,textarea,date
inUsestring

Filters by usage status. true/false filters on aggregate usage (referenced anywhere at all). One of metadataCascades, metadataTables, metadataGroups, metadataTemplates, presets filters to attributes referenced in that specific usage category. Omitted applies no filter.

Enum"true""false""metadataCascades""metadataTables""metadataGroups""metadataTemplates""presets"
Example: inUse=true
filterForstring

Filters to attributes usable in a specific consumer context. Currently supports requestInbox, which returns only attributes that can be set as Request Inbox columns.

Value"requestInbox"
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.

Default 100
Example: limit=100
sortFieldstring

Field to sort by. Defaults to attributeName.

Default "attributeName"
Enum"attributeName""createdEpoch""lastUpdatedEpoch""attributeType""inUse"
orderstring

Sort direction. Defaults to asc.

Default "asc"
Enum"asc""desc"
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/attributes?searchTerm=title&attributeType=textbox%2Ctextarea%2Cdate&inUse=true&filterFor=requestInbox&from=0&limit=100&sortField=attributeName&order=asc' \
  -H 'Authorization: string' \
  -H 'X-API-Key: YOUR_API_KEY_HERE'

Responses

Paginated list of metadata attributes. Each item in the results array is a summary object with the same shape regardless of attributeType. Type-specific fields (e.g. maxCharacterLength, vocabularyId) are only returned by the GET /metadata/attribute/{id} detail endpoint.

Bodyapplication/json
hitCountinteger

Total number of attributes matching the search criteria.

Example: 84
resultsArray of objects

Array of attribute summary objects.

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

(NEW!) Create Metadata Attribute

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: true or isTypeahead: true cannot have technicalMetadataMapping values.
  • A required attribute cannot also be sensitive (isRequired: true and isSensitive: true cannot both be set).
  • isFacetable: true requires isSearchable: 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.

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

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
attributeTypestringrequired

Must be textbox.

Value"textbox"
Example: "textbox"
Discriminator
namestringrequired

Display name of the attribute.

Example: "Asset Title"
tooltipTextstring<= 100 characters

Tooltip helper text displayed to users. Maximum 100 characters.

Example: "Enter the title of the asset"
isRequiredboolean

Whether this attribute is required. A required attribute cannot also be sensitive, and cannot have technical metadata mappings.

Default false
Example: true
isSearchableboolean

Whether this attribute is indexed for search.

Default false
Example: true
isFacetableboolean

Whether this attribute can be used as a search facet/filter. Requires isSearchable to be true.

Default false
Example: false
isReadOnlyboolean

Whether this attribute is read-only.

Default false
Example: false
isSensitiveboolean

Whether this attribute contains sensitive data. Cannot be true if isRequired is true.

Default false
Example: false
isTypeaheadboolean

Whether typeahead/autocomplete is enabled. A typeahead attribute cannot have technical metadata mappings.

Default false
Example: true
maxCharacterLengthinteger<= 250

Maximum allowed character length. Maximum value is 250 for textbox.

Example: 250
technicalMetadataMappingArray of strings

System field references mapped to this attribute. Cannot be set if attribute is required or typeahead.

Example: ["assetTitle","fileName"]
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": []
  }'

Responses

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, technicalMetadataMapping is empty array
  • dropdown — includes vocabularyId, isMultiSelect, synonyms, technicalMetadataMapping
Bodyapplication/json
idstring(uuid)

Unique ID of the attribute.

Example: "52ce0235-02cc-46f6-8bdb-05238c76bf83"
namestring

Display name of the attribute.

Example: "Asset Title"
searchFieldstring

System-generated slug used for search indexing. Immutable after creation.

Example: "asset_title"
attributeTypestring

Always textbox for this schema.

Value"textbox"
Example: "textbox"
Discriminator
customerIdstring

ID of the customer/tenant.

Example: "1739271540099"
createdBystring(uuid)

UUID of the user who created the attribute.

Example: "dc63db1b-1e63-43bc-877e-418931b6895c"
createdEpochinteger

Creation timestamp in Unix milliseconds.

Example: 1773070355217
createdDatestring(date-time)

Human-readable creation date in ISO 8601 format.

Example: "2026-03-11T14:32:35Z"
lastUpdatedBystring(uuid)

UUID of the user who last updated the attribute.

Example: "dc63db1b-1e63-43bc-877e-418931b6895c"
lastUpdatedEpochinteger

Last updated timestamp in Unix milliseconds.

Example: 1773070355217
lastUpdatedDatestring(date-time)

Human-readable last updated date in ISO 8601 format.

Example: "2026-03-11T14:32:35Z"
isRequiredboolean
Example: true
isSearchableboolean
Example: true
isFacetableboolean
Example: false
isReadOnlyboolean
Example: false
isSensitiveboolean
Example: false
isSystemboolean

System-controlled.

Example: false
isVisibleboolean

System-controlled.

Example: true
isRestrictedboolean

System-controlled.

Example: false
isFeaturedboolean

System-controlled.

Example: false
isSortByHitCountboolean

System-controlled.

Example: false
tooltipTextstring
Example: "Enter the title of the asset"
technicalMetadataMappingArray of strings
Example: ["fileName","fileType"]
maxCharacterLengthinteger

Maximum allowed character length. Max 250 for textbox.

Example: 250
isTypeaheadboolean

Whether typeahead/autocomplete is enabled.

Example: true
usedInobject

Describes where the attribute is currently referenced. Present on GET by ID responses.

Response
application/json
{ "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 }

(NEW!) Get Metadata Attribute

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.

Security
ApiKeyAuth or BasicAuth
Path
idstring(uuid)required

The unique ID of the metadata attribute to retrieve.

Example: 41fd8f16-19d9-46c3-a1c0-5ab9d8e198f2
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/attribute/41fd8f16-19d9-46c3-a1c0-5ab9d8e198f2 \
  -H 'Authorization: string' \
  -H 'X-API-Key: YOUR_API_KEY_HERE'

Responses

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
Bodyapplication/json
idstring(uuid)

Unique ID of the attribute.

Example: "52ce0235-02cc-46f6-8bdb-05238c76bf83"
namestring

Display name of the attribute.

Example: "Asset Title"
searchFieldstring

System-generated slug used for search indexing. Immutable after creation.

Example: "asset_title"
attributeTypestring

Always textbox for this schema.

Value"textbox"
Example: "textbox"
Discriminator
customerIdstring

ID of the customer/tenant.

Example: "1739271540099"
createdBystring(uuid)

UUID of the user who created the attribute.

Example: "dc63db1b-1e63-43bc-877e-418931b6895c"
createdEpochinteger

Creation timestamp in Unix milliseconds.

Example: 1773070355217
createdDatestring(date-time)

Human-readable creation date in ISO 8601 format.

Example: "2026-03-11T14:32:35Z"
lastUpdatedBystring(uuid)

UUID of the user who last updated the attribute.

Example: "dc63db1b-1e63-43bc-877e-418931b6895c"
lastUpdatedEpochinteger

Last updated timestamp in Unix milliseconds.

Example: 1773070355217
lastUpdatedDatestring(date-time)

Human-readable last updated date in ISO 8601 format.

Example: "2026-03-11T14:32:35Z"
isRequiredboolean
Example: true
isSearchableboolean
Example: true
isFacetableboolean
Example: false
isReadOnlyboolean
Example: false
isSensitiveboolean
Example: false
isSystemboolean

System-controlled.

Example: false
isVisibleboolean

System-controlled.

Example: true
isRestrictedboolean

System-controlled.

Example: false
isFeaturedboolean

System-controlled.

Example: false
isSortByHitCountboolean

System-controlled.

Example: false
tooltipTextstring
Example: "Enter the title of the asset"
technicalMetadataMappingArray of strings
Example: ["fileName","fileType"]
maxCharacterLengthinteger

Maximum allowed character length. Max 250 for textbox.

Example: 250
isTypeaheadboolean

Whether typeahead/autocomplete is enabled.

Example: true
usedInobject

Describes where the attribute is currently referenced. Present on GET by ID responses.

Response
application/json
{ "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": [ … ] } }

(NEW!) Update Metadata Attribute

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: true and isSensitive: true cannot both be set.
  • isFacetable: true requires isSearchable: true.
  • isRequired: true or isTypeahead: true cannot have technicalMetadataMapping values.
  • maxCharacterLength cannot exceed 250 for textbox or 10,000 for textarea.
  • Textarea attributes cannot be set to isFacetable: true or isTypeahead: true.
  • isMultiSelect can be changed from false to true, but NOT from true to false.

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 attribute to update.

Example: 52ce0235-02cc-46f6-8bdb-05238c76bf83
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

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
One of:

Partial update request for a textbox attribute. Only fields provided will be updated.

namestring

Display name of the attribute.

Example: "Updated Asset Title"
tooltipTextstring<= 100 characters

Tooltip helper text. Maximum 100 characters.

Example: "Updated tooltip text"
isRequiredboolean

Whether this attribute is required. Cannot be true if isSensitive is true.

Example: true
isSearchableboolean

Whether this attribute is indexed for search. Must be true if isFacetable is true.

Example: true
isFacetableboolean

Whether this attribute can be used as a search facet/filter. Requires isSearchable to be true.

Example: false
isReadOnlyboolean

Whether this attribute is read-only.

Example: false
isSensitiveboolean

Whether this attribute contains sensitive data. Cannot be true if isRequired is true.

Example: false
maxCharacterLengthinteger<= 250

Maximum allowed character length. Cannot exceed 250 for textbox.

Example: 100
isTypeaheadboolean

Whether typeahead/autocomplete is enabled. A typeahead attribute cannot have technicalMetadataMapping.

Example: false
technicalMetadataMappingArray of strings

System field references mapped to this attribute. Cannot be set if attribute is required or typeahead.

Example: ["fileName"]
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"
    ]
  }'

Responses

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
Bodyapplication/json
idstring(uuid)

Unique ID of the attribute.

Example: "52ce0235-02cc-46f6-8bdb-05238c76bf83"
namestring

Display name of the attribute.

Example: "Asset Title"
searchFieldstring

System-generated slug used for search indexing. Immutable after creation.

Example: "asset_title"
attributeTypestring

Always textbox for this schema.

Value"textbox"
Example: "textbox"
Discriminator
customerIdstring

ID of the customer/tenant.

Example: "1739271540099"
createdBystring(uuid)

UUID of the user who created the attribute.

Example: "dc63db1b-1e63-43bc-877e-418931b6895c"
createdEpochinteger

Creation timestamp in Unix milliseconds.

Example: 1773070355217
createdDatestring(date-time)

Human-readable creation date in ISO 8601 format.

Example: "2026-03-11T14:32:35Z"
lastUpdatedBystring(uuid)

UUID of the user who last updated the attribute.

Example: "dc63db1b-1e63-43bc-877e-418931b6895c"
lastUpdatedEpochinteger

Last updated timestamp in Unix milliseconds.

Example: 1773070355217
lastUpdatedDatestring(date-time)

Human-readable last updated date in ISO 8601 format.

Example: "2026-03-11T14:32:35Z"
isRequiredboolean
Example: true
isSearchableboolean
Example: true
isFacetableboolean
Example: false
isReadOnlyboolean
Example: false
isSensitiveboolean
Example: false
isSystemboolean

System-controlled.

Example: false
isVisibleboolean

System-controlled.

Example: true
isRestrictedboolean

System-controlled.

Example: false
isFeaturedboolean

System-controlled.

Example: false
isSortByHitCountboolean

System-controlled.

Example: false
tooltipTextstring
Example: "Enter the title of the asset"
technicalMetadataMappingArray of strings
Example: ["fileName","fileType"]
maxCharacterLengthinteger

Maximum allowed character length. Max 250 for textbox.

Example: 250
isTypeaheadboolean

Whether typeahead/autocomplete is enabled.

Example: true
usedInobject

Describes where the attribute is currently referenced. Present on GET by ID responses.

Response
application/json
{ "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 }

(NEW!) Delete Metadata Attribute

Request

Permanently delete a metadata attribute by its ID. Deletion is blocked if the attribute is currently referenced by any metadata group or template.

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 attribute to delete.

Example: 41fd8f16-19d9-46c3-a1c0-5ab9d8e198f2
Headers
X-API-Keystringrequired

Customer-specific API key required to invoke API.

Authorizationstringrequired

Provided by Authentication Token creation operation.

curl -i -X DELETE \
  https://api.uat.tenovos.io/v1/metadata/attribute/41fd8f16-19d9-46c3-a1c0-5ab9d8e198f2 \
  -H 'Authorization: string' \
  -H 'X-API-Key: YOUR_API_KEY_HERE'

Responses

No Content. The attribute has been permanently deleted.

Response
No content

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

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