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/user
- https://api.tenovos.io/v1/user
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
https://api.uat.tenovos.io/v1/user \
-H 'Authorization: string' \
-H 'X-API-Key: YOUR_API_KEY_HERE'The Response Body is a JSON object.
List of group IDs that user belongs to
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.
The person designated as the sponsor/point of contact for this user
{ "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" }
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
The Request Body must be a JSON object
Password of the User.
Account Type of the User. Local accounts use a password; Federated accounts use an SSO service.
ID of the User's role. Only one role is allowed.
List of group IDs the User belongs to. At least one group is required.
- https://api.uat.tenovos.io/v1/user
- https://api.tenovos.io/v1/user
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
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
}'{ "roleId": "7d5620e0-f423-11e9-8071-89c0c4052141", "status": "success" }
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
- https://api.uat.tenovos.io/v1/user/{id}
- https://api.tenovos.io/v1/user/{id}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
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'The Response Body will be a JSON object
List of group IDs that user belongs to
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.
The person designated as the sponsor/point of contact for this user
{ "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" }
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
The Request Body must be a JSON object
List of user group ids the user is part of
- https://api.uat.tenovos.io/v1/user/{id}
- https://api.tenovos.io/v1/user/{id}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
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"
}'The Response Body will be a JSON object
List of group IDs that user belongs to
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.
The person designated as the sponsor/point of contact for this user
{ "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" }
The Request Body must be a JSON object
group-id of a valid existing user-security-group of customer
- https://api.uat.tenovos.io/v1/user/{id}/add-to-group
- https://api.tenovos.io/v1/user/{id}/add-to-group
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
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"
}'{ "status": "success", "message": "User Profile update was successful" }
The Request Body must be a JSON object
group-id of a valid existing user-security-group of customer
- https://api.uat.tenovos.io/v1/user/{id}/remove-from-group
- https://api.tenovos.io/v1/user/{id}/remove-from-group
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
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"
}'{ "status": "success", "message": "User Profile update was successful" }
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.
- https://api.uat.tenovos.io/v1/user/search/{searchText}
- https://api.tenovos.io/v1/user/search/{searchText}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
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'{ "status": "success", "data": [ { … } ] }
Tenovos Webhook Subscriptions
For more information about our Webhooks, see the Webhook section of our Developer Portal