Skip to main content
View as Markdown

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​

FieldTypeDescription
categoryIdintegerCategory ID
userIdstringUser ID
permissionLevelintegerPermission level (see below)
statusintegerMembership status (see below)
partnerIdintegerPartner ID (read-only)
createdAtintegerUnix timestamp (read-only)
updatedAtintegerUnix timestamp (read-only)
objectTypestringAlways "KalturaCategoryUser" (read-only)

Permission Levels (KalturaCategoryUserPermissionLevel)​

ValueNameDescription
0MANAGERFull control: manage members, content, and category settings
1MODERATORApprove/reject content and members
2CONTRIBUTORAdd content to the category
3MEMBERView content only
4NONENo permissions (membership exists but grants nothing)

Membership Status​

ValueNameDescription
1ACTIVEActive membership
2PENDINGAwaiting approval
3NOT_ACTIVEDeactivated
4DELETEDRemoved

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"
ParameterTypeRequiredDescription
categoryUser[objectType]stringYesAlways KalturaCategoryUser
categoryUser[categoryId]integerYesCategory ID
categoryUser[userId]stringYesUser ID to add
categoryUser[permissionLevel]integerNoPermission 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):

FieldDescription
categoryIdEqualMembers of a specific category
categoryIdInMembers of multiple categories
userIdEqualCategories a specific user belongs to
userIdInCategories for multiple users
permissionLevelEqualFilter by permission level
statusEqualFilter 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"