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

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

Get Current User Profile

Request

Use this endpoint to get the user profile information for the account that you've authenticated against the Tenovos API with.
This is useful when needing to check which groups you are in which may restrict the API calls you can make.

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 GET \
  https://api.uat.tenovos.io/v1/user \
  -H 'Authorization: string' \
  -H 'X-API-Key: YOUR_API_KEY_HERE'

Responses

The Response Body is a JSON object.

Bodyapplication/json
userIdstring(uuid)

Current User ID

Example: "7d675ef0-f423-11e9-8071-89c0c4052141"
customerIdstring

Parent Customer ID

Example: "1234567890"
emailIdstring(email)

User email

Example: "erlich.bachman@piedpiper.com"
firstNamestring

User first name

Example: "Erlich"
lastNamestring

User last name

Example: "Bachman"
roleIdstring(uuid)

User role ID

Example: "7d5620e0-f423-11e9-8071-89c0c4052141"
statusstring

User account status

Example: "enabled"
groupsArray of strings(uuid)

List of group IDs that user belongs to

Example: ["7d6207c0-f423-11e9-8071-89c0c4052141"]
userNamestring or null

The username of the Tenovos user, created by the Administrator or user at the time of account creation. Can be null for federated user accounts.

Example: "erlich.bachman"
phonestring(phone)
Example: 15551234565
contactstring

The person designated as the sponsor/point of contact for this user

Example: "Richard Hendricks"
countrystring

The country in which the Tenovos user is located.

Example: "USA"
companystring

The company that the Tenovos user works for.

Example: "Pied Piper"
friendlyNamestring

A "friendlier" version of the username. Used in the UI display and provided by the user.

Example: "Erlich Bachman"
Response
application/json
{ "userId": "7d675ef0-f423-11e9-8071-89c0c4052141", "customerId": "1234567890", "emailId": "erlich.bachman@piedpiper.com", "firstName": "Erlich", "lastName": "Bachman", "roleId": "7d5620e0-f423-11e9-8071-89c0c4052141", "status": "enabled", "groups": [ "7d6207c0-f423-11e9-8071-89c0c4052141" ], "userName": "erlich.bachman", "phone": 15551234565, "contact": "Richard Hendricks", "country": "USA", "company": "Pied Piper", "friendlyName": "Erlich Bachman" }

Create User

Request

Use this endpoint to create a new user account in the system. You must have User Management role privilege and Security Template Management role privilege in order to create a user and assign groups. This endpoint can be used to create local or federated users.

Average Response Time: 5140ms

Security
ApiKeyAuth or BasicAuth
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

firstNamestring[ 1 .. 50 ] charactersrequired

First Name of the User.

Example: "John"
lastNamestring[ 1 .. 50 ] charactersrequired

Last Name of the User.

Example: "Wick"
friendlyNamestring[ 1 .. 50 ] charactersrequired

Friendly Name of the User.

Example: "john.wick"
emailstring(email)[ 6 .. 75 ] charactersrequired

Email of the User.

Example: "john.wick@tenovos.com"
usernamestring(username)[ 1 .. 50 ] charactersrequired

Username of the User.

Example: "john.wick"
passwordstring(password)[ 8 .. 150 ] charactersrequired

Password of the User.

Example: "sdhg&uuUz78u"
accountTypestringrequired

Account Type of the User. Local accounts use a password; Federated accounts use an SSO service.

Enum"local""federated"
Example: "local"
customAttributesobject(UserCreateRequest_customAttributes)
userRoleIdstring(uuid)= 36 charactersrequired

ID of the User's role. Only one role is allowed.

Example: "1401df5e-3f13-4c88-a5a8-de64f6227a03"
groupsArray of strings(uuid)non-emptyrequired

List of group IDs the User belongs to. At least one group is required.

Example: ["7d6207c0-f423-11e9-8071-89c0c4052141"]
isVerifiedboolean

Optional flag indicating whether the user account is verified upon creation. This is only supported for customers using Auth0 authentication.

Example: true
curl -i -X POST \
  https://api.uat.tenovos.io/v1/user \
  -H 'Authorization: string' \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: YOUR_API_KEY_HERE' \
  -d '{
    "firstName": "John",
    "lastName": "Wick",
    "friendlyName": "john.wick",
    "email": "john.wick@tenovos.com",
    "username": "john.wick",
    "password": "sdhg&uuUz78u",
    "accountType": "local",
    "customAttributes": {
      "country": "USA",
      "company": "Tenovos",
      "phone": "",
      "contact": ""
    },
    "userRoleId": "1401df5e-3f13-4c88-a5a8-de64f6227a03",
    "groups": [
      "7d6207c0-f423-11e9-8071-89c0c4052141"
    ],
    "isVerified": true
  }'

Responses

The Response Body is a JSON object.

Bodyapplication/json
roleIdstring(uuid)

User role ID

Example: "7d5620e0-f423-11e9-8071-89c0c4052141"
statusstring

User account status

Example: "success"
Response
application/json
{ "roleId": "7d5620e0-f423-11e9-8071-89c0c4052141", "status": "success" }

Get User Profile by ID

Request

Current user will get its profile information in response. User will also get ID of a role assign to him and a list of group IDs from which it belongs to.

Average Response Time: 154ms

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

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

Responses

The Response Body will be a JSON object

Bodyapplication/json
userIdstring(uuid)

Current User ID

Example: "7d675ef0-f423-11e9-8071-89c0c4052141"
customerIdstring

Parent Customer ID

Example: "1234567890"
emailIdstring(email)

User email

Example: "erlich.bachman@piedpiper.com"
firstNamestring

User first name

Example: "Erlich"
lastNamestring

User last name

Example: "Bachman"
roleIdstring(uuid)

User role ID

Example: "7d5620e0-f423-11e9-8071-89c0c4052141"
statusstring

User account status

Example: "enabled"
groupsArray of strings(uuid)

List of group IDs that user belongs to

Example: ["7d6207c0-f423-11e9-8071-89c0c4052141"]
userNamestring or null

The username of the Tenovos user, created by the Administrator or user at the time of account creation. Can be null for federated user accounts.

Example: "erlich.bachman"
phonestring(phone)
Example: 15551234565
contactstring

The person designated as the sponsor/point of contact for this user

Example: "Richard Hendricks"
countrystring

The country in which the Tenovos user is located.

Example: "USA"
companystring

The company that the Tenovos user works for.

Example: "Pied Piper"
friendlyNamestring

A "friendlier" version of the username. Used in the UI display and provided by the user.

Example: "Erlich Bachman"
Response
application/json
{ "userId": "7d675ef0-f423-11e9-8071-89c0c4052141", "customerId": "1234567890", "emailId": "erlich.bachman@piedpiper.com", "firstName": "Erlich", "lastName": "Bachman", "roleId": "7d5620e0-f423-11e9-8071-89c0c4052141", "status": "enabled", "groups": [ "7d6207c0-f423-11e9-8071-89c0c4052141" ], "userName": "erlich.bachman", "phone": 15551234565, "contact": "Richard Hendricks", "country": "USA", "company": "Pied Piper", "friendlyName": "Erlich Bachman" }

Update User Attributes

Request

Update User Profile attributes such as First Name, Last Name, Friendly Name, Email, Company, Country, Contact, Phone, and User Role. The user role can be updated by sending either role id or role name.

Average Response Time: 1587ms

Security
ApiKeyAuth or BasicAuth
Path
idstringrequired

Specify a User Profile ID.

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

firstNamestring

First Name of the user

Example: "John"
lastNamestring

Last Name of the user

Example: "Smith"
friendlyNamestring

Last Name of the user

Example: "John Smith"
emailstring

Email of the user

Example: "john.smith@company.com"
companystring

Company name of the user

Example: "John's Company Inc."
countrystring

Country of the user

Example: "USA"
contactnumber

Contact Number of the user

Example: 1234567890
phonenumber

Alternate phone number of the user

Example: 1234567890
userRoleIdstring(uuid)

User role id of the user

Example: "7d5620e0-f423-11e9-8071-89c0c4052141"
userRoleNamestring

User role name of the user

Example: "End user"
groupsArray of strings(uuid)

List of user group ids the user is part of

Example: ["7d6207c0-f423-11e9-8071-89c0c4052141"]
statusstring

Allows updating the users status to either enable or disabled. These values are case sensitive.

Enum"enabled""disabled"
Example: "enabled"
curl -i -X PATCH \
  'https://api.uat.tenovos.io/v1/user/{id}' \
  -H 'Authorization: string' \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: YOUR_API_KEY_HERE' \
  -d '{
    "firstName": "John",
    "lastName": "Smith",
    "friendlyName": "John Smith",
    "email": "john.smith@company.com",
    "company": "John'\''s Company Inc.",
    "country": "USA",
    "contact": 1234567890,
    "phone": 1234567890,
    "userRoleId": "7d5620e0-f423-11e9-8071-89c0c4052141",
    "userRoleName": "End user",
    "groups": [
      "7d6207c0-f423-11e9-8071-89c0c4052141"
    ],
    "status": "enabled"
  }'

Responses

The Response Body will be a JSON object

Bodyapplication/json
userIdstring(uuid)

Current User ID

Example: "7d675ef0-f423-11e9-8071-89c0c4052141"
customerIdstring

Parent Customer ID

Example: "1234567890"
emailIdstring(email)

User email

Example: "erlich.bachman@piedpiper.com"
firstNamestring

User first name

Example: "Erlich"
lastNamestring

User last name

Example: "Bachman"
roleIdstring(uuid)

User role ID

Example: "7d5620e0-f423-11e9-8071-89c0c4052141"
statusstring

User account status

Example: "enabled"
groupsArray of strings(uuid)

List of group IDs that user belongs to

Example: ["7d6207c0-f423-11e9-8071-89c0c4052141"]
userNamestring or null

The username of the Tenovos user, created by the Administrator or user at the time of account creation. Can be null for federated user accounts.

Example: "erlich.bachman"
phonestring(phone)
Example: 15551234565
contactstring

The person designated as the sponsor/point of contact for this user

Example: "Richard Hendricks"
countrystring

The country in which the Tenovos user is located.

Example: "USA"
companystring

The company that the Tenovos user works for.

Example: "Pied Piper"
friendlyNamestring

A "friendlier" version of the username. Used in the UI display and provided by the user.

Example: "Erlich Bachman"
Response
application/json
{ "userId": "7d675ef0-f423-11e9-8071-89c0c4052141", "customerId": "1234567890", "emailId": "erlich.bachman@piedpiper.com", "firstName": "Erlich", "lastName": "Bachman", "roleId": "7d5620e0-f423-11e9-8071-89c0c4052141", "status": "enabled", "groups": [ "7d6207c0-f423-11e9-8071-89c0c4052141" ], "userName": "erlich.bachman", "phone": 15551234565, "contact": "Richard Hendricks", "country": "USA", "company": "Pied Piper", "friendlyName": "Erlich Bachman" }

Add User to Group

Request

Assign a Security Group to a User Profile.

Security
ApiKeyAuth or BasicAuth
Path
idstringrequired

Specify a User Profile ID.

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

userGroupIdstring(uuid)

group-id of a valid existing user-security-group of customer

Example: "7d6207c0-f423-11e9-8071-89c0c4052141"
userGroupNamestring

group-name of a valid existing user-security-group of a customer

curl -i -X PATCH \
  'https://api.uat.tenovos.io/v1/user/{id}/add-to-group' \
  -H 'Authorization: string' \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: YOUR_API_KEY_HERE' \
  -d '{
    "userGroupId": "7d6207c0-f423-11e9-8071-89c0c4052141",
    "userGroupName": "string"
  }'

Responses

The Response Body will be a JSON object

Bodyapplication/json
statusstring
Example: "success"
messagestring
Example: "User Profile update was successful"
Response
application/json
{ "status": "success", "message": "User Profile update was successful" }

Remove User from Group

Request

Remove an assigned Security Group from a User Profile.

Security
ApiKeyAuth or BasicAuth
Path
idstringrequired

Specify a User Profile ID.

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

userGroupIdstring(uuid)

group-id of a valid existing user-security-group of customer

Example: "7d6207c0-f423-11e9-8071-89c0c4052141"
userGroupNamestring

group-name of a valid existing user-security-group of a customer

curl -i -X PATCH \
  'https://api.uat.tenovos.io/v1/user/{id}/remove-from-group' \
  -H 'Authorization: string' \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: YOUR_API_KEY_HERE' \
  -d '{
    "userGroupId": "7d6207c0-f423-11e9-8071-89c0c4052141",
    "userGroupName": "string"
  }'

Responses

The Response Body will be a JSON object

Bodyapplication/json
statusstring
Example: "success"
messagestring
Example: "User Profile update was successful"
Response
application/json
{ "status": "success", "message": "User Profile update was successful" }

Search User ProfilesDeprecated

Request

Use this endpoint to retrieve a list of User Profiles matching the search keyword provided in the request parameter. Do not enter your search term wrapped in quotation marks. Provided keyword will be matched against the user attributes case insensitively - First Name, Last Name, Friendly Name, Username, Email, Phone, Company, Contact, Country, Status, Group Names, and Role Name. Entering "*" as your search term will return all users. The response is formatted as an area of objects, with each user account being returned as an object, as well as a key called 'count', which indicates how many accounts met the search critera. A maximum limit of 100 accounts will be returned in the response. In the case that more than 100 accounts meet the search criteria, pagination using the optional 'from' and 'limit' query parameters will be required to retrieve all accounts.

The user performing this action must have the 'User Management' role privilege.

How to use pagination: Pagination should be used when the amount of user accounts that match the entered search term exceeds the amount of users (100) returned in a single response. Paginating through the results will require making more than one call to this endpoint. To retrieve the first 100 users, in your query parameters, set your 'from' value to 0, and your 'limit' value to 100. To return the next set of 100 users, leave your 'limit' value as 100, but set your 'from' value to 100.

Continue to repeat this process of adding 100 to your 'from' value until all user account results are captured.

Security
ApiKeyAuth or BasicAuth
Path
searchTextstringrequired

Specify searchText to search across user attributes.

Query
fromstringrequired

Specify the starting position for the next result set.

limitstringrequired

Specify the maximum number of records to return each call.

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/user/search/{searchText}?from=string&limit=string' \
  -H 'Authorization: string' \
  -H 'X-API-Key: YOUR_API_KEY_HERE'

Responses

The Response Body will be a JSON object

Bodyapplication/json
statusstring
Example: "success"
dataArray of objects(User)

List of User objects

Response
application/json
{ "status": "success", "data": [ {} ] }

WEBHOOKS

Tenovos Webhook Subscriptions

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

Operations

PROOFING

Operations