Moderator Actions - Content Moderation
Moderator Actions
baseEntry.approve — Approve an Entry
curl -X POST "$KALTURA_SERVICE_URL/service/baseEntry/action/approve" \
-d "ks=$KALTURA_KS" \
-d "format=1" \
-d "entryId=$KALTURA_ENTRY_ID"
Sets moderationStatus to APPROVED (2), resets moderationCount to 0, and marks all pending flags as MODERATED. The entry becomes playable and visible in default list results.
Permission: Requires CONTENT_MODERATE_APPROVE_REJECT.
baseEntry.reject — Reject an Entry
curl -X POST "$KALTURA_SERVICE_URL/service/baseEntry/action/reject" \
-d "ks=$KALTURA_KS" \
-d "format=1" \
-d "entryId=$KALTURA_ENTRY_ID"
Sets moderationStatus to REJECTED (3), resets moderationCount to 0, and marks all pending flags as MODERATED. The entry is hidden from default list results and blocked from playback.
Permission: Requires CONTENT_MODERATE_APPROVE_REJECT.
Listing the Moderation Queue
curl -X POST "$KALTURA_SERVICE_URL/service/baseEntry/action/list" \
-d "ks=$KALTURA_KS" \
-d "format=1" \
-d "filter[objectType]=KalturaBaseEntryFilter" \
-d "filter[moderationStatusIn]=1,5" \
-d "filter[statusEqual]=2" \
-d "filter[orderBy]=+createdAt" \
-d "pager[pageSize]=50"
Filter fields for moderation:
| Field | Description |
|---|---|
moderationStatusEqual | Exact status match (e.g., 1 for PENDING_MODERATION) |
moderationStatusNotEqual | Exclude a specific status |
moderationStatusIn | Comma-separated list (e.g., 1,5 for pending + flagged) |
moderationStatusNotIn | Exclude multiple statuses |
The KMC moderation queue uses moderationStatusIn=1,5 combined with statusEqual=2 (READY) to show entries that are fully processed and awaiting moderation.
user.notifyBan — Ban a Content Creator
curl -X POST "$KALTURA_SERVICE_URL/service/user/action/notifyBan" \
-d "ks=$KALTURA_KS" \
-d "format=1" \
-d "userId=$USER_ID"
Sends a ban notification to the content creator. Used by the KMC moderation detail panel alongside approve/reject. The user account remains active — this sends a notification only.
Bulk Operations
Approve or reject multiple entries in a single request using multirequest:
curl -X POST "$KALTURA_SERVICE_URL/service/multirequest" \
-d "ks=$KALTURA_KS" \
-d "format=1" \
-d "1[service]=baseEntry" \
-d "1[action]=approve" \
-d "1[entryId]=$ENTRY_ID_1" \
-d "2[service]=baseEntry" \
-d "2[action]=approve" \
-d "2[entryId]=$ENTRY_ID_2" \
-d "3[service]=baseEntry" \
-d "3[action]=approve" \
-d "3[entryId]=$ENTRY_ID_3"
Check each sub-response for KalturaAPIException — one failed approval does not block the others.