Content Assignment (categoryEntry) - Content Management
Content Assignment (categoryEntry)
Assign media entries to categories to organize content and enforce entitlement rules.
KalturaCategoryEntry Object
| Field | Type | Description |
|---|---|---|
categoryId | integer | Category ID |
entryId | string | Entry ID |
status | integer | 1 = PENDING, 2 = ACTIVE, 3 = DELETED, 4 = REJECTED |
createdAt | integer | Unix timestamp (read-only) |
objectType | string | Always "KalturaCategoryEntry" (read-only) |
Assign an Entry to a Category
curl -X POST "$KALTURA_SERVICE_URL/service/categoryEntry/action/add" \
-d "ks=$KALTURA_KS" \
-d "format=1" \
-d "categoryEntry[objectType]=KalturaCategoryEntry" \
-d "categoryEntry[categoryId]=$CATEGORY_ID" \
-d "categoryEntry[entryId]=$KALTURA_ENTRY_ID"
Response: Full KalturaCategoryEntry object with status=2 (ACTIVE), or status=1 (PENDING) if the category has moderation enabled and the user lacks MODERATOR permission.
List Category Entries
curl -X POST "$KALTURA_SERVICE_URL/service/categoryEntry/action/list" \
-d "ks=$KALTURA_KS" \
-d "format=1" \
-d "filter[objectType]=KalturaCategoryEntryFilter" \
-d "filter[categoryIdEqual]=$CATEGORY_ID" \
-d "pager[pageSize]=50"
Filter fields (KalturaCategoryEntryFilter):
| Field | Description |
|---|---|
categoryIdEqual | Entries in a specific category |
categoryIdIn | Entries in multiple categories |
entryIdEqual | Categories for a specific entry |
statusEqual | Filter by status (1=PENDING, 2=ACTIVE, 3=DELETED, 4=REJECTED) |
orderBy | +createdAt, -createdAt |
Delete a Category Entry
curl -X POST "$KALTURA_SERVICE_URL/service/categoryEntry/action/delete" \
-d "ks=$KALTURA_KS" \
-d "format=1" \
-d "entryId=$KALTURA_ENTRY_ID" \
-d "categoryId=$CATEGORY_ID"
Removes the entry from the category. The entry itself is not deleted.
Moderate Category Entries
When a category has moderation=1, new entry assignments enter PENDING status. Moderators and managers can approve or reject. For full moderation workflows including user flagging and AI-powered content screening, see the Moderation API Guide.
Activate (approve) a pending entry:
curl -X POST "$KALTURA_SERVICE_URL/service/categoryEntry/action/activate" \
-d "ks=$KALTURA_KS" \
-d "format=1" \
-d "entryId=$KALTURA_ENTRY_ID" \
-d "categoryId=$CATEGORY_ID"
Reject a pending entry:
curl -X POST "$KALTURA_SERVICE_URL/service/categoryEntry/action/reject" \
-d "ks=$KALTURA_KS" \
-d "format=1" \
-d "entryId=$KALTURA_ENTRY_ID" \
-d "categoryId=$CATEGORY_ID"
Sync Privacy Context
Synchronize the privacy context for entries in a category after changing the category's privacyContext:
curl -X POST "$KALTURA_SERVICE_URL/service/categoryEntry/action/syncPrivacyContext" \
-d "ks=$KALTURA_KS" \
-d "format=1" \
-d "entryId=$KALTURA_ENTRY_ID" \
-d "categoryId=$CATEGORY_ID"