Category Moderation - Content Moderation
Category Moderation
Categories (channels) can require moderation independently of entry-level moderation. When a category has moderation=1, entries added to that category start with categoryEntry.status = PENDING and must be explicitly activated.
categoryEntry.activate — Approve Entry in Category
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"
categoryEntry.reject — Reject Entry in Category
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"
Entry Moderation vs. Category Moderation
| Feature | Entry Moderation | Category Moderation |
|---|---|---|
| Scope | Global — affects playback everywhere | Per-category — affects visibility in that category only |
| Status field | entry.moderationStatus | categoryEntry.status |
| Default for new content | AUTO_APPROVED (6) or PENDING_MODERATION (1) | PENDING if category has moderation=1 |
| User flagging | baseEntry.flag creates flags | Not supported — admin-only |
| Actions | baseEntry.approve / reject | categoryEntry.activate / reject |
| Playback impact | Blocks playback entirely | Entry still plays via direct link; hidden from category listing |
| AI integration | Manual bridge via webhook | Direct auto-action from REACH task results |
An entry can be approved globally (moderationStatus=APPROVED) but still pending in a specific category. The two systems are independent — approving an entry does not activate it in moderated categories, and vice versa.