Skip to main content
View as Markdown

User Profile Entity - User Profile

User Profile Entity​

FieldTypeDescription
idstringAuto-generated profile ID (read-only)
partnerIdintegerPartner ID from KS (read-only)
appGuidstringApp Registry GUID this profile belongs to (immutable after creation)
userIdstringKaltura user ID (immutable after creation)
statusstringenabled, disabled, or deleted
profileDataobjectCustom JSON — registration form data, user attributes, etc.
loginDataobjectLogin tracking (see section 4.1)
eventDataobjectEvent attendance lifecycle (see section 4.2)
appDataobjectApplication-specific JSON metadata
createdAtstringISO 8601 timestamp, e.g. "2026-04-09T04:56:27.940Z" (read-only)
updatedAtstringISO 8601 timestamp, e.g. "2026-04-09T04:56:27.940Z" (read-only)
deletedAtstringISO 8601 timestamp, set on soft-delete (read-only)
objectTypestringAlways "UserProfile" in responses (read-only)

A profile is uniquely identified by the combination of partnerId + appGuid + userId. Each user can have one active (non-deleted) profile per app. After a profile is soft-deleted, a new one can be created for the same user + app combination.

User ID Case Sensitivity​

User IDs containing @ (email addresses) are matched case-insensitively — creating a profile for User@Example.com when one already exists for user@example.com returns USER_ALREADY_ASSOCIATED_TO_APP_GUID. User IDs without @ are matched case-sensitively.

4.1 Login Data​

Tracks the user's most recent login activity. Not auto-updated — must be set explicitly via add or update.

FieldTypeRequiredDescription
lastLoginDatestringYes (within loginData)ISO 8601 timestamp of last login
lastLoginTypestringYes (within loginData)Login method: sso, emailPass, magicLink, simpleLogin, or guestLogin

4.2 Event Data​

Tracks the user's event attendance lifecycle. This is the primary use case for Events Platform integrations.

FieldTypeWritableDescription
regOriginstringYesHow the user registered (see values below)
attendanceStatusstringYesCurrent attendance status (see lifecycle in section 4)
userRegistrationTypestringYesAttendance type requested: virtualAttendanceRequest, inPersonAttendanceRequest, or both
attendanceTypestringYesConfirmed attendance type: virtualAttendanceConfirmed, inPersonAttendanceConfirmed, both, or none
allowedAttendanceTypestringYesAllowed attendance: virtualAttendanceAllowed, inPersonAttendanceAllowed, both, or none
isRegisteredbooleanYesRegistration flag (default: false)
previousAttendanceStatusstringRead-onlyAuto-set to previous status on each attendanceStatus change
statusUpdateTimestringRead-onlyISO 8601 timestamp, auto-set when attendanceStatus changes
firstAttendedStatusTimestringRead-onlyISO 8601 timestamp, auto-set on first transition to attended or higher. Set only once — never overwritten.

Registration Origin Values​

ValueDescription
registrationSelf-registered via form
inviteInvited by organizer
webhookRegistered via webhook/integration
ssoRegistered via SSO
adminRegistered by administrator