Skip to content

API Endpoint Reference (1.0)

Tenovos offers a REST API for partner and customer integrations. This API provides a RESTful endpoint, token-based authorization, HTTP methods for operations, and JSON-formatted payloads. Use this API to incorporate Tenovos functionality into your own application.

This API is up-versioned when a breaking change is introduced such as

  • a change in the format of the response data for one or more calls
  • a change in the request or response type (i.e. changing an integer to a float)
  • removing any part of the API.

This API is not up-versioned for non-breaking changes such as

  • new endpoints
  • new response parameters
  • new optional request parameters
Download OpenAPI description
Languages
Servers
https://enterprise.services.tenovos.io/content-store-v1
https://enterprise-2.services.tenovos.io/content-store-v1
https://enterprise3.services.tenovos.io/content-store-v1
https://enterprise-4.services.tenovos.io/content-store-v1

Action Operations

Invoke the Action API to retrieve information about invoked Actions.

Operations

Asset Operations

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

Create an Asset.

Request

Use this service to perform one of the following operations:

  1. Create a new Asset
  2. Create a new Version of an existing Asset
  3. Create a new Metadata-only Asset

Once the new Asset or Asset Version is created, a new Object ID is returned to identify the new Asset / Asset Version.

When a new Asset is created, the Asset is considered a metadata-only Asset until a corresponding content file is uploaded. The Asset's content file size must be less than or equal to 5GB.

After invoking the Create Asset service, the response shall include a signed URL to upload the content file. The upload should be performed using a PUT request with the file content attached as binary data in the request body.

After creating an asset greater than 100MB, multiple presigned urls will be returned. You must upload file chunks of 100MB to each one.

You must call the /asset/complete endpoint to complete or cancel a multi-part file upload, otherwise the file will not be available to Tenovos.

The user submitting the request to create an Asset must have the Upload Security Role Privilege and be granted access to at least one Security Template to assign to the new Asset.

Security
ApiKeyAuth or BasicAuth
Headers
X-API-Keystringrequired

Customer-specific API key required to invoke API.

Authorizationstringrequired

Provided by Authentication Token creation operation

AccessTokenstringrequired

JWT token provided by Authentication Token creation operation.

Content-Typestringrequired
Value"application/json"
Bodyapplication/jsonrequired

The Request Body must be a JSON object. To create a new version instead of new asset pass an additional property originalFileId as part of the JSON object.

originalFileIdstring(uuid)

ID of the file. When provided a new version will be created.

metadataTemplateIdstring(uuid)required

ID of metadata template to apply.

Example: "ea6eb24d-adef-4080-bd02-f64f567c437f"
metadataArray of MetadataStringValue (object) or MetadataRestrictedVocabularyValue (object) or MetadataDateValue (object) or MetadataMultiValue (object) or MetadataGridValue (object)(MetadataDocument)required

Array of metadata attributes

Any of:

Defines a text attribute

metadata[].​metadataDefinitionIdstring(uuid)

Definition ID

Example: "dfeb57c1-b149-4b15-920f-3f40ff0b959a"
metadata[].​metadataDefinitionValuestring
Example: "Photo"
securityTemplateIdsArray of strings(uuid)required

Array of Security Template IDs

Example: ["7d6f4e30-f423-11e9-8071-89c0c4052141"]
filenamestringrequired

Asset file name.

contentPathstring

S3 path to the federated file

skipTranscodeboolean

Flag to skip content transformation

filesizenumber

Size of file in bytes

curl -i -X POST \
  https://enterprise.services.tenovos.io/content-store-v1/asset \
  -H 'AccessToken: string' \
  -H 'Authorization: string' \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: YOUR_API_KEY_HERE' \
  -d '{
    "metadataTemplateId": "ea6eb24d-adef-4080-bd02-f64f567c437f",
    "metadata": [
      {
        "metadataDefinitionId": "dfeb57c1-b149-4b15-920f-3f40ff0b959a",
        "metadataDefinitionValue": "Photo"
      },
      {
        "metadataDefinitionId": "dfeb57c1-b149-4b15-920f-3f40ff3423ad1",
        "metadataDefinitionValue": {
          "valueId": "3fa85f64-5717-4562-b3fc-2c963f66aea6"
        }
      },
      {
        "metadataDefinitionId": "3229e863-022b-4365-afe6-e9aa3807c386",
        "metadataDefinitionValue": "02/10/2021"
      },
      {
        "metadataDefinitionId": "3229e863-022b-4365-afe6-e9aa3807c386",
        "metadataDefinitionValue": [
          {
            "valueId": "7d6f4e30-f423-11e9-8071-89c0c4052141"
          }
        ]
      },
      {
        "metadataDefinitionId": "3229e863-022b-4365-afe6-e9aa3807c386",
        "metadataDefinitionTableValue": [
          [
            {
              "metadataDefinitionId": "dfeb57c1-b149-4b15-920f-3f40ff0b959a",
              "metadataDefinitionValue": "Photo"
            },
            {
              "metadataDefinitionId": "dfeb57c1-b149-4b15-920f-3f40ff3423ad1",
              "metadataDefinitionValue": {
                "valueId": "3fa85f64-5717-4562-b3fc-2c963f66ada6"
              }
            },
            {
              "metadataDefinitionId": "3229e863-022b-4365-afe6-e9aa3807c386",
              "metadataDefinitionValue": "02/10/2021"
            }
          ]
        ]
      }
    ],
    "securityTemplateIds": [
      "7d6f4e30-f423-11e9-8071-89c0c4052141"
    ],
    "filename": "apples.jpg"
  }'

Responses

The Response Body is a JSON object

Bodyapplication/json
filenamestring

File Name

Example: "apples.jpg"
objectIdstring

Id of created object

Example: "e55bdb0c-022b-475d-9e26-9d74552e1e81"
fileIdstring

File Id

Example: "ecc0d79a-e5cc-41aa-852d-1d9e0da62739"
originalFileIdstring

Id of the original version of the file

Example: "ecc0d79a-e5cc-41aa-852d-1d9e0da62739"
urlstring(url)

Presigned URL to upload the Asset file

Example: "https://contentstore3.com/masters/919f33e2-dc03-4627-ab7b-642a5f1d11ae/apples.jpg?..."
Response
application/json
{ "filename": "apples.jpg", "objectId": "e55bdb0c-022b-475d-9e26-9d74552e1e81", "fileId": "ecc0d79a-e5cc-41aa-852d-1d9e0da62739", "originalFileId": "ecc0d79a-e5cc-41aa-852d-1d9e0da62739", "url": "https://contentstore3.com/masters/919f33e2-dc03-4627-ab7b-642a5f1d11ae/apples.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIAYNV%2F20210221%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20210221T023210Z&X-Amz-Expires=86400&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEKv%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCXVzLWVhc3QtMSJHMEUCIFz62IeetD0q9EPtTeRxCSZEcNMqsuGVqK9UmK&X-Amz-Signature=e03d60e8299af92664a0ea8f9be78c50c8dd28f88520b0c2b7d0073b36511ce5&X-Amz-SignedHeaders=host%3Bx-amz-meta-objectid&x-amz-meta-objectid=2c1d0732-31a7-4800-bbd7-3fb05c222549" }

Bulk edit one or more Assets.

Request

Perform metadata edits and/or reassign Security Templates to one or more Assets. Assets are identified by Object ID. If multiple Assets are specified, the same metadata and/or security edits will be applied to all Assets in the request.

Each Metadata Attribute is identified by a Metadata Definition ID.

The user performing the bulk edit must have the Edit Metadata permission granted on each Asset being edited.

Security
ApiKeyAuth or BasicAuth
Headers
X-API-Keystringrequired

Customer-specific API key required to invoke API.

Authorizationstringrequired

Provided by Authentication Token creation operation

AccessTokenstringrequired

JWT token provided by Authentication Token creation operation.

Content-Typestringrequired
Value"application/json"
Bodyapplication/jsonrequired

The Request Body must be a JSON object. The object must contain metadata and/or securityTemplateIds as well as an array of objectIds.

metadataTemplateIdstring(uuid)required

Metadata Template ID to assign to the edited Assets.

Example: "ea6eb24d-adef-4080-bd02-f64f567c437f"
metadataDocumentArray of AssetBulkEditStringValue (object) or AssetBulkEditDateValue (object) or AssetBulkEditRestrictedVocabularyValue (object) or AssetBulkEditMultiValue (object) or AssetBulkEditGridValue (object)

An array of metadata attribute operations

objectIdsArray of strings(uuid)required

An array of Asset Object IDs

Example: ["e55bdb0c-022b-475d-9e26-9d74552e1e81"]
securityTemplateIdsArray of strings(uuid)

An array of Security Template IDs.

Example: ["a7099f22-4585-4533-88b4-a5e9dff928bc"]
securityTemplateOpstring

Operation to either replace or append to the currently assigned list of Security Template IDs with the provided list of Security Template IDs.

Enum"replace""append"
curl -i -X PATCH \
  https://enterprise.services.tenovos.io/content-store-v1/asset \
  -H 'AccessToken: string' \
  -H 'Authorization: string' \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: YOUR_API_KEY_HERE' \
  -d '{
    "metadataTemplateId": "ea6eb24d-adef-4080-bd02-f64f567c437f",
    "metadataDocument": [
      {
        "metadataDefinitionId": "dfeb57c1-b149-4b15-920f-3f40ff0b959a",
        "metadataDefinitionValue": "Photo",
        "operation": "replace"
      }
    ],
    "objectIds": [
      "e55bdb0c-022b-475d-9e26-9d74552e1e81"
    ],
    "securityTemplateIds": [
      "a7099f22-4585-4533-88b4-a5e9dff928bc"
    ],
    "securityTemplateOp": "replace"
  }'

Responses

Successful operation

Bodyapplication/json
jobIdstring(uuid)

Job ID of the submitted Bulk Edit Job.

Example: "5fa57655-c56c-47d3-a409-751fd5fd9735"
collectionIdstring(uuid)

Collection ID of the Collection containing the Assets being bulk edited.

Example: "7c6a6a3b-cac0-4218-be3b-515e0f9cb967"
Response
application/json
{ "jobId": "5fa57655-c56c-47d3-a409-751fd5fd9735", "collectionId": "7c6a6a3b-cac0-4218-be3b-515e0f9cb967" }

Get a single Asset.

Request

Retrieve an Asset by specifying an Object ID or File ID in the request path.

The user requesting the Asset must have view access to the Asset in order to retrieve the Asset.

Security
ApiKeyAuth or BasicAuth
Path
idstringrequired

Asset Object ID or File ID

Headers
X-API-Keystringrequired

Customer-specific API key required to invoke API.

Authorizationstringrequired

Provided by Authentication Token creation operation

AccessTokenstringrequired

JWT token provided by Authentication Token creation operation.

curl -i -X GET \
  'https://enterprise.services.tenovos.io/content-store-v1/asset/{id}' \
  -H 'AccessToken: string' \
  -H 'Authorization: string' \
  -H 'X-API-Key: YOUR_API_KEY_HERE'

Responses

Returns JSON object

Bodyapplication/json
createdBystring(uuid)

User ID who created this Asset

Example: "7d675ef0-f423-11e9-8071-89c0c405214e"
createdEpochinteger

Creation time in milliseconds

Example: 1608745510614
currentVersionstring

Current version flag

Enum"Y""N"
Example: "Y"
customerIdstring

Customer ID of Created By User's Account

Example: "123203455"
fileIdstring(uuid)

Asset File ID

filenamestring

Asset content file name

Example: "adventure-alps-beautiful-landscape-2444403.jpg"
fileStatestring

Asset content file state

Enum"available""recycle bin"
lastUpdatedByany(uuid)

User ID who last updated the asset

Example: "7d675ef0-f423-11e9-8071-89c0c40133ds"
lastUpdatedEpochinteger

Last update time in milliseconds

Example: 1612333543954
metadataArray of MetadataStringValue (object) or MetadataRestrictedVocabularyValue (object) or MetadataDateValue (object) or MetadataMultiValue (object) or MetadataGridValue (object)(MetadataDocument)

Array of metadata attributes

metadataDenormalizedobject

Metadata document is a flat list of metadata attributes and values, where values are either in text values or foreign keys / referential values

metadataStatestring

Asset metadata state

Enum"available""recycle bin"
Example: "available"
metadataTemplateIdstring(uuid)

Metadata Template ID

Example: "ea6eb24d-adef-4380-bd02-f64f567c437f"
objectIdstring(uuid)

Asset Object ID

Example: "e6f4bd5e-9bea-43cb-b15e-22582fa5322e"
objectTypestring

Asset Object type

Value"Asset"
Example: "Asset"
originalFileIdstring(uuid)

The ID of the original version of the file

Example: "003391e4-e78a-4186-b2d7-b5d4fcbe445d"
renditionsobject(AssetRenditions)

Renditions details

securityTemplateIdsArray of strings(uuid)

List of Security Template IDs

Example: ["7d6f4e30-f423-11e9-8071-89c0c4052156"]
securityDenormalizedArray of objects(AssetSecurityDenormalized)
technicalMetadataobject(AssetTechnicalMetadata)

Technical metadata about the asset

presignedURLstring

The URL to download the file. Populated for download requests.

linkTypestring
relationshipIdstring
secondaryIdstring
versionNumberintegerDeprecated

Asset version number

Response
application/json
{ "createdBy": "7d675ef0-f423-11e9-8071-89c0c405214e", "createdEpoch": 1608745510614, "currentVersion": "Y", "customerId": "123203455", "fileId": "a1c6a2ab-4b01-4253-b4c9-70e04b3b48fc", "filename": "adventure-alps-beautiful-landscape-2444403.jpg", "fileState": "available", "lastUpdatedBy": "7d675ef0-f423-11e9-8071-89c0c40133ds", "lastUpdatedEpoch": 1612333543954, "metadata": [ { … } ], "metadataDenormalized": {}, "metadataState": "available", "metadataTemplateId": "ea6eb24d-adef-4380-bd02-f64f567c437f", "objectId": "e6f4bd5e-9bea-43cb-b15e-22582fa5322e", "objectType": "Asset", "originalFileId": "003391e4-e78a-4186-b2d7-b5d4fcbe445d", "renditions": { "width": 4000, "imageThumb": "https://host.io/1571671854145/3a76743f-45f6-4d30-a7d4-05de2dc8c232/cc8f089a-1464-89d5-42f6-77217a9f09f2-200x200.png", "imagePreview": "https://host.io/1571671854145/3a76743f-45f6-4d30-a7d4-05de2dc8c232/cc8f089a-1464-42f6-89d5-77217a9f09f2-700x700.png", "fpo": "https://host.io/1571671854145/3a76743f-45f6-4d30-a7d4-05de2dc8c232/adventure-alps-beautiful-landscape-2444403-fpo.png", "imagePreviewLarge": "https://host.io/1571671854145/3a76743f-45f6-4d30-a7d4-05de2dc8c232/cc8f089a-1464-42f6-89d5-77217a9f09f2-1000x1000.png", "mezzaninePreview": "https://host.io/1571671854145/3a76743f-45f6-4d30-a7d4-05de2dc8c232/adventure-alps-beautiful-landscape-2444403-3000x3000.png", "height": 6000 }, "securityTemplateIds": [ "7d6f4e30-f423-11e9-8071-89c0c4052156" ], "securityDenormalized": [ { … } ], "technicalMetadata": { "tenovos_metadata": { … }, "image_metadata": { … } }, "versionNumber": 0, "presignedURL": "string", "linkType": "string", "relationshipId": "string", "secondaryId": "string" }

Authentication Operations

Invoke the Authentication API to generate, refresh, and revoke access tokens. An access token is required to perform any authorized API operation.

Operations

Collection Operations

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 shared users with permission.

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

Customer Operations

Invoke the Customer API to retrieve Customer account profile information.

Operations

Metadata Operations

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

Search Operations

Search for Collections by Collection name.

Perform Asset searches using keywords or Attribute-specific search terms using the Keyword Search endpoint.

Perform a scan on all assets based on search criteria using a cursor to page through the entire result set of assets.

Operations

Security Operations

Invoke the Metadata API to retrieve Security Template information to be applied to Assets during Asset creation or edit.

Operations

User Operations

Invoke the User API to retrieve User profile information.

Operations

Proof Operations

Operations

Cart Operations

Operations