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

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

(NEW!) Create Request

Request

COMING SOON!

Use this endpoint to create a new Request in Tenovos.

Security
ApiKeyAuth or BasicAuth
Headers
X-API-Keystringrequired

Customer-specific API key required to invoke API.

Authorizationstringrequired

Provided by Authentication Token creation operation

Bodyapplication/json

The Request Body must be a JSON object.

titlestringrequired

Title of the upload request.

Example: "New Marketing Upload Request"
metadataTemplateIdstring(uuid)required

ID of the metadata template to apply to Request.

Example: "18bb2566-0a9c-45c7-825b-4a14d3c71e42"
securityTemplateIdsArray of strings(uuid)required

Array of security template IDs to apply to Request.

Example: ["1ef152a4-281a-4f02-8fb0-1204ae050705"]
assetsArray of objectsrequired
assets[].​idstring(uuid)
Example: "13e6991b-5c11-40b8-95ff-9e9013de44b5"
metadataArray of attribute (object) or table (object)required
Example: [{"name":"Release Date","value":"01/01/2024"},{"name":"Product","value":"HooliDocs"},{"name":"Usage Table","value":[[{"name":"Usage Category","value":"E-Commerce"},{"name":"Usage Length","value":"12 months"}]]}]
Any of:
metadata[].​namestring[ 3 .. 100 ] characters

Metadata Attribute label/name provided by administrative user. Can be a textbox, textarea, date or dropdown.

Example: "Release Date"
metadata[].​valuestring[ 0 .. 2000 ] characters

The corresponding value associated to the named attribute within the response object. Required if the attribute is required for the metadata template being used.

Example: "01/01/2024"
curl -i -X POST \
  https://api.uat.tenovos.io/v1/request \
  -H 'Authorization: string' \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: YOUR_API_KEY_HERE' \
  -d '{
    "title": "New Marketing Upload Request",
    "metadataTemplateId": "18bb2566-0a9c-45c7-825b-4a14d3c71e42",
    "securityTemplateIds": [
      "1ef152a4-281a-4f02-8fb0-1204ae050705"
    ],
    "assets": [
      {
        "id": "13e6991b-5c11-40b8-95ff-9e9013de44b5"
      }
    ],
    "metadata": [
      {
        "name": "Release Date",
        "value": "01/01/2024"
      },
      {
        "name": "Product",
        "value": "HooliDocs"
      },
      {
        "name": "Usage Table",
        "value": [
          [
            {
              "name": "Usage Category",
              "value": "E-Commerce"
            },
            {
              "name": "Usage Length",
              "value": "12 months"
            }
          ]
        ]
      }
    ]
  }'

Responses

Created successfully.

Bodyapplication/json
idstring(uuid)

Id returned after creating the Request. This is uniquely identifies the request.

Example: "e3beae4b-338c-4fda-8bf7-be3a8d82a230"
Response
application/json
{ "id": "e3beae4b-338c-4fda-8bf7-be3a8d82a230" }

(NEW!) Update Request

Request

COMING SOON!

Use this endpoint to update an existing Request. Only send the data that you wish to change.

Security
ApiKeyAuth or BasicAuth
Path
idstring(uuid)= 36 charactersrequired

A Request ID.

Example: 4e428628-2537-40b5-91a4-5393cbf167df
Headers
X-API-Keystringrequired

Customer-specific API key required to invoke API.

Authorizationstringrequired

Provided by Authentication Token creation operation

Bodyapplication/jsonrequired

The Request Body must be a JSON object

assignedTostring(email)

Email of the user to whom the assets are assigned.

Example: "admin@tenovos.com"
statusstring

Use this property to update the status of the Request.

Example: "In Progress"
assetsArray of objects
curl -i -X PATCH \
  https://api.uat.tenovos.io/v1/request/4e428628-2537-40b5-91a4-5393cbf167df \
  -H 'Authorization: string' \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: YOUR_API_KEY_HERE' \
  -d '{
    "assignedTo": "admin@tenovos.com",
    "status": "In Progress",
    "assets": [
      {
        "id": "cd0caff5-2756-4d7c-a43d-a926a81fa9b8",
        "assignedTo": "ctc-admin@tenovos.com",
        "status": "Rejected",
        "note": "Test Note",
        "rejectionReason": "Invalid Asset Metadata"
      }
    ]
  }'

Responses

No Content. Successful Update.

Response
No content

(NEW!) Get Request

Request

COMING SOON!

Use this endpoint to retrieve a specific request based on the id of the request.

Security
ApiKeyAuth or BasicAuth
Path
idstring(uuid)= 36 charactersrequired

A Request ID.

Example: 4e428628-2537-40b5-91a4-5393cbf167df
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/request/4e428628-2537-40b5-91a4-5393cbf167df \
  -H 'Authorization: string' \
  -H 'X-API-Key: YOUR_API_KEY_HERE'

Responses

Success

Bodyapplication/json
idstring

Unique ID of the Request

Example: "e3beae4b-338c-4fda-8bf7-be3a8d82a230"
assetsArray of objects
assetCountinteger

Provides a count of the number of assets belonging to the Request.

Example: 2
titlestring

The Title of the request.

Example: "Galvin's Upload Request"
typestring

Identifies the type of the Request

Example: "Upload"
statusstring

The status of the Request in it's current state.

Example: "In Progress"
submittedByobject
metadataArray of attribute (object) or table (object)
Example: [{"id":"a4e75e25-2baf-4204-b6c8-b8fa67b9d4ab","name":"Release Date","searchField":"release_date","value":"01/01/2024"},{"id":"d9cb7f63-6b58-4531-8704-41e95c416c95","searchField":"product_name","name":"Product","value":"HooliDocs"},{"id":"b8d955a3-10ab-456e-91c4-b0a878786d48","searchField":"usage_table","name":"Usage Table","value":[[{"id":"b4047831-3921-4684-a434-1bb68214c111","searchField":"usage_category","name":"Usage Category","value":"E-Commerce"},{"id":"bcf51509-8460-4ecf-ad9d-67f09a5682f6","searchField":"usage_length","name":"Usage Length","value":"12 months"}]]}]
Response
application/json
{ "id": "e3beae4b-338c-4fda-8bf7-be3a8d82a230", "assets": [ { … } ], "assetCount": 2, "title": "Galvin's Upload Request", "type": "Upload", "status": "In Progress", "submittedBy": { "id": "556caca7-b6d4-478b-9850-bcf54b25c6b2", "firstName": "Erlich", "lastName": "Bachman", "email": "erlich.backman@piedpipper.com" }, "metadata": [ { … }, { … }, { … } ] }

(NEW!) List Requests

Request

COMING SOON

Use this endpoint to return a listing of all Requests. The request body is entirely optional, and by default, the API will return all types of Requests sorted by created_date from the most recent to the oldest in batches of 100.

No metadata on the requests is returned from this endpoint.

Security
ApiKeyAuth or BasicAuth
Headers
X-API-Keystringrequired

Customer-specific API key required to invoke API.

Authorizationstringrequired

Provided by Authentication Token creation operation

Bodyapplication/json

The Request Body must be a JSON object.

frominteger

Starting index for each request, used in conjunction with the limit property to paginate results.

Example: 0
limitinteger[ 1 .. 100 ]

Number of results to return per request/page.

Example: 100
typestring

Optional property to filter the response to only specific Request Types.

Example: "Upload"
statusstring

Optional property to filter the response to only Requests with a specific status.

Example: "In Progress"
includesArray of arrays

Optional array to provide searchField values for the metadata attributes on the Requests that you'd like returned in addition to the standard Request data.

Example: ["asset_identifier","primary_sku_entry","pi_table_prim_product_info"]
curl -i -X POST \
  https://api.uat.tenovos.io/v1/request/list \
  -H 'Authorization: string' \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: YOUR_API_KEY_HERE' \
  -d '{
    "from": 0,
    "limit": 100,
    "type": "Upload",
    "status": "In Progress",
    "includes": [
      "asset_identifier",
      "primary_sku_entry",
      "pi_table_prim_product_info"
    ]
  }'

Responses

Changes applied successfully.

Bodyapplication/json
totalinteger

total number of results based on search criteria.

Example: 54
resultsArray of objects[ 0 .. 100 ] items
Response
application/json
{ "total": 54, "results": [ { … } ] }

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