Skip to main content
View as Markdown

Content Assignment (categoryEntry) - Content Management

Content Assignment (categoryEntry)​

Assign media entries to categories to organize content and enforce entitlement rules.

KalturaCategoryEntry Object​

FieldTypeDescription
categoryIdintegerCategory ID
entryIdstringEntry ID
statusinteger1 = PENDING, 2 = ACTIVE, 3 = DELETED, 4 = REJECTED
createdAtintegerUnix timestamp (read-only)
objectTypestringAlways "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):

FieldDescription
categoryIdEqualEntries in a specific category
categoryIdInEntries in multiple categories
entryIdEqualCategories for a specific entry
statusEqualFilter 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"