---
title: Category Membership (categoryUser)
url: https://docs.kaltura.com/docs/rich-media-cms-apis/content-management/categories-category-membership-categoryuser
---

## Category Membership (categoryUser)


Category membership controls which users belong to a category. When entitlement is enabled, membership determines who can see content assigned to `MEMBERS_ONLY` categories.

### KalturaCategoryUser Object

| Field | Type | Description |
|-------|------|-------------|
| `categoryId` | integer | Category ID |
| `userId` | string | User ID |
| `permissionLevel` | integer | Permission level (see below) |
| `status` | integer | Membership status (see below) |
| `partnerId` | integer | Partner ID (read-only) |
| `createdAt` | integer | Unix timestamp (read-only) |
| `updatedAt` | integer | Unix timestamp (read-only) |
| `objectType` | string | Always `"KalturaCategoryUser"` (read-only) |

#### Permission Levels (KalturaCategoryUserPermissionLevel)

| Value | Name | Description |
|-------|------|-------------|
| 0 | MANAGER | Full control: manage members, content, and category settings |
| 1 | MODERATOR | Approve/reject content and members |
| 2 | CONTRIBUTOR | Add content to the category |
| 3 | MEMBER | View content only |
| 4 | NONE | No permissions (membership exists but grants nothing) |

#### Membership Status

| Value | Name | Description |
|-------|------|-------------|
| 1 | ACTIVE | Active membership |
| 2 | PENDING | Awaiting approval |
| 3 | NOT_ACTIVE | Deactivated |
| 4 | DELETED | Removed |

### Add a Member


```bash
curl -X POST "$KALTURA_SERVICE_URL/service/categoryUser/action/add" \
  -d "ks=$KALTURA_KS" \
  -d "format=1" \
  -d "categoryUser[objectType]=KalturaCategoryUser" \
  -d "categoryUser[categoryId]=$CATEGORY_ID" \
  -d "categoryUser[userId]=jane.doe@example.com" \
  -d "categoryUser[permissionLevel]=3"
```


| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `categoryUser[objectType]` | string | Yes | Always `KalturaCategoryUser` |
| `categoryUser[categoryId]` | integer | Yes | Category ID |
| `categoryUser[userId]` | string | Yes | User ID to add |
| `categoryUser[permissionLevel]` | integer | No | Permission level (default: `3` MEMBER) |

Response: Full `KalturaCategoryUser` object with `status=1` (ACTIVE).

### Get a Member


```bash
curl -X POST "$KALTURA_SERVICE_URL/service/categoryUser/action/get" \
  -d "ks=$KALTURA_KS" \
  -d "format=1" \
  -d "categoryId=$CATEGORY_ID" \
  -d "userId=jane.doe@example.com"
```


### List Members


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


Filter fields (KalturaCategoryUserFilter):

| Field | Description |
|-------|-------------|
| `categoryIdEqual` | Members of a specific category |
| `categoryIdIn` | Members of multiple categories |
| `userIdEqual` | Categories a specific user belongs to |
| `userIdIn` | Categories for multiple users |
| `permissionLevelEqual` | Filter by permission level |
| `statusEqual` | Filter by membership status |
| `orderBy` | `+createdAt`, `-createdAt` |

### Update a Member


```bash
curl -X POST "$KALTURA_SERVICE_URL/service/categoryUser/action/update" \
  -d "ks=$KALTURA_KS" \
  -d "format=1" \
  -d "categoryId=$CATEGORY_ID" \
  -d "userId=jane.doe@example.com" \
  -d "categoryUser[objectType]=KalturaCategoryUser" \
  -d "categoryUser[permissionLevel]=2"
```


### Delete a Member


```bash
curl -X POST "$KALTURA_SERVICE_URL/service/categoryUser/action/delete" \
  -d "ks=$KALTURA_KS" \
  -d "format=1" \
  -d "categoryId=$CATEGORY_ID" \
  -d "userId=jane.doe@example.com"
```


### Activate / Deactivate a Member

Activate a pending or deactivated member:


```bash
curl -X POST "$KALTURA_SERVICE_URL/service/categoryUser/action/activate" \
  -d "ks=$KALTURA_KS" \
  -d "format=1" \
  -d "categoryId=$CATEGORY_ID" \
  -d "userId=jane.doe@example.com"
```


Deactivate an active member (preserves the membership record):


```bash
curl -X POST "$KALTURA_SERVICE_URL/service/categoryUser/action/deactivate" \
  -d "ks=$KALTURA_KS" \
  -d "format=1" \
  -d "categoryId=$CATEGORY_ID" \
  -d "userId=jane.doe@example.com"
```
