---
title: Moderator Actions
url: https://docs.kaltura.com/docs/rich-media-cms-apis/content-moderation/moderation-actions
---

## Moderator Actions

### baseEntry.approve — Approve an Entry

```bash
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

```bash
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

```bash
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

```bash
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:

```bash
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.
