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 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

(NEW!) List Metadata Tables (Paginated)

Request

Retrieve a paginated, searchable list of metadata tables for UI consumption. Column detail is excluded to keep this endpoint lightweight; only a count (fieldCount) is returned here, with full column detail available via GET /metadata/tables/{id}.

Defaults:

  • sortField defaults to name.
  • order defaults to asc.
  • from defaults to 0.
  • limit defaults to 100, maximum 100.

Business Rules:

  • searchTerm is a case-insensitive partial match on table name.
  • inUse accepts a boolean (true/false — aggregate: used anywhere at all) or one of metadataGroups, metadataTemplates, filtering to tables referenced in that specific usage category. Omitted applies no filter. inUse and isSmartTable are both valid sortField values.
  • isSmartTable filters to smart or standard tables only; omitted applies no filter.
  • includeSystem defaults to false. When true, also returns read-only, platform-owned tables used internally by various platform functionalities, alongside user-created ones. System tables cannot be edited or deleted by users.
  • visible and tableNameVisible are excluded entirely from this response — both are dead fields (the admin screen never lets anyone set either to anything but its fixed default).
  • usedIn is shaped { metadataGroups: [], metadataTemplates: [] } and never includes an attributes category — attributes never reference a table; a table contains attributes as its columns, never the reverse.

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

Security
ApiKeyAuth or BasicAuth
Query
searchTermstring

Case-insensitive partial match on table name.

inUsestring

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

Enum"true""false""metadataGroups""metadataTemplates"
Examples:

Returns only tables referenced directly in at least one Group.

inUse=metadataGroups

Returns only tables referenced directly in at least one Template.

inUse=metadataTemplates
isSmartTableboolean

Filters to smart (true) or standard (false) tables only. Omitted applies no filter.

includeSystemboolean

When true, also returns read-only, platform-owned tables used internally by various platform functionalities, in addition to user-created ones. System tables cannot be edited or deleted by users. Defaults to false.

Default false
frominteger

Result offset from which to start. Defaults to 0.

Default 0
Example: from=0
limitinteger

Number of results to return per page. Defaults to 100, maximum 100.

Default 100
Example: limit=100
sortFieldstring

Field to sort results by. Defaults to name.

Default "name"
Enum"name""createdEpoch""lastUpdatedEpoch""inUse""isSmartTable"
orderstring

Sort direction. Defaults to asc.

Default "asc"
Enum"asc""desc"
Headers
Authorizationstringrequired

Provided by Authentication Token creation operation.

curl -i -X GET \
  'https://api.uat.tenovos.io/v1/metadata/tables?searchTerm=string&inUse=true&isSmartTable=true&includeSystem=false&from=0&limit=100&sortField=name&order=asc' \
  -H 'Authorization: string' \
  -H 'X-API-Key: YOUR_API_KEY_HERE'

Responses

Paginated list of metadata tables.

Bodyapplication/json
hitCountinteger

Total number of tables matching the search criteria.

Example: 24
resultsArray of objects

Array of table summary objects.

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

(NEW!) Create Metadata Table

Request

Create a new metadata table in a single call.

Defaults:

  • isSmartTable defaults to false.

Business Rules:

  • tableFields must contain between 1 and 12 effective columns — a plain or controlled-vocabulary field counts as 1, a cascade field counts as its number of levels. Example: a table with 9 plain fields can add one more cascade only if that cascade has 3 or fewer levels.
  • Each tableFields[].fieldId must reference an existing attribute or cascade (never another table); no two entries may reference the same fieldId.
  • isSingleRow and isSmartTable are mutually exclusive and permanently fixed once set.
  • isSmartTable is subject to a 25-per-customer smart-table cap, enforced at creation time.
  • A duplicate name/searchField is rejected with 409.

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

Security
ApiKeyAuth or BasicAuth
Headers
Authorizationstringrequired

Provided by Authentication Token creation operation.

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

JSON object defining the table to create. Required: name, isSingleRow, tableFields. Optional: isSmartTable (defaults to false).

namestringrequired

Display name for the new table. Maximum 32 characters.

Example: "Store Locations Table"
isSingleRowbooleanrequired

Whether the table is single-row. Permanent once set.

Example: false
isSmartTableboolean

Whether the table is a smart table. Defaults to false. Permanent once set; mutually exclusive with isSingleRow: true. Subject to a 25-per-customer smart-table cap, enforced at creation time.

Default false
Example: false
tableFieldsArray of objectsrequired

Columns for the table. Between 1 and 12 effective columns — a plain or controlled-vocabulary field counts as 1, a cascade field counts as its number of levels. Each fieldId must reference an existing attribute or cascade (never another table); no two entries may reference the same fieldId.

tableFields[].​fieldOrderintegerrequired

Display order.

Example: 1
tableFields[].​fieldIdstring(uuid)required

Id of the existing attribute or cascade backing this column.

Example: "d3f8a1c2-6b4e-4a17-9c3f-2e7b5d0a8f61"
curl -i -X POST \
  https://api.uat.tenovos.io/v1/metadata/tables \
  -H 'Authorization: string' \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: YOUR_API_KEY_HERE' \
  -d '{
    "name": "Store Locations Table",
    "isSingleRow": false,
    "isSmartTable": false,
    "tableFields": [
      {
        "fieldOrder": 1,
        "fieldId": "d3f8a1c2-6b4e-4a17-9c3f-2e7b5d0a8f61"
      },
      {
        "fieldOrder": 2,
        "fieldId": "b7e41f2a-6c9d-4a17-8f3b-2d5c8a0e3f61"
      },
      {
        "fieldOrder": 3,
        "fieldId": "f4a92e6d-3c81-4f5a-9d27-6b3e8a1c4f90"
      }
    ]
  }'

Responses

Created. Same shape as GET /metadata/tables/{id}, usedIn empty.

Bodyapplication/json
idstring(uuid)

Unique ID of the table.

Example: "e6a91f4c-8b2d-4a17-9c6e-3f5a8d1b7c92"
namestring

Display name of the table.

Example: "Store Locations Table"
searchFieldstring

System-generated slug. Permanent once created.

Example: "store_locations_table"
isSingleRowboolean

Fixed at creation.

Example: false
isSmartTableboolean

Fixed at creation. Remains false while a standard-to-smart conversion is pending (see convertTo).

Example: false
convertTostring or null

Set to smart while a standard-to-smart conversion is pending "Apply Changes"; null otherwise.

Value"smart"
Example: null
featuredboolean or null

System-assigned. null if never set. Blocks deletion when true.

Example: null
tableFieldsArray of objects

Ordered columns. Stays flat even for a cascade-backed column — no nested expansion of the cascade's own levels here.

createdBystring(uuid)

User-profile id of the table's creator.

Example: "8f2a5c91-4e6d-4b83-9a17-6c0d3e8b2f45"
createdEpochinteger

Unix timestamp (ms) of creation.

Example: 1772704800000
createdDatestring(date-time)

ISO 8601 creation date.

Example: "2026-03-05T10:00:00Z"
lastUpdatedBystring(uuid)

User-profile id of the last user to update the table.

Example: "8f2a5c91-4e6d-4b83-9a17-6c0d3e8b2f45"
lastUpdatedEpochinteger

Unix timestamp (ms) of the last update.

Example: 1773325200000
lastUpdatedDatestring(date-time)

ISO 8601 last-updated date.

Example: "2026-03-12T14:20:00Z"
usedInobject

Where the table is currently referenced. Does not include an attributes category — attributes never reference a table; a table contains attributes as its columns, never the reverse.

Response
application/json
{ "id": "e6a91f4c-8b2d-4a17-9c6e-3f5a8d1b7c92", "name": "Store Locations Table", "searchField": "store_locations_table", "isSingleRow": false, "isSmartTable": false, "convertTo": null, "featured": null, "tableFields": [ { … }, { … }, { … } ], "createdBy": "8f2a5c91-4e6d-4b83-9a17-6c0d3e8b2f45", "createdEpoch": 1772704800000, "createdDate": "2026-03-05T10:00:00Z", "lastUpdatedBy": "8f2a5c91-4e6d-4b83-9a17-6c0d3e8b2f45", "lastUpdatedEpoch": 1772704800000, "lastUpdatedDate": "2026-03-05T10:00:00Z", "usedIn": { "metadataGroups": [], "metadataTemplates": [] } }

(NEW!) Get Metadata Table

Request

Retrieve a single metadata table by its ID, returning the same fields as the list endpoint (minus fieldCount) plus the full, flat list of columns (tableFields), each denormalized with a type indicator so the UI can render the right control without a second lookup.

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

Security
ApiKeyAuth or BasicAuth
Path
idstring(uuid)required

The unique ID of the table to retrieve.

Example: e6a91f4c-8b2d-4a17-9c6e-3f5a8d1b7c92
Headers
Authorizationstringrequired

Provided by Authentication Token creation operation.

curl -i -X GET \
  https://api.uat.tenovos.io/v1/metadata/tables/e6a91f4c-8b2d-4a17-9c6e-3f5a8d1b7c92 \
  -H 'Authorization: string' \
  -H 'X-API-Key: YOUR_API_KEY_HERE'

Responses

The requested metadata table.

Bodyapplication/json
idstring(uuid)

Unique ID of the table.

Example: "e6a91f4c-8b2d-4a17-9c6e-3f5a8d1b7c92"
namestring

Display name of the table.

Example: "Store Locations Table"
searchFieldstring

System-generated slug. Permanent once created.

Example: "store_locations_table"
isSingleRowboolean

Fixed at creation.

Example: false
isSmartTableboolean

Fixed at creation. Remains false while a standard-to-smart conversion is pending (see convertTo).

Example: false
convertTostring or null

Set to smart while a standard-to-smart conversion is pending "Apply Changes"; null otherwise.

Value"smart"
Example: null
featuredboolean or null

System-assigned. null if never set. Blocks deletion when true.

Example: null
tableFieldsArray of objects

Ordered columns. Stays flat even for a cascade-backed column — no nested expansion of the cascade's own levels here.

createdBystring(uuid)

User-profile id of the table's creator.

Example: "8f2a5c91-4e6d-4b83-9a17-6c0d3e8b2f45"
createdEpochinteger

Unix timestamp (ms) of creation.

Example: 1772704800000
createdDatestring(date-time)

ISO 8601 creation date.

Example: "2026-03-05T10:00:00Z"
lastUpdatedBystring(uuid)

User-profile id of the last user to update the table.

Example: "8f2a5c91-4e6d-4b83-9a17-6c0d3e8b2f45"
lastUpdatedEpochinteger

Unix timestamp (ms) of the last update.

Example: 1773325200000
lastUpdatedDatestring(date-time)

ISO 8601 last-updated date.

Example: "2026-03-12T14:20:00Z"
usedInobject

Where the table is currently referenced. Does not include an attributes category — attributes never reference a table; a table contains attributes as its columns, never the reverse.

Response
application/json
{ "id": "e6a91f4c-8b2d-4a17-9c6e-3f5a8d1b7c92", "name": "Store Locations Table", "searchField": "store_locations_table", "isSingleRow": false, "isSmartTable": false, "convertTo": null, "featured": null, "tableFields": [ { … }, { … }, { … } ], "createdBy": "8f2a5c91-4e6d-4b83-9a17-6c0d3e8b2f45", "createdEpoch": 1772704800000, "createdDate": "2026-03-05T10:00:00Z", "lastUpdatedBy": "8f2a5c91-4e6d-4b83-9a17-6c0d3e8b2f45", "lastUpdatedEpoch": 1773325200000, "lastUpdatedDate": "2026-03-12T14:20:00Z", "usedIn": { "metadataGroups": [], "metadataTemplates": [ … ] } }

(NEW!) Update Metadata Table

Request

Update an existing table's name and/or its column list. searchField, isSingleRow, isSmartTable, and featured are permanently fixed once set and are never accepted here — featured in particular exists specifically to protect a table from deletion; if it could be toggled here, that protection would mean nothing.

Business Rules:

  • At least one of name, tableFields is required.
  • name is capped at 32 characters and does not regenerate searchField.
  • When tableFields is provided, it fully replaces the existing columns — same effective-12-column, valid-reference, and no-duplicate-fieldId rules as create.
  • A new name colliding with an existing table's name/searchField is rejected with 409.

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

Security
ApiKeyAuth or BasicAuth
Path
idstring(uuid)required

The unique ID of the table to update.

Example: e6a91f4c-8b2d-4a17-9c6e-3f5a8d1b7c92
Headers
Authorizationstringrequired

Provided by Authentication Token creation operation.

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

JSON object updating the table. At least one of name, tableFields is required. searchField, isSingleRow, isSmartTable, and featured are never accepted.

namestring

New display name for the table. Maximum 32 characters. Does not regenerate searchField.

Example: "Store Locations Table (US)"
tableFieldsArray of objects

Full replacement of the column list — not a diff. Same effective-column-count, valid-reference, and no-duplicate-fieldId rules as create.

curl -i -X PATCH \
  https://api.uat.tenovos.io/v1/metadata/tables/e6a91f4c-8b2d-4a17-9c6e-3f5a8d1b7c92 \
  -H 'Authorization: string' \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: YOUR_API_KEY_HERE' \
  -d '{
    "name": "Store Locations Table (US)"
  }'

Responses

Updated. Same shape as GET /metadata/tables/{id}, lastUpdated* refreshed; createdBy/createdEpoch unchanged.

Bodyapplication/json
idstring(uuid)

Unique ID of the table.

Example: "e6a91f4c-8b2d-4a17-9c6e-3f5a8d1b7c92"
namestring

Display name of the table.

Example: "Store Locations Table"
searchFieldstring

System-generated slug. Permanent once created.

Example: "store_locations_table"
isSingleRowboolean

Fixed at creation.

Example: false
isSmartTableboolean

Fixed at creation. Remains false while a standard-to-smart conversion is pending (see convertTo).

Example: false
convertTostring or null

Set to smart while a standard-to-smart conversion is pending "Apply Changes"; null otherwise.

Value"smart"
Example: null
featuredboolean or null

System-assigned. null if never set. Blocks deletion when true.

Example: null
tableFieldsArray of objects

Ordered columns. Stays flat even for a cascade-backed column — no nested expansion of the cascade's own levels here.

createdBystring(uuid)

User-profile id of the table's creator.

Example: "8f2a5c91-4e6d-4b83-9a17-6c0d3e8b2f45"
createdEpochinteger

Unix timestamp (ms) of creation.

Example: 1772704800000
createdDatestring(date-time)

ISO 8601 creation date.

Example: "2026-03-05T10:00:00Z"
lastUpdatedBystring(uuid)

User-profile id of the last user to update the table.

Example: "8f2a5c91-4e6d-4b83-9a17-6c0d3e8b2f45"
lastUpdatedEpochinteger

Unix timestamp (ms) of the last update.

Example: 1773325200000
lastUpdatedDatestring(date-time)

ISO 8601 last-updated date.

Example: "2026-03-12T14:20:00Z"
usedInobject

Where the table is currently referenced. Does not include an attributes category — attributes never reference a table; a table contains attributes as its columns, never the reverse.

Response
application/json
{ "id": "e6a91f4c-8b2d-4a17-9c6e-3f5a8d1b7c92", "name": "Store Locations Table", "searchField": "store_locations_table", "isSingleRow": false, "isSmartTable": false, "convertTo": null, "featured": null, "tableFields": [ { … } ], "createdBy": "8f2a5c91-4e6d-4b83-9a17-6c0d3e8b2f45", "createdEpoch": 1772704800000, "createdDate": "2026-03-05T10:00:00Z", "lastUpdatedBy": "8f2a5c91-4e6d-4b83-9a17-6c0d3e8b2f45", "lastUpdatedEpoch": 1773325200000, "lastUpdatedDate": "2026-03-12T14:20:00Z", "usedIn": { "metadataGroups": [ … ], "metadataTemplates": [ … ] } }

(NEW!) Delete Metadata Table

Request

Permanently remove a metadata table by its ID. Deletion is blocked if the table is featured, and blocked if it is still referenced by any group or template.

Business Rules:

  • Checks run in this order: not found, then featured, then in-use.

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

Security
ApiKeyAuth or BasicAuth
Path
idstring(uuid)required

The unique ID of the table to delete.

Example: e6a91f4c-8b2d-4a17-9c6e-3f5a8d1b7c92
Headers
Authorizationstringrequired

Provided by Authentication Token creation operation.

curl -i -X DELETE \
  https://api.uat.tenovos.io/v1/metadata/tables/e6a91f4c-8b2d-4a17-9c6e-3f5a8d1b7c92 \
  -H 'Authorization: string' \
  -H 'X-API-Key: YOUR_API_KEY_HERE'

Responses

No Content. The table has been permanently deleted.

Response
No content

(NEW!) Convert Metadata Table to Smart Table

Request

Stage a standard table for one-way conversion to a smart table. This endpoint does not perform the search-index remapping migration itself — that happens later, generically, when the admin applies changes in the metadata admin screen. Conversion is irreversible once it completes, which is why it's its own deliberate endpoint rather than something that could happen as a side effect of a routine field update via PATCH /metadata/tables/{id}.

Business Rules:

  • isSingleRow tables cannot be converted.
  • At least one column, directly or via a cascade level, must be facetable.
  • Subject to the same 25-per-customer smart-table cap enforced at creation.
  • A table that's already smart, or already has a conversion pending, is rejected with 409.

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

Security
ApiKeyAuth or BasicAuth
Path
idstring(uuid)required

The unique ID of the table to convert.

Example: e6a91f4c-8b2d-4a17-9c6e-3f5a8d1b7c92
Headers
Authorizationstringrequired

Provided by Authentication Token creation operation.

curl -i -X POST \
  https://api.uat.tenovos.io/v1/metadata/tables/e6a91f4c-8b2d-4a17-9c6e-3f5a8d1b7c92/convert-to-smart \
  -H 'Authorization: string' \
  -H 'X-API-Key: YOUR_API_KEY_HERE'

Responses

Conversion staged. Same shape as GET /metadata/tables/{id}, with convertTo set to smart; isSmartTable remains false until the reindex completes separately via "Apply Changes".

Bodyapplication/json
idstring(uuid)

Unique ID of the table.

Example: "e6a91f4c-8b2d-4a17-9c6e-3f5a8d1b7c92"
namestring

Display name of the table.

Example: "Store Locations Table"
searchFieldstring

System-generated slug. Permanent once created.

Example: "store_locations_table"
isSingleRowboolean

Fixed at creation.

Example: false
isSmartTableboolean

Fixed at creation. Remains false while a standard-to-smart conversion is pending (see convertTo).

Example: false
convertTostring or null

Set to smart while a standard-to-smart conversion is pending "Apply Changes"; null otherwise.

Value"smart"
Example: null
featuredboolean or null

System-assigned. null if never set. Blocks deletion when true.

Example: null
tableFieldsArray of objects

Ordered columns. Stays flat even for a cascade-backed column — no nested expansion of the cascade's own levels here.

createdBystring(uuid)

User-profile id of the table's creator.

Example: "8f2a5c91-4e6d-4b83-9a17-6c0d3e8b2f45"
createdEpochinteger

Unix timestamp (ms) of creation.

Example: 1772704800000
createdDatestring(date-time)

ISO 8601 creation date.

Example: "2026-03-05T10:00:00Z"
lastUpdatedBystring(uuid)

User-profile id of the last user to update the table.

Example: "8f2a5c91-4e6d-4b83-9a17-6c0d3e8b2f45"
lastUpdatedEpochinteger

Unix timestamp (ms) of the last update.

Example: 1773325200000
lastUpdatedDatestring(date-time)

ISO 8601 last-updated date.

Example: "2026-03-12T14:20:00Z"
usedInobject

Where the table is currently referenced. Does not include an attributes category — attributes never reference a table; a table contains attributes as its columns, never the reverse.

Response
application/json
{ "id": "e6a91f4c-8b2d-4a17-9c6e-3f5a8d1b7c92", "name": "Store Locations Table", "searchField": "store_locations_table", "isSingleRow": false, "isSmartTable": false, "convertTo": "smart", "featured": null, "tableFields": [ { … } ], "createdBy": "8f2a5c91-4e6d-4b83-9a17-6c0d3e8b2f45", "createdEpoch": 1772704800000, "createdDate": "2026-03-05T10:00:00Z", "lastUpdatedBy": "8f2a5c91-4e6d-4b83-9a17-6c0d3e8b2f45", "lastUpdatedEpoch": 1773325200000, "lastUpdatedDate": "2026-03-12T14:20:00Z", "usedIn": { "metadataGroups": [], "metadataTemplates": [] } }

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