canonical: https://jentic.com/apis/avid.com/avid

# Avid CTMS API

The Avid CTMS (Common Type and Method System) API is a HAL-based REST interface for querying and managing media assets - video, audio, metadata, and folder structures - inside Avid MediaCentral environments. It exposes a unified object model across MediaCentral system types (Interplay MAM, Interplay Production, MediaCentral UX) so integrators can browse locations, search assets, run exports, and resolve service roots without writing per-system clients. Authentication uses OAuth 2.0 client-credentials issuing bearer tokens via /auth/v0/token.

## For AI agents

Browse, search, and export video and audio assets across Avid MediaCentral systems through a unified HAL+JSON interface for media operations workflows.

## Scope

Does not handle non-linear editing, video transcoding, or playout - use for cross-system media search, browsing, and export orchestration only.

## Capabilities

- Discover available MediaCentral service roots and system types via /avid.ctms.registry endpoints
- Issue an OAuth 2.0 bearer token for CTMS access through /auth/v0/token
- Browse the location hierarchy of media items, folders, and root items inside a CTMS realm
- Search media assets across MAM, Production, and UX systems with shared filter semantics
- Trigger export operations on selected assets through the Export endpoints

## Use cases

### Cross-System Media Search

Broadcasters and post-production houses operate multiple Avid systems (MAM, Production, UX) and use the CTMS search endpoint to query them with a shared filter syntax. The /search endpoint returns HAL-linked results across realms, replacing custom UIs that previously had to be written per-system.

Example prompt: Call /{serviceType};version=0;realm={realm}/search with a filter for clips tagged 'sports-highlights' created in the last 7 days, then return the asset IDs and locations

### Service-Root Discovery

Integrations bootstrap by hitting /avid.ctms.registry;version=0/serviceroots to discover which Avid systems are available, what type each one is, and which CTMS service contracts they expose. This avoids hard-coding system URLs and lets workflows adapt as new MediaCentral instances come online.

Example prompt: Call GET /avid.ctms.registry;version=0/serviceroots, list each service root's systemType, and return the service URLs the agent can call against

### Location Browsing and Export

Operators browse the folder/location hierarchy of a realm using /locations endpoints, select items, and trigger export jobs through the Export tag. CTMS keeps the browse-then-export pattern consistent across MAM and Production so the same agent code works against either backend.

Example prompt: Browse /{serviceType};version=0;realm={realm}/locations/items to find items under the 'Daily Rushes' folder, then submit an export request for the selected item IDs

### Agent-Driven Newsroom Workflows via Jentic

AI agents in newsroom and content-supply workflows call CTMS through Jentic to find and prepare media on producer cues. Jentic exposes the 12 CTMS operations as discoverable tools so the agent can resolve service roots, search assets, and queue exports from a single conversational request.

Example prompt: Given producer cue 'pull all Champions League final clips from yesterday', search Jentic for 'search Avid CTMS', call the search endpoint with the appropriate filter, and queue an export of the matching assets

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | /auth/v0/token | Issue an OAuth 2.0 bearer token |
| GET | /avid.ctms.registry;version=0/serviceroots | List available service roots |
| GET | /avid.ctms.registry;version=0/serviceroots/{systemType} | List service roots for a specific system type |
| GET | /{serviceType};version={version};realm={realm}/locations/items | Browse location items |
| GET | /{serviceType};version={version};realm={realm}/search | Search assets in a realm |
| GET | /{serviceType};version={version};realm={realm}/search/filters | List available search filters |

## Key resources

- **Authentication** — OAuth 2.0 token endpoint and bearer-token flow
- **Registry** — Service-root discovery across MediaCentral systems
- **Locations** — Folder and item hierarchy within a CTMS realm
- **Search** — Cross-realm search with shared filter semantics
- **Export** — Export operations on selected assets

## Why Jentic

- **Setup:** Wiring the Avid CTMS API by hand means running its OAuth2 client-credentials exchange at /auth/v0/token, resolving the runtime host and HAL registry service roots, and filling templated path segments for serviceType, version, and realm on every call. Through Jentic you install once, import the CTMS API from the API Directory, store the OAuth client credentials once, and your agent calls it.
- **Permission scoping:** CTMS routes carry serviceType, version, and realm as URL path parameters, so a rule can pin the agent to a specific service and realm. You choose which operations it may call, such as searching or browsing media items, so export orchestration is only available if you include it.
- **Credential handling:** Your Avid CTMS OAuth client credentials are stored once, encrypted, by your own Jentic One instance and injected at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'search media assets' or 'browse items in a location', and Jentic returns the matching CTMS operation with its input schema, including the templated serviceType, version, and realm parameters, so the agent calls the right endpoint without walking the HAL registry by hand.

## Related APIs

- **Vimeo** — Pair Avid CTMS asset management with Vimeo for downstream distribution and viewer playback.
- **Cloudinary** — Cloudinary handles transformations and delivery of media that Avid CTMS produced internally.
- **Mux** — Mux handles streaming-quality video delivery and analytics downstream of an Avid post-production pipeline.

## FAQ

### What authentication does the Avid CTMS API use?

Avid CTMS uses OAuth 2.0 client-credentials. POST to /auth/v0/token with your client credentials to receive a bearer token, then send it on subsequent requests. Through Jentic, your CTMS client credentials live in your Jentic One instance and tokens are issued and refreshed automatically.

### Can I search across multiple MediaCentral systems with the Avid CTMS API?

Yes. The CTMS contract is shared across MAM, Production, and UX, so the same /search endpoint works against any realm exposed in /avid.ctms.registry serviceroots. Filter semantics are shared so cross-system queries do not need per-system code paths.

### What are the rate limits for the Avid CTMS API?

Rate limits depend on the deployed Avid environment rather than a global Avid policy - CTMS is typically run on customer-controlled MediaCentral installations. Coordinate with the system administrator on call rates and back off on HTTP 429 if returned.

### How do I run an asset search through Jentic?

Search Jentic for 'search Avid media assets', load the schema for GET /{serviceType};version={version};realm={realm}/search, and execute with the realm and filter arguments. Jentic returns the matching CTMS operation directly so the agent skips browsing the HAL contracts.

### How do I discover which Avid systems are available?

Call GET /avid.ctms.registry;version=0/serviceroots to list the available service roots and their system types (MAM, Production, UX). Use GET /avid.ctms.registry;version=0/serviceroots/{systemType} to filter to one system type when you already know which kind you need.

### Is the Avid CTMS API free to use?

CTMS is part of the Avid MediaCentral platform and is licensed alongside the underlying MediaCentral installation. There is no separate per-call fee - costs are governed by your Avid contract and deployment scale.

### Can I limit what my agent is allowed to do with the Avid CTMS API?

Yes. Because you run Jentic One yourself, your own rules decide which CTMS operations and which credentials the agent may use. Since serviceType, version, and realm are carried as URL path parameters, you can pin the agent to a specific service and realm, and you choose which operations it may call, such as searching assets or browsing location items. Export orchestration is only available to the agent if you include those operations in the rules you set.
