User Profile Entity - User Profile
User Profile Entity
| Field | Type | Description |
|---|---|---|
id | string | Auto-generated profile ID (read-only) |
partnerId | integer | Partner ID from KS (read-only) |
appGuid | string | App Registry GUID this profile belongs to (immutable after creation) |
userId | string | Kaltura user ID (immutable after creation) |
status | string | enabled, disabled, or deleted |
profileData | object | Custom JSON — registration form data, user attributes, etc. |
loginData | object | Login tracking (see section 4.1) |
eventData | object | Event attendance lifecycle (see section 4.2) |
appData | object | Application-specific JSON metadata |
createdAt | string | ISO 8601 timestamp, e.g. "2026-04-09T04:56:27.940Z" (read-only) |
updatedAt | string | ISO 8601 timestamp, e.g. "2026-04-09T04:56:27.940Z" (read-only) |
deletedAt | string | ISO 8601 timestamp, set on soft-delete (read-only) |
objectType | string | Always "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.
| Field | Type | Required | Description |
|---|---|---|---|
lastLoginDate | string | Yes (within loginData) | ISO 8601 timestamp of last login |
lastLoginType | string | Yes (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.
| Field | Type | Writable | Description |
|---|---|---|---|
regOrigin | string | Yes | How the user registered (see values below) |
attendanceStatus | string | Yes | Current attendance status (see lifecycle in section 4) |
userRegistrationType | string | Yes | Attendance type requested: virtualAttendanceRequest, inPersonAttendanceRequest, or both |
attendanceType | string | Yes | Confirmed attendance type: virtualAttendanceConfirmed, inPersonAttendanceConfirmed, both, or none |
allowedAttendanceType | string | Yes | Allowed attendance: virtualAttendanceAllowed, inPersonAttendanceAllowed, both, or none |
isRegistered | boolean | Yes | Registration flag (default: false) |
previousAttendanceStatus | string | Read-only | Auto-set to previous status on each attendanceStatus change |
statusUpdateTime | string | Read-only | ISO 8601 timestamp, auto-set when attendanceStatus changes |
firstAttendedStatusTime | string | Read-only | ISO 8601 timestamp, auto-set on first transition to attended or higher. Set only once — never overwritten. |
Registration Origin Values
| Value | Description |
|---|---|
registration | Self-registered via form |
invite | Invited by organizer |
webhook | Registered via webhook/integration |
sso | Registered via SSO |
admin | Registered by administrator |