Content Management
Batch actions and bulk metadata updates for content items, tag and collection management, related content, content definitions, and lookup values.
Content Management
Overview
The Content Management API provides endpoints for managing content metadata including tags, collections, related content, content definitions, batch actions, and bulk metadata updates.
Base Routes
| API | Route Prefix | Description |
|---|---|---|
| Admin | /admin/content | Batch actions and bulk metadata updates for content items |
| Portal | /content | Tag, collection, and related content management |
| Portal | /contentDefinition | Content definition schema retrieval |
| Portal | /lookup | System lookup values |
Content Batch Actions (Admin)
Execute batch operations on content items by action name:
POST /admin/content/{actionName}
Request body: BatchModel { targetIds, contentDefinitionId, actionArguments }
Response: BatchResultModel
The action name in the route is matched case-insensitively against the BatchActions enum. The reserved "Asset Metadata" content definition cannot be targeted.
Common content batch actions include Delete, Archive, Restore, Duplicate, Move, Copy, Index, Reprocess, AddTag, RemoveTag, AddCollection, and RemoveCollection.
Bulk Metadata Updates (Admin)
Apply metadata changes (tags, collections, related content, custom metadata) to multiple content items at once:
POST /admin/content/bulk-metadata-update
Request body: ContentBulkMetadataUpdateModel { contentDefinitionId, contentIds, propertyChanges }
Query: ?background=false
Response: 200 OK
When the number of items exceeds the configured threshold or background=true, the operation is automatically queued for asynchronous batch processing. Otherwise, updates are applied inline.
Tag Management (Portal)
| Endpoint | Method | Description |
|---|---|---|
/content/tag | POST | Add tag associations to content items |
/content/tag/delete | POST | Remove tag associations from content items |
Both endpoints accept ListModel<TagContentModel> and return BatchResultModel.
Tags are associated with content items via a many-to-many relationship. Removing a tag association does not delete the tag itself. If a tag does not exist and the createNew flag is set, it is created automatically.
Collection Management (Portal)
| Endpoint | Method | Description |
|---|---|---|
/content/collection | POST | Add collection associations to content items |
/content/collection/delete | POST | Remove collection associations from content items |
Both endpoints accept ListModel<CollectionContentModel> and return BatchResultModel.
Collections group content items for organizational purposes. Removing a collection association does not delete the collection itself.
Related Content (Portal)
| Endpoint | Method | Description |
|---|---|---|
/content/related | POST | Create related content links between items |
/content/related/delete | POST | Remove related content links |
Both endpoints accept ListModel<RelatedContentModel> and return BatchResultModel.
Related content creates semantic relationships between items (e.g., "see also", "part of series").
Content Definitions (Portal)
GET /contentDefinition/{id}
Response: ContentDefinitionModel
Retrieves the content definition schema by ID. Content definitions describe the structure and fields of a content type. A security check verifies the caller has permission to access the requested definition.
Returns 404 if the definition does not exist, or 400 if the caller lacks permission.
Lookups (Portal)
GET /lookup/{lookupType}?lookupKey=...
Response: ListResultModel<LookupModel>
Retrieves system-defined lookup values by type. Lookups include reference data such as asset statuses, batch actions, content types, and other enumerated values. An optional lookupKey filter can narrow results within a lookup type.
Common Error Responses
| Status Code | Description |
|---|---|
| 400 | Bad Request - Missing or invalid parameters, reserved content definition targeted |
| 401 | Unauthorized - Missing or invalid Bearer token |
| 404 | Not Found - Content definition or resource not found |
