Skip to main content
View as Markdown

User Flagging - Content Moderation

User Flagging​

Users flag content via baseEntry.flag. This creates a moderation flag record and sets the entry status to FLAGGED_FOR_REVIEW (5). The entry remains playable during review.

baseEntry.flag — Flag an Entry​

curl -X POST "$KALTURA_SERVICE_URL/service/baseEntry/action/flag" \
-d "ks=$KALTURA_KS" \
-d "format=1" \
-d "moderationFlag[objectType]=KalturaModerationFlag" \
-d "moderationFlag[flaggedEntryId]=$KALTURA_ENTRY_ID" \
-d "moderationFlag[flagType]=1" \
-d "moderationFlag[comments]=Contains inappropriate content"

Parameters:

ParameterTypeRequiredDescription
moderationFlag[flaggedEntryId]stringyesEntry ID to flag
moderationFlag[flagType]integeryesFlag reason (see Flag Types below)
moderationFlag[comments]stringnoFree-text explanation (max 1024 chars)

Flag types (KalturaModerationFlagType):

ValueNameDescription
1SEXUAL_CONTENTNudity, pornography, or suggestive content
2VIOLENT_REPULSIVEViolence, gore, or repulsive content
3HARMFUL_DANGEROUSHarmful or dangerous acts
4SPAM_COMMERCIALSSpam or commercial promotion
5COPYRIGHTCopyright infringement
6TERMS_OF_USE_VIOLATIONViolates terms of use

Validation: The entry must be in APPROVED (2), AUTO_APPROVED (6), or FLAGGED_FOR_REVIEW (5) status. Flagging a REJECTED or PENDING_MODERATION entry returns ENTRY_CANNOT_BE_FLAGGED.

Response: Returns a KalturaModerationFlag object with the generated flag ID, status PENDING (1), and creation timestamp.

Side effects:

  • Entry moderationStatus changes to FLAGGED_FOR_REVIEW (5) if not already
  • Entry moderationCount increments by 1
  • Email notifications fire to users with CONTENT_MODERATE_APPROVE_REJECT permission

Permissions: Flagging is broadly permitted — works with user sessions, widget sessions, and playback sessions. Anonymous flagging from widget KS is supported.

baseEntry.listFlags — List Pending Flags​

curl -X POST "$KALTURA_SERVICE_URL/service/baseEntry/action/listFlags" \
-d "ks=$KALTURA_KS" \
-d "format=1" \
-d "entryId=$KALTURA_ENTRY_ID" \
-d "pager[pageSize]=50"

Response:

{
"totalCount": 2,
"objects": [
{
"id": 12345,
"flaggedEntryId": "0_abc123",
"flagType": 1,
"comments": "Inappropriate content in first 30 seconds",
"status": 1,
"createdAt": 1700000000,
"objectType": "KalturaModerationFlag"
}
],
"objectType": "KalturaModerationFlagListResponse"
}

Returns flags with status=PENDING (1). After approve or reject, flags are marked MODERATED (2) and no longer appear in this list.

Flag status enum (KalturaModerationFlagStatus):

ValueName
1PENDING
2MODERATED

Permission: Requires CONTENT_MODERATE_BASE.