Skip to main content
View as Markdown

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:

FieldDescription
moderationStatusEqualExact status match (e.g., 1 for PENDING_MODERATION)
moderationStatusNotEqualExclude a specific status
moderationStatusInComma-separated list (e.g., 1,5 for pending + flagged)
moderationStatusNotInExclude 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.