Category Membership (categoryUser) - Content Management
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
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
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
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
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
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:
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):
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"