---
title: Content Assignment (categoryEntry)
url: https://docs.kaltura.com/docs/rich-media-cms-apis/content-management/categories-content-assignment-categoryentry
---

## Content Assignment (categoryEntry)


Assign media entries to categories to organize content and enforce entitlement rules.

### KalturaCategoryEntry Object

| Field | Type | Description |
|-------|------|-------------|
| `categoryId` | integer | Category ID |
| `entryId` | string | Entry ID |
| `status` | integer | `1` = PENDING, `2` = ACTIVE, `3` = DELETED, `4` = REJECTED |
| `createdAt` | integer | Unix timestamp (read-only) |
| `objectType` | string | Always `"KalturaCategoryEntry"` (read-only) |

### Assign an Entry to a Category


```bash
curl -X POST "$KALTURA_SERVICE_URL/service/categoryEntry/action/add" \
  -d "ks=$KALTURA_KS" \
  -d "format=1" \
  -d "categoryEntry[objectType]=KalturaCategoryEntry" \
  -d "categoryEntry[categoryId]=$CATEGORY_ID" \
  -d "categoryEntry[entryId]=$KALTURA_ENTRY_ID"
```


Response: Full `KalturaCategoryEntry` object with `status=2` (ACTIVE), or `status=1` (PENDING) if the category has moderation enabled and the user lacks MODERATOR permission.

### List Category Entries


```bash
curl -X POST "$KALTURA_SERVICE_URL/service/categoryEntry/action/list" \
  -d "ks=$KALTURA_KS" \
  -d "format=1" \
  -d "filter[objectType]=KalturaCategoryEntryFilter" \
  -d "filter[categoryIdEqual]=$CATEGORY_ID" \
  -d "pager[pageSize]=50"
```


Filter fields (KalturaCategoryEntryFilter):

| Field | Description |
|-------|-------------|
| `categoryIdEqual` | Entries in a specific category |
| `categoryIdIn` | Entries in multiple categories |
| `entryIdEqual` | Categories for a specific entry |
| `statusEqual` | Filter by status (1=PENDING, 2=ACTIVE, 3=DELETED, 4=REJECTED) |
| `orderBy` | `+createdAt`, `-createdAt` |

### Delete a Category Entry


```bash
curl -X POST "$KALTURA_SERVICE_URL/service/categoryEntry/action/delete" \
  -d "ks=$KALTURA_KS" \
  -d "format=1" \
  -d "entryId=$KALTURA_ENTRY_ID" \
  -d "categoryId=$CATEGORY_ID"
```


Removes the entry from the category. The entry itself is not deleted.

### Moderate Category Entries

When a category has `moderation=1`, new entry assignments enter `PENDING` status. Moderators and managers can approve or reject. For full moderation workflows including user flagging and AI-powered content screening, see the [Moderation API Guide](/docs/rich-media-cms-apis/content-moderation/moderation-overview).

**Activate (approve) a pending entry:**

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


**Reject a pending entry:**

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


### Sync Privacy Context

Synchronize the privacy context for entries in a category after changing the category's `privacyContext`:


```bash
curl -X POST "$KALTURA_SERVICE_URL/service/categoryEntry/action/syncPrivacyContext" \
  -d "ks=$KALTURA_KS" \
  -d "format=1" \
  -d "entryId=$KALTURA_ENTRY_ID" \
  -d "categoryId=$CATEGORY_ID"
```
